Audigy2 stopped working after upgrade to Ubuntu Studio 9.04

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

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 


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user


[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux