
alsamixer에 특별한 문제가 있습니다. 내 "USBStreamer" 장치에 대한 채널 재매핑을 수행하는 asound.conf 파일이 있습니다.
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
}
명령줄 인수 없이 위의 asound.conf 파일을 사용하여 alsamixer를 실행하면 별로 도움이 되지 않는 오류 메시지와 함께 alsamixer가 충돌합니다.
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
asound.conf 파일을 삭제하면 alsamixer가 완벽하게 작동합니다.
불행하게도 mpd가 작동하려면 채널 재매핑이 필요합니다.
alsamixer 충돌이 발생하지 않고 채널을 다시 매핑하는 방법이 있습니까?
참고: USBStreamer 장치를 지정하면 alsamixer가 제대로 실행됩니다. 불행하게도 mpd는 alsamixer를 호출할 때 그렇게 구체적이지 않은 것 같습니다.
편집: asound.conf에서 ctl.!default 블록을 지우고 alsa를 다시 시작하면 alsamixer는 장치를 지정하지 않고도 제대로 실행됩니다. . . mpd생각한다alsa를 통해 재생 중인데 스피커에서 소음이 나오지 않습니다. 나는 ctl.!default 블록이 중요한 일을 하고 있다고 생각합니다.
또한 스피커 테스트가 더 이상 작동하지 않습니다. 바쁜 리소스에 대해 불평하고 있습니다.
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
다음은 /etc/mpd.conf의 audio_output 부분입니다.
audio_output {
type "alsa"
name "USB Streamer - LX521.4"
device "hw:USBStreamer,0"
}
이것이 내 문제의 주변적이지만 asound.conf 파일이 약간 보기 흉하다는 것을 알았습니다. ALSA 구성 파일에 대한 나의 이해는 초보적이지만 이것이 위의 내용과 동일하다고 생각합니다(ctl.!default 부분이 지워짐).
pcm.!default {
type plug
slave.pcm {
type hw
card USBStreamer
device 0
}
ttable {
0.8 1
1.9 1
}
}
사운드 장치에 대한 믹서 "간단한 컨트롤"은 다음과 같습니다.
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
아하! 아마도 mpd가 ALSA를 사용하고 있는 것 같아서 스피커 테스트를 수행할 수 없습니다.
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
mpd가 정지된 것 같습니다. mpc에 대한 요청은 시간이 오래 걸리고 다음과 같은 오류 메시지가 표시됩니다.
mpc
mpd error: Timeout
그래서 mpd를 잠시 죽여야 합니다. . . 내가 그렇게 할 수 있는지 봅시다. 나는 "sudo service mpd stop"이 그 역할을 해야 한다고 믿습니다. 요청하는 데 시간이 오래 걸립니다. . . 좋아, 스피커 테스트가 다시 작동하고 있어!
하지만 mplayer가 작동하지 않습니다.
[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
좋아, mplayer 인수 "ao=alsa:device=default"를 사용하여 asound.conf가 다시 매핑된 기본 장치를 사용하도록 지시하는 문제를 해결했습니다.
다음은 mpd입니다. 발전하고 있어서 기분이 좋습니다.
채널 재매핑이 완료되도록 mpd를 기본 ALSA 장치(hw:USBStreamer 아님)를 사용하도록 설정했습니다. mpd를 다시 시작하면 다시 완벽하게 작동합니다.
감사합니다. 문제가 해결되었습니다.