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 Fri 24 May 2013, 15:09
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 [6 Posts]  
Author Message
tempestuous

Joined: 10 Jun 2005
Posts: 4944
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  558 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: 79

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: 4944
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: 79

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: 1077
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 
Display posts from previous:   Sort by:   
Page 1 of 1 [6 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.0733s ][ Queries: 12 (0.0234s) ][ GZIP on ]