Модули MediaTek MT7922 с поддержкой WiFi 6 и Bluetooth 5.3 недавно появились в нескольких мини-ПК, но Bluetooth не работал в Linux из-за отсутствия драйверов. В этой статье показано, как легко включить Bluetooth в модулях MediaTek MT7922 при работе с Ubuntu 24.04.
Ранее уже сообщалось , что Иэн Моррисон предоставил патч , добавляющий идентификаторы для модуля MT7922 (Azurewave AW-XB591NF), используемого в последних мини-ПК GEEKOM, еще в марте. Теоретически можно было пересобрать ядро Linux, но теперь, когда вышло ядро Linux 6.10 , процесс стал намного проще, поскольку Canonical предоставила это ядро для Ubuntu. Остается только установить его, и проблема решена!
Ubuntu 24.04 поставляется с ядром Linux 6.8, и в логах можно увидеть ошибку opcode Bluetooth.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
aey@AE7-CNX:~$ uname -a Linux AE7-CNX 6.8.0-38-generic #38-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 7 15:25:01 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux aey@AE7-CNX:~$ dmesg | grep -i bluetooth [ 7.341849] Bluetooth: Core ver 2.22 [ 7.341877] NET: Registered PF_BLUETOOTH protocol family [ 7.341879] Bluetooth: HCI device and connection manager initialized [ 7.341884] Bluetooth: HCI socket layer initialized [ 7.341888] Bluetooth: L2CAP socket layer initialized [ 7.341894] Bluetooth: SCO socket layer initialized [ 8.863982] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 8.863987] Bluetooth: BNEP filters: protocol multicast [ 8.863991] Bluetooth: BNEP socket layer initialized [ 9.446360] Bluetooth: hci0: Opcode 0x0c03 failed: -110 |
При попытке включить Bluetooth в настройках появляется окно «Bluetooth выключен» с неактивной кнопкой переключения, которую невозможно передвинуть для активации.
Bluetooth можно включить, загрузив ядро Linux 6.10 или новее с сервера основных ядер Ubuntu . К сожалению, образы amd64 для Linux 6.10 пока недоступны.
Для тестирования были загружены образы Linux 6.10-rc4 и установлены следующим образом:
1 2 3 4 5 |
wget https://kernel.ubuntu.com/mainline/v6.10-rc4/amd64/linux-headers-6.10.0-061000rc4-generic_6.10.0-061000rc4.202406161734_amd64.deb wget https://kernel.ubuntu.com/mainline/v6.10-rc4/amd64/linux-headers-6.10.0-061000rc4_6.10.0-061000rc4.202406161734_all.deb wget https://kernel.ubuntu.com/mainline/v6.10-rc4/amd64/linux-image-unsigned-6.10.0-061000rc4-generic_6.10.0-061000rc4.202406161734_amd64.deb wget https://kernel.ubuntu.com/mainline/v6.10-rc4/amd64/linux-modules-6.10.0-061000rc4-generic_6.10.0-061000rc4.202406161734_amd64.deb sudo dpkg -i *.deb |
После перезагрузки можно убедиться, что работает Linux 6.10 и Bluetooth действительно включен.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
aey@AE7-CNX:~$ uname -a Linux AE7-CNX 6.10.0-061000rc4-generic #202406161734 SMP PREEMPT_DYNAMIC Sun Jun 16 21:47:04 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux aey@AE7-CNX:~$ dmesg | grep -i bluetooth [ 1.544918] Bluetooth: Core ver 2.22 [ 1.544956] NET: Registered PF_BLUETOOTH protocol family [ 1.544958] Bluetooth: HCI device and connection manager initialized [ 1.544964] Bluetooth: HCI socket layer initialized [ 1.544968] Bluetooth: L2CAP socket layer initialized [ 1.544974] Bluetooth: SCO socket layer initialized [ 1.555268] Bluetooth: hci0: HW/SW Version: 0x008a008a, Build Time: 20240219103618 [ 3.807004] Bluetooth: hci0: Device setup in 2201591 usecs [ 3.807017] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported. [ 3.864865] Bluetooth: hci0: AOSP extensions version v1.00 [ 3.864875] Bluetooth: hci0: AOSP quality report is supported [ 4.853938] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 4.853944] Bluetooth: BNEP filters: protocol multicast [ 4.853951] Bluetooth: BNEP socket layer initialized [ 4.855511] Bluetooth: MGMT ver 1.22 [ 6.539271] Bluetooth: RFCOMM TTY layer initialized [ 6.539280] Bluetooth: RFCOMM socket layer initialized [ 6.539285] Bluetooth: RFCOMM ver 1.11 |
Тестирование проводилось на мини-ПК GEEKOM AE7 с модулем Azurewave AW-XB591NF, но другие производители модулей MT7922 могут использовать иные HW ID, поэтому результаты могут отличаться. Не рекомендуется использовать RC-версии на рабочих машинах, и возможно, стоит дождаться выхода стабильного образа Linux 6.10. Следует учитывать, что Canonical предоставляет основные версии ядер без гарантий работоспособности и не оказывает поддержки по ним. Релиз Ubuntu 24.04.1 запланирован на 15 августа и может включать необходимые изменения для работы Bluetooth на таких модулях MT7922 (подтверждение ожидается). Другие дистрибутивы Linux также должны работать при условии возможности установки ядра Linux 6.10.
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.