[Pluto-help] Re: REGOLE DI NETIQUETTE + ALSA
< MaNdRiCuS >
mandricus a libero.it
Mar 24 Apr 2001 11:40:10 CEST
"Manuel (R)ex Sanna" ha scritto:
> Qualcuno ha una idea di come funzioni ALSA?
> (Advanced Linux Sound Architetture)
>
> Ho bisogno di installarlo su un portatile (ACER!!!) che possiede una
> crystal, ma dato che non so se conviene caricare i moduli (e/o magari non
> solo i moduli) son il kernel 2.4.0 oppure se, anche senza caricare i
> moduli, posso mettere ALSA a bordo e fregarmene dei moduli, liberando
> ancora spazio nel KERNEL???
PREMESSA: sono assolutamente un LAMER con linux, e finora ho fatto solo domande. Prendete con le pinze quello
che scrivo qui sotto, perché potrei aver detto una cosa per un altra, visto che non ho ancora molto chiari tutta
una serie di concetti.
Io i drivers ALSA li ho dovuti utilizzare sul mio portatile Toshiba Satellite 4200 Pro. Infatti il mio portatile
ha una scheda suono Yamaha DS-XG. Cosa molto bella, l'sndconfig riconosceva la mia scheda ma......bellissimo,
appena partiva la riproduzione del campione audio linux mi si PIANTAVA. Non solo, dopo aver fatto il
riconoscimento con sndconfig, e aver resettato il computer a causa dell'impallamento che da esso derivava, il
loader di linux, non appena andava a caricare il sound-module della mia scheda audio, SI IMPALLAVA
INESORABILMENTE!. La cosa molto bella è che il caricamento del modulo sonoro avveniva PRIMA della fase di
startup interattivo, quindi non c'era modo di bloccarlo. Un altro simpaticissimo bug della Red Hat 7.0. Infatti
tutto ciò avveniva con una distro Red Hat 7.0 seconda edizione, con kernel standard.
Dopo essere stato costretto a formattare un paio di volte, mi sono deciso ad utilizzare i drivers alsa sound.
Mi sembra di capire che vorresti sapere quali moduli utilizzano i drivers alsa sound per evitare di caricare
immondizia nel kernel. Mah, per quello che mi è sembrato di capire, una volta installatisi, i drivers alsa
sostituiscono alcune dev (ad esempio /dev/mixer) creando dei link simbolici ad altre devices installate dai
drivers. Ciò avviene lanciando uno script con ./snddevices una volta terminata la compilazione dei drivers.
Riporto qui sotto quello che ho trovato nel file snddevices.in ,magari riesci a capirci qualcosa. Il file vero e
proprio che va a farti questa operazione, snddevices, mi sa che lo crea dopo aver compilato i drivers. Io posso
dirti che ho provato a compilare un kernel senza supporto per nessuna scheda audio, perché pensavo che i drivers
alsa-sound utilizzassero dei moduli particolari ai quali poi lo script di installazione creava i link necessari,
e posso dirti che non ha funzionato. Quindi, mi è parso di capire che il supporto per -qualche- scheda audio
vada inserito nel kernel. Quale scheda? beh, questo sta a te scoprirlo analizzando questo script. Anzi, se lo
scopri fammelo sapere anche a me, che così il prossimo kernel me lo ricompilo utilizzando solo quello che
effettivamente mi serve. Grazie
SNDDEVICES.IN
#!/bin/bash
MAJOR=116
OSSMAJOR=14
MAX_CARDS=4
PERM=666
STATIC=0
OWNER=root.root
if [ "`grep -w -E "^audio" /etc/group`x" != x ]; then
PERM=660
OWNER=root.audio
fi
function create_odevice () {
rm -f $1
echo -n "Creating $1..."
mknod -m $PERM $1 c $OSSMAJOR $2
chown $OWNER $1
echo " done"
}
function create_odevices () {
tmp=0
tmp1=0
rm -f $1 $1?
echo -n "Creating $1?..."
while [ $tmp1 -lt $MAX_CARDS ]; do
minor=$[ $2 + $tmp ]
mknod -m $PERM $1$tmp1 c $OSSMAJOR $minor
chown $OWNER $1$tmp1
tmp=$[ $tmp + 16 ]
tmp1=$[ $tmp1 + 1 ]
done
echo " done"
}
function create_device1 () {
rm -f $1
minor=$2
echo -n "Creating $1..."
mknod -m $PERM $1 c $MAJOR $minor
chown $OWNER $1
echo " done"
}
function create_devices () {
tmp=0
rm -f $1 $1?
echo -n "Creating $1?..."
while [ $tmp -lt $MAX_CARDS ]; do
minor=$[ $tmp * 32 ]
minor=$[ $2 + $minor ]
mknod -m $PERM "${1}C${tmp}" c $MAJOR $minor
chown $OWNER "${1}C${tmp}"
tmp=$[ $tmp + 1 ]
done
echo " done"
}
function create_devices2 () {
tmp=0
rm -f $1 $1?
echo -n "Creating $1??..."
while [ $tmp -lt $MAX_CARDS ]; do
tmp1=0
while [ $tmp1 -lt $3 ]; do
minor=$[ $tmp * 32 ]
minor=$[ $2 + $minor + $tmp1 ]
mknod -m $PERM "${1}C${tmp}D${tmp1}" c $MAJOR $minor
chown $OWNER "${1}C${tmp}D${tmp1}"
tmp1=$[ $tmp1 + 1 ]
done
tmp=$[ $tmp + 1 ]
done
echo " done"
}
if test "$1" = "-?" || test "$1" = "-h" || test "$1" = "--help"; then
echo "Usage: snddevices [max]"
exit
fi
if test "$1" = "max"; then
DSP_MINOR=19
fi
# OSS (Lite) compatible devices...
if test $OSSMAJOR -eq 14; then
create_odevices /dev/mixer 0
create_odevice /dev/sequencer 1
create_odevices /dev/midi 2
create_odevices /dev/dsp 3
create_odevices /dev/audio 4
create_odevice /dev/sndstat 6
create_odevice /dev/music 8
create_odevices /dev/dmmidi 9
create_odevices /dev/dmfm 10
create_odevices /dev/amixer 11 # alternate mixer
create_odevices /dev/adsp 12 # alternate dsp
create_odevices /dev/amidi 13 # alternate midi
create_odevices /dev/admmidi 14 # alternate direct midi
# create symlinks
ln -svf /dev/mixer0 /dev/mixer
ln -svf /dev/midi0 /dev/midi
ln -svf /dev/dsp0 /dev/dsp
ln -svf /dev/audio0 /dev/audio
ln -svf /dev/music /dev/sequencer2
ln -svf /dev/adsp0 /dev/adsp
ln -svf /dev/amidi0 /dev/amidi
fi
# New devices (obsolete now)...
mv -f /dev/sndstat /dev/1sndstat
rm -f /dev/snd*
mv -f /dev/1sndstat /dev/sndstat
if [ -d /dev/snd ]; then
rm -f /dev/snd/*
rmdir /dev/snd
fi
if [ $STATIC -gt 0 ]; then
mkdir -p /dev/snd
create_devices /dev/snd/control 0
create_device1 /dev/snd/seq 1
create_devices2 /dev/snd/hw 2 4
create_devices2 /dev/snd/mixer 6 2
create_devices2 /dev/snd/pcm 16 16
create_devices2 /dev/snd/midi 8 4
fi
# New dynamic sound device filesystem
if [ $STATIC -le 0 ]; then
echo "ALSA dynamic sound device filesystem"
ln -sfv /proc/asound/dev /dev/snd
fi
# Loader devices
echo "ALSA loader devices"
rm -f /dev/aload*
create_devices /dev/aload 0
create_device1 /dev/aloadSEQ 1
More information about the pluto-help
mailing list