On 10/29/2009 10:44 AM, David Morrell wrote: > Hi all, my name is David, I'm new to the list. > > Sound works in Windows XP and worked in Ubuntu 8.04. It stopped after a > clean installation of Ubuntu Studio 9.04. It is not known if recording > worked or if it is now broken. Hopefully sorting out playback will > lead to a quick solution for recording, if one is needed. > Hi, Lots of good debugging info there. I can't spot anything specific that you are doing wrong. I suggest contacting the alsa-devel list with this one as it looks like you have found a driver bug. alsa-devel@xxxxxxxxxxxxxxxx Cheers. Patrick Shirkey Boost Hardware Ltd > Summary of Test Results > -------------------------------- > > Testing followed this understanding of the way sound playback is handled > in Linux. Sound; > - is generated by apps or test utilities such as Hydrogen or aplay > - may pass through a sound server such as PulseAudio or Jack > - goes to ALSA, which translates it for communication to sound cards > - is converted from digital to analogue, amplified and fed to speakers > by the sound card. > > The system has a Creative Labs Audigy2 sound card. > > It shares an IRQ with a video card and an onboard USB controller. > Video and USB work properly in Linux. Video, USB and sound work in > Windows. > > However, while BIOS reports these items on IRQ10, Linux (using cat > /proc/interrupts) thinks they are on IRQ18. Is there any significance in > this? It seems unlikely as video and USB work properly. > > ALSA appears to talk to the card – it is possible to set mixer controls > using one mixer interface and read their state using an unrelated > interface. Apps and test utilities appear able to send data to the > card. To back this up, the kernel modules required to form the driver > all appear to be loaded. When ALSA is forced to reload them, a pop > and brief low level white noise comes from the speaker. > > This is similar to what can be heard during system boot. > > Possibly ALSA is passing control data to the card but not PCM audio > data. I don't know if this is so or how to check. > > Re-installing ALSA had no effect. A full uninstall – reinstall was not > done as many other packages would have been affected because of > dependencies. > > Detailed information about the driver was reviewed, but it is beyond > my technical competence to understand if or how it applies to my card > and then to act on it (“Matrix:Module-emu10k1” at > > http://www.alsa-project.org/main/index.php/Matrix:Module-emu10k1). > > Now for the test results in detail. > > Thanks to Dave Phillips for his excellent series "Troubleshooting Linux > Audio" at > > http://www.linuxjournal.com and to many other sources. > > > Application& Test Utility Output > -------------------------------- > > the Hyrdogen drum machine can be seen producing output on its VU meters. > > From the command line: aplay -vv ak4744.wav shows an apparently > successful result; > > Playing WAVE 'ak4744.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, > Stereo Plug PCM: Hardware PCM card 0 'Audigy 2 Value [SB0400]' device 0 > subdevice 0 > Its setup is: > stream : PLAYBACK > access : RW_INTERLEAVED > format : S16_LE > subformat : STD > channels : 2 > rate : 44100 > exact rate : 44100 (44100/1) > msbits : 16 > buffer_size : 16384 > period_size : 4096 > period_time : 92879 > tstamp_mode : NONE > period_step : 1 > avail_min : 4096 > period_event : 0 > start_threshold : 16384 > stop_threshold : 16384 > silence_threshold: 0 > silence_size : 0 > > Test tone from Sound → Preferences → Test output appears to be > successful to most sound pipelines; > > - Audigy 2 Multichannel Playback (ALSA) OK > > - Audigy 2 Multichannel Capture / PT Playback (ALSA) Fails with > error message “gconfaudiosink: cound not open audio device for playback” > (also describes the audio sources as a 512 Hz tone and the pipeline as > “audioconvert ! Audioresample ! Gconfaudiosink”). > > - Audigy 2 ADC Capture / Standard PCM Playback (ALSA) OK > - Audigy 2 ADC Capture / Standard PCM Playback (OSS) 2 are OK, the > third apparently identical one fails > > - ALSA OK > - OSS OK > > > Sound Server > -------------------------------- > > PulseAudio and JACK were both on the sytesm. To simplify the problem; > JACK was not started; > PulseAudio was completely uninstalled, the system was restarted and it > was > verified that no persistent processes still existed for PulseAudio > (ps -e | grep “pulse”) > > > Drivers (ALSA) > -------------------------------- > > All volume controls were set to 100% and all mute controls were set to > un-mute in Alsamixer. These settings were verified by having another > mixer read and display them (Alsamixergui). > > As can be seen from the preceding output of aplay, sound was routed > directly from its source to ALSA and ALSA recognised the Audigy 2 card > on this computer. > > Output from the Sound → Preferences test also suggests that ALSA is > interrogating the card and recognising what it can and cannot do. > > However, there is a strange indication from ALSCTL; > > alsactl init > > which shows; > > Unknown hardware: "Audigy2" "SigmaTel STAC9750,51" > "AC97a:83847650" "" "" > > What is this saying? > > The ALSA soundcard matrix says an Audigy2 card should be using emu10k1 > modules.. > > http://www.alsa-project.org/main/index.php/Matrix:Vendor-Creative_Labs > > though I can't find an exact match there for my Audigy 2 SB0400 card. > > I tried forcing ALSA to reload its kernel modules using; > > sudo alsa reload > > The speaker emitted a soft pop and about half a second of very low level > white > noise, similar to what can be heard during system boot. > > Commmand output was; > > lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system > /home/dmorrell/.gvfs > > Output information may be incomplete. > > /sbin/alsa: Warning: Processes using sound devices: 3215(timidity). > > Unloading ALSA sound driver modules: snd-emu10k1-synth snd-emux-synth > snd-seq-virmidi snd-seq-midi-emul snd-emu10k1 snd-ac97-codec snd-pcm-oss > snd-mixer-oss snd-pcm snd-page-alloc snd-util-mem snd-hwdep snd-seq-dummy > snd-seq-oss snd-seq-midi snd-rawmidi snd-seq-midi-event snd-seq snd-timer > snd-seq-device (failed: modules still loaded: snd-seq snd-timer > snd-seq-device). > > Loading ALSA sound driver modules: snd-emu10k1-synth snd-emux-synth > snd-seq-virmidi snd-seq-midi-emul snd-emu10k1 snd-ac97-codec snd-pcm-oss > snd-mixer-oss snd-pcm snd-page-alloc snd-util-mem snd-hwdep > snd-seq-dummy > snd-seq-oss snd-seq-midi snd-rawmidi snd-seq-midi-event snd-seq > snd-timer > snd-seq-device. > > Kernel module(s) the card is using were checked using > > cat /proc/asound/modules > > which shows; > > 0 snd_emu10k1 > > i.e. there is only card 0 and it is using module snd_emu10k1. > > This was further confirmed using command lspci -v | grep “Audigy”, which > showed; > > 05:09.0 Multimedia audio controller: Creative Labs SB0400 > Audigy2 Value Kernel driver in use: EMU10K1_Audigy > > A test was done to confirm that the modules are actually loaded into > the kernel; > > lsmod | grep "emu" > > which showed a host of modules that seem as if they should be there, > though of course could not show any modules that aren't there and > should be; > > snd_emu10k1_synth 14336 0 > snd_emux_synth 40832 1 snd_emu10k1_synth > snd_seq_virmidi 13440 1 snd_emux_synth > snd_seq_midi_emul 14592 1 snd_emux_synth > snd_emu10k1 144288 1 snd_emu10k1_synth > snd_ac97_codec 112292 1 snd_emu10k1 > snd_pcm 83076 3 snd_emu10k1,snd_ac97_codec,snd_pcm_oss > snd_page_alloc 16904 2 snd_emu10k1,snd_pcm > snd_util_mem 12288 2 snd_emux_synth,snd_emu10k1 > snd_hwdep 15108 2 snd_emux_synth,snd_emu10k1 > snd_rawmidi 29696 3 snd_seq_virmidi,snd_emu10k1, > snd_seq_midi > snd_seq 56880 10 > snd_emux_synth,snd_seq_virmidi,snd_seq_midi_emul,snd_seq_dummy, > snd_seq_oss,snd_seq_midi,snd_seq_midi_event > > snd_timer 29704 3 snd_emu10k1,snd_pcm,snd_seq > snd_seq_device 14988 8 > snd_emu10k1_synth,snd_emux_synth,snd_emu10k1,snd_seq_dummy,snd_seq_oss, > snd_seq_midi,snd_rawmidi,snd_seq > > snd 62756 14 > snd_emux_synth,snd_seq_virmidi,snd_emu10k1,snd_ac97_codec,snd_pcm_oss, > snd_mixer_oss,snd_pcm,snd_hwdep,snd_seq_oss,snd_rawmidi,snd_seq,snd_ > timer,snd_seq_device > > > > Just for the hell of it, I had a look at information about the emu10k1 > module using; > > modinfo snd-emu10k1 > > which showed; > > filename: > /lib/modules/2.6.28-15-generic/kernel/sound/pci/emu10k1/snd-emu10k1.ko > license: GPL > description: EMU10K1 > author: Jaroslav Kysela<perex@xxxxxxxx> > firmware: emu/emu1010_notebook.fw > firmware: emu/emu0404.fw > firmware: emu/micro_dock.fw > firmware: emu/emu1010b.fw > firmware: emu/audio_dock.fw > firmware: emu/hana.fw > srcversion: F52CF37385CBD708CAB4A2C > alias: pci:v00001102d00000008sv*sd*bc*sc*i* > alias: pci:v00001102d00000004sv*sd*bc*sc*i* > alias: pci:v00001102d00000002sv*sd*bc*sc*i* > depends: > snd-pcm,snd-util-mem,snd-page-alloc,snd,snd-rawmidi,snd-timer, > snd-hwdep,snd-ac97-codec,snd-seq-device > vermagic: 2.6.28-15-generic SMP mod_unload modversions 586 > parm: index:Index value for the EMU10K1 soundcard. > (array of int) > parm: id:ID string for the EMU10K1 soundcard. (array of charp) > parm: enable:Enable the EMU10K1 soundcard. (array of bool) > parm: extin:Available external inputs for FX8010. > Zero=default. (array > of int) > parm: extout:Available external outputs for FX8010. > Zero=default. > (array of int) > parm: seq_ports:Allocated sequencer ports for internal > synthesizer. > (array of int) > parm: max_synth_voices:Maximum number of voices for > WaveTable. (array > of int) > parm: max_buffer_size:Maximum sample buffer size in MB. > (array of int) > parm: enable_ir:Enable IR. (array of bool) > parm: subsystem:Force card subsystem model. (array of uint) > > Noticing the parameter 'enable' (ton enable a sound card) and feeling > desparate, I tried reloading the module with that parameter specified; > > sudo modprobe -i snd_emu10k1 enable=true > > Unsurprisingly, it made no difference as the card already appears to > be talking to its driver anyway. > > The ALSA soundcard matrix mentions that some cards may need the > alsa-firmware package. That package is not on my system or in the > Ubuntu repositories. However, its headers are installed. I don't > know if this is significant. > > Next, I tried reinstalling ALSA. The following packages were affected; > > libsox-fmt-alsa > alsa-base > libasound2 > libasound2-plugins > mcp-plugins > libesd-alsa0 > > This had no effect, so I considered completely uninstalling& > reinstalling. However, many other packages that depend on ALSA would > also have been removed. This looked like a short cut to a long > reconstruction. > > Sound Card > -------------------------------- > > The card works under Windows XP and had worked under Ubuntu 8.04. > > > I have a Creative Labs Audigy 2 PCI card as card 0 on IRQ18 according > to cat /proc/asound/cards > > 0 [Audigy2 ]: Audigy2 - Audigy 2 Value [SB0400] > Audigy 2 Value [SB0400] (rev.0, serial:0x10011102) at 0x1040, irq 18 > > More information is given by > > cat /proc/interrupts > > which shows > > 18: 185146 IO-APIC-fasteoi uhci_hcd:usb4, EMU10K1, > radeon@pci:0000:01:00.0 > > There is a USB controller, the soundcard (EMU10K1) and the video card > (radeon) all using the same interrupt. The sound card does not appear > on any other interrupts. > > BIOS reports all of these devices on IRQ10, not IRQ18. And yes, I have > checked carefully to be sure I am not confusing 8 with 0. > > How could this discrepancy happen? > > A hint may lie in the online book “The Linux Kernel” at > http://tldp.org/LDP/tlk/dd/pci.html. > > “For Intel based systems the system BIOS, which ran at boot time, has > already fully configured the PCI system. This leaves Linux with little > to do other than map that configuration. For non-Intel based systems > further configuration needs to happen to: > > - Allocate PCI I/O and PCI Memory space to each device, > - Configure the PCI I/O and PCI Memory address windows for each PCI-PCI > bridge in the system, > - Generate Interrupt Line values for the devices; these control > interrupt handling for the device. “ > > Possibly Linux has read the information set up by the BIOS, then the > PCI Fixup routine has remapped the Interrupt Line values even though.it > may not have needed to do so? > > For a boots and all look at the PCI information about the sound card, > > lspci -vvxxx > > shows > > 05:09.0 Multimedia audio controller: Creative Labs SB0400 Audigy2 Value > Subsystem: Creative Labs Device 1001 > Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- > ParErr- Stepping- > SERR+ FastB2B- DisINTx- > Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium>TAbort > -<TAbort-<MAbort->SERR-<PERR- INTx- > Latency: 64 (500ns min, 5000ns max) > Interrupt: pin A routed to IRQ 18 > Region 0: I/O ports at 1040 [size=64] > Capabilities: [dc] Power Management version 2 > Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1-, > D2-,D3hot-,D3cold-) > Status: D0 PME-Enable- DSel=0 DScale=0 PME- > Kernel driver in use: EMU10K1_Audigy > Kernel modules: snd-emu10k1 > > The card has the following devices shown by; > > aplay -L > > This shows abridged); > > front:CARD=Audigy2,DEV=0 > Audigy 2 Value [SB0400], ADC Capture/Standard PCM Playback > Front speakers > rear:CARD=Audigy2,DEV=0 > Audigy 2 Value [SB0400], ADC Capture/Standard PCM Playback > Rear speakers > … > > Audigy 2 Value [SB0400], ADC Capture/Standard PCM Playback > IEC958 (S/PDIF) Digital Audio Output > null > Discard all samples (playback) or generate zero samples (capture) > > To see all input devices; > > arecord -l > > which shows; > > arecord -l > **** List of CAPTURE Hardware Devices **** > card 0: Audigy2 [Audigy 2 Value [SB0400]], device 0: emu10k1 [ADC > Capture/Standard PCM Playback] > Subdevices: 1/1 > card 0: Audigy2 [Audigy 2 Value [SB0400]], device 1: emu10k1 > mic [Mic Capture] > card 0: Audigy2 [Audigy 2 Value [SB0400]], device 2: emu10k1 > efx [Multichannel > Capture/PT Playback] > Subdevices: 1/1 > > > > _______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user