Raspberry PI에서 USB AUDIO 이용하기


Raspberry PI에 USB Audio 카드를 인식시키면 HDMI나 기본 사운드카드 때문에 순서가 바뀔 수 있다. 순서가 바뀌면 사운드를 출력하거나 마이크 입력등에 인수값을 확인하고 바꿔주어야 하기 때문에 번거롭거나 전원만 넣고 사용하는 방법을 사용할 수 없을 수도 있다.

따라서 장치의 순서를 고정시켜서 사용해야할 때 다음과 같이 사용한다.


먼저 현재 사운드카드의 순서를 확인하는 방법은 다음과 같다.


$ cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio

HDMI가 인식되어 사운드카드로 잡히는 경우라면 다른 값들도 나올 수 있다.

이방법 말고 alsamixer를 실행시킨 후에 [F6]를 눌러 확인해 보는 방법도 있다.


이상태에서 USB를 이용하여 녹음을 하거나 재생을 하려면 다음과 같이 하면된다.


$ arecord -D plughw:1,0 -f cd 20170713_120000.wav
$ aplay -D plughw:1,0 20170713_120000.wav


'-D plughw:1,0'이 USB장치를 가리키는 부분이다.

plughw가 인식이 안되고 오류가 난다면 'hw:1,0'으로 바꿔서 해보자.

만일 PI기본 사운드 카드를 이용하여 재생하고 싶다면



$ aplay -D plughw:0,0 20170713_120000.wav
or
$ aplay 20170713_120000.wav

이렇게 해주면 된다. 기본이 '0'이기 때문에 -D 옵션 없이 재생하면 기본 사운드카드를 사용하게 된다.


이제는 위 순서를 USB가 우선 순위로 오도록 바꿔보자. 이전에는 /usr/share/alsa 디렉토리에 아래에 있는 몇몇 값들을 바꿨는데 최근에는 아래 modprobe.d에 있는 정보만 바꿔도 가능하도록 수정된 것 같다. (2017년 7월 현재)


$ cat /etc/modprobe.d/alsa_base.conf

# This sets the index value of the cards but doesn't recorder.
options snd_usb_audio index=0
options snd_bcm2835 index=1

# Does the recording.
options snd slots=snd_usb_audio,snd_bcm2835


위 파일을 수정 또는 만들고 나서 다시 시작하면 USB 장치가 기본이 되게 된다.


Posted by codebank
,