Hey guys, I've been fighting with this all night with no
luck.
I've just bought a Creative Soundblaster Live! 5.1 Model
SB0060CA
lspci -vv finds it just fine:
00:0f.0 Multimedia audio controller: Creative Labs SB
Live! EMU10k1 (rev 0a)
Subsystem: Creative Labs SBLive! Digital 5.1 Model
SB0060CA
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr-
DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (500ns min, 5000ns max)
Interrupt: pin A routed to IRQ 9
Region 0: I/O ports at d800 [size=32]
Capabilities: [dc] Power Management version 1
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
At first, the subsystem number didn't match the pci.ids
database, but I added a line to the file and now it shows
up fine:
1102 Creative Labs
0002 SB Live! EMU10k1
1102 0020 CT4850 SBLive! Value
1102 0021 CT4620 SBLive!
1102 002f SBLive! mainboard implementation
1102 4001 E-mu APS
1102 8022 CT4780 SBLive! Value
1102 8023 CT4790 SoundBlaster PCI512
1102 8024 CT4760 SBLive!
1102 8025 SBLive! Mainboard Implementation
1102 8026 CT4830 SBLive! Value
1102 8027 CT4832 SBLive! Value
1102 8028 CT4760 SBLive! OEM version
1102 8031 CT4831 SBLive! Value
1102 8040 CT4760 SBLive!
1102 8051 CT4850 SBLive! Value
1102 8061 SBLive! Player 5.1
1102 8064 SB Live! 5.1 Model SB0100
1102 8065 SBLive! 5.1 Digital Model SB0220
1102 8066 SBLive! 5.1 Digital Model
SB0060CA
I thought maybe that'd do the trick, but no dice.
Compiled alsa-driver-1.0.1 with --enable-sequencer
--with-cards=emu10k1 --with-debug=full
Compiled fine, no errors.
Installing the driver gives the following:
# modprobe snd-emu10k1
/lib/modules/2.4.24/kernel/sound/pci/emu10k1/snd-emu10k1.o
: init_module: No such device
Hint: insmod errors can be caused by incorrect module
parameters, including invalid IO or IRQ parameters.
You may find more information in syslog or the output from
dmesg
/lib/modules/2.4.24/kernel/sound/pci/emu10k1/snd-emu10k1.o
: insmod
/lib/modules/2.4.24/kernel/sound/pci/emu10k1/snd-emu10k1.o
failed
/lib/modules/2.4.24/kernel/sound/pci/emu10k1/snd-emu10k1.o
: insmod snd-emu10k1 failed
soundcore is compliled into the kernel, and that worked
fine with the ALSA onboard via sound drivers I was using
before.
dmesg gives:
PCI: Found IRQ 9 for device 00:0f.0
PCI: Sharing IRQ 9 with 00:09.0
ALSA control.c:323: control 2:0:0:Center Playback Volume:0
is already present
EMU10K1/Audigy soundcard not found or device busy
/etc/modules.conf is:
# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-emu10k1
# module options should go here
# options snd-via82xx index=0 dxs_support=2
# OSS/Free portion
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0
# card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
In short, I can see no reason why this isn't working.
I thought maybe that this was a PCI ID difference deal,
but my brief look into the driver code seems to show that
all Manufactuer 1102 Model 0002 cards are treated as SB
Lives - so the perhaps new/rare 8066 subsystem code
shouldn't matter
static struct pci_device_id snd_emu10k1_ids[] = {
{ 0x1102, 0x0002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
/* EMU10K1 */
{ 0x1102, 0x0006, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0
},
/* Dell OEM version (EMU10K1) */
{ 0x1102, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1
},
/* Audigy */
{ 0, }
};
Much Googling has not turned up anything useful.
Any ideas? I'd kinda like to get my card working.
ADDENDUM: Through the ancient and proven printk debugging
method, I've been able to determine that this part of the
code is the problem:
if ((err = snd_emu10k1_mixer(emu)) < 0) {
snd_card_free(card);
return err;
}
If I comment that out, the module loads - but playing
sounds doesn't work, and I get this message in dmesg:
ALSA ../../alsa-kernel/pci/emu10k1/emupcm.c:750: ERROR
(kctl != ((void *)0)) (called from e1c231f5)
ALSA ../../alsa-kernel/pci/emu10k1/emupcm.c:750: ERROR
(kctl != ((void *)0)) (called from e1c2320f)
ALSA ../../alsa-kernel/pci/emu10k1/emupcm.c:750: ERROR
(kctl != ((void *)0)) (called from e1c23229)
I haven't traced through the mixer code to follow that
through - hopefully this is enough for someone who
actually knows the code to go on.
FURTHER DEBUGGING:
This code in alsa-kernel/pci/emu10k1/emumixer.c
(note nasty debugging!)
memset(&bus, 0, sizeof(bus));
bus.write = snd_emu10k1_ac97_write;
bus.read = snd_emu10k1_ac97_read;
printk(KERN_ERR "DEBUG:
snd_emu10k1_mixer0\n");
if ((err = snd_ac97_bus(emu->card,
&bus,&pbus)) < 0)
return err;
printk(KERN_ERR "DEBUG: snd_emu10k1_mixer
1\n");
memset(&ac97, 0, sizeof(ac97));
ac97.private_data = emu;
ac97.private_free =
snd_emu10k1_mixer_free_ac97;
printk(KERN_ERR "DEBUG: snd_emu10k1_mixer
1.5\n");
if ((err = snd_ac97_mixer(pbus, &ac97,
&emu->ac97)) < 0)
return err;
printk(KERN_ERR "DEBUG: snd_emu10k1_mixer
2\n");
produced:
DEBUG: entered snd_card_emu10k1_probe
DEBUG: 0
PCI: Found IRQ 9 for device 00:0f.0
PCI: Sharing IRQ 9 with 00:09.0
DEBUG: 1
DEBUG: 2
DEBUG: 3
DEBUG: 4
DEBUG: 5
DEBUG: entered snd_emu10k1_mixer
DEBUG: snd_emu10k1_mixer 0
DEBUG: snd_emu10k1_mixer 1
DEBUG: snd_emu10k1_mixer 1.5
ALSA control.c:323: control 2:0:0:Center Playback Volume:0
is already present
EMU10K1 DEBUG: Check to see if this message works
EMU10K1/Audigy soundcard not found or device busy
So the problem lies in:
if ((err = snd_ac97_mixer(pbus, &ac97, &emu->ac97)) < 0)
return err;
With that line commented out, the module loads fine with no
errors in dmesg or elsewhere, and sound programs open the
device justr fine - but no sound.
EVEN MORE
I tried using the emu10k1.o non-ALSA driver from Creative
(V0.20) and that worked! Mostly. The front two speakers
work, but nothing else does.
After configuring emu10k1.conf and running emu-script, some
really weird things happen - the volume control in xmms no
longer affects the left-front speaker, for example.
I get the feeling that something about the mixer or control
registers is different on my card than the usual SB Live!
5.1 cards.....
DG
-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user