Подключение драйверов Wi-Fi и Bluetooth MediaTek M7902 в Ubuntu 24.04 простым способом

В прошлом месяце было отмечено, что чипсет MediaTek MT7902 WiFi 6E и Bluetooth 5.x наконец-то получил драйверы в основной ветке Linux и должен быть частью релиза Linux 7.0.

Беспроводные модули MT7902 используются во многих ноутбуках под управлением Windows, но пользователи просили драйверы для Linux уже почти два года. Один из методов — дождаться, пока драйверы появятся в используемом дистрибутиве, но пользователь «hmtheyboy154» не захотел ждать и перенес драйверы для ядер Linux с версий 6.6 до 6.19. Поскольку у меня есть один из таких ноутбуков, а именно ASUS Vivobook 16, я решил попробовать установить их на Ubuntu 24.04, но этот метод должен работать и в других дистрибутивах Linux.

Mediatek MT7902 Linux

Следует отметить, что этот метод работает только с драйвером PCIe, поэтому если используется модуль SDIO, потребуется другое решение. Мой ноутбук под управлением Ubuntu 24.04 действительно использует модуль MT7902 PCIe (AW-XB552NF):

jaufranc@CNX-LAPTOP-5:~$ lspci | grep 7902
0000:02:00.0 Network controller: MEDIATEK Corp. Device 7902

Установить драйвер можно в четыре шага:

git clone https://github.com/hmtheboy154/mt7902
cd mt7902/
make -j8
sudo make install

Можно дополнительно установить микропрограмму, хотя она уже может быть частью дистрибутива:

sudo make install_fw

После этого можно перезагрузить ноутбук, но вместо этого был использован modprobe:

sudo modprobe mt7902e

Затем удалось включить Wi-Fi в Ubuntu 24.04 и подключиться к точке доступа.

MediaTek MT7902 Ubuntu 24.04 WiFi

Журнал ядра должен выглядеть примерно так:

[1014428.026033] wlo1: deauthenticating from 3c:cd:57:f5:af:91 by local choice (Reason: 3=DEAUTH_LEAVING)
[1014439.871042] mt7902e 0000:02:00.0: ASIC revision: 79020000
[1014439.966746] mt7902e 0000:02:00.0: HW/SW Version: 0x8a108a10, Build Time: 20251212032046a
[1014439.988460] mt7902e 0000:02:00.0: WM Firmware Version: ____000000, Build Time: 20251212032127
[1014440.940270] mt7902e 0000:02:00.0 wlo1: renamed from wlan0
[1014443.452779] wlo1: authenticate with 3c:cd:57:f5:af:91 (local address=10:68:38:3a:0d:da)
[1014443.452797] wlo1: send auth to 3c:cd:57:f5:af:91 (try 1/3)
[1014443.467182] wlo1: authenticated
[1014443.468008] wlo1: associate with 3c:cd:57:f5:af:91 (try 1/3)
[1014443.507278] wlo1: RX AssocResp from 3c:cd:57:f5:af:91 (capab=0x511 status=0 aid=3)
[1014443.543479] wlo1: associated
[1014443.545773] wlo1: Limiting TX power to 27 (30 - 3) dBm as advertised by 3c:cd:57:f5:af:91

Также был проведен быстрый тест iperf3 с использованием Wi-Fi на частоте 5 ГГц, примерно в 2 метрах от Xiaomi Mi Router AX6000 .

  • Скачивание
    jaufranc@CNX-LAPTOP-5:~$ iperf3 -t 60 -c 192.168.31.12 -i 10 -R
    Подключение к хосту 192.168.31.12, порт 5201
    Режим реверса, удаленный хост 192.168.31.12 отправляет
    [  5] локальный 192.168.31.152 порт 41870 подключен к 192.168.31.12 порт 5201
    [ ID] Интервал           Передача     Битрейт
    [  5]   0.00-10.01 сек   528 МБайт   443 Мбит/сек
    [  5]  10.01-20.01 сек   530 МБайт   444 Мбит/сек
    [  5]  20.01-30.01 сек   477 МБайт   400 Мбит/сек
    [  5]  30.01-40.01 сек   484 МБайт   406 Мбит/сек
    [  5]  40.01-50.01 сек   432 МБайт   362 Мбит/сек
    [  5]  50.01-60.01 сек   493 МБайт   414 Мбит/сек
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Интервал           Передача     Битрейт         Retr
    [  5]   0.00-60.01 сек  2.88 ГБайт   412 Мбит/сек   23             отправитель
    [  5]   0.00-60.01 сек  2.88 ГБайт   412 Мбит/сек                  получатель
    
    iperf завершен.

    [Время форматирования: 0.0007 секунд]

  • Загрузка
    jaufranc@CNX-LAPTOP-5:~$ iperf3 -t 60 -c 192.168.31.12 -i 10
    Подключение к хосту 192.168.31.12, порт 5201
    [  5] локальный 192.168.31.152 порт 35586 подключен к 192.168.31.12 порт 5201
    [ ID] Интервал           Передача     Битрейт         Retr  Cwnd
    [  5]   0.00-10.01 сек   433 МБайт   363 Мбит/сек    0   1.09 МБайт
    [  5]  10.01-20.01 сек   547 МБайт   459 Мбит/сек    0   2.43 МБайт
    [  5]  20.01-30.01 сек   568 МБайт   477 Мбит/сек    0   2.43 МБайт
    [  5]  30.01-40.01 сек   567 МБайт   476 Мбит/сек    0   2.43 МБайт
    [  5]  40.01-50.01 сек   566 МБайт   475 Мбит/сек    0   2.43 МБайт
    [  5]  50.01-60.03 сек   550 МБайт   460 Мбит/сек    0   2.43 МБайт
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Интервал           Передача     Битрейт         Retr
    [  5]   0.00-60.03 сек  3.16 ГБайт   452 Мбит/сек    0             отправитель
    [  5]   0.00-60.04 сек  3.16 ГБайт   452 Мбит/сек                  получатель
    
    iperf завершен.

    [Время форматирования: 0.0008 секунд]

Около 400-450 Мбит/с в каждом направлении, что должно быть нормально при скорости соединения 600 Мбит/с, плюс мой провайдер поддерживает только 300 Мбит/с на скачивание/загрузку.

MT7902 Linux Link Speed

Также была опробована работа с Bluetooth, но изначально она не работала, так как не удавалось включить его в настройках. В итоге было замечено, что требуется просто другая ветка в том же репозитории GitHub:

git clone https://github.com/hmtheboy154/mt7902 -b bluetooth_backport btusb_mt7902
cd btusb_mt7902/
make -j8
sudo make install
sudo make install_fw
sudo rmmod btusb
suydo rmmod btmtk
sudo modprobe btusb_mt7902

Затем удалось включить Bluetooth, спарить смартфон с ноутбуком и передать файл с телефона Android на ноутбук.

MT7902 Linux Bluetooth

Следует отметить, что модули btusb и btmtk конфликтуют с btusb_mt7902, поэтому их пришлось удалить, иначе возникала ошибка:

jaufranc@CNX-LAPTOP-5:~/btusb_mt7902$ sudo modprobe btusb_mt7902
modprobe: ERROR: could not insert 'btusb_mt7902': Exec format error

Чтобы сделать это на постоянной основе, был создан файл /etc/modprobe.d/blacklist_btusb.conf с содержимым:

blacklist btusb btmtk

Поддержка WiFi и Bluetooth для модулей MT7902 в Linux потребовала много времени, но сейчас их достаточно просто установить на Ubuntu 24.04, не дожидаясь официального релиза.

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments