Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Tue 16 Sep 2014, 15:48
All times are UTC - 4
 Forum index » House Training » HOWTO ( Solutions )
Audio fix for old Thinkpads (and maybe others)
Moderators: Flash, Ian, JohnMurga
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 1 [7 Posts]  
Author Message
tempestuous

Joined: 10 Jun 2005
Posts: 5257
Location: Australia

PostPosted: Wed 04 Feb 2009, 06:57    Post subject:  Audio fix for old Thinkpads (and maybe others)  

Apparently some ALSA audio drivers have stopped working under recent kernels. This can be due to the way that some audio chipsets (particularly ISA ones) need to be enabled either by bios or by the plug-and-play routines of the operating system.
There's a good explanation of the problem here -
http://www.thinkwiki.org/wiki/Problem_with_broken_sound_on_some_ThinkPads

As you can see, quite a number of Thinkpad models are affected:
600E, 770X, 770Z, T43p, T60, T61, X60s

The solution (in theory) is to force the activation of the audio device with a command such as this -
Code:
echo 'activate' > /sys/devices/pnp0/00:05/resources

However, some diagnosis is in order, because the resource value I just quoted (00:05) can vary.

For the Thinkpads there is a script which will determine all the correct values, and then enable the device. I have packaged this script as a dotpet, now attached. Instructions:

1. Install the dotpet.
2. Open /etc/modprobe.conf in Geany, and delete all reference to "snd-cs4236".
3. Blacklist "snd-cs46xx"
4. Reboot.
5. Run the script -
Code:
soundcard-on

Don't run the ALSA configuration wizard!

If sound works, you can make this fix permanent by adding "soundcard-on" to the end of /etc/rc.d/rc.local

EDIT Feb 5 2009 dotpet revised to fix script error.
Very silly that only one person out of the four who downloaded this package had the sense to report this error.
snd-cs4236-soundcard-enable.pet
Description 
pet

 Download 
Filename  snd-cs4236-soundcard-enable.pet 
Filesize  1.06 KB 
Downloaded  711 Time(s) 

Last edited by tempestuous on Thu 05 Feb 2009, 06:59; edited 1 time in total
Back to top
View user's profile Send private message 
ssme

Joined: 15 Jan 2009
Posts: 81

PostPosted: Wed 04 Feb 2009, 09:18    Post subject:  

hi, i just tried the fix on the thinkpad 560x (cs4237b sound chip) running pup 4.1.2 retro.

i deleted the sound config from modprobe.conf. i couldn't find anything like cs46xx to blacklist. i rebooted and ran the script from the terminal. the output i get is:

Code:

/usr/local/bin/soundcard-on: line 34 [: =: unary operator expected
FATAL: Error inserting snd_cs4236 (/lib/modules/2.6.21.7/kernel/sound/isa/cs423x/snd-cs4236.ko): Invalid argument


i can get rid of the first error (unary operator) by deleting a bit of whitespace in the appropriate line of code, but i don't know if that actually fixes anything! and the second, fatal, error persists.

am i being incredibly stupid and doing something wrong?

thanks!
Back to top
View user's profile Send private message 
tempestuous

Joined: 10 Jun 2005
Posts: 5257
Location: Australia

PostPosted: Wed 04 Feb 2009, 22:05    Post subject:  

ssme, the issue relates specifically to the matching of a CS4610 chip with a CS4239 chip, which is unconventional. Your Thinkpad 560x is not listed as affected, so the script will not be compatible.

As a longshot, you could try these two commands to see if your audio device is enabled -
Code:
echo 'activate' > /sys/devices/pnp0/00:05/resources
echo 'activate' > /sys/devices/pnp0/00:06/resources
Back to top
View user's profile Send private message 
ssme

Joined: 15 Jan 2009
Posts: 81

PostPosted: Wed 04 Feb 2009, 22:58    Post subject:  

sorry, my mistake.

i got the sound working on the 560x with a hack, copying the ALSA-generated code from puppy 1.0.8 into the 4.1.2 modprobe file. it worked fine, and then it stopped working. back to the drawing board... Razz
Back to top
View user's profile Send private message 
vtpup


Joined: 15 Oct 2008
Posts: 1116
Location: Republic of Vermont

PostPosted: Thu 05 Feb 2009, 22:41    Post subject:  

Tempestuous
I have a piece of information to add about the TP600e after testing it for 2 days, now. This is with BIOS INET36WW and Puppy 4.1.2 retro.

It is critical to include all 4 port addresses (for example using mfr default sound ports: cport=0x538 port=0x530 sb_port=0x220 fm_port=0x388).

Often fewer ports are thought necessary than the 4 above, but I tested against them eliminating one by one, and it failed to operate properly without the full complement. Symptoms were continuous white noise when the usual shortened list was used. This was tested against a clean new BIOS flash with the BIOS initialized and quick boot turned off.

Even the Thinkwiki url you referenced includes the shortened port list (sb port unnecessary). I don't know if this would apply to other model Thinkpads, but definitely applies to the specific test case above.

These port specific assignments are not written in stone, by the way, many utilities in Windows (including the Device Manager I believe) and at least one in DOS can alter port assignments on a Thinkpad. Initializing the BIOS will revert port assignments to factory default settings but may affect other programs in Windows in a dual boot system if the ports were set up for a custom configuration.

I did not have to activate as you mentioned earlier in this thread, but maybe this was due to the earlier kernel of retro?

I have also come across a thread here where activating 00:11 (as I remember it) was the key for someone. I'll try to find that thread. EDIT Sorry, no, turned out to be a Dell Inspiron using the same sound chips.)

Thanks for all your work in getting sound going for these computers.
Back to top
View user's profile Send private message 
obxjerry


Joined: 29 Jan 2010
Posts: 394
Location: Louisville, Kentucky

PostPosted: Tue 30 Mar 2010, 18:18    Post subject:  

I have a Thinkpad 600e running Puppy 421 retro. I got my sound working last night by following these steps.

1. Check your bios to make sure that you have "QuickBoot = OFF".
2. Open /etc/modprobe.conf in Geany and delete all reference to "snd-cs4236".
This will be in a section marked "ALSA configuration".
3. Open /etc/rc.d/rc.local in Geany and add this line

modprobe snd-cs4236 isapnp=0 cport=0x538 port=0x530 sb_port=0x220 fm_port=0x388 irq=5 dma1=1 dma2=0

 4. Save. Reboot.

Using modprobe snd-cs4236 index=0 port=0x530 cport=0x538 isapnp=0 dma1=1 dma2=0 irq=5 produced nothing but squelch (static)

Jerry
Back to top
View user's profile Send private message 
sindi

Joined: 16 Aug 2009
Posts: 395

PostPosted: Wed 15 Jan 2014, 15:41    Post subject: 560x and cs4232 (really 4236) fixed with pnpbios=off acpi=of  

I followed someone's suggestion for a different Thinkpad with the same sound chip. It is apparently ISA not PCI. When booting (I used loadlin) add pnpbios=off and acpi=off (the latter may be irrelevant). alsaconf then skips looking for pnp sound chips and goes straight to the legacy section. Uncheck all but cs4236. (If you don't do this the chip is incorrectly identified as cs4232 and it does not work). The wizard then correctly sets up cs4236 sound and it barks at you.

It might also work to choose sb, which is how I got it working with OSS sound in an older linux. io=0x220 irq=5 dma=1 dma16=5 . The chip does soundblaster emulation.

Other PII thinkpads have the same chip and problem.

modules.conf now ends in three lines involving snd-cs4236.
isapnp=0 port=0x530 cport=0x538 dma1= dma2=0

I don't know how to use aplaymidi to test if midi works (it wants a port).

I am hoping to set this 233MHz laptop (upped to 160MB RAM with a 128MB EDO DIMM!) for use with Wary 5.5 and gtk-youtube-viewer but I cannot get lilo to work and puppy 5 will not boot with loadlin though puppy 4 does. It will at least work as an internet radio now with puppy 4.
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 1 of 1 [7 Posts]  
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » House Training » HOWTO ( Solutions )
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0681s ][ Queries: 12 (0.0043s) ][ GZIP on ]