ESD en een terugkerend proces
Dennis van Dok
dvandok op quicknet.nl
Wo Sep 20 23:10:11 UTC 2006
adrien wrote:
> Op wo, 20-09-2006 te 21:31 +0200, schreef Dennis van Dok:
>
>
>> Log eens uit, ga naar een console (Ctrl-Alt-F1) en log in als root (of
>> als jezelf en dan doe je sudo su).
>>
>
> Was niet een succes, want als de alsamixer gestart was had ik geen
> toegang meer tot de prompt. En alsamixer afsluiten met ESC gaf ook geen
> prompt.
>
Dat is raar. Misschien is de console in de war (zwart op zwart)? Het is
onwaarschijnlijk dat er
echt iets hangt. Tik maar (blind) <enter> <enter> reset <enter> exit.
Als dat nog niet werkt Alt-F2 om een ander console te vinden (je vindt
je X sessie onder Alt-F7).
> Als er dat cat < /dev/random > /dev/dsp (na een herstart en Ctrl-Alt-F1
> doen) gegeven werd, was de pc dood. Geen prompt, geen geluid, enkel een
> zwart scherm.
>
Ctrl-C brengt je terug (Algemene tip: hiermee stuur je het hangende
voorgrondproces een onderbrekingssignaal). Helaas heb je dit proces
laten hangen (zoals verderop blijkt) en dat houd het device bezet.
Eerlijk gezegd heb ik gegokt wat het juiste device was, en dat random
data geluid zou produceren.
Ik heb het net even geprobeerd, en het bleek niet te werken! Wat wel
geluid (herrie) gaf was
cat < /usr/share/sounds/startup.wav > /dev/dsp.
> Dus heb ik de alsamixer gestart in een terminal venster.
> Zie: http://users.edpnet.be/verlee/ftp/proces1.png als leek kan ik er
> weinig van zeggen.
>
Dat ziet er normaal uit.
>
>> cat < /dev/random > /dev/dsp
>>
>
> In een terminalvenster geeft dit:
> root op ubuntu:/home/adrien# cat < /dev/random > /dev/dsp
> bash: /dev/dsp: Apparaat of bron bezig
>
Allicht, want zoals zal blijken had je de eerdere poging nog draaien!
>> Dat je twee esd processen ziet is op zich niet vreemd; er kan
>> automatisch een extra daemon gestart worden. Zie /etc/esound/esd.conf.
>>
>
> Dit staat er:
>
[...]
Dat is prima. Heb ik ook.
> Tja... Nu staat er geen esd in het processbeheer! Maar lsof /dev/dsp
> geeft dit:
> root op ubuntu:/home/adrien# lsof /dev/dsp
> COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
> cat 4975 adrien 1w CHR 14,3 9061 /dev/dsp
>
>
Dit is dus de eerste 'cat'. Deze had je beter even kunnen killen. Hij
staat nog steeds braaf /dev/random naar /dev/dsp te pompen, maar het
heeft wellicht een te hoge frequentie om als 'ruis' te dienen.
>> met pstree -a?
>>
>
> Zie er geen esd tussen staan. Wel iets van een mixer, zie:
> http://users.edpnet.be/verlee/ftp/pstree.txt
>
Da's je mixer applet, ofwel het kleine volumeregelaartje dat ik in je
andere schermafdruk zie.
>> probeer eens (als root):
>> lsof /dev/dsp
>>
>
> Zie hierboven
>
>
>> om te zien welke processen geluid proberen te spelen. Probeer dan ook eens
>> lsof -p 12345
>> (waar 12345 het PID is van het esd proces).
>>
>
> asjeblief:
> root op ubuntu:/home/adrien# lsof -p 4975
> COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
> cat 4975 adrien cwd DIR 254,0 4096 6635522 /home/adrien
> cat 4975 adrien rtd DIR 254,0 4096 2 /
> cat 4975 adrien txt REG 254,0 16736 8863803 /bin/cat
>
[...]
> cat 4975 adrien 0r CHR 1,8 2864 /dev/random
> cat 4975 adrien 1w CHR 14,3 9061 /dev/dsp
> cat 4975 adrien 2u CHR 4,1 1337 /dev/tty1
>
Je ziet dus welke devices 'cat' nog open heeft! Hij draait nog op tty1
(onder Ctrl-Alt-F1).
Goed, dit experiment was niet zo'n succes. Maar we geven het nog niet
op! Eerst moet je dus die hangende cat even killen. Ik heb voor alle
zekerheid even bij mezelf gekeken hoe het nu werkt.
Als ik inlog heb it één esd proces; deze heeft alleen een paar sockets
open maar geen geluid devices. Zodra ik een geluid ga spelen
(bijvoorbeeld een mp3'tje in XMMS met de ESound plugin als uitvoer) dan
krijg ik er een tweede esd bij die wel een device pakt.
% lsof -p 7707
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
esd 7707 dennis cwd DIR 253,0 8192 32065 /home/dennis
esd 7707 dennis rtd DIR 3,9 4096 2 /
esd 7707 dennis txt REG 3,6 59500 177989 /usr/bin/esd
esd 7707 dennis mem REG 0,0 0 [heap] (stat:
No such file or directory)
esd 7707 dennis mem CHR 116,16 8956 /dev/snd/pcmC0D0p
(irrelevante regels weggelaten)
esd 7707 dennis 24u unix 0xcaebd480 22786
/tmp/alsa-dmix-7481-1158790723-748227
esd 7707 dennis 25u CHR 116,16 8956 /dev/snd/pcmC0D0p
Aha! Het geluidsdevice is dus /dev/snd/pcmC0D0p!
Maar goed, daar heb je nog niet veel aan, want je wilt weten waarom je
geen geluid hebt. Welnu, als je zeker weet dat je muziekspeler loopt
(bij mij zie ik de klok van mijn mp3-tje meelopen) en dus in ieder geval
doet alsof hij muziek speelt, dan hoeven we alleen nog maar uit te
vinden waar die muziek dan blijft.
Geef maar eens de uitvoer van
cat /proc/asound/cards
Je hebt toch hopelijk maar 1 geluidskaart?
Nu teruglezend in de historie van je probleem: je hebt toch niet zitten
rommelen aan asound.conf, esd.conf en zo? Het moet gewoon uit de doos
werken.
Kun je nog eens bevestigen dat het niet een volumeregeling is die een
kanaal uitgezet heeft?
Als je geluid (lawaai) kan horen door een wav bestand in /dev/dsp te
gooien is er nog hoop.
Dennis
Meer informatie over de Ubuntu-NL
maillijst