Ugreen Bluetooth5 Dongle, CM390(8761BUV): 리눅스 지원 불가! (적어도 지금은..)

흠.. 얼핏 찾아보고 된다고 해서 샀는데.. 젠장!
일요일 하루를 꼬박 투자한 결과가, ‘아직은 안된다’ 였다. (이 글 마지막에 있지만, 커널 6.1.1 에서 될 가능성은 아주 높다.)
그 덕에 이런 저런 잡지식은 늘었으나..


BlueTooth 기기가 리눅스에서 지원되는지 확인하려면, 먼저 btusb 모듈의 소스코드를 확인해야 한다.
길고 긴 코드 중에서 뭘 봐야 하는고 하니..

# lsusb
Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 006: ID 2b89:8761 Realtek Bluetooth Radio

현재 동글이 2개가 붙어있다. 하나는 CSR 호환 기종, 그리고 문제의 Ugreen.
여기에서 보이는 2b89 는 Vendor 식별자이고, 8761 은 ProdID(Product ID) 이다. 이게 btusb.c 에 등록이 돼 있으면 사용가능하고, 그렇지 않으면 불가능한 듯 하다.
현재, Ugreen CM390 은 Vendor 2b89, ProdID 8761 인데, btusb.c 에 아직 올라있질 못하다. 심지어 개발 커널인 6.1 에도 없다. 검색을 해보니.. 11월 초에 보고는 된 듯한데.. (물론 당연히 CSR 은 btusb.c 에 등록돼 있고, 따라서 제대로 잘 작동한다.)
이게 어느 세월에 적용이 될지는… (아무리 늦어도 1년 안에야 되겠지.)

이 파일만 바꿔서 컴파일하면 되려나??
그거 하나 하자고 커널 컴파일을???
리눅스를 처음 설치하던 시기엔 커널 컴파일도 당연하다는 듯 하긴 했었는데.. 내가 해 봤었는진 기억이 나지 않는다. 아마 안해봤겠지.

** 참고로..

이 기기에 쓰인 칩셋은 Realtek 8761BUV 이고, 이를 리눅스에서 쓸 수 있는지 여부를 검색하면, linuxreviews.org 에 있는 대로, 펌웨어를 설치해야 한다는 글이 대다수다.
이게 틀린 방법은 아닌데, 아치리눅스에서나, Ubuntu 22.04 기반에서는 더 이상 할 필요가 없다. 이미 펌웨어는 설치 돼 있기 때문이다.
펌웨어가 있기 때문에 블루투스 동글이 제대로 인식은 된다. btmgmt 라든가, bluetoothctl 에서 제대로된 동글 정보를 볼 수 있다.
그!러!나!
블루투스 기기를 찾지를 못한다. 이러면 뭐, 말짱 꽝이지.
이게 되려면, btusb 모듈에 저 정보가 등록되어야 하는 모양이다.


자.. 문제는 이게 아니고.
제대로 되는 동글을 사고 싶은데, Vendor/ProdID 를 알 방법이 없네.
사서 껴보고 나서야 알 수 있게 되니..


** 2022.12.12

결국 커널 빌드에 도전했다.
과연 성공할 수 있을지..???

……

된다.
커널 빌드가 이렇게 시간이 오래 걸리는 작업인줄은 미처 몰랐다. 무려 3시간 정도나.. 어쨌든, btusb.c 에 저 값을 추가했더니 이 동글, 잘 작동한다. (오래 써보진 않아서 어떤 다른 문제가 있을 지는 모르겠다.)
현재 내 커널은 6.0.12-arch1-1 인데, 작업을 시작했을 때 6.1 이 정식 발표가 된 상태였다. 따라서 자연스럽게 6.1 소스로 작업을 했고, 당연히 6.1이 설치 됐다.
그런데.. 이렇게 했더니 몇가지 문제가 발생한다. 물론 묘하게도 커널이 바뀐 상황(6.0.12 -> 6.1.0)에서 내가 작업을 했기에 이런 상황이 돼버리긴 했지만, 내가 만든 커널 꾸러미를 설치해서 성공은 했지만, 부수 꾸러미(kernel-headers 라든가..)가 없어서 dkms 쪽에 문제가 발생한다.

흠.. 이렇게 만든 btusb.ko.zst 만 바꿔치기하면 안되려나? 커널을 모두 새로 컴파일해야 하나..?
일단 아치리눅스에 커널 6.1 꾸러미가 올라오면 설치한 뒤, btusb.ko.zst 만 내가 만든 것으로 바꿔봐야겠다.

** 2022.12.14

오늘 확인해보니, 이 내용이 반영되었다! 발빠른 아치리눅스라면, 잘하면 올해 안으로도 쓸 수 있게될 지도 모르겠네.
결국 Ugreen 때문에 팔자에 없던 커널 빌드까지 해본 셈이 됐는데.. 이게 리눅스의 매력이라면 매력인게지.

** 22.12.22

아치리눅스 커널이 6.1.1(6.1.1-arch1-1) 로 올라가긴 했는데, 아직 이 내용은 반영되지 않았다. 정식 커널은 아직 6.1 인데, 아치리눅스에서 추가/수정하여 6.1.1 로 공개한 모양이다.
아직 저 내용은 master 에만 있을 뿐 6.1.1 로 Tag 되지 않은 상황이라.. 정식 커널이 6.1.1 로 올라가면 그때야 비로소 이 동글을 쓸 수 있겠지.. (올해 안에는 아무래도 어려울 듯?)

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.