[arch-general] Multiple sound cards
Hello All, I use two sound cards in my computer: * the on-board card (VIA 8237 chipset) * a SBLive! PCI card Until Kernel 2.6.23-ARCH I was able to use either card, in KMix and Skype for instance. But from Kernel 2.6.24-ARCH, only one card appears in KMix and Skype. Back when the two cards worked, I loaded the modules in rc.conf with: MODULES=(snd_emu10k1 snd_via82xx) to ensure that SBLive! (which uses snd_emu10k1) would be the default card, while the on-board card could be used for Skype. Now, even when snd_via82xx is first, only the SBLive! card is detected. I checked what cards were being detected with lspci: * with Kernel 2.6.23-ARCH I get: 00:06.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 08) 00:06.1 Input device controller: Creative Labs SB Live! Game Port (rev 08) and 00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60) * but with Kernel 2.6.24-ARCH I get: 00:06.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 08) 00:06.1 Input device controller: Creative Labs SB Live! Game Port (rev 08) (The full output of lspci is at the bottom of the e-mail) I checked that snd_via82xx module is loaded with lsmod. But in Kernel 2.6.24-ARCH there is only one dsp in /dev. Does anyone have any suggestions as to why this may have stopped working in moving from 2.6.23 to 2.6.24? Is it no longer possible to run two sound cards together? I have put the full output of: lspci ls /dev/dsp* ls /proc/asound at the bottom of this e-mail for information. Thanks, Steve To try and understand what's changed, I compared the output of lspci, ls /dev/dsp* and ls /proc/asound when running each kernel. The results are below: * I rolled back to 2.6.23-ARCH, rebooted and checked the following: - ls /dev/dsp* outputs: dsp and dsp1 (symlinks to /dev/sound/dsp and dsp1) - ls /proc/asound outputs: VIA 8237 (symlinked to card1) and Live (symlinked to card0) - lspci outputs: 00:00.0 Host bridge: VIA Technologies, Inc. VT8385 [K8T800 AGP] Host Bridge (rev 01) 00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI bridge [K8T800/K8T890 South] 00:06.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 08) 00:06.1 Input device controller: Creative Labs SB Live! Game Port (rev 08) 00:0e.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80) 00:0f.0 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) 00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) 00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) 00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) 00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) 00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86) 00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South] 00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60) 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78) 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control 01:00.0 VGA compatible controller: nVidia Corporation NV25 [GeForce4 Ti 4200] (rev a3) * I upgraded back to the latest kernel 2.6.24-ARCH, and checked the same: - ls /dev/dsp*: /dev/dsp - ls /proc/asound: Live (card0) - lspci outputs: 00:00.0 Host bridge: VIA Technologies, Inc. VT8385 [K8T800 AGP] Host Bridge (rev 01) 00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI bridge [K8T800/K8T890 South] 00:06.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 08) 00:06.1 Input device controller: Creative Labs SB Live! Game Port (rev 08) 00:0e.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80) 00:0f.0 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) 00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) 00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) 00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) 00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81) 00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86) 00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South] 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78) 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control 01:00.0 VGA compatible controller: nVidia Corporation NV25 [GeForce4 Ti 4200] (rev a3) The difference in the lspci outputs is: 00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60) I checked /boot/kconfig26 and the via82cXX module is compiled in (m) for both kernels. I don't think it's relevant, but I use the same mkinitcpio.conf for creating the kernel images in both cases.
söndagen den 20 april 2008 skrev Stephen Wilkinson:
Does anyone have any suggestions as to why this may have stopped working in moving from 2.6.23 to 2.6.24? Is it no longer possible to run two sound cards together?
I got the same problem with my (only) built-in VIA sound chip. From kernel 2.6.24 and onwards, the chip has to be enabled in the bios. I had it disabled before. Check your bios settings, and enable the card if it is disabled. Before linux ignored bios settings, but it look likes it does not do that anymore. Karolina
Thanks Karolina, I'd noticed that too, that the kernel (from 2.6.17 til 2.6.23) detected the on-board sound card even when it was set to "disabled" in the BIOS. I double checked the BIOS setting, and it is definitely enabled. Before kernel 2.6.17 I couldn't get the two cards working simultaneously... hmm, I wonder if a "feature" (read bug!) that made my setup work has been fixed! Can the on-board be disabled by the presence of another sound card (over-riding the BIOS setting)? Steve On 20/04/2008, Karolina Lindqvist <karolina.lindqvist@kramnet.se> wrote:
söndagen den 20 april 2008 skrev Stephen Wilkinson:
Does anyone have any suggestions as to why this may have stopped working in moving from 2.6.23 to 2.6.24? Is it no longer possible to run two sound cards together?
I got the same problem with my (only) built-in VIA sound chip. From kernel 2.6.24 and onwards, the chip has to be enabled in the bios. I had it disabled before. Check your bios settings, and enable the card if it is disabled.
Before linux ignored bios settings, but it look likes it does not do that anymore.
Karolina
I thought I'd check the changelog for 2.6.24 on www.kernel.org (http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.24) and found this: --------------8<---------------------------------------------------------------------------------------------------------------- commit 346ca04d050ac48ceb8e4a6b1c76c2d7fd5d1a6a Author: Johannes Goecke <goecke@upb.de> Date: Mon Sep 10 10:46:52 2007 +0200 PCI: re-enable onboard sound on "MSI K8T Neo2-FIR" On the "MSI K8T Neo2-FIR" board the BIOS disables the onboard soundcard, if a second PCI soundcard is present. This patch sets the korrect register bit to enable the onboard sound. Removed old code in /drivers/pci/quirks.c that only checks for the PCI-ID and fires on any Board with VIA 8237. New code in /arch/i386/pci/fixup.c checks the DMI-tables and only runs on the specific board. --------------8<---------------------------------------------------------------------------------------------------------------- My board is an MSI K8TM ILSR so this sounds a promising thing to look at... will post back if I have any luck, in case anybody else is interested. Steve On 20/04/2008, Stephen Wilkinson <sw8511@gmail.com> wrote:
Thanks Karolina,
I'd noticed that too, that the kernel (from 2.6.17 til 2.6.23) detected the on-board sound card even when it was set to "disabled" in the BIOS. I double checked the BIOS setting, and it is definitely enabled.
Before kernel 2.6.17 I couldn't get the two cards working simultaneously... hmm, I wonder if a "feature" (read bug!) that made my setup work has been fixed!
Can the on-board be disabled by the presence of another sound card (over-riding the BIOS setting)?
Steve
On 20/04/2008, Karolina Lindqvist <karolina.lindqvist@kramnet.se> wrote:
söndagen den 20 april 2008 skrev Stephen Wilkinson:
Does anyone have any suggestions as to why this may have stopped working in moving from 2.6.23 to 2.6.24? Is it no longer possible to run two sound cards together?
I got the same problem with my (only) built-in VIA sound chip. From kernel 2.6.24 and onwards, the chip has to be enabled in the bios. I had it disabled before. Check your bios settings, and enable the card if it is disabled.
Before linux ignored bios settings, but it look likes it does not do that anymore.
Karolina
OK, it's all explained in the source code referred to by Johannes Goecke (see above). In version 2.6.23 a "catch all VIA VT8237" function was used to enable the on-board sound card -- which is why it worked for me. In version 2.6.24 this was removed. Instead the DMI code ( http://en.wikipedia.org/wiki/Desktop_Management_Interface) is used to enable the card *only* on MSI K8T Neo2 FIR. So once I've found the DMI code for my motherboard, I'll try a patch on the 2.6.24 kernel and post again if it works. Steve On 20/04/2008, Stephen Wilkinson <sw8511@gmail.com> wrote:
I thought I'd check the changelog for 2.6.24 on www.kernel.org (http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.24) and found this:
--------------8<---------------------------------------------------------------------------------------------------------------- commit 346ca04d050ac48ceb8e4a6b1c76c2d7fd5d1a6a Author: Johannes Goecke <goecke@upb.de> Date: Mon Sep 10 10:46:52 2007 +0200
PCI: re-enable onboard sound on "MSI K8T Neo2-FIR"
On the "MSI K8T Neo2-FIR" board the BIOS disables the onboard soundcard, if a second PCI soundcard is present.
This patch sets the korrect register bit to enable the onboard sound.
Removed old code in /drivers/pci/quirks.c that only checks for the PCI-ID and fires on any Board with VIA 8237.
New code in /arch/i386/pci/fixup.c checks the DMI-tables and only runs on the specific board.
--------------8<----------------------------------------------------------------------------------------------------------------
My board is an MSI K8TM ILSR so this sounds a promising thing to look at... will post back if I have any luck, in case anybody else is interested.
Steve
Thanks Karolina,
I'd noticed that too, that the kernel (from 2.6.17 til 2.6.23) detected the on-board sound card even when it was set to "disabled" in the BIOS. I double checked the BIOS setting, and it is definitely enabled.
Before kernel 2.6.17 I couldn't get the two cards working simultaneously... hmm, I wonder if a "feature" (read bug!) that made my setup work has been fixed!
Can the on-board be disabled by the presence of another sound card (over-riding the BIOS setting)?
Steve
On 20/04/2008, Karolina Lindqvist <karolina.lindqvist@kramnet.se> wrote:
söndagen den 20 april 2008 skrev Stephen Wilkinson:
Does anyone have any suggestions as to why this may have stopped working in moving from 2.6.23 to 2.6.24? Is it no longer possible to run two sound cards together?
I got the same problem with my (only) built-in VIA sound chip. From kernel 2.6.24 and onwards, the chip has to be enabled in the bios. I had it disabled before. Check your bios settings, and enable the card if it is disabled.
Before linux ignored bios settings, but it look likes it does not do
On 20/04/2008, Stephen Wilkinson <sw8511@gmail.com> wrote: that
anymore.
Karolina
2008/4/21 Stephen Wilkinson <sw8511@gmail.com>:
OK, it's all explained in the source code referred to by Johannes Goecke (see above). In version 2.6.23 a "catch all VIA VT8237" function was used to enable the on-board sound card -- which is why it worked for me. In version 2.6.24 this was removed. Instead the DMI code (http://en.wikipedia.org/wiki/Desktop_Management_Interface) is used to enable the card *only* on MSI K8T Neo2 FIR. So once I've found the DMI code for my motherboard, I'll try a patch on the 2.6.24 kernel and post again if it works.
Status? I suggest posting this patch to LKML - this way it can be included in the vanilla kernel. ;) -- Roman Kyrylych (Роман Кирилич)
participants (3)
-
Karolina Lindqvist
-
Roman Kyrylych
-
Stephen Wilkinson