본문 바로가기
개발환경/우분투

우분투20.04에서 Bluetooth 5.0 USB 동글 설치: Realtek 8761B Chipset

by 모바일 SW 개발자 Kibua20 2021. 9. 26.
반응형

오래된 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을 참고하세요)

 

Bluetooth 5.0 USB 동글: Realtek RTL8761B chipset을 기반으로 윈도우만 지원함

 

우분투 20.04 버전에서 BT 5.0 USB 동글 동작 확인

우분투 20.04 버전에서 추가적인 BT Driver 설치를 하지 않은 상태에서 BT5.0 USB 동을 연결하고 BT Power on을 시키면 정상적으로 동작하지 않습니다.  BT 5.0 USB 동글의 RTL 8761b 드라이버가 정상적으로 설치되어 있지 않습니다. 

 

우분투 20.04 버전에서 BT 5.0 USB 동글 동작 확인

문제점을 확인하기 위해서 $ sudo dmesg를 확인하면 로그 중에서 "firmware file rtl_bt/rtl8761b_fw.bin not found​"라는 에러를 확인할 수 있습니다. 즉 rtl8761 b_fw.bin를 찾아서 설치해야 합니다.

 

$ sudo dmesg

firmware file rtl_bt/rtl8761b_fw.bin not found ​ 에러 메시지

 

우분투 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 사용하는 우분투 배포판부터는 기본 설치가 될 것으로 예상됩니다.

 

[Updated @2021-09-26 ] Kernel 버전을 업데이트 하는 방법을 https://kibua20.tistory.com/224 에 자세히 설명되어 있습니다. Device Driver로도 업데이트 할 수 있고, Kernel 버전을 업그레이드해도 동작할 것으로 "예상"됩니다. 

 

#우분투 20.04 커널 버전

$ uname -r

우분투 20.04 커널 버전 확인

 

# https://aur.archlinux.org/packages/rtl8761b-fw/에 comment 확인

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를 확인할 수 있습니다. 

우분투 20.04 버전에서 Realteck 8761b Device Driver 설치

 

# rtl8761 b_fw을 rtl8761 b_fw.bin으로 copy

$ sudo cp rtl8761b_fw /usr/lib/firmware/rtl_bt/rtl8761b_fw.bin 

rtl8761b_fw을 /usr/lib/firmware/rtl_bt/rtl8761b_fw.bin​ 으로 copy

 

우분투 20.04 버전에서 Realteck 8761b Device Driver 동작 확인

USB 동글을 다시 꽂거나 PC를 재부팅해서 dmesg를 확인하면 기존에서 Device dirver 에러 해결되어 있음을 확인 가능합니다.

 

$ sudo dmesg | grep Bluetooth 

dmesg 로 BT driver 로딩 확인

 

dmesg에서 Device Driver를 정상 설치됨을 확인하고 시스템 설정의 블루투스 메뉴에서 BT Power on 하면 Pairing이 가능한  BT Device가 검색됩니다.  

우분투 20.04 버전에서 Realteck 8761b Device Driver 동작 확인

 

우분투 20.04 버전에서 2개 이상의 BT 헤드셋을 pairing 경우

2개 이상의 BT 헤드셋을 PC와 Pairing 한 경우에는 시스템 - 소리  메뉴에서 사운드 출력을 선택할 수 있습니다.  음악을 듣기 위해서는 A2DP로 sync 가 되어야 고음질로 음악을 들을 수 있습니다. 

우분투 20.04 버전에서 2개 이상의 BT 헤드셋을 pairing 경우

 

 

우분투 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

 

※ 참고 자료: 

 

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 업데이트

Ubuntu 16.04 에서 BT 5.0 USB 동글 설치 사례

 

관련 글

[개발환경/윈도우와 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 개념과 명령어 사용 방법 및 예제

[모바일 SW 개발/Python] - MobaXterm (Cygwin)에서 Python 및 PIP 설치

[개발환경/Web Server] - 우분투 20.04에서 Flask를 서비스 등록: 부팅 시 자동 실행

반응형



댓글16

  • Favicon of https://futurestrade.tistory.com BlogIcon FireHippo 2021.02.22 13:37 신고

    잘보고갑니다
    답글

  • ubuntu 2021.02.23 17:56

    와,,, 정말 감사합니다 며칠째 해결을 못했는데 단번에 됐습니다.
    답글

  • UBUNTU_16.04 LTS 2021.07.26 16:24

    우선 좋은 내용 감사합니다.
    일단 위에 archlinux 사이트의 원본 게시글 링크는 깨졌습니다. 404 not found가 뜨네요. 하지만 rtl8761b_fw 파일 다운로드 링크는 살아 있어서 받았습니다. 그리고 본문 포함하여 여러 시도를 다 해봤는데도 실패했습니다..

    사용환경으로는 우분투 16.04 LTS, 커널은 4.15 버전입니다. 사용한 동글은 RealTek 8761B 칩셋을 기반으로 하는 제품이구요. rtl8761b_fw 펌웨어 파일만 /lib/firmware/rtl_bt에 넣어놓고, 확장자 .bin으로 변경도 하였습니다.

    하지만 여전히 안 되네요. 제 환경에서는 애초에 sudo dmesg | grep Bluetooth 에서 보면 자꾸 rtl8761a 버전을 로드하려고 시도하고 있습니다. 발생하는 에러로는 다음과 같은데, 동시에 발생한 것은 아니고 이것저것 하다보면 결국 저 안에서 발생하고 해결이 안 됩니다. 구글링도 몇 시간 동안 해보고 찾아봤는데, 제대로 해결한 글은 결국 찾지 못했네요..

    - hci0: HCI_OP_READ_LOCAL_VERSION failed (-110)
    - hci0: download fw command failed (-110)
    - hci0: unknown project id 14
    - hci0: Direct firmware load for rtl_bt/rtl8761a_config.bin failed with error -2
    - hci0: Direct firmware load for rtl_bt/rtl8761a_fw.bin failed with error -2

    물론 rtl8761a_fw랑 rtl8761a_config 파일도 받아서 넣어봤습니다만 마찬가지 입니다ㅋㅋ 후

    참고: https://linuxreviews.org/Realtek_RTL8761B
    답글

    • 링크가 정말로 없어졌네요. 최신 20.04 LTS에서 realteck usb bt 모듈(ko)만 가져와서 잘 동작한 경우입니다. 운이 좋아서(?) 우분투 20.04의 kernel 에 필요한 사항은 다 들어가 있었던 것 같습니다.

      우분투 16.04 에서는 최신 버전의 커널에서 usb bt 드라이버를 16.04 의 커널로 back porting하고 빌드를 다시 하면 동작을 할 것 같지만, 리눅스 커널 개발자가 아니면 실제적으로 어렵습니다. 차라리 우분투를 최신 버전으로 올리는 것이 현실적인 대안같습니다.

    • BlogIcon UBUNTU_16.04 LTS 2021.07.27 13:25

      헉. 빠르게 댓글로 의견 남겨주셔서 감사합니다. 우선 기쁜 결론부터 다시 말씀드리자면 성공했습니다.

      우분투 버전을 올리자니 괜히 기존에 돌리던 개발코드들이 잘 되지 않을까봐 염려되어 블루투스를 포기할까도 생각했습니다.

      댓글 이후에 이것저것 더 찾아보다가 어떤 사람이 '바보 같지만 블루투스 관련 프로그램을 모두 재설치 했더니 됐다'라는 글을 보고 똑같이 해보았습니다. blueman, bluez 등이 있더군요. 이걸 다 재설치 했습니다.

      sudo apt install --reinstall blueman* 등의 커맨드를 통해서 말이죠.

      그랬더니 되었습니다.. 왜 되었는지는 모르겠습니다. 다만 소리가 무전기 통해서 듣는 것처럼 노이즈가 너무 심하더군요. 소리 세팅에서 HSP 대신에 A2DP로 했는데도 큰 차이는 없었고, 결국 동글이를 본체 USB포트에서 이곳저곳 옮기다 보니 소리가 정상적으로 출력됩니다. 이것도 이유는 모르겠습니다.. ㅋㅋ

      본문을 먼저 보고 우분투에서도 된다는 희망에 동글이를 주문했던 건데, 잘 되지 않아서 사실 원망도 하였지만 해결의 실마리를 찾는 데 도움이 많이 되었습니다. 감사합니다.

    • 아~ 성공하셨군요. bt stack에도 차이가 있었군요. 축하드려요. 개발환경 땜에 이전 OS 쓰시는 것이면 docker도 좋은 tool 이 될 것 같네요.

      즐 프로그래밍하세요~~

  • 프밍 2021.08.03 22:06

    iptime bt50 동글도 동일한 방법으로 성공적으로 되네요! 완전 도움 받고 갑니다~
    답글

  • MINKGKYME 2021.08.20 13:21

    이 글을 보고 쿠팡에서 엑토 블루투스 5.0 USB 동글을 샀는데 동작을 안하네요 ㅠㅠ
    https://www.coupang.com/vp/products/2071040442
    firmware 와 config 모두 넣으니 드라이버 없다는 문구는 사라졌습니다
    (hci0: RTL: firmware file rtl_bt/rtl8761b_fw.bin not found)
    그래도 통신이 안되네요
    [49600.332356] Bluetooth: hci0: command 0xfc20 tx timeout
    [49608.492736] Bluetooth: hci0: RTL: download fw command failed (-110)
    새로 사는게 더 빠를려나 고민 중입니다 ㅋㅋㅋ
    답글

    • 구매하신 bt 동글의 chip이 rtl8761b는 맞나요? 우분투 20.04는 제가 잘 사용하고 있고, 16.04는 bt stack 재 설치해서 성공하신 분이 있습니다.

      fw copy 위치가 아래 위치가 맞는지요?

      sudo cp rtl8761b_fw /usr/lib/firmware/rtl_bt/rtl8761b_fw.bin​

    • BlogIcon MINGKYME 2021.08.21 00:08

      홈페이지 드라이버 파일 안에 rtl8761b_mp_chip_bt40_fw_asic_rom_patch_new.dll 이라는 파일이 존재해서 rtl8761로 인지하고 일부러 가격대 있는 제품으로 골랐는데 이런 상황이 왔네요 ㅋㅋㅋ
      일단 NX-BT50 (위 리스트에 존재함) 구매 하고 배송 중입니다.
      이 친구가 변종인지 제 컴퓨터가 문제인지 확인을 할 수 있을꺼 같네요 ㅋㅋㅋ

    • BlogIcon MINGKYME 2021.08.21 08:54

      새벽배송으로 제품이 와서 테스트 해보니 똑같은 에러로 동작하질 않네요

      경로&파일명 모두 체크 했습니다 문제 없습니다

      구글링 하다
      https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/rtl_bt
      위 경로에 있는 파일이 더 용량이 큰 것을 확인하고 교체했더니 동글이에 불이 들어오네요

      GUI에선 안되는데 커멘드에선 작동하는걸 확인했습니다.

  • STT 개발자 2021.09.08 09:36

    감사합니다. 이글 보고 ubuntu 20.04에서 iptime bt50을 정상 연결해서 사용하고 있습니다.
    참고로 18.04에서는 블루투스 4.0 usb 동글이 호환이 잘 되었습니다.
    블루투스 5.0은 아마 커널 버전 때문에 제대로 호환이 안되는것 같았습니다.
    18.04 에서 테스트 해본 제품으로는 csr 4.0 칩셋을 쓴 큐센 100BT,
    Broadcom 칩셋을 쓴 퓨전에프앤씨 BU-4096 입니다.
    좋은글 올려 주셔서 감사합니다.
    답글