
Ich habe ein eigenartiges Problem mit alsamixer. Ich habe diese asound.conf-Datei, die eine Kanalneuzuordnung für mein „USBStreamer“-Gerät durchführt:
pcm.usbSTR {
type hw
card USBStreamer
device 0
}
pcm.usbREMAP {
type plug
slave.pcm usbSTR
ttable.0.8 1
ttable.1.9 1
}
pcm.!default {
type plug
slave.pcm usbREMAP
}
ctl.!default {
type plug
slave.pcm usbREMAP
}
Wenn ich alsamixer ohne Befehlszeilenargumente und mit der obigen Datei asound.conf ausführe, stürzt alsamixer mit der nicht besonders hilfreichen Fehlermeldung ab:
ALSA lib dlmisc.c:254:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/i386-linux-gnu/alsa-lib/libasound_module_ctl_plug.so
cannot open mixer: No such device or address
Wenn ich die Datei asound.conf lösche, funktioniert alsamixer einwandfrei.
Leider muss die Kanalzuordnung neu vorgenommen werden, damit MPD funktioniert.
Gibt es eine Möglichkeit, die Kanäle neu zuzuordnen, ohne dass Alsamixer abstürzt?
Zu Ihrer Information: Wenn ich das USBStreamer-Gerät angebe, läuft alsamixer einwandfrei. Leider scheint mpd nicht so spezifisch zu sein, wenn es alsamixer aufruft.
bearbeiten: Wenn ich den ctl.!default-Block aus asound.conf lösche und alsa neu starte, läuft alsamixer einwandfrei, ohne dass ein Gerät angegeben werden muss. . . mpddenktes wird über Alsa abgespielt, aber aus meinen Lautsprechern kommt kein Ton. Ich denke, dass der Block ctl.!default etwas Wichtiges getan hat.
Außerdem funktioniert der Lautsprechertest nicht mehr. Er beschwert sich über eine ausgelastete Ressource:
speaker-test -c 10 -t sin -D plughw:USBStreamer
speaker-test 1.1.0
Playback device is plughw:USBStreamer
Stream parameters are 48000Hz, S16_LE, 10 channels
Sine wave rate is 440.0000Hz
Playback open error: -16,Device or resource busy
Hier ist mein audio_output-Teil von /etc/mpd.conf
audio_output {
type "alsa"
name "USB Streamer - LX521.4"
device "hw:USBStreamer,0"
}
Obwohl dies für mein Problem nur am Rande relevant ist, fand ich die Datei asound.conf ein wenig hässlich. Meine Kenntnisse von ALSA-Konfigurationsdateien sind rudimentär, aber ich glaube, dies entspricht dem obigen (wobei der Teil ctl.!default gelöscht wurde):
pcm.!default {
type plug
slave.pcm {
type hw
card USBStreamer
device 0
}
ttable {
0.8 1
1.9 1
}
}
Hier sind die „einfachen Bedienelemente“ von amixer für das Soundgerät:
amixer -D hw:USBStreamer scontrols
Simple mixer control 'Mic',0
Simple mixer control 'Mic',1
Simple mixer control 'USBStreamer Clock Selector',0
Simple mixer control 'USBStreamer Output',0
Simple mixer control 'USBStreamer Output',1
Aha! Es sieht so aus, als ob mpd möglicherweise ALSA verwendet und ich deshalb den Lautsprechertest nicht durchführen kann:
sudo fuser -v /dev/snd/*
[sudo] password for rybu:
USER PID ACCESS COMMAND
/dev/snd/controlC0: mpd 935 F.... mpd
/dev/snd/pcmC1D0p: mpd 935 F...m mpd
Es scheint, als ob mpd eingefroren ist. Anfragen an mpc dauern ewig und führen zu Fehlermeldungen wie:
mpc
mpd error: Timeout
Also muss ich mpd kurz beenden. . . mal sehen, ob ich das schaffe. Ich glaube, ein „sudo service mpd stop“ sollte reichen. Diese Anfrage dauert lange. . . okay, der Lautsprechertest funktioniert wieder!
aber mplayer funktioniert nicht:
[AO_ALSA] alsa-lib: pcm.c:2135:(snd_pcm_open_conf) type is not defined
[AO_ALSA] Playback open error: No such file or directory
Failed to initialize audio driver 'alsa'
[AO SDL] Samplerate: 44100Hz Channels: Stereo Format s16le
[AO SDL] using aalib audio driver.
[AO SDL] Unable to open audio:
Failed to initialize audio driver 'sdl:aalib'
Could not open/initialize audio device -> no sound.
Audio: no sound
Okay, das habe ich mit den Mplayer-Argumenten „ao=alsa:device=default“ behoben. Dadurch wird das in asound.conf neu zugeordnete Standardgerät verwendet.
Als nächstes mpd. Es fühlt sich gut an, Fortschritte zu machen.
Ich habe mpd so eingestellt, dass das Standard-ALSA-Gerät (nicht hw:USBStreamer) verwendet wird, sodass die Kanalneuzuordnung durchgeführt wird. Starten Sie mpd neu und es funktioniert wieder einwandfrei.
Danke, Problem gelöst.
Antwort1
Vergessen Sie dieses ctl
Gerät. Um den MPD-Mixer zu konfigurieren, stellen Sie seineMixertypund/oderMischpultgerät(Wenn das Gerät über keine verwendbaren Mixer-Steuerelemente verfügt, müssen Sie möglicherweise den Software-Mixer verwenden.)
Der Busy-Fehler wird durch ein anderes Programm verursacht, das das Gerät öffnet (wahrscheinlich) PulseAudio. (Sie können die PID in überprüfen /proc/asound/cardX/pcm0p/sub0/status
.)