행복한 하루

라즈베리파이 제로 프로젝트(10) – 사운드(소리)를 들어보기 - MusicBox 프로그램(2) – 블루투스 연동 실패 후기 2편 본문

RaspberryPi/Raspberry Pi Zero

라즈베리파이 제로 프로젝트(10) – 사운드(소리)를 들어보기 - MusicBox 프로그램(2) – 블루투스 연동 실패 후기 2편

변화의 물결 2020. 12. 11. 15:15

 

 

안녕하세요.

 

  지난 강좌에서 블루투스 연동 실패해서 끝날까 하다가 그러면 jessie 버전에 bluealsa를 컴파일해서 실행해보자고 한 번 더 해보았습니다. 아쉽게도 결론을 먼저 알려드리면 이것도 실패했습니다. 한번 보시고 필요한 라이브러리 찾은 방법과 내용을 참고 정도 하시면 되지 않을까 합니다.

 

  2차 시도로 bluetoothctl 버전을 최신으로 해보고 bluealsa 설치를 해서 테스트해 보면 되지 않을까 해서 재시도하였습니다. bluetoothctl 5.43을 5.5로 변경하고 bluealsa도 설치해보았습니다.

  https://scribles.net/updating-bluez-on-raspberry-pi-from-5-43-to-5-50/

1. bluetoothctl 5.5.0 버전 설치하기 (bluez)

  - 설치하기 전에 설치된 버전을 확인해봅니다.

root@MusicBox:~# bluetoothctl -v

5.4.3

 

  - 기본적으로 필요한 라이브러리를 설치합니다.

root@MusicBox:~# apt-get install libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev -y

 

  - bluz를 업데이트를 해보려면 소스를 다운해야 합니다. 다운로드를 시도하면 라즈베리파이 시간이 맞지 않는다고 The certificate has expired  에러를 보여줍니다. 그래서 시간을 동기화해서 다운로드합니다. 동기화하기 위해서 필요하기 때문에 rdate를 다운로드합니다.

root@MusicBox:~/src# apt-get install rdate

 

  - 시간을 동기화시킵니다. 그리고 소스를 다운로드합니다.

root@MusicBox:~/src# rdate -s time.bora.net

 

root@MusicBox:~/# mkdir src

root@MusicBox:~/# cd src

root@MusicBox:~/src# wget www.kernel.org/pub/linux/bluetooth/bluez-5.50.tar.xz

 

  - 압축을 풀고

root@MusicBox:~/src# tar xvf bluez-5.50.tar.xz && cd bluez-5.50

 

  - 컴파일하려면 gcc 컴파일러가 필요한데 musicbox 버전에는 설치된 것들이 없어서 별도로 설치해줍니다.

root@MusicBox:~/src# apt-get install gcc make -y

 

root@MusicBox:~/src# ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-experimental

 

root@MusicBox:~/src# make

root@MusicBox:~/src# make install

 

  - 재부팅을 합니다.

root@MusicBox:~/src# reboot

 

  - 다시 버전 확인

root@MusicBox:~/src# bluetoothctl -v

bluetoothctl:  5.50

 

bluetoothctl 5.50 버전 확인

 

  - 기대반으로 했는데, 역시 connect도 안되네요.

root@MusicBox:~# bluetoothctl

Agent registered

[bluetooth]# devices

Device 00:14:BE:8F:56:63 Britz

[bluetooth]# trust 00:14:BE:

Changing 00:14:BE:8F:56:63 trust succeeded

[bluetooth]# connect 00:14:BE:

Attempting to connect to 00:14:BE:

Failed to connect: org.bluez.Error.Failed

 

2. bluealsa 소스 다운로드하여서 컴파일 작업해보기

  - github 사이트에 가서 다운로드합니다. 그런데 zip 파일로 받아서 하기는 옮기는 작업을 해야 하므로 쉽게 git으로 다운로드하도록 하겠습니다. 그러기 위해서는 git 설치를 설치해야 합니다.

root@MusicBox:~# apt-get install git

root@MusicBox:~/src# git clone https://github.com/Arkq/bluez-alsa.git

 

  - 소스를 컴파일해 주기 위해서 autoreconf 를 설치해 주어야 한다. 그런데 설치할 때 autoreconf가 아니라 dh-autoreconf로 해야 합니다.

root@MusicBox:~/src# cd bluez-alsa

root@MusicBox:~/src/bluez-alsa# apt-get install dh-autoreconf

root@MusicBox:~/src/bluez-alsa# autoreconf --install

root@MusicBox:~/src/bluez-alsa# mkdir build && cd build

root@MusicBox:~/src/bluez-alsa/build# ../configure --enable-aac --enable-ofono --enable-debug --disable-payloadcheck

 

  - 컴파일 환경 파일을 만들면 아래와 같이 에러가 발생합니다.

 

  (1) configure: error: Package requirements (alsa) were not met: No package 'alsa' found  에러 발생

    - 해결방법

root@MusicBox:~/src/bluez-alsa/build# apt-get install libasound2-dev

 

  (2) No package 'bluez' found  에러 발생

    - 해결방법

root@MusicBox:~/src/bluez-alsa/build# apt-get install bluez-hcidump checkinstall libusb-dev  libbluetooth-dev joystick

 

  (3) No package 'sbc' found  에러 발생

   - 해결 방법

root@MusicBox:~/src/bluez-alsa/build# apt-get install sbc-*

  

root@MusicBox:~/src/bluez-alsa/build# apt-get update

root@MusicBox:~/src/bluez-alsa/build# apt-get install sbc-*    다시 수행으로 해결

 

    (4) No package 'fdk-aac' found  에러 발생

 

dk-aac' found    에러

    - 해결 방법

root@MusicBox:~/src/bluez-alsa/build# apt-get install libfaac*   설치해도 안 됩니다.

root@MusicBox:~/src/bluez-alsa/build# vim /etc/apt/sources.list  에 아래 내용을 추가를 합니다.

(패키지 받을 경로 추가)

 

vim /etc/apt/sources.list 내용

 

 

deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi
deb http://www.deb-multimedia.org/ jessie main

  

root@MusicBox:~/src/bluez-alsa/build# apt-get update

root@MusicBox:~/src/bluez-alsa/build# apt-get update -oAcquire::AllowInsecureRepositories=true

root@MusicBox:~/src/bluez-alsa/build# apt-get install deb-multimedia-keyring -oAcquire::AllowInsecureRepositories=true

 

root@MusicBox:~/src/bluez-alsa/build# apt-get install libfaac-dev

 로 해결 안됩니다.

 

 

 

  - 결국 옵션에서 --enable-aac  제거해서 컴파일 환경 파일 생성했습니다.

root@MusicBox:~/src/bluez-alsa/build# ../configure --enable-ofono --enable-debug --disable-payloadcheck

 

  - 컴파일과 설치 진행합니다.

root@MusicBox:~/src/bluez-alsa/build# make && make install

 

  - 컴파일도 시켰지만, 결국 bluetoothctl에서 어떤 이유에서인지 모르겠지만, connect가 되지 않아서 더 진행하지 못했습니다. 에러 이유라고 나오면 풀어보려고 했는데, 그냥 Fail이라고 나와서 중단하였습니다.

 

블루투스 서비스는 활성화 상태 확인

3. 결  론

  “한 번에 바로 패키지 설치하면 되는 거 아니야?” 할 수 있지만, 앞에서도 테스트한 것처럼 왕창 설치했다가 부팅 안 되는 상황이 나와서 필요한 것만 찾아서 설치하는 형태로 했습니다. 계속 진행하려고 했지만, OS 버전이 오래되어서 그런지 지원하지 않는 패키지가 나오기도 하고 종속관계 때문에 찾고 설치하는 데 시간이 오래 걸렸습니다.

 

  솔직히 라즈베리파이 제로와 MusicBox OS를 이용해서 블루투스 스피커를 연결한다면 추천하지 않습니다. 가능하다면 그냥 HDMI 신호에서 음성신호 분리해서 사용하는 것이 어떨까 합니다.

 

  마지막으로 한번 가능하게 해 볼 거라고 이래저래 찾아본 링크들입니다. 더 많은 링크들이 있었지만, 필요할 부분들만 링크 올렸습니다. 도움될 만한 내용 있으면 참조하시면 됩니다.

 

감사합니다.

 

 

 

<설치하면서 참고한 링크>

 

1. BlueZ 5.50 업데이트 방법

https://scribles.net/updating-bluez-on-raspberry-pi-from-5-43-to-5-50/

 

2. No package 'alsa' found 에러 해결 방법

https://github.com/ggez/ggez/issues/100

 

3. No package 'bluez' found  에러 해결 방법

https://www.linuxquestions.org/questions/linux-newbie-8/how-to-solve-package-bluez-was-not-found-error-4175454425/

 

4. No package 'fdk-aac' found 방법 내용

https://superuser.com/questions/467774/how-to-install-libfaac-dev

https://superuser.com/questions/467774/how-to-install-libfaac-dev

https://codefaq.org/uncategorized/how-to-install-libfaac-dev-in-raspberry-pi-3/

 

 

“쿠팡 파트너스 활동을 통해 일정액의 수수료를 받을 수 있음"

 

Comments