LFS ALSA

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

LFS: Installieren von ALSA

Die Installation von ALSA besteht aus vier Schritten. Wer nur den Treiber selbst benötigt kann einige Schritte davon überspringen.

Der ALSA-Treiber

cd $SOURCEDIR
tar xvfj alsa-driver-x.y.z.tar.bz2
cd alsa-driver-x.y.z
./configure \
    --with-moddir=/lib/modules/`uname -r`/kernel/drivers/sound \
    --with-kernel=/lib/modules/`uname -r`/build \
    --with-sequencer=yes \
    --with-oss=yes \
    --with-isapnp=no \
    --with-cards=all
make
make install

Diejenigen, die kein devfs nutzen müssen devices erstellen:

./snddevices

Anschließend müssen noch einige Zeilen in /etc/modules.conf hinzugefügt werden.

cat >> /etc/modules.conf << "EOF"
alias char-major-14 soundcore
alias char-major-116 snd
alias snd-card-0 snd-[soundcard-name]
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-midi
EOF
depmod -a

Die ALSA Bibliothek

./configure --enable-static
make
make install


Die ALSA Utilities

Herunterladen des Patches für die Alsa-Utilities: Patch für arecord

patch -Np1 -i ../alsa-utils-1.0.4-arecord-1.patch
./configure
make
make install

Die ALSA Bootscripte

ALSA kann wie hier gezeigt über die Startscripte des Systems gestartet werden. Das hier beschriebene script ist ein Teil der BLFS Boot Scripts und kann auch direkt mit diesen installiert werden. Damit werden jedoch viele für den vdr unnötige scripts kopiert, so dass hier die manuelle Variante beschrieben wird.

cat >> /etc/rc.d/init.d/alsa << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/alsa

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org
# ALSA specific parts by Mark Hymers - markh@linuxfromscratch.org
# Stores mixer settings in the default location: /etc/asound.state

. /etc/sysconfig/rc
. $rc_functions

case "$1" in
	start)
		echo "Starting ALSA...    Restoring volumes..."
		loadproc /usr/sbin/alsactl restore
		#echo "                    Loading MIDI font..."
		#loadproc sfxload /path/to/soundfont
		;;

	stop)
		echo "Stopping ALSA...    Saving volumes..."
		loadproc /usr/sbin/alsactl store
		#echo "                    Removing MIDI font..."
		#loadproc sfxload -i
		;;

	restart)
		$0 stop
		sleep 1
		$0 start
		;;

	*)
		echo "Usage: $0 {start|stop|restart}"
		exit 1
		;;
esac

# End $rc_base/init.d/alsa
EOF

Anschließend wird für die benötigten runlevel jeweils ein Start und Stop Links gesetzt, werden nicht alle runlevel benötigt können auch einige Links davon entfallen.

ln -sf  /etc/rc.d/init.d/alsa /etc/rc.d/rc0.d/K35alsa
ln -sf  /etc/rc.d/init.d/alsa /etc/rc.d/rc1.d/K35alsa
ln -sf  /etc/rc.d/init.d/alsa /etc/rc.d/rc2.d/S40alsa
ln -sf  /etc/rc.d/init.d/alsa /etc/rc.d/rc3.d/S40alsa
ln -sf  /etc/rc.d/init.d/alsa /etc/rc.d/rc4.d/S40alsa
ln -sf  /etc/rc.d/init.d/alsa /etc/rc.d/rc5.d/S40alsa
ln -sf  /etc/rc.d/init.d/alsa /etc/rc.d/rc6.d/K35alsa

Zum Abschluß der Installation wird der Treiber erstmals geladen.

touch /etc/asound.state
/etc/rc.d/init.d/alsa start
amixer Line 28 on
amixer CD 28 on
alsactl store

Die Installation von ALSA sollte damit erfolgreich abgeschlossen sein.