site  contact  subhomenews

Sound detection fixes

January 12, 2011 — BarryK
Thanks to shinobar who is testing Wary 5.0. These little fixes were posted on the forum:

Shinobar put in a test to see if depmod needs to be run, in /usr/sbin/alsaconf. Actually, this should not be needed, it is a precaution -- the fact that shinobar has put it in, may mean that a situation has been encountered in which depmod did not run at first boot?

A note for shinobar and other developers, depmod-FULL is deprecated. I restored /sbin/depmod to the full version. A script can still execute the Busybox depmod by running "busybox depmod".
The '3builddistro' script in Woof has this code in it that ensures all puppies will conform:

#101012 if 'depmod-FULL' exists, rename it to 'depmod'... 101024

if [ ! -h rootfs-complete/sbin/depmod-FULL ];then #if hyperlink then assume to depmod.
if [ -f rootfs-complete/sbin/depmod-FULL ];then
mv -f rootfs-complete/sbin/depmod rootfs-complete/sbin/depmod-BB-NOTUSED
mv -f rootfs-complete/sbin/depmod-FULL rootfs-complete/sbin/depmod
ln -s depmod rootfs-complete/sbin/depmod-FULL

Sound detection tweak
/etc/rc.d/ that shinobar is referring to is actually in the 'zzz' package, which is a branch of Woof. Lucid 5.2 was built with the mainline Woof only, Wary 5.0 was built with Woof and the 'zzz' branch.

Shinobar has reported that adding a one second sleep provides reliable detection of sound. I think that I read that someone else confirmed this fix on their hardware.

I have applied this fix in the 'zzz' PET, not uploaded yet. However, I put the "sleep 1" into /etc/init.d/10alsa (not in (10alsa is also in 'zzz'):

case "$1" in

if [ -f /tmp/rc_d_rc_services_alsa_ok ];then #101121 see
sleep 1 #110111 shinobar: for reliable sound detection on HP Compac nc4010.

I had downloaded shinobar's fix a few days ago, but have just now seen his edit dated Jan 10. An improved fix for /etc/init.d/10alsa:

case "$1" in

if [ -f /tmp/rc_d_rc_services_alsa_ok ];then #101121 see
#if [ "`lsmod | grep '^snd_'`" != "" ];then
rm -f /var/lock/subsys/alsasound 2> /dev/null #or alsa will not start.
#sometimes these don't all load...
modprobe snd-mixer-oss
modprobe snd-seq-oss
modprobe snd-pcm-oss
for I in $(seq 4); do #110111 shinobar: for reliable sound detection on HP Compac nc4010.
[ -c /dev/mixer ] && break
sleep 1


sleep 2 in alsa
Username: playdayz
I had put a sleep 2 at the beginning of /etc/init.d/alsa at shinobar's hint. I do not believe we are getting reports of sound not detected--and before that we had gotten several during testing.

Re ALSA fix
Username: BarryK
"Regarding shinobar's fix that tests for existence of /dev/mixer in /etc/init.d/10alsa, it is also necessary to make sure that /dev/mixer is deleted at bootup. I have added a line in /etc/rc.d/rc.sysinit to ensure this (line 239): [code]#101119 new /sbin/pup_event_backend_modprobe, these must be deleted every boot... rm -f /etc/modprobe.d/alsa_card*.conf 2>/dev/null touch /etc/modules/firmware.dep.inst.${KERNVER} #make sure exists. rm -f /dev/ttyUSB* 2>/dev/null #101210 may have been left there if modem plugged in at shutdown. rm -f /dev/mixer 2>/dev/null #110113 make sure removed, see test in /etc/init.d/10alsa. mkdir /tmp/rc_sysinit #101210 for logging into. mkdir /tmp/pup_event_backend #101210 for logging into, see /sbin/pup_event_backend_modprobe. mkdir /tmp/simple_network_setup #101216 [/code]

Username: shinobar
"I have posted the generalized(may work on any Puppy) version of '/etc/init.d/alsa' at [url=]the Japanese Forum'[/url]. The same one is bult in the [url=]wary-500j05[/url]. 1. Wait 8(in max.) seconds for module snd_* is loaded. 2. Wait 4(in max.) seconds for the mixer device file is created 3. Save 'asound.state' if 'asla start' secceed. 4. 'alsa stop' updates the 'asound.state' only if it is already exists.

Username: BarryK
"I think that does need to delete /dev/mixer. /dev/mixer is already created in the wary_500.sfs. Therefore the test "[ -c /dev/mixer ] && break" will break immediately, the delay loop is useless. If this test is to be used,/dev/mixer has to either be removed from 'rootfs-skeleton' in Woof, or deleted early in /etc/rc.d/ I opted for the latter. When module 'snd_mixer_oss' loads, /dev/mixer is automatically created.

sound not working on Dell Optiplex GX1p
Username: George_III
"I applied Shinobar's and Barry's fixes to /etc/rc.d/ and /etc/init.d/10alsa on the hope they would solve my problem with sound, but I still have the problem... Barry, I'd really appreciate if you take a look at [url=]my post[/url] about alsaconf not working properly... Thank you very much in advance...

Tags: wary