where to run setpci during X initialization?
I have a chipset bug which necessitates a workaround; lspci -v gives an improper listing for my SB Live! Value card:
Note the "VGA compatible unclassified device.." line, and the resulting [disabled] ports. This happens on some old motherboards with VIA chipsets, such as my DFI K6BV3 under X.org. When opening a TTY and running the same command the ports are not disabled. This port disabling prevents toggling the analog/digital output, preventing analog sound output to the speaker system.
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 [disabled] [size=32]
Capabilities: <access denied>
In order to be able to access the sound card under X, the workaround is to run setpci from within X:
setpci -s 00:14.0 COMMAND=5
This enables the ports.
Since the problem happens only when X is running, I can't simply put a script in /etc/init.d/ since everything there happens before X starts. I don't know where I can add this command, at present I have to issue it manually each time I login to a desktop running under X.org (does NOT get disabled under the older XFree86 V3.x). setpci requires root access, so I can't just put this in my .bashrc.
Anyone know where I can put this command to run after X is running so I don't have to do it manually every time?
Thanks very much,