내 노트북을 위한 새 도킹 스테이션이 있는데 오디오/alsa를 구성하는 데 문제가 있습니다.
cat /proc/asound/cards 확인 후
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xec248000 irq 158
1 [Audio ]: USB-Audio - ThinkPad Dock USB Audio
Generic ThinkPad Dock USB Audio at usb-0000:3c:00.0-1.4.4, high speed
나는 이렇게 /etc/asound.conf를 만들었습니다.
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
이는 대부분의 응용 프로그램(Chromium, VLC, mpd 등)에서 작동하는 것 같지만 Firefox에서는 오디오 출력이 나오지 않으며 동시에 여러 응용 프로그램(병렬?)에서도 오디오 출력이 없습니다(예: Chromium을 실행하는 경우) VLC에 오디오가 없습니다.)
VLC에서는 다음과 같은 오류 메시지를 표시합니다.
Audio output failed:
The audio device "default" could not be used:
Device or resource busy.
- 동시에 여러 응용 프로그램에서 작동하게 하려면 어떻게 해야 합니까?
- Firefox에서 특별히 해야 할 일이 있나요?
- 카드 1(도킹 스테이션)이 연결되어 있지 않은 경우 어떻게 카드 0(노트북)으로 돌아가나요?
작은 꽃자루
자원:
- https://superuser.com/questions/626606/how-to-make-alsa-pick-a-preferred-sound-device-automatically
- https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture#Set_the_default_sound_card
설치된 패키지:
alsa-utils, alsa-firmware, sof-firmware
이름-a:
Linux T480s 6.7.4-arch1-1 #1 SMP PREEMPT_DYNAMIC Mon, 05 Feb 2024 22:07:49 +0000 x86_64 GNU/Linux
편집: 다중 오디오 출력 및 Firefox 오디오가 카드0(내부)에서 잘 작동합니다.
편집 2:
다음과 같은https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture#Configuring_the_index_order_via_kernel_module_options/etc/modprobe.d/alsa-base.conf에서 카드의 색인 순서를 변경했습니다.
options snd_usb_audio index=0
options snd_hda_intel index=1
/etc/asound.conf를 삭제하고 재부팅했습니다.
snd_usb_audio가 기본 카드(card0)로 로드되면 작동됩니다. Firefox 오디오는 잘 작동하며 동시에 여러 응용 프로그램에서 오디오를 출력할 수 있습니다.
즉, 삽입할 때 snd_usb_audio를 카드0으로 로드하고 삽입하지 않으면 snd_hda_intel로 대체하면 됩니다. alsa-base.conf 또는 /etc/asound.conf에서 이 작업을 수행할 수 있습니까?
답변1
<kidding>
"어? 나도 네 말에 동의해, 친구!</kidding>
혼란스러운 방식으로 문제에 접근하려면 다음을 수행하십시오.
Firefox에서 오디오 출력이 없습니다
왜냐면...쯧쯧...기억이 나지 않습니다. 어떤 비극적인 이유로 Firefox는 단일 오디오 백엔드인 pulseaudio를 지원하기로 결정했습니다.
alsa(또는 다른 사운드 서버)로 직접 출력하려는 경우 따라야 할 유일한 방법은... 이를 달성하기 위한 몇 가지 구성 옵션을 여전히 제공하므로 소스에서 빌드하는 것입니다.
장치 또는 리소스가 사용 중입니다.
첫 번째 앱에 대한 정의를 고려하면 pcm.!default
, 해당 앱을 사용하는 첫 번째 앱은 자체적이고 독점적인 사용을 위해 기기를 즉시 차단하여 다른 앱이 동시에 그렇게 하는 것을 방지합니다.
이를 방지하기 위해 내 시스템에 구현한 솔루션은 pcm.default를 dmixer 플러그인으로 만드는 것으로 구성되었습니다.
pcm.!default{
type plug
slave.pcm "dmixer"
hint{
show on
description "Tux Alsa Default"}}
기록을 위해 내 dmixer 세부 정보는 다음과 같습니다.
pcm.dmixer{
type dmix
ipc_key 219345
slave{
pcm MAUDIO
format S32_LE
period_size 1024
buffer_size 4096 }}
그리고 내 MAUDIO pcm은 정의에 주의를 환기시키기 위한 것입니다 nonblock true
.
pcm.MAUDIO{
type hw
card M2496
device 0
subdevice 0
nonblock true}