오래된 PC에 무선 Bluetooth 이어폰으로 사용하려 USB BT 동글을 구매할 계획으로 최근 BT 5.0 기반의 BT 이어폰이 나오기 때문에 USB 동글도 BT 5.0을 지원하는 것으로 구매할 예정입니다. BT 5.0과 BT 4.0의 차이점은 음질은 Codec에 따라서 차이가 발생하기 때문에 구매 포인트는 아니었고, 인식 거리와 저전력이 가능하기 때문에 5.0을 사용할 예정이었습니다.
최근에 한국에서 판매하고 있는 Bluetooth 5.0 USB 동글은 Realtek RTL8761B chipset을 기반으로 만들어서 판매하고 있습니다. 제조사는 달라도 내부 구성하는 Main chip은 RTL8761b로 동일하고 디자인만 다소 차이가 있는 것 같습니다.
- ETM Networks IPTime BT50
- 넥시 블루투스 무선 PC용 동글 v5.0 USB NX-BT50
- 엠비에프 USB 블루투스 5.0 동글
- (NEXT 304BT) 블루투스5.0 USB 동글이동글이 APTX코덱지원
- ORICO USB 블루투스 5.0 동글
- 디옵텍 USB블루투스 5.0 동글
제가 구매한 제품의 제조사 홈페이지에서는 BT 5.0 USB 동글의 스펙을 확인하면 지원 OS가 'Windows 전용'으로 되어 있지만, 인터넷 검색 결과 우분투에서도 사용할 수 있음을 확인했고, 실제 동작하는지 체크하는 과정을 포스팅하게 되었습니다. (윈도우 설치 과정은 [개발환경/윈도우와 WSL] - Windows 10에서 Bluetooth 5.0 USB 동글 사용: Realtek 8761B Chipset을 참고하세요)
우분투 20.04 버전에서 BT 5.0 USB 동글 동작 확인
우분투 20.04 버전에서 추가적인 BT Driver 설치를 하지 않은 상태에서 BT5.0 USB 동을 연결하고 BT Power on을 시키면 정상적으로 동작하지 않습니다. BT 5.0 USB 동글의 RTL 8761b 드라이버가 정상적으로 설치되어 있지 않습니다.
문제점을 확인하기 위해서 $ sudo dmesg를 확인하면 로그 중에서 "firmware file rtl_bt/rtl8761b_fw.bin not found"라는 에러를 확인할 수 있습니다. 즉 rtl8761 b_fw.bin를 찾아서 설치해야 합니다.
$ sudo dmesg
우분투 20.04 버전에서 Realteck 8761b Device Driver 지원 버전 확인
'rtl8761b_fw.bin' 설치 위치를 검색하면 https://aur.archlinux.org/packages/rtl8761b-fw/에서 github.com/Realtek-OpenSource/android_hardware_realtek 설치할 수 있습니다. 해당 web page의 내용을 확인해보면 Kernel 5.9.10부터 지원한다고 합니다. 우분투 Kernel버전을 확인해보면 5.8.0을 확인할 수 있습니다. 즉 현재 커널은 지원하지 않지만 향후 kernel5.9.10 사용하는 우분투 배포판부터는 기본 설치가 될 것으로 예상됩니다.
- Realtek RTL 8761b Driver 설치:
https://aur.archlinux.org/packages/rtl8761b-fw/ https://raw.githubusercontent.com/Realtek-OpenSource/android_hardware_realtek/rtk1395/bt/rtkbt/Firmware/BT/rtl8761b_fw - RTL 8761b Driver 리눅스 지원 커널: Kernel V5.9.10
- 우분투 20.04 커널 버전: 5.8.0
[Updated @2021-09-26 ] Kernel 버전을 업데이트 하는 방법을 https://kibua20.tistory.com/224 에 자세히 설명되어 있습니다. Device Driver로도 업데이트 할 수 있고, Kernel 버전을 업그레이드해도 동작할 것으로 "예상"됩니다.
#우분투 20.04 커널 버전
# https://aur.archlinux.org/packages/rtl8761b-fw/에 comment 확인
우분투 20.04 버전에서 Realteck 8761b Device Driver 설치
https://aur.archlinux.org/packages/rtl8761b-fw/ github.com/Realtek-OpenSource/android_hardware_realtek 에서 'rtl8761b_fw.bin' 설치해야 합니다. 해당 Web page의 Sources 부분을 확인해보면 rtl8761b_fw를 클릭해서 다운로드하고 이를 /usr/lib/firmware/rtl_bt에 복사합니다. rtl_bt 폴더 내용을 확인해보면 기본 설치되는 Realtek chipset의 device driver를 확인할 수 있습니다.
# rtl8761 b_fw을 rtl8761 b_fw.bin으로 copy
$ sudo cp rtl8761b_fw /usr/lib/firmware/rtl_bt/rtl8761b_fw.bin
우분투 20.04 버전에서 Realteck 8761b Device Driver 동작 확인
USB 동글을 다시 꽂거나 PC를 재부팅해서 dmesg를 확인하면 기존에서 Device dirver 에러 해결되어 있음을 확인 가능합니다.
dmesg에서 Device Driver를 정상 설치됨을 확인하고 시스템 설정의 블루투스 메뉴에서 BT Power on 하면 Pairing이 가능한 BT Device가 검색됩니다.
우분투 20.04 버전에서 2개 이상의 BT 헤드셋을 pairing 경우
2개 이상의 BT 헤드셋을 PC와 Pairing 한 경우에는 시스템 - 소리 메뉴에서 사운드 출력을 선택할 수 있습니다. 음악을 듣기 위해서는 A2DP로 sync 가 되어야 고음질로 음악을 들을 수 있습니다.
우분투 20.04 버전에서 BT 헤드셋 codec 확인
BT 헤드셋을 PC와 BT codec을 확인하는 방법입니다. $ apt install bluez-hcidump 명령어도 hcidump를 설치 후에 $ sudo hcidump avdtp 명령어 입력 후 BT 헤드셋을 연결하면 PC와 헤드셋이 주고받은 메시지를 확인할 수 있습니다. 제가 사용하는 BT 헤드셋은 SBC codec, Joint Streo, 8 subbands를 사용하고 있습니다.
$ sudo apt install bluez-hcidump
$ sudo hcidump avdtp
HCI sniffer - Bluetooth packet analyzer ver 5.53
device: hci0 snap_len: 1500 filter: 0x400
< AVDTP(s): Discover cmd: transaction 13 nsp 0x00
> AVDTP(s): Discover rsp: transaction 13 nsp 0x00
ACP SEID 1 - Audio Sink
ACP SEID 3 - Audio Sink
ACP SEID 2 - Audio Sink
< AVDTP(s): Set config cmd: transaction 14 nsp 0x00
ACP SEID 1 - INT SEID 2
Media Transport
Media Codec - SBC
44.1kHz
JointStereo
16 Blocks
8 Subbands
Loudness
Bitpool Range 2-53
> AVDTP(s): Set config rsp: transaction 14 nsp 0x00
< AVDTP(s): Open cmd: transaction 15 nsp 0x00
ACP SEID 1
※ 참고 자료:
- robertsibek.medium.com/install-c-tech-btd-01-bluetooth-adapter-on-ubuntu-20-10-realtek-8761b-b146169a6228
www.explorelinux.com/ubuntu-bluetooth-usb-adapter-not-working-ubuntu-20-04-lts/- https://linuxreviews.org/Realtek_RTL8761B
Ubuntu 16.04 에서 BT 5.0 USB 동글 설치 사례
제 블로그 방문자 중에서 Ubuntu 16.04에서도 BT 5.0 USB 동글 설치를 성공한 사례가 있어 공유합니다.
- BT Stack 재설 치: blueman, blueman. ($ sudo apt install --reinstall blueman*)
- BT FW 업데이트
관련 글
[개발환경/윈도우와 WSL] - Windows 10에서 Bluetooth 5.0 USB 동글 사용: Realtek 8761B Chipset
[개발환경/Tips] - Spotify 한국에서 사용하는 방법
[블로그 관리/티스토리 블로그 관리] - 티스토리 블로그를 Google News에 등록하는 방법
[개발환경/Tips] - 네이버 동영상 다운로드 방법 (동영상과 설명 포함)
[모바일 SW 개발/Android] - Android 스마폰을 PC 화면으로 미러링: Mirroid
[개발환경/Tips] - 카카오 TV 동영상 다운로드: m4s 파일 다운로드 방법
[개발환경/Tips] - 카카오 TV 1080p 동영상 다운로드: MPEG DASH의 MPD 활용
[개발환경/Tips] - 광고 없는 Android 토렌트 앱: LibreTorrent
[모바일 SW 개발/REST API] - 라이딩 앱 Strava API 사용해보기: Webhook 구현
[모바일 SW 개발/REST API] - 외부 망에서 Localhost를 접속하기: localtunnel (무료, domain제공)
[모바일 SW 개발/REST API] - 공공 데이터 Open API 사용법: 코로나 확진자 현황 API (sample code)
[개발환경/우분투] - 우분투 20.04에서 nVidia HDMI 소리 송출 안되는 문제 해결 방법
[개발환경/우분투] - 21:9 모니터 사용 시 화면 분할 기능 사용하기 (우분투, 윈도우10)
[개발환경/우분투] - Docker 개념과 명령어 사용 방법 및 예제
댓글