ALSA fixed on my laptop

My Acer Aspire 3681 laptop has a long history of working with some versions of ALSA, not others. It has been a case of "hop scotch", compatibility seems to come-good on certain versions, then go away again.

Sound worked with 1.0.14, but when I upgraded to 1.0.16 in Puppy 4.00 once again there was no sound. However I recently discovered that if I run the ALSA Wizard I get sound back -- until shutdown that is.

Today I got determined to find out why. I discovered the secret is a function named 'set_mixers' in /usr/bin/alsaconf (ALSA Wizard) -- it does something magical that enables sound on my laptop.

Puppy4 runs 'alsactl store' at shutdown (which save the sound levels in /etc/asound.state), then 'alsactl restore' at bootup, however that does not restore the sound. It should I think, quite logically it should.

My solution was to copy 'set_mixers' out of alsaconf and put it into /etc/rc.d/functions4puppy4 and call it in rc.local0, just before running 'alsactl restore'. So, set_mixers does whatever magical thing it does, then alsactl restores the levels to what they were last time.

Posted on 30 Jun 2008, 14:15


Comments:

Posted on 30 Jun 2008, 24:19 by BarryK
ALSA only "half fixed"
Correction, it is "half fixed" on my laptop.

It really is weird. I still have no sound at first boot, even though that 'set_mixers' function is executed.

However, after running the ALSA Wizard, then sound runs on future boots. The 'set_mixers' does the trick for future boots.

But what is wrong on the first boot? I have no idea.


Posted on 31 Jun 2008, 7:22 by jeffrey
sound mixer
I've recently had to work with sound on Linux and find it rather difficult. alsamixer gives a helpful GUI, but for command-line setting I use amixer. Both of these are available in Puppy so you probably already know all about them. I wonder if this would help: run amixer with no parameters and direct the output to file when sound isn't working, then do the same when sound is working, and then compare the files. You can use the difficult "amixer sset parameters" command to force whatever needs to be set. How this could be generalised to work in every machine I don't know, but it may be a start. There are so many settings, especially for monitored recording: master volume up and mute off, mic-in set correctly, mic volume up and mute off, capture on, etc!


Posted on 3 Jul 2008, 5:43 by GeorgR
IEC 958 SPDIF
Puppy 4.1 without SPDIF Sound (Device AD1986A)
settings with alsamixer

Puppy 4.0.1-3:
IEC 958 is disabled and can't be toggled.

Puppy 4 Dingo:
IEC 958 is always enabled (but can't be toggled)

Puppy 301:
First run IEC 958 is set to off, but could be toggled between on/off