VectorLinux
November 21, 2014, 10:58:46 am *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: Visit our home page for VL info. To search the old message board go to http://vectorlinux.com/forum1. The first VL forum is temporarily offline until we can find a host for it. Thanks for your patience.
 
Now powered by KnowledgeDex.
   Home   Help Search Login Register  
Please support VectorLinux!
Pages: [1]
  Print  
Author Topic: HOWTO get SB LIve! Value rev 08 soundcard working under X  (Read 3117 times)
johnpipe108
Member
*
Posts: 26


« on: January 05, 2007, 09:28:23 pm »


If you are using the SB Live! Value rev 08 soundcard, it will report itself as a "VGA Compatible Device". As a result you will not get analog sound output when modern xservers such as X.org and contemporary XFree86 are running. What happens is that incorrect  PCI identification of this card as a video device "confuses" X.org and causes it to disable the soundcard; it looks like this is related to the newer xservers multi-head capability.

This problem seems to be limited to this particular soundcard,  and shows up across motherboard chipsets. I have been told that this card was made for Microsoft Window 98, and it appears that it was programmed in the wrong PCI address space, hence gets identified as a VGA device. Some users of this card had sound working on older versions of their distribution, and sound stopped working when they upgraded to  versions with newer kernels and xservers.

 Running "/sbin/lspci -v" under this chipset will give the following incorrect listing for the soundcard:

Code:

00:14.0 VGA compatible unclassified device: Creative Labs SB Live! EMU10k1 (rev 08)
        Subsystem: Creative Labs CT4832 SBLive! Value
        Flags: bus master, medium devsel, latency 32, IRQ 11
        I/O ports at dc00 [disabled] [size=32]
        Capabilities: [dc] Power Management version 1

00:14.1 Input device controller: Creative Labs SB Live! Game Port (rev 08)
        Subsystem: Creative Labs Gameport Joystick
        Flags: bus master, medium devsel, latency 32
        I/O ports at e000 [size=8]
        Capabilities: [dc] Power Management version 1



Note that the device is identified as a "VGA compatible unclassified device: " which is incorrect, and is why X disables the soundcard as shown by the disabled port; if you run alsamixer in an xterm and try to turn the SB Live Analog/Digital Output Jack off there will be no result (pressing the "m" key will not toggle this control off). This condition only exists while X is running, so if you open a TTY from X (ctrl-alt F3 for example) you will find the A/D switch turned off; when you return to X (ctrl-alt F7 on most systems) it will be on again.

For an immediate work-around,  run the "setpci" command as root in an xterm like this:

   su -c '/sbin/setpci -s 00:14.0 COMMAND=5'

Note that you must substitute the address of your soundcard for the address [00:14.0] shown in this example. Type the command "/sbin/lspci -v" in the terminal to get the address of your soundcard.

After running the "setpci" command, lspci should give this result (output edited to show only the soundcard):

Code:
johnpipe:$ /sbin/lspci -v
 
---
00:14.0 VGA compatible unclassified device: Creative Labs SB Live! EMU10k1 (rev 08)
        Subsystem: Creative Labs CT4832 SBLive! Value
        Flags: bus master, medium devsel, latency 32, IRQ 11
        I/O ports at dc00 [size=32]
        Capabilities: <access denied>


00:14.1 Input device controller: Creative Labs SB Live! Game Port (rev 08)
        Subsystem: Creative Labs Gameport Joystick
        Flags: bus master, medium devsel, latency 32
        I/O ports at e000 [size=8]
        Capabilities: <access denied>
---

The port is now enabled, and sound apps will now work; this will have to be done after each boot and login to enable sound.

To make a permanent,  system wide fix, you need to edit /etc/X11/xorg.conf. If using vim under VL5.8-STD, make the following system-wide fix to vim first by running this command:

su -c 'cp /etc/vimrc /usr/share/vim/'

This will get vim running correctly. Next, add the "IsolateDevice" option to /etc/X11/xorg.conf:


Code:
Section "ServerLayout"
        Identifier     "Layout0"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice    "Mouse0" "CorePointer"
        Option         "IsolateDevice" "PCI:1:0:0"
EndSection

The adress shown above is for most AGP cards; check your video card address with lspci -v (NOTE: xorg.conf uses the bus_id format shown above, where the [:] separator is used throughout the address, unlike the lspci -v output):



Note the video card address given in this example:

Code:
  /sbin/lspci -v
---
01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage Pro AGP 1X/2X (rev 5c) (prog-if 00 [VGA])
        Subsystem: ATI Technologies Inc Rage Pro Turbo AGP 2X
        Flags: bus master, stepping, medium devsel, latency 32
        Memory at de000000 (32-bit, prefetchable) [size=16M]
        I/O ports at c000 [size=256]
        Memory at dd000000 (32-bit, non-prefetchable) [size=4K]
        [virtual] Expansion ROM at dc000000 [disabled] [size=128K]
        Capabilities: <access denied>
---

Now, when X starts, the video card will be isolated, and the xserver will no longer send interrupts to disable the SB. For a more technical  explanation of why this fixes the problem, run 'man xorg.conf' and read the section on IsolateDevice.


According to my research, this particular soundcard has been causing trouble for linux users worldwide for at least the last 6 years.

HTH, Johnpipe

Revised and Updated 13 January 2007
« Last Edit: January 13, 2007, 06:58:47 pm by johnpipe108 » Logged
JohnB316
Administrator
Vectorian
*****
Posts: 1346


Registered Linux User #386728


« Reply #1 on: January 05, 2007, 09:49:28 pm »

Thanks very much for that how-to. To add to it, you can stick the /sbin/setpci -s 00:14.0 COMMAND=5 at the end of the /etc/rc.d/rc.local file. That way, it will automatically run at startup, since the startup files are run by root.

HTH,
John
Logged

VL 6.0 SOHO latest alpha on one box, VL 5.9 Lite on the other.
stoichyu
Packager
Vectorite
****
Posts: 369



« Reply #2 on: January 05, 2007, 10:49:22 pm »

The command would have to go somewhere after X.org has started, and before kdm starts.

If it doesn't work when you put it in rc.local try putting it at the top of rc.X. That's the rc for the login manager.
Logged

There's no place like ~.
VL 5.8 PentiumD 2.8Ghz Registered Linux User #432836
johnpipe108
Member
*
Posts: 26


« Reply #3 on: January 06, 2007, 04:47:42 am »

 Grin Grin Grin Grin Grin Grin Grin !!!!!

See the updated HOWTO, I found the system-wide fix in xorg.conf.
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!