상세 컨텐츠

본문 제목

023. Raspberry Pi 라즈베리 파이 - USB Speaker 스피커 선택적으로 사용하기 (Jessie & RetroPie v4.4.13) rc.local 이용

raspberrypi/raspbian

by ZelKun 2016. 8. 16. 11:30

본문

반응형

   

말이 선택적이지 사실 별거없습니다

rc.local을 사용해서 USB 스피커가 연결되있으면

alsa default를 USB 스피커로 변경해 주는 스크립트를 추가 할거에요

   

USB 스피커가 없는데 defaut로 card 1을 설정해놓으면

ALSA에러가 뜨는게 참 맘에 안들었거든요(소리도 안나오거든요)

   

사운드카드 설정을 확인합니다

aplay -l

   

card 0는 pi기본 사운드카드

card 1은 연결된 USB 스피커에요

   

사운드 설정(asound.conf)에 따라서 default를 변경할 수 있으니

rc.local에 asound.conf를 작성하는 스크립트를 추가합니다

   

/proc/asound 디렉토리의 파일을 이용할까 했는데

편의상 aplay -l 이용했습니다

   

sudo vim /etc/rc.local

#USB스피커 설정

if aplay -l | grep card\ 1 > /dev/null; then

    echo "connect USB Speaker"

    echo "pcm.!default {\n    type hw card 1\n}" >  /etc/asound.conf

    echo "ctl.!default {\n    type hw card 1\n}" >> /etc/asound.conf

else

    echo "not connect USB Speaker"

    echo "pcm.!default {\n    type hw card 0\n}" >  /etc/asound.conf

    echo "ctl.!default {\n    type hw card 0\n}" >> /etc/asound.conf

fi

적당한곳에 추가해주면 됩니다

설명을 하자면 aplay -l 명령 실행시 card 1이 있는지 확인하는 스크립트입니다

사실 alsa 옵션같은거 잘몰라서 되는거만 넣었습니다 device 같은건 잘몰라서 뺐어요

else를 안넣게 되면 파일을 덮어쓰질 않으니 card 1로 설정이 남아있는 문제가 생깁니다

아니면 파일을 삭제하면 default가 당연히 card 0로 되니 삭제하셔도 되고요

   

당연하게도 exit 0 보다는 위에있어야 합니다

   

> 는 덮어쓰기 >> 이어쓰기 그리고 \n 은 줄바꿈 입니다

   

이제 부팅할때 사운드 카드 card 1이 있으면

default 로 card 1을 잡아줄거에요

   

기본사용 사운드카드 0

   

기본사용 사운드 카드 1 (USB 스피커)

   

적용 테스트는 재부팅 후 음원파일 재생을 해서 USB에서 나오면 성공입니다

aplay /usr/share/sounds/alsa/Noise.wav

   

참고

반응형

관련글 더보기

댓글 영역