By hw-tph at 2004-02-20 22:34
Sound on the Thinkpad 600E using kernel drivers
On several Linux user forums newbies and old timers often have a hard time getting sound to work on their Thinkpads, and one of the most common laptops is still the 600E. I have had great success using Alsa on my 600E (a 2645-4A0 model) but it seems I'm quite alone in this. So here's a quick and ugly solution to getting it working. The kernel developers don't want the ad1848 driver to be used at all but it actually works pretty well!
Here is what you need: A Thinkpad 600E with the Cirrus Logic CS4237B sound chip, known for being incorrectly identified as a CS4610/11 by Linux utilities such as lspci. Well...it's not a CS46xx model - those are PCI chips while the CS4237B is an ISA chip. It is actually a whole lot easier getting the sound to work this way so I'll get to it right away:
Kernel configuration for 2.6 series kernels:
- ISA-PNP support, built-in or as a module (Device Drivers -> Plug and Play support)
- * UART401 built as a module (Device Drivers -> Sound -> Open Sound System -> MPU-401 support)
- * CS4232 built as a module (Device Drivers -> Sound -> Open Sound System -> OSS Sound Modules -> Crystal CS4232 based (PNP) cards)
- * AD1848 built as a module (Device Drivers -> Sound -> Open Sound System -> PSS (AD1848, etc)
That's pretty much it. Test the modules before finalizing your options by writing a script or setting your options in a settings file (such as
/etc/modules on Debian). To load the modules manually:
modprobe cs4232 cs4232 io=0x530 irq=5 dma=1 dma2=0 mpuio=0x330 mpuirq=9
If all goes well you shouldn't be seeing any errors at all. Test playing a sound using play, or any other OSS-aware application (XMMS works fine too). If you get problems playing sounds you may have to chmod a+rw /dev/dsp /dev/sound /dev/mixer to make sure all users have access to the sound devices.
If you do get sound you could write a script to automatically load the modules at boot - much recommended. Loading them by hand like above gets tedious and isn't very productive, now is it? I found this simple script on the Linux on Laptops website and it should work right out of the box. Just remove the isa-pnp related lines if you have ISA PNP support built in rather than as a module.
Copy this script to /etc/init.d/ and call it oss_sound or something similar. Make it executable through chmod +x /etc/init.d/oss_sound and either create the symlinks to the runlevels at which it should run manually or use your distribution's init script management tool (rc-update on Gentoo, Debian has a similar tool) to make it run at boot and load the sound modules, and also shut down cleanly when the computer is halted.