[ltp] tp 600E + sound: HELP!!!

wes schreiner linux-thinkpad@linux-thinkpad.org
Thu, 17 Jun 2004 08:22:22 -0500


davide wrote:

> Hi everyone
> I'm trying to get sound work with an old thinkpad 600e type 2645-3A0.
> I've got a fat16 partition with win95 on it (the sound works with this)
> then I've got a slackware 9.1 and a red hat 9b. both the linux systems
> can't get sound working.
> Win95 is setted like this:


<snip>  We can ignore what Windows says, because what matters is what 
PS2.EXE says.

>  ps2 ? audio returns:
>
> enable
> address   530
> irq       9
> SBaddress 220
> dma       1 3
>
> ps2 ? audioctrl returns:
>
> enable
> address 538


OK

>
> I'm running a 2.4.26 kernel on slack and default (vmlinuz-2.4.20-20.9)
> on red hat. lspci returns:
>
> ...
> 00:06.0 Multimedia Audio Controller: Cirrus Logic CS 4610/11
> [CrystalClear Soundfusion Audio Accelerator] (rev 01)


Yep.

> ...
>
> the kernel tryes to make a pnp initialization but it doesn't find any
> pnp device (isa or pci). 


Not wired for ISA PNP.  It can be programmed with PNP BIOS calls 
(setpnp/lspnp), but you don't need to go there just to get sound.

> It seems the kernel can only find the pci accelerator (as win95 call 
> it) and it can only insmod the gameport (cs461x + gameport).


I don't don't think you want to do this, you only have a physical 
joystick port if you have a dock. 

> I tried with OSS modules in many ways but the kernel always writes in 
> /var/log/messages and in dmesg: no init_module found.
> I tried a softboot with loadlin whithout success.
> I tried using alsa and reading the documentation I found this:
>
> # An other Example: IBM ThinkPad 600E with an CS423x emulated by an
> CS4610/11
> # In this case, the native PCI Sound is expected to not work, but some 
> chips
> # like the CS4610/11 have a very good emulation for older ISA non-PNP 
> cards
> # like the CS423x family. The CS4610/11 e.g. has an good emulation of the
> # CS4231/2 cards and the CS4239 card, the snd-card-cs4236 e.g. 
> supports the
> # CS4239 emulation of the CS4610/11 in the IBM ThinkPad 600E:
> #
> # alias snd-card-0         snd-card-cs4236
> # options snd-card-cs4236 index=0 snd_port=0x530 snd_cport=0x538
> snd_irq=5 snd_dma1=1 snd_dma2=0 snd_isapnp=0


This example is old, driver names and parameter names changed a while 
back.  What version of ALSA do you have?

>
> so my /etc/modules.conf is
>
>      # ALSA portion
>          alias char-major-116 snd
>          alias snd-card-0 snd-cs4236
>          options snd-cs4236 isapnp=0 index=0 cport=0x538 port=0x530
> mpu_port=0x300 mpu_irq=7 sb_port=0x220 fm_port=0x388 irq=9 dma1=3 dma2=1


My options line is:
options snd-cs4236 index=0 id=CARD_0 port=0x530 cport=0x538 
sb_port=0x220 fm_port=0x388 irq=5 dma1=1 dma2=0 enable=1

I don't need the isapnp=0 because when I compile ALSA I have ISA PNP 
support configured out.  If you are using a vendor kernal and modules 
you probably need it.  I don't have the mpu_* stuff because I'm not 
doing anything with MIDI I/O

>      # OSS/Free portion
> #        alias char-major-14 soundcore
> #        alias sound-slot-0 snd-card-0
>
>      # card #1
>          alias sound-service-0-0 snd-mixer-oss
>          alias sound-service-0-1 snd-seq-oss
>          alias sound-service-0-3 snd-pcm-oss
>          alias sound-service-0-8 snd-seq-oss
>          alias sound-service-0-12 snd-pcm-oss
>
>          alias /dev/mixer snd-mixer-oss
>          alias /dev/dsp snd-pcm-oss
>          alias /dev/midi snd-seq-oss
>
> typing modprobe snd-cs4236 I get a kernel panic (how can I write the 
> otput of a kernel panic to a file? "2>error.txt" doesn't work).


If it's panicing you have other problems.  If your options line is 
incorrect it should merely fail to find the card and not load the 
module.  Try it from a fresh boot with no other modules loaded, if 
possible.   The oops is written to the console, not standard error, so 
that's why you can't redirect it.  Does it not show up in 
/var/log/kern.log or /var/log/messages? 

>
> In the web I found many people who got sound working on a tp 600e. Why 
> I can't? Where am I wrong?
> Thanks to all


It can be a little tricky.  Sometimes people have dma1 and dma2 
reversed.  You must have the IRQ right, and I don't think you can share 
that IRQ with anything else, so see what PS2.EXE has to say about your 
IRQ assignments.  Make sure your ALSA modules are built for the kernel 
you are running, if you are not building modules and kernel yourself.  
Keep trying.

wes