Автор Тема: Bluetooth RTL8761BUV [ Решено ]  (Прочитано 4920 раз)

Оффлайн iLya_Sereda

  • Начинающий
  • *
  • Сообщений: 20
    • Финансовое Управление
    • Email
Bluetooth RTL8761BUV [ Решено ]
« : 08.12.2021 11:46:56 »
Здравствуйте!

ОС ALT 9.2 x64   KDE 5.70  Ядро 5.10.61

Купил я модный 5.0 блюпуп на чипе RTL8761BUV от компании Ugreen модель CM390. Воткнул в USB - ОС в трее где часы в разделе Bluetooth пишет "Нет доступных адаптеров". Зашел в терминал, подумал, может не рабочий адаптер, проверяю:

# lsusb
Bus 001 Device 005: ID 0bda:8771 Realtek Semiconductor Corp.

# lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 1: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 2: Dev 5, If 1, Class=Wireless, Driver=btusb, 12M
        |__ Port 2: Dev 5, If 0, Class=Wireless, Driver=btusb, 12M

# rfkill
ID TYPE      DEVICE      SOFT      HARD
 1 bluetooth      hci0         unblo

# hciconfig
hci0:   Type: Primary  Bus: USB
        BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
        DOWN
        RX bytes:21 acl:0 sco:0 events:2 errors:0
        TX bytes:6 acl:0 sco:0 commands:2 errors:0

#hciconfig hci0 up
Can't init device hci0: No such file or directory (2)

Как заставить адаптер работать ? И почему он DOWN ? Как его апнуть?
« Последнее редактирование: 13.12.2021 13:38:42 от iLya_Sereda »

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 284
Re: Bluetooth RTL8761BUV
« Ответ #1 : 08.12.2021 13:18:37 »
Здесь тоже был DOWN, скачали прошивку (фирмварь). Насколько понял, помогло копирование из архива /20201202_LINUX_BT_DRIVER/rtkbt-firmware/lib/firmware в /lib/firmware файлов с rtl8761 в имени.

Оффлайн iLya_Sereda

  • Начинающий
  • *
  • Сообщений: 20
    • Финансовое Управление
    • Email
Re: Bluetooth RTL8761BUV
« Ответ #2 : 09.12.2021 12:28:12 »
Спасибо за ссылку, но в Альте не заработало. Пробовал руками файлы добавить и по инструкции установить с помощью команды make - вываливает ошибку:

# sudo make install
mkdir -p /lib/modules/5.10.61-un-def-alt1/kernel/drivers/bluetooth
rmmod hci_uart
rmmod: ERROR: Module hci_uart is not currently loaded
make: [Makefile:10: install] Ошибка 1 (игнорирование)
make -C bluetooth_uart_driver
make[1]: вход в каталог «/home/sereda/Загрузки/20201202_LINUX_BT_DRIVER/uart/bluetooth_uart_driver»
make -C /lib/modules/5.10.61-un-def-alt1/build M=/home/sereda/Загрузки/20201202_LINUX_BT_DRIVER/uart/bl
make[2]: вход в каталог «/home/sereda/Загрузки/20201202_LINUX_BT_DRIVER/uart/bluetooth_uart_driver»
make[2]: *** /lib/modules/5.10.61-un-def-alt1/build: Нет такого файла или каталога.  Останов.
make[2]: выход из каталога «/home/sereda/Загрузки/20201202_LINUX_BT_DRIVER/uart/bluetooth_uart_driver»
make[1]: *** [Makefile:12: all] Ошибка 2
make[1]: выход из каталога «/home/sereda/Загрузки/20201202_LINUX_BT_DRIVER/uart/bluetooth_uart_driver»
make: *** [Makefile:11: install] Ошибка 2

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 284
Re: Bluetooth RTL8761BUV
« Ответ #3 : 09.12.2021 14:38:46 »
Прошу прощения, вчера не посмотрел как следует, что по ссылке у модели литера A, а у Вашего адаптера B (следующая U означает подключение по USB, а не uart). Его поддержку добавили в ядре 5.12. В Альте есть 5.15, но в Сизифе и 10й версии. Вероятно, можно скачать пакеты и установить вручную, но я не проверял.

Что бы собрать модули ядра, требуются пакеты с заголовочными файлами и инструментами, которые подтянутся по зависимостям:
apt-get install kernel-headers-modules-std-def 
в Вашем случае ядро un-def, значит надо kernel-headers-un-def

Следует учесть, что актуальная на момент написания сообщения версия un-def-5.10.83, то есть придётся обновить ядро с 5.10.61
apt-get update
update-kernel
apt-get install kernel-headers-un-def
reboot
перезапуск нужен, поскольку в Makefile используется uname -r для определения текущего ядра и под него же собирает.

Далее у меня получилось (с INTERFACE=usb, что бы не собирать лишнее)
[root@zt 20201202_LINUX_BT_DRIVER]# make  install INTERFACE=usb
mkdir -p /lib/modules/5.10.83-std-def-alt1/kernel/drivers/bluetooth
Start Realtek Bluetooth USB driver installation
mkdir -p /lib/firmware
Copy rtkbt-firmware/lib/firmware/rtl*_fw to /lib/firmware
cp -a rtkbt-firmware/lib/firmware/rtl*_fw /lib/firmware
Copy rtkbt-firmware/lib/firmware/rtl*_config /lib/firmware
cp -a rtkbt-firmware/lib/firmware/rtl*_config /lib/firmware
make -C usb install
make[1]: вход в каталог «/root/20201202_LINUX_BT_DRIVER/usb»
rmmod btusb
rmmod: ERROR: Module btusb is not currently loaded
make[1]: [Makefile:7: install] Ошибка 1 (игнорирование)
mv /lib/modules/5.10.83-std-def-alt1/kernel/drivers/bluetooth/btusb.ko /lib/modules/5.10.83-std-def-alt1/kernel/drivers/bluetooth/btusb_bak
rmmod rtk_btusb
rmmod: ERROR: Module rtk_btusb is not currently loaded
make[1]: [Makefile:9: install] Ошибка 1 (игнорирование)
make -C ./bluetooth_usb_driver
make[2]: вход в каталог «/root/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver»
make -C /lib/modules/5.10.83-std-def-alt1/build M=/root/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver modules
make[3]: вход в каталог «/usr/src/linux-5.10.83-std-def-alt1»
  CC [M]  /root/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver/rtk_coex.o
  CC [M]  /root/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver/rtk_misc.o
  CC [M]  /root/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver/rtk_bt.o
  LD [M]  /root/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver/rtk_btusb.o
  MODPOST /root/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver/Module.symvers
  CC [M]  /root/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver/rtk_btusb.mod.o
  LD [M]  /root/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver/rtk_btusb.ko
make[3]: выход из каталога «/usr/src/linux-5.10.83-std-def-alt1»
make[2]: выход из каталога «/root/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver»
cp -f ./bluetooth_usb_driver/rtk_btusb.ko /lib/modules/5.10.83-std-def-alt1/kernel/drivers/bluetooth/rtk_btusb.ko
depmod -a 5.10.83-std-def-alt1
make -C ./bluetooth_usb_driver clean
make[2]: вход в каталог «/root/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver»
rm -rf *.o *.mod.c *.mod.o *.ko *.symvers *.order *.a
make[2]: выход из каталога «/root/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver»
echo "install rtk_btusb success!"
install rtk_btusb success!
make[1]: выход из каталога «/root/20201202_LINUX_BT_DRIVER/usb»
[root@zt 20201202_LINUX_BT_DRIVER]#
sudo уже сами добавите, где надо.

Ну и при обновлении ядра придётся собирать опять.

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 284
Re: Bluetooth RTL8761BUV
« Ответ #4 : 09.12.2021 14:44:05 »
Если драйвер соберётся и установится, сообщения от него можно посмотреть dmesg | grep Bluetooth
Следующие два файла ему нужны в /lib/firmware, если я опять ничего не пропустил:
rtl_bt/rtl8761b_fw.bin
rtl_bt/rtl8761b_config
При установке драйвера должны скопироваться. Если их не будет, в журнале сообщит.
« Последнее редактирование: 09.12.2021 14:49:00 от trs »

Оффлайн iLya_Sereda

  • Начинающий
  • *
  • Сообщений: 20
    • Финансовое Управление
    • Email
Re: Bluetooth RTL8761BUV
« Ответ #5 : 13.12.2021 13:37:33 »
Всё работает. :-)  Спасибо за помощь!