-
[라즈베리파이] 블루투스 스피커 연결 (root 계정 사용하지않고)개발/라즈베리파이 2019. 1. 26. 02:12
라즈베리 파이 에 블루투스 스피커 연결하는 예시가 검색하면 많이 나온다..
GUI 를 이용하든 terminal 을 이용하든 블루투스 스피커를 사용하기 까다로운건 마찬가보다..
GUI는 보이는 버튼이나 메뉴들이 한눈에 들어와서 만지기 편해보이는데 못하는 사람이 많다하니..
terminal은 오죽하겠나...
대충 검색해보면
$ sudo killall pulseaudio $ pulseaudio --start $ bluetoothctl [bluetooth] scan on [bluetooth] pari MAC:ADDR [bluetooth] trust MAC:ADDR [bluetooth] connect MAC:ADDR [bluetooth] exit $ sudo apt-get install mplayer $ pacmd list-sinks $ pacmd set-deault-sink {연결하고자하는sink-index}
아마 여기까지 순탄하게 될 수도 있고 아닐수도 있다.
root 계정으로 한다면 위과정이 잘 오류없이 끝나지만 소리가 안나올것이다..
이유는 모르겠으나... 아마 저 pulseaudio 명령어를 root 계정에서 못쓰게하는것 같은데..
이유는 좀 더 찾아봐야겠다
만약 root가 아닌 계정으로 로그인했다면,
pulseaudio --start
까지는 잘될것이다..
여기서
bluetoothctl
명령어를 실행하고 어느 명령어를 쳐도
No default controller available
이런 메시지가 뜬다...
계정이 bluetooth 조작 권한이 없어서 그럴것이다 라는건 예상 했지만,
어느 파일을 수정해야하는지 그 해결책 찾는데 오래걸린것같다...
한국어로 된 게시물을 만들고자 이글을...... 다른분들은 삽질하지마세요..
해결책
$ sudo groupadd bltusergroup $ sudo vi /etc/dbus-1system.d/bluetooth.conf
bluetooth.conf를 수정하자
<policy group="bluetooth"> <allow send_destination="org.bluez"/> </policy>
가 보일텐데 그 밑에 하나 더 추가해준다.
<policy group="bltusergroup"> <allow send_destination="org.bluez"/> </policy>
group에 현재 사용자의 그룹명을 넣어 추가해준다.
만약 그룹에 대해 잘 모른다면 생성한 사용자명과 같을 것이다.
그 후 bluetoothctl 해주면 여러 명령들이 잘 먹을 것이다.
물론 pulseaudio 가 켜져 있는지 확인하고 테스트하시길...
주의할 점은 pulseaudio 가 켜져있어도 그 실행자/소유자가 다른 계정(root 등...)
이라면 소리가 당연안나온다.
즉 같은 계정으로 pulseaudio, bluetoothctl 둘다 실해시켜줘야한다.
[참고자료]https://stackoverflow.com/questions/48279646/bluetoothctl-no-default-controller-available
반응형'개발 > 라즈베리파이' 카테고리의 다른 글