Vraag & Antwoord

OS Linux

bash / script vraagje

3 antwoorden
  • Kan iemand mij uitleggen hoe de code werkt om te checken of Alsa al is gestart. Ofwel, door wat wordt dit geinterpreteerd? [code:1:bd49ea7586] alsactl=/usr/sbin/alsactl asoundcfg=/etc/asound.state aconnect=/usr/bin/aconnect alsascrdir=/etc/alsa.d depend() { need bootmisc localmount before modules after isapnp provide alsa-modules } start() { # Start driver if it isn't already up. if [ -d /proc/asound ] then eerror "ALSA driver is already running." return 1 fi [/code:1:bd49ea7586] Tweede vraag, hoe kom ik achter de waarde van i, met welk commando? [code:1:bd49ea7586] if [ "$i" != off ]; then einfon "Starting sound driver: $i " /sbin/modprobe $i eend 0 fi [/code:1:bd49ea7586]
  • Dit scriptje test met de 'if' regel na 'start()' of de drivers al gestart zijn. Alsa draait al als '/proc/asound' een bestaande directory. Als $i een string is. kun je hem vergelijken zoals je gedaan hebt. Aan beide kanten verwacht 'test' (de vierkante haken) een string. Zijn het getallen, dan moet je ze vergelijken met '-eq' (equals) en '-ne' (not equals). Voor meer informatie: typ [code:1:ea223794b2]man bash[/code:1:ea223794b2]Zoek vervolgens op '==' totdat er[code:1:ea223794b2]string1 == string2[/code:1:ea223794b2] in beeld staat. Rond die tekst staan alle commando's van 'test' of '[]'.
  • Ik ben er nog niet uit. Het feitelijk probleem is dat Alsa voor 8 kaarten de driver probeert te laden, hetgeen resulteert in zeven foutmeldingen, niet erg maar wel irritant. Dit is de volledige inhoud van /etc/init.d/alsa [code:1:d4bf264269] alsactl=/usr/sbin/alsactl asoundcfg=/etc/asound.state aconnect=/usr/bin/aconnect alsascrdir=/etc/alsa.d depend() { need bootmisc localmount before modules after isapnp provide alsa-modules } start() { # Start driver if it isn't already up. if [ -d /proc/asound ] then eerror "ALSA driver is already running." return 1 fi # # insert all sound modules # ebegin "Initialising ALSA." drivers="`/sbin/modprobe -c | \ grep -E "^[[:space:]]*alias[[:space:]]+snd-card-[[:digit:]]" | \ awk '{print $3}'`" for i in $drivers; do if [ "$i" != off ]; then einfon "Starting sound driver: $i " /sbin/modprobe $i eend 0 fi done # # insert sequencer modules # if [ x"$START_ALSA_SEQ" = xyes -a -r /proc/asound/seq/drivers ]; then t="`cut -d , -f 1 /proc/asound/seq/drivers`" if [ "x$t" != "x" ]; then /sbin/modprobe $t fi fi # # restore driver settings # if [ -d /proc/asound ]; then if [ ! -r $asoundcfg ]; then ewarn "No mixer config in $asoundcfg, you have to unmute your card!" else if [ -x $alsactl ]; then $alsactl -f $asoundcfg restore else eerror -e "ERROR: alsactl not found!" fi fi fi # # run card-dependent scripts for i in $drivers; do t=${i##snd-} if [ -x $alsascrdir/$t ]; then $alsascrdir/$t fi done } terminate() { # # Kill processes holding open sound devices # # DEVS=`find /dev/ -follow -type c -maxdepth 1 -print 2>/dev/null | xargs ls -dils | grep "1*1[46]," | cut -d: -f2 | cut -d" " -f2; echo /proc/asound/dev/*` ossdevs="/dev/admmidi? /dev/adsp? /dev/amidi? /dev/audio* /dev/dmfm* \ /dev/dmmidi? /dev/dsp* /dev/dspW* /dev/midi0? /dev/mixer? /dev/music \ /dev/patmgr? /dev/sequencer* /dev/sndstat" alsadevs="/proc/asound/dev/*" fuser -k $ossdevs $alsadevs 2> /dev/null 1>/dev/null # # remove all sequencer connections if any # if [ -f /proc/asound/seq/clients -a -x $aconnect ]; then $aconnect --removeall fi } stop() { if [ ! -d /proc/asound ] then eerror "ALSA driver is not loaded." return 0 fi ebegin "Shutting down ALSA modules." # Call terminate function first to kill the processes, holding the drivers. terminate # # store driver settings # if [ -x $alsactl ]; then $alsactl -f $asoundcfg store else ewarn -n "WARNING: !!!alsactl not found!!! " fi # # remove all sound modules # /sbin/lsmod | grep -E "^snd" | grep -v "snd-hammerfall-mem" | while read line; do \ /sbin/rmmod `echo $line | cut -d ' ' -f 1`; \ done # remove the 2.2 soundcore module (if possible) /sbin/rmmod soundcore 2> /dev/null /sbin/rmmod gameport 2> /dev/null eend 0 } [/code:1:d4bf264269] De foutmelding is: modprobe: can't load soundcard 1 (enz) Ik vraag mij af of dit uit dit script afkomstig is, of komt het ergens anders vandaan? BTW: for i in $driver > i = snd-cmipci

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.