Froschs Blog

Computer und was das Leben sonst noch so zu bieten hat

Zur Website | Impressum

Spaß mit Soundblaster

1. August 2012 um 1:09 Uhr von Atari-Frosch

Heute hab ich mal wieder eine Story aus der Serie „Spaß mit (alter) Hardware“. Ist ja nicht so, daß ich sonst keine Probleme hätte, aber es muß halt immer noch irgendwo eine Kleinigkeit mit obendrauf kommen.

In meinen beiden Desktop-PCs hier, seerose und seefunk, habe ich mittlerweile jeweils eine Soundblaster Emu10K1. Die Modelle sind nicht exakt gleich, aber sie benutzen den gleichen Treiber und liefern die gleiche gute (im Verhältnis zu ihrem Preis und im Vergleich zu anderen Karten in dem Segment) Qualität. Beide PCs laufen mit Debian GNU/Linux Squeeze, seerose in 64bit, seefunk in 32bit. Bei seerose geht alles. seefunk dagegen meint seit kurzem, mit seiner Soundblaster nicht mehr reden zu müssen. Das sieht dann in dmesg so aus:

EMU10K1_Audigy 0000:00:07.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18

AC'97 0 access is not valid [0x0], removing mixer.

EMU10K1_Audigy 0000:00:07.0: PCI INT A disabled

EMU10K1_Audigy: probe of 0000:00:07.0 failed with error -5

Die Karte wird also erkannt, bekommt einen IRQ, dann kommt AC97, motzt rum, haut den Mixer (also das Mixer-Device unter /dev) raus, und der Kernel nimmt der Karte ihren IRQ wieder weg. Dann guckt der Treiber nochmal nach, was mit der Karte ist, und sieht sie nicht mehr. Das heißt aber nicht, daß die Soundkarte „weg“ ist. Denn lspci erzählt mir:

00:07.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 07)

00:07.1 Input device controller: Creative Labs SB Live! Game Port (rev 07)

Also gibt es auch keinen Wackelkontakt, sonst wäre sie nicht in der Liste der PCI-Geräte. Aus dem gleichen Grund gehe ich davon aus, daß die Karte als solche nicht defekt ist.

Das richtig Lustige daran ist, daß das Problem buchstäblich von einem Tag auf den anderen aufgetreten ist. Am Tag vorher war der PC noch stundenlang damit beschäftigt gewesen, VHS-Videos einzulesen und zu encoden, immer schön mit Ton (der nicht über die TV-Karte, sondern über die Soundblaster vom Videorecorder abgegriffen wird). Nachts dann ausgeschaltet, am nächsten Tag gebootet: Soundkarte hat keine Lust mehr. Oder der AC97-Codec, je nachdem. Achja, ein Update gab es dazwischen auch keins, schon gar nicht für den Kernel.

Diesen AC97-Codec kann ich auch nicht einfach rausnehmen. Denn in der Liste der Kernelmodule ist klar erkennbar, daß dieser Codec für den Emu10K1-Treiber vorausgesetzt wird; dementsprechend kann ich ihn auch nicht einfach rausnehmen:

seefunk:~# lsmod | grep ac97

snd_ac97_codec 79152 1 snd_emu10k1

ac97_bus 710 1 snd_ac97_codec

snd_pcm 47222 4 saa7134_alsa, snd_emu10k1, snd_ac97_codec, snd_pcm_oss

snd 34415 13 snd_emux_synth, snd_seq_virmidi, saa7134_alsa, snd_emu10k1, snd_ac97_codec, snd_pcm_oss, snd_mixer_oss, snd_pcm, snd_hwdep, snd_rawmidi, snd_seq, snd_timer, snd_seq_device

seefunk:~# rmmod snd_ac97_codec

ERROR: Module snd_ac97_codec is in use by snd_emu10k1

(Leerzeichen nach Kommata händisch eingefügt, damit man nicht längs scrollen muß; saa7134 ist die TV-Karte, bei der hat sich nichts geändert.)

Mehrere Google-Suchläufe insbesondere mit dem String „AC'97 0 access is not valid [0x0], removing mixer.“ brachten mir nur alte Foreneinträge und Bugmeldungen aus den Jahren zwischen 2004 und 2007 – und nur Fragen, keine Antworten. Viele der Fragenden geben außerdem an, ihre Soundblaster gerade eben erst verbaut zu haben; die restlichen – Ubuntu-User – haben das Problem erst nach einem großen Distributions-Upgrade gehabt. Nach 2007 kannte das Problem offenbar keiner mehr. So alt ist der Kernel in Debian Squeeze aber nun auch nicht.

Wie kann ich die Karte nun wieder zum Leben erwecken?

(Alternativ: Ich leg mir gern noch Emu10K1-Karten auf Reserve, also wenn wer welche übrig hat …)


History

Kommentieren

Bitte beachte die Kommentarregeln!

XHTML: Du kannst diese Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>