우분투에서 블루투스 스테레오 헤드셋 쓰기

현재 리눅스에서 블루투스 장치는 Bluez라고 하는 리눅스용 블루투스 스택이 관리하고 있습니다. 성능은 윈도에 있는 블루소레일이나 도시바 블루투스 스택 보다 훨~~~~씬 떨어집니다만(윈도XP의 기본 블루투스 관리자 정도라고 생각하시면) 리눅스에서는 유일무이한 블루투스 스택이니 어쩔 수 없지요.ㅠㅠ 저도 우분투에서 가장 아쉽고도 아쉬운 부분이 바로 이 블루투스입니다. 시간이 지나도 이 부분은 해결되지 않네요.블루투스 헤드셋 부분에서는 이미 bt-sco라는 패키지덕에 모노 헤드셋은 리눅스용 스카이프(Skype)로 무선 통화를 하시는 분들도 계시고 합니다만 스테레오 헤드셋이 문제입니다. 블루투스는 무선랜과 같이 통신의 규격을 프로필(Profile;프로파일)이라고 부르는데, bt-sco가 지원하는 프로필은 HSP(Headset Profile)라는 것으로 음성 입력 출력이 가능하지만 음질이 전화음질이죠.보통 블루투스로 음악을 듣거나 할때 쓰이는 부분은 A2DP(Advanced Audio Distribution Profile)이라고 부릅니다. 그런데 이제까지 리눅스에서 이 A2DP는 지원되지 않고 있었습니다. 따라서 리눅스 PC에서는 블루투스 스테레오 헤드셋은 쓸모가 없었죠.그렇지만 역시 리눅스 개발자들 덕에 bluetooth-alsa라는 패키지도 개발되고 여러 노력이 있어왔습니다. 그렇지만 저에겐 너무 어렵더군요.-_-그런데 7.10을 처음 깔았을때, 블루투스 아이콘이 트레이에 떠있는 것을 보았습니다.

우분투 7.10부터는 블루투스 매니저라는 GUI프로그램이 블루투스 장치를 관리하더군요.그리고 설정을 열어봤는데..

사용 가능한 서비스에 오디오 서비스가! 그래서 한번 연결을 해볼까 했는데..장치 더하기가 없더군요(심지어 찾아보기조차 없는).. 그래서 그냥 임의로 추가만 해놓은 모양이군.. 이라고 하며 그동안 신경 안쓰고 있었죠.그리고 이제 이 블로그의 봉인이 풀린 이 순간 그동안 실패를 거듭했던 블루투스 스테레오 삽질을 시작했습니다.근데 전 아주 복잡한 팁을 생각하고 있었는데.. 그동안 기술이 발달해서인지 아주 삽질이 간단해져버렸더군요.^^ 그리고 성공했습니다.ㅋㅋ아래는 방법입니다. 매우 간단한 방법입니다.

이곳

을 참조하세요.일단 이 팁을 진행하기전에 bluetooth-alsa나 bt-sco 같은 패키지는 전혀 필요없습니다. 이미 bluez에 내장되어 있습니다.bluez-utils 패키지의 버전이 최소한 3.16 이상이어야 가능하다고 합니다. 우분투 7.10에는 기본적으로 오디오 서비스가 활성화 되어있습니다.불행하게도 아직 제대로된 GUI도구가 없습니다. 따라서 터미널에서 실행합니다. 그러나 상당히 간단한 방법이므로 부담없으실 겁니다.1. 터미널을 엽니다.2. hcitool scan  을 쳐서 주변의 블루투스 장치를 스캔합니다. 블루투스 헤드셋의 하드웨어 주소를 기억합니다.(보통 00:11:22:33:44:55 이런 식으로 되어 있습니다.)3. 다시 터미널에서 gedit ~/.asoundrc 를 치고, 편집창이 뜨면 아래 내용을 복사하여 저장합니다.

pcm.bluetooth {   type bluetooth   device 00:11:22:33:44:55}

여기서 당연히 00:11:22:33:44:55 이 부분은 아까 스캔한 헤드셋의 주소가 들어가야 겠지요^^4. 이게 특이한점은 시스템 전체의 소리가 나는게 아니라 플레이어별로 작동한다는 점입니다.따라서 지원되는 플레이어별로 설정방법이 다 다르며(-_-;;) 지원되지 않는 플레이어에서는 아쉽게도 아직 안됩니다.지원되는 플레이어는

이곳

에서 확인할 수 있으며 이곳에서는 Totem, 리듬박스, AmaroK 에 대해서만 적겠습니다.1. 토템과 리듬박스터미널에서gconftool -t string -s /system/gstreamer/0.10/default/musicaudiosink “alsasink device=bluetooth”치면 됩니다. 그런다음에 토템이나 리듬박스를 띄우면 자동으로 블루투스 헤드셋과 연결됩니다.기본값으로 돌리려면gconftool -t string -s /system/gstreamer/0.10/default/musicaudiosink “autoaudiosink”하면 됩니다.2. AmaroK

아마록 설정 – 엔진 부분에서 스크린샷과 같이 설정해주면 됩니다. 출력플러그인을 alsa로 설정해준 다음에, 스테레오 부분에 “bluetooth”라고 써주면 됩니다.덧. 아직 문제점이 많습니다. 최적화가 덜된 것 같은 느낌이듭니다. 특히 mplayer에선 동영상을 틀면 싱크도 안맞을 뿐더러 mplayer가 폭주합니다. totem에서는 그나마 좀 낫긴하지만 약간 고화질 동영상을 돌리기만 해도 사정없이 끊깁니다. 동영상 감상용으로는 안맞고 음악정도 듣기에는 알맞은것 같습니다.^^덧2. 리눅스용 블루투스 스택중엔 Affix라는 것도 있네요. 근데 제 블루투스 장치는 지원하지 않는군요.(그보다 지원목록이 대부분 1.0 1.1…;; 2.1+EDR 이 나오는 시대에 지원이 너무 늦는거아닌가요)Bluez와 Affix의 관계를 잘 보여주는 글이 있어 링크합니다.

Link

Bluez는 현재 리눅스 커널에 공식적으로 들어가 있습니다. GPL로 배포되며 원래 개발은 놀랍게도 퀄컴이 주도하고 있었군요. 지원하는 프로토콜은 아래와 같습니다.Supported on BlueZ:# Bluetooth Core (HCI device and connection manager)# HCI USB, UART, PCMCIA and VHCI (Virtual HCI) drivers# L2CAP# RFCOMM# BNEP# SCOThe BlueZ user space packages provide support for:# SDP (Service Discovery Protocol)# PAN (Personal Area Networking)# LAN (LAN Access over PPP protocol)KDE나 그놈에서 쓰이는 UI버전에서는 몇가지 서비스가 더 추가됩니다.(KDE의 경우 OPP, FTP GNOME의 경우 OBEX)Affix 또한 리눅스용 블루투스 프로토콜로, 노키아 연구소에서 만들어 GPL로 배포한다고 합니다.Supported on Affix:# General Access Profie# Service Discovery Profile# Serial Port Profile# DialUp Networking Profile# LAN Access Profile# OBEX Object Push Profile# OBEX File Transfer Profile# PAN ProfileAffix는 아래와 같은 기기에서 테스팅되었다고 하네요.# Nokia Bluetooth Phone 6210 with Bluetooth battery pack,# Digianswer stack for Windows# Compaq iPaq# Bluetooth stack for Palm OS# Ericsson phones (T68)