Update: Thinkpad 770 Sound Issues Resolved!
I posted sometime last week about sound issues I was having with my IBM Thinkpad 770 under Debian 3.1, and I would like to share how I resolved them.
There is a lot of conflicting information out there regarding how to get that legacy ISA sound card working in Linux, but here's the gist of things. The sound card in the 770 is a Crystal Semiconductors CS4238. It sits on IO address 0x530/IRQ 5/DMA 1. There are two (possibly more?) ways to have success with it, and it's somewhat dependent on the kernel version you're running (due to how they implement ISA-PNP), but under Linux kernel 2.4.27 this is how I did it:
Everything is working just fine now. The reason I had to go through all of this, is because Crystal CS423X series soundcards are initialised differently than most other ISA-PNP compatible devices, and whilst the PNP support in most 2.6.X kernels can see it (provided the kernel was configured to support [ISA-]PNP), earlier kernels most likely won't. So the initialisation is actually done in the BIOS (hence the reason why "Quick Boot"/"PNP-Aware OS" needs to be turned off in the BIOS). That BIOS option doesn't really affect Windows at all, either, at least from what I've seen -- my 770 has Windows 98 SE on it as well, and it's still working well, about as well as Win98 ever does, anyway. :P Then the rest of the initialisation process is picked up by the cs4232 driver. If you really want to support this card with true kernel ISA-PNP support, you need to be running a 2.6.X kernel (or a 2.4.XX kernel with the new [ISA-]PNP support backported from 2.6.X), configured properly to support it. That way, you can play with the IO and IRQ settings if you want.
Oh, by the way, thanks to
polyanarch for the ton of information he gave me on upgrading my 770 in the future, should I ever have the resources to do so. :)
There is a lot of conflicting information out there regarding how to get that legacy ISA sound card working in Linux, but here's the gist of things. The sound card in the 770 is a Crystal Semiconductors CS4238. It sits on IO address 0x530/IRQ 5/DMA 1. There are two (possibly more?) ways to have success with it, and it's somewhat dependent on the kernel version you're running (due to how they implement ISA-PNP), but under Linux kernel 2.4.27 this is how I did it:
- Compiled with ISA-PNP support and Crystal CS423X support as a module (and, off-topic, with the orinoco v0.13d driver patches to enable RF-monitor mode in the orinoco_cs driver... wardriving w/Kismet :D)
- Created a file called /etc/modutils/sound with the following lines:
alias sound-slot-0 cs4232
options sound dmabuf=1
alias synth0 opl3
options opl3 io=0x388
options cs4232 io=0x530 irq=5 dma=0 dma2=1 - Ran update-modules so that the changes would be reflected in /etc/modules.conf
- Installed the oss-preserve package (available on the stable tree in Debian) to save my mixer settings between sessions, since I'm using Fluxbox, not KDE like some would say I should be :P
- Edited /etc/init.d/oss-preserve and placed the following lines in the "start" section (as a workaround to either a buggy cs4232 driver or a buggy soundcard itself):
modprobe cs4232
modprobe -r cs4232
modprobe cs4232
If you don't add these, most likely the sound will be broken (i.e. repeating the first half a second of audio over and over, or just not playing at all) - Restarted, then entered the system BIOS to disable the "Quick Boot" feature (it's called the "PNP OS" or "PNP-Aware OS" option in most BIOSes, this is required or else your sound probably won't work since it won't be BIOS-initialised)
Everything is working just fine now. The reason I had to go through all of this, is because Crystal CS423X series soundcards are initialised differently than most other ISA-PNP compatible devices, and whilst the PNP support in most 2.6.X kernels can see it (provided the kernel was configured to support [ISA-]PNP), earlier kernels most likely won't. So the initialisation is actually done in the BIOS (hence the reason why "Quick Boot"/"PNP-Aware OS" needs to be turned off in the BIOS). That BIOS option doesn't really affect Windows at all, either, at least from what I've seen -- my 770 has Windows 98 SE on it as well, and it's still working well, about as well as Win98 ever does, anyway. :P Then the rest of the initialisation process is picked up by the cs4232 driver. If you really want to support this card with true kernel ISA-PNP support, you need to be running a 2.6.X kernel (or a 2.4.XX kernel with the new [ISA-]PNP support backported from 2.6.X), configured properly to support it. That way, you can play with the IO and IRQ settings if you want.
Oh, by the way, thanks to
