Raspbian Jessie에서 Jasper의 사운드를 어떻게 구성합니까?


19

내가 사용하고 Raspbian 제시 (2015년 11월 21일)를 실행하는 재스퍼 (마스터 브랜치) 다음은 라즈베리 파이 두 모델 B의를 문서에 설치 지침이 제시 위지과없는 것 같다.

Wheezy에서 Jasper를 실행하면 정상적으로 작동합니다. 그러나 Jessie에서는 사운드를 구성하는 데 문제가있었습니다. 마이크가 작동했지만 스피커가 작동하지 않거나 그 반대로 작동했습니다.

해야 할 일은, 기본 사운드 카드가 USB로 설정되어 있어야합니다. 왜냐하면 그것이 나의 USB 마이크가 연결되어 있고 Jasper가 이것을 요구하기 때문입니다. 이야기 ALSA를 통해 구성에 대한한다는 답변이 많이 있습니다 ~/.asoundrc, /etc/asound.conf심지어 및 /usr/share/alsa/alsa.conf하지만 그들 중 누구도 나를 위해 일하지가.

믹서를 통해 열고를 alsamixer누르면 F6항상 bcm2835기본 카드로 표시 됩니다. 그것은 Pi2의 기본 카드이지만 USB를 기본 카드로 만들고 싶습니다.

어떻게해야합니까?

답변:


25

ALSA Wiki 에 따르면 " 설치된 여러 카드의 특정 주문을 선택하는 방법 "이라는 제목 아래 에 다음과 같이 나와 있습니다.

카드 번호 0, 1 인 카드는 기본적으로 모듈로드 순서에 따라 결정됩니다. 이것은 어떤 카드가 기본 카드가되는지 선택하는 데 특히 유용합니다.

따라서 이론적으로 드라이버 모듈이 먼저로드되도록하여 설치된 여러 카드 중 기본 카드 인 카드 0을 선택할 수 있습니다. (참고 : 각 사운드 카드마다 다른 드라이버가 필요하다고 가정합니다. 같은 유형의 사운드 카드가 두 개인 경우 다음 섹션으로 건너 뛰십시오.)

이를 위해 카드 드라이버 모듈의 "old"index = 옵션과 snd 모듈의 대안 (및 new) slots = 옵션이 있습니다.

이를 수행하는 두 가지 방법이 문서화되어 있습니다.

  1. 오래된 "index ="메소드
  2. 최신 "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방법을 사용하는 이유이기도합니다 .


도움이 된 것을 기쁘게 생각합니다 :) Github 계정 (내 프로필의 링크)에서 며칠 만에 bash 설정 스크립트와 Chef 요리 책을 모두 사용할 수 있습니다.
Housni

snd_usb_audio불행히도 두 개의 장치가 있습니다 .
kleinfreund

@Housni 그 스크립트를 아직 만들었습니까?
not2qubit

0

이 프로젝트에 대한 alsa 문제를 디버깅하려고 시도하고 USB 마이크 및 bcm2835 스피커를 모두 작동시킨 후 내가받은 모든 ALSA 조언이 다루지 않는 기본 문제가 있다고 생각합니다.

/ usr / share / alsa / cards 디렉토리에는 bcm2835.conf 파일이 없습니다. / usr / share / alsa 디렉토리 파일 alsa.conf는 지정해야 할 많은 스텁을 남깁니다. bcm2835 용 카드가 제공되지 않으면 Jasper.py를 실행하면 치명적이지 않은 많은 오류 메시지가 표시됩니다. bcm2835.conf 파일을 작업함으로써 자극적 인 메시지를 제거 할 수 있습니다.

이것은 Jessie 버그 인 것 같습니다. 실제로 이러한 오류 메시지를 해결하는 파일이 있어야합니다. ALSA를 다루는 jessie 프로그래머에게는 테스트 대상을 만들지 않은 것이 게으른 것 같습니다.

모든 오류 메시지를 처리하지는 않았지만 다른 메시지도 이로 인한 것으로 의심됩니다.

성숙한 릴리스가없는 또 다른 경우는 부팅 중에 이전 펌웨어를 확인하지 못하는 것입니다. 내 jessie의 이전 펌웨어는 ssh를 알지 않는 한 키보드 또는 마우스에 응답하지 않는 데스크탑을 생성했습니다. 순진한 사용자 상황이 아닙니다.


1
WRT는 "알사를 다루는 제시 프로그래머에게는 테스트 된 것을 만들지 않았다"며 " 데비안 8 "을 믿지 않는다고 혼동하지 않는다 . Raspbian이 구축 된 jessie는 주로 Raspberry Pi 및 BCM2835 SoC를위한 것입니다. 후자는 데비안 사용자의 1 % 미만을 차지하므로 우선 순위로 간주 될 수 없습니다. 그룹은 주로 사실 자원 봉사자 모두가 그들을 게으른하지 않습니다에 모든 것을 할 수있는 키보드 25시간 / 일에서 일하지 않으려는 ...
금발 미녀

... 이것은 작업을 수행하는 데 필요한 기술 전문 지식을 가진 커뮤니티 사람들의 관심이 충분하지 않음을
goldilocks
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.