#!/bin/sh
#
# save asound.state to initramfs
#

STATE_FILE=/var/lib/alsa/asound.state

MMC=/dev/mmcblk0p1
MNT_SD=/mnt
W=/tmp/stage
CPIO=initramusr.cpio.gz

if [ ! -b "$MMC" ]; then
    echo "The process is aborted because the MMC is invalid."
    exit 1
fi

# prepare staging directory
if [ -e $W ]; then
    rm -r $W
fi
mkdir $W
cd $W

# mount SD
mount -t vfat $MMC $MNT_SD

# store asound.state
/usr/sbin/alsactl -L -f $STATE_FILE store

# remake initramfs
find $STATE_FILE | cpio -o -H newc |gzip -c > $MNT_SD/$CPIO

# unmount SD
umount $MNT_SD

echo "asound.state has been successfully saved to initramusr.cpio.gz"
