Bug 125437

Summary: gnome-volume-control doesn't control volume
Product: [Fedora] Fedora Reporter: Per Nystrom <centaur>
Component: alsa-libAssignee: Martin Stransky <stransky>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: centaur, mattdm
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-07-12 07:49:07 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Per Nystrom 2004-06-07 04:57:14 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510

Description of problem:
gnome-volume-control doesn't change the volume of sound.  The only
exception is when I move the PCM slider in the "C-Media Electronics
CMI9739 [Audio Mixer (OSS)]" tab all the way to the bottom; then it
mutes it entirely.  Otherwise, it's either on or it's off, with no
range of level.  None of the other sliders do anything at all in this
tab, and none of the sliders in the "Intel ICH5 [Alsa Mixer]" tab do
anything -- in fact, some of them won't even move.

Also, the volume and balance sliders in xmms don't have any effect --
so I'm not sure if the problem is with gnome-volume-control or the
sound subsystem in general.

Here are the details of my system:

[centaur@tara centaur]$ uname -a
Linux tara.sunnydale 2.6.5-1.358smp #1 SMP Sat May 8 09:25:36 EDT 2004
i686 i686 i386 GNU/Linux
[centaur@tara centaur]$ lspci
00:00.0 Host bridge: Intel Corp. 82865G/PE/P DRAM Controller/Host-Hub
Interface (rev 02)
00:01.0 PCI bridge: Intel Corp. 82865G/PE/P PCI to AGP Controller (rev 02)
00:1d.0 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI
#1 (rev 02)00:1d.1 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R)
USB UHCI #2 (rev 02)00:1d.2 USB Controller: Intel Corp. 82801EB/ER
(ICH5/ICH5R) USB UHCI #3 (rev 02)00:1d.3 USB Controller: Intel Corp.
82801EB/ER (ICH5/ICH5R) USB UHCI #4 (rev 02)00:1d.7 USB Controller:
Intel Corp. 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corp. 82801BA/CA/DB/EB/ER Hub interface to
PCI Bridge (rev c2)
00:1f.0 ISA bridge: Intel Corp. 82801EB/ER (ICH5/ICH5R) LPC Bridge
(rev 02)
00:1f.1 IDE interface: Intel Corp. 82801EB/ER (ICH5/ICH5R) Ultra ATA
100 Storage Controller (rev 02)
00:1f.3 SMBus: Intel Corp. 82801EB/ER (ICH5/ICH5R) SMBus Controller
(rev 02)
00:1f.5 Multimedia audio controller: Intel Corp. 82801EB/ER
(ICH5/ICH5R) AC'97 Audio Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation NV35 [GeForce FX
5900] (rev a1)
02:03.0 Ethernet controller: Linksys NC100 Network Everywhere Fast
Ethernet 10/100 (rev 11)
02:04.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)
[centaur@tara centaur]$ lsmod
Module                  Size  Used by
snd_mixer_oss          17792  2
snd_intel8x0           30888  6
snd_ac97_codec         54916  1 snd_intel8x0
snd_pcm                76420  2 snd_intel8x0
snd_timer              22404  1 snd_pcm
snd_page_alloc         12036  2 snd_intel8x0,snd_pcm
gameport                7424  1 snd_intel8x0
snd_mpu401_uart         9088  1 snd_intel8x0
snd_rawmidi            21792  1 snd_mpu401_uart
snd_seq_device         10120  1 snd_rawmidi
snd                    43876  15
snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
soundcore              10336  3 snd
parport_pc             23616  1
lp                     12300  0
parport                34632  2 parport_pc,lp
autofs4                15488  0
sunrpc                110280  1
tulip                  41376  0
8139too                22656  0
mii                     7552  1 8139too
floppy                 52336  0
sg                     32288  0
scsi_mod               97224  1 sg
microcode              10400  0
reiserfs              195540  1
dm_mod                 37536  8
uhci_hcd               28188  0
ehci_hcd               26760  0
button                  8472  0
battery                10892  0
asus_acpi              12440  0
ac                      7308  0
ipv6                  214624  10
ext3                  108136  11
jbd                    50328  1 ext3


Version-Release number of selected component (if applicable):
gnome-media-2.6.0-1

How reproducible:
Always

Steps to Reproduce:
Try to use the gnome-volume-control program; it mostly doesn't do
anything.

Actual Results:  No volume control -- except PCM slider at bottom
position will mute.

Expected Results:  Volume control

Additional info:

Comment 1 Per Nystrom 2004-06-11 21:55:23 UTC
alsamixer behaves the same way.

Comment 2 Per Nystrom 2004-06-12 20:42:50 UTC
Sounds like it might be a hardware thing.  Quoting from
http://opensrc.org/alsa/index.php?page=intel8x0 :


============
For everyone who's missing volume control with his CMedia 9739 onboard
sound chip, here are the facts I found out so far. This chip is used
at least on Epox 8RDA3+ and maybe in every newer nforce2 chipset. (Who
knows where else it is used?)
The general problem with the 9739 is that it doesn't have a volume
control in hardware. As the technical reference (avail. at
http://www.cmedia.com.tw/e_t_twp.htm) states, there is no PCM volume
register on chip, only a PCM muting register. Strangely, it also
states that there is a _Master_ volume register where you should be
able to set the volume (not only muting)! But I had no success using
it; changes to that register have no effect. Maybe this is a hardware
bug, or the tech reference is wrong.
BTW. CMedia's OSS driver does volume control in software, so they know
about the problem...
So it seems that the best solution is to use some kind of software
volume control.

To get the chip in fact working under Linux, there are several
possibilities:

    * use intel8x0 driver (and an external volume control, maybe at
the speaker)

Pro: mostly works (stable etc.)
Con: you need an external volume control; and it's not very elegant :)

    * use intel8x0 driver and an extra sound demon (eg. KDE's artsd)

Pro: works; and the sound daemon has volume control
Con: not every app supports those sound daemons (but xmms and mplayer
do); you have one program more running in background; the daemons are
not always reliable (that's my experience); you need to use a specific
program for setting the volume (eg. kmix)

    * use CMedia's OSS driver (avail. at
http://www.cmedia.com.tw/download/e_UDA9738_linux_01.htm)

Pro: built by manufacturer :) ; has built-in volume control
Con: only usable with old OSS (Open Sound System), AFAIK not usable
with ALSA; didn't work reliably for me

    * curse CMedia for building such a crappy chip; curse them again
for not releasing an ALSA driver; curse NVidia for using such a crappy
chip (older nforce boards had a better chip onboard..); in the end,
buy an extra soundcard and be happy :)

Pro: it does work really well (if you buy a good card and not an
el-cheapo for 9.95 EUR which features as chip a 9739 :)
Con: additional costs to your PC; takes a PCI slot

BTW. I think I also tried the nforce2 soudn driver; it worked stable,
but had no volume control as well...

Well the (probably) best solution would be to integrate generic
software volume control in ALSA; that means to write an ALSA plugin
that does about the same as CMedia's driver does: rescale every sound
sample to the desired volume. CMedia's driver is under the GPL, so
their algorithm could be used. I've heard that such a plugin is
planned, but I don't know about the current status. Ask at Alsa-devel
mailing list (https://lists.sourceforge.net/lists/listinfo/alsa-devel)
about it.
More about ALSA plugins:
http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html

Good luck,
Oliver


Comment 3 Colin Walters 2004-09-16 16:57:11 UTC
Sounds like an alsa issue.

Comment 4 Martin Stransky 2005-01-05 12:18:07 UTC
Fix comes with alsa 1.0.8. There is plugin for software volume control.

Comment 5 Martin Stransky 2005-01-27 14:37:22 UTC
If you have new kernel (in devel is alsa 1.0.8), you can try use SW
volume plugin. You have to create file .asoundrc in your home
directory with:

$cat .asoundrc

--------------------------------------------------------
#
# Default output
#

pcm.!default {
    type plug
    slave.pcm {
        type softvol
        slave.pcm "hw:0,0"
        control {
             card 0
             name "PCM Playback Volume"
        }
    }
}
--------------------------------------------------------

Of course, this is only simple testing example for one card without
dmix and other plugins. You can control volume using "PCM Playback
Volume" slider. 

Let me please know, if it works for you.

Thanks

Comment 6 Per Nystrom 2005-02-06 04:57:23 UTC
Ok, I fetched and installed the alsa-lib-devel-1.0.8-1.devel
alsa-lib-1.0.8-1.devel rpms, created ~/.asoundrc as above, and tried
to change the volume using alsamixer.  The Master control still has no
effect, and now I can't manipulate the PCM control at all.  In fact,
if I try to mute it, I get a segmentation fault.

gnome-volume-mixer behaves the same as it did before, except that now
the PCM section in the "Intel ICH5 [Alsa Mixer]" tab has 32(!!)
sliders  that won't move.  Same as with alsamixer, if I try to mute
the PCM in that tab I get a segmentation fault.

Comment 7 Matthew Miller 2005-04-26 15:31:59 UTC
Fedora Core 2 is now maintained by the Fedora Legacy project for
security updates only. If this problem is a security issue, please
reopen and reassign to the Fedora Legacy product. If it is not a
security issue and hasn't been resolved in the current FC3 updates or
in the FC4 test release, reopen and change the version to match.

Comment 8 Martin Stransky 2005-05-25 09:01:19 UTC
It should be fixed in FC4.

Comment 9 Martin Stransky 2005-07-11 14:06:19 UTC
Can anybody check it on FC4?

Comment 10 Per Nystrom 2005-07-11 15:51:39 UTC
Yes, software volume control seems to be working in FC4.  I tried it in both
alsamixer and in gnome-volume-control.  Thank you.

Comment 11 Martin Stransky 2005-07-12 07:49:07 UTC
Thanks for testing.