#!/bin/sh #Fix for sound in alsa without udev #Code mostly copied from OpenRC alsastatedir=/var/lib/alsa alsascrdir=/etc/alsa.d alsahomedir=/run/alsasound cards="$(sed -n -e 's/^ *\([[:digit:]]*\) .*/\1/p' /proc/asound/cards)" for cardnum in $cards; do [ -e /dev/snd/controlC$cardnum ] || sleep 2 [ -e /dev/snd/controlC$cardnum ] || sleep 2 [ -e /dev/snd/controlC$cardnum ] || sleep 2 [ -e /dev/snd/controlC$cardnum ] || sleep 2 alsactl -E HOME="$alsahomedir" -I -f "$alsastatedir/asound.state" restore $cardnum done for ossfile in "$alsastatedir"/oss/card*_pcm* ; do [ -e "$ossfile" ] || continue # We use cat because I'm not sure if cp works properly on /proc procfile=$ossfile$alsastatedir/oss procfile="$(echo "$procfile" | sed -e 's,_,/,g')" if [ -e /proc/asound/"$procfile"/oss ] ; then cat "$ossfile" > /proc/asound/"$procfile"/oss fi done sleep 3 chown root:audio /dev/snd/* chown root:audio /dev/snd chmod -R a+rw /dev/snd lk_forever 3600