View Single Post
Old May 1st, 2006   #12
fluxion
First Cup of Ubuntu
 
Join Date: May 2006
Beans: 1
Re: Thinkpad 600E Sound - Why do no posts solve my problem?

I've recently got sound working on my Thinkpad 600E, it required a slightly altered script from from ThinkWiki (http://www.thinkwiki.org/wiki/Script...ip_in_PnP_mode) and an addition to the pci blacklist. I'm running Xubuntu dapper, it works great on the 600E with 128Mb of ram. Steps taken to get sound working were:
(1) Add the following to '/etc/modprobe.d/blacklist'.
Code:
# snd_cs46xx doesn't work on thinkpad 600e
blacklist snd_cs46xx
(2) Change '/etc/rc.local' so it includes the sound chip enable and module parameter load as shown below.
Code:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# enable sound chipset and load module

# Sound-via-pnp-script for Thinkpad 600E and possibly other computers with onboard
# CS4239/CS4610 that do not work with the PCI driver and are not recognized by the
# PnP code of snd-cs4236

# search sound card pnp device

for dev in /sys/bus/pnp/devices/*
do
  grep CSC0100 $dev/id > /dev/null && WSSDEV=$dev
  grep CSC0110 $dev/id > /dev/null && CTLDEV=$dev
done

# activate devices (Thinkpad boots with devices disabled unless "fast boot" is turned off)

echo activate > $WSSDEV/resources
echo activate > $CTLDEV/resources

# parse resource settings

{ read
 read bla port1
 read bla port2
 read bla port3
 read bla irq
 read bla dma1
 read bla dma2
 # Hack: with PnPBIOS: ports are: port1: WSS, port2: OPL, port3: sb (unneeded)
 #       with ACPI-PnP:ports are: port1: OPL, port2: sb, port3: WSS
 # (ACPI bios seems to be wrong here, the PnP-card-code in snd-cs4236.c uses the
 #  PnPBIOS port order)
 # Detect port order using the fixed OPL port as reference
 if [ ${port2%%-*} = 0x388 ]
 then
   # PnPBIOS: usual order
   port=${port1%%-*}
   oplport=${port2%%-*}
 else
   # ACPI: mixed-up order
   port=${port3%%-*}
   oplport=${port1%%-*}
 fi
 } < $WSSDEV/resources

{ read
 read bla port1
 cport=${port1%%-*}
} < $CTLDEV/resources

# load the module

echo "options snd-cs4236 port=$port cport=$cport fm_port=$oplport irq=$irq dma1=$dma1 dma2=$dma2 isapnp=0 index=0" > /etc/modprobe.d/snd-cs4236

modprobe snd-cs4236

# end of sound module load

exit 0
After the above script is run you should find a new file in '/etc/modprobe.d/' called 'snd-cs4236', with the detected sound card settings. I've found that it needs the script to run to enable the sound chip, using the modprobe options on their own does not work. This may not be the recommended method i.e. dynamically writing module parameters, but it works for me

PS If the above still doesn't work make sure you have set up appropriate bios settings using the DOS 'ps2.exe' utility and 'fast boot' is turned off.
fluxion is offline