ALSA Wiki 에 따르면 " 설치된 여러 카드의 특정 주문을 선택하는 방법 "이라는 제목 아래 에 다음과 같이 나와 있습니다.
카드 번호 0, 1 인 카드는 기본적으로 모듈로드 순서에 따라 결정됩니다. 이것은 어떤 카드가 기본 카드가되는지 선택하는 데 특히 유용합니다.
따라서 이론적으로 드라이버 모듈이 먼저로드되도록하여 설치된 여러 카드 중 기본 카드 인 카드 0을 선택할 수 있습니다. (참고 : 각 사운드 카드마다 다른 드라이버가 필요하다고 가정합니다. 같은 유형의 사운드 카드가 두 개인 경우 다음 섹션으로 건너 뛰십시오.)
이를 위해 카드 드라이버 모듈의 "old"index = 옵션과 snd 모듈의 대안 (및 new) slots = 옵션이 있습니다.
이를 수행하는 두 가지 방법이 문서화되어 있습니다.
- 오래된 "index ="메소드
- 최신 "slots ="메소드
전자는 Jasper 설치 지시 사항입니다. 또한 대부분의 솔루션에 대해 이야기합니다. 그러나이 방법은 이전 방법이므로 최신 Raspbian Jessie 이미지에서는 작동하지 않을 수 있습니다.
두 방법의 조합이 저에게 효과적입니다.
우선, 카드가로드 된 순서를 확인하십시오.
$ cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio
카운팅 카드부터 시작 0
하여 기본값 bcm2835
이 먼저로드되고 내 마이크가있는 USB 카드가 두 번째로로드됩니다.
카드를 재정렬하려면 먼저이라는 파일을 만듭니다 /etc/modprobe.d/alsa-base.conf
. 로 끝나는 한 원하는 이름을 지정할 수 있습니다 .conf
. 그런 다음 다음을 추가했습니다.
# This sets the index value of the cards but doesn't reorder.
options snd_usb_audio index=0
options snd_bcm2835 index=1
# Does the reordering.
options snd slots=snd_usb_audio,snd_bcm2835
의견은 각 행의 기능을 설명해야합니다. 일단 그렇게하면 컴퓨터를 재부팅해야 작동합니다.
재부팅하면 기본 카드로 오디오를 녹음 할 수 있으며 이제는 마이크가됩니다.
$ arecord temp.wav
그런 다음 카드를 1로 지정하고 장치를 0으로 지정하여 스피커 출력을 지정하십시오.
aplay -D plughw:1,0 temp.wav
처음에는 라인 만 추가 slots
했습니다. 이것은 내 USB 카드를 기본 카드로 만드는 데 효과적이지만 색인이 잘못되었습니다. 예를 들어, 일단 그렇게하면 내 /proc/asound/modules
모습은 다음과 같습니다.
$ cat /proc/asound/modules
1 snd_usb_audio
2 snd_bcm2835
이상적으로는 다음과 같아야합니다.
0 snd_usb_audio
1 snd_bcm2835
이것이 제가이 index
방법을 사용하는 이유이기도합니다 .