zaLinux.ru

Как установить драйвер для Wi-Fi Mediatek MT7921 и Mediatek MT7961 в Linux


В данной заметке будет показано, как решить проблему с неработающими Wi-Fi адаптерами Mediatek MT7921 и Mediatek MT7961, которые вы можете найти в последних моделях ноутбуков, например, таких как ASUS ROG G15 и Asus TUF Gaming A15 FX506L-HN004.

Нам необходим драйвер mt76, который обеспечивает работу следующих чипсетов (источник):

  • MT7610U 802.11a/b/g/n/ac 1T1R 2.4/5GHz USB Chip
  • MT7612/MT7662 802.11a/b/g/n/ac 2T2R 2.4/5GHz PCIe/USB Chip
  • MT7630E 802.11a/b/g/n 1T1R 2.4/5GHz PCIe Chip
  • MT7610E 802.11a/b/g/n/ac 1T1R 2.4/5GHz PCIe Chip
  • MT7603E 802.11b/g/n 2T2R 2.4GHz PCIe chip and MT7628 802.11b/g/n 2T2R 2.4GHz SoC Device (4.7+)
  • MT7615 802.11a/b/g/n/ac 4T4R 2.4/5GHz PCIe Chip (5.2+)
  • MT7622 802.11b/g/n 4T4R 2.4GHz SoC Device (5.7+)
  • MT7663 802.11a/b/g/n/ac 2T2R 2.4/5GHz PCIe/USB/SDIO Chip (5.8+)
  • MT7915 802.11a/b/g/n/ac/ax 4T4R 2.4/5GHz PCIe Chip (5.9+)
  • MT7921 802.11a/b/g/n/ac/ax 2T2R 2.4/5GHz PCIe Chip (5.12+)

В этом списке отсутствует MT7961, но за его работу отвечает модуль ядра для MT7921.

Вы можете увидеть цифры в скобках — они означают версию ядра, начиная с которого поддерживается драйвер. Да, хорошая новость в том, что драйвер поддерживается ядром Linux из коробки, то есть, по идее, никаких действий пользователю предпринимать не нужно — Wi-Fi адаптер должен «просто работать».

Но проблема в том, что ядро Linux с версией 5.12 относительно свежее и распространено не на всех дистрибутивах. Например, уже на момент написания доступна предварительная версия ядра 5.15, а в Arch Linux уже используется ядро 5.14. Но в Ubuntu 21.04 используется ядро 5.11, соответственно в Linux Mint ещё более старое ядро.

Выходов из данной ситуации 2:

  1. Дождаться, когда ваш дистрибутив получит последнюю версию ядра (можете не дождаться никогда, поскольку новое ядро получат только новые выпуски дистрибутива)
  2. Установить последнюю версию ядра самостоятельно (имеется некоторых риск для системы)

Итак, вам нужно установить ядро 5.12 или более позднее — как это сделать, зависит от конкретного дистрибутива. В данной инструкции будет показано, как установить последнюю версию ядра в:

  • Ubuntu и дистрибутивы, которые основаны на Ubuntu
  • Linux Mint
  • Debian (stable и testing)
  • Kali Linux

У меня ядро 5.12 или более позднее, но Mediatek MT7921 (Mediatek MT7961) не работают или работают с проблемами

Если у вас уже установлены свежее ядро 5.12 или более новое, но Wi-Fi адаптеры или Bluetooth работают с проблемами, то этот раздел для вас.

Для чипсетов Mediatek MT7921 и Mediatek MT7961 требуются прошивки, которые хотя и имеются в стандартных репозиториях дистрибутивов, но обычно по умолчанию не установлены.

В Ubuntu, Linux Mint и их производных выполните следующую команду:

sudo apt install linux-firmware

В Debian производных запустите:

sudo apt install firmware-misc-nonfree

В Kali Linux выполните следующую команду:

sudo apt install kali-linux-firmware

В Arch Linux, Manjaro, BlackArch и их производных выполните команду:

sudo pacman -S linux-firmware

Предупреждение перед обновлением ядра

Во всех последующих разделах показано, как обновить ядро до последней версии. Необходимо помнить, что из-за несовместимости ядра с программами (в первую очередь, с проприетарными драйверами), вы можете столкнуться с проблемами, в том числе с чёрным экраном во время загрузки.

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

Проблемы могут вызвать проприетарные драйверы для видеокарт, поскольку старые версии могут быть не совместимы с последними версиями ядра без патча. Если у вас установлены проприетарные видео драйверы, то серьёзной подумайте, прежде чем следовать инструкциям ниже. Также подготовьтесь, поищите инструкции, как решить проблему при загрузки дистрибутива в чёрный экран.

Следует быть особенно осторожным владельцам старых дистрибутивов — настоятельно рекомендуется обновлять ядро только на последних версиях ОС.

Данная инструкция проверена на дистрибутивах:


  • Ubuntu 21.04
  • Linux Mint 20.2
  • Kali Linux 2021.3

В Ubuntu и Linux Mint устанавливалась версия ядра 5.14, а в Kali Linux устанавливалось ядро 5.13. Все дистрибутивы нормально загружались и работали.

Ещё одна вполне вероятная проблема, с которой вы можете столкнуться если установите ядро самой последней версии — проблема с неразрешёнными зависимостями и как следствие невозможность использования менеджера пакетов apt для обновления и установки программ. Если вы столкнулись с ситуацией, когда после успешной установки нового ядра не получается обновить пакеты с помощью apt, то попробуйте устанавливать предыдущие версии ядра, которые вам подходят, а версии, вызывающие проблемы с зависимостями, удаляйте. Помните, что невозможно удалить ядро с которым вы загрузились — перед удалением загрузите компьютер с любой другой версией ядра.

Wi-Fi Mediatek MT7921 и Mediatek MT7961 не работает в Ubuntu и Linux Mint (РЕШЕНО)

Связанная статья: Как установить последние версии ядра Linux в Ubuntu и Linux Mint

Для Ubuntu имеется репозиторий скомпилированных ядер всех версий, в том числе самых последних, поэтому установка не вызывает особых сложностей — компилировать ядро Linux не нужно. Более того, имеются инструменты, в том числе с графическим интерфейсом для установки любых ядер.

Поскольку Linux Mint основана на Ubuntu, то данная инструкция в полной мере применима и к дистрибутивам Linux Mint, кроме LMDE. Для LMDE (Linux Mint Debian Edition) смотрите, соответственно, следующий раздел, посвящённый Debian и производным дистрибутивам.

Если вы предпочитаете графический интерфейс, то используйте Mainline:

sudo apt-add-repository -y ppa:cappelikan/ppa
sudo apt update
sudo apt install mainline
mainline-gtk

В этой инструкции я покажу, как установить последнюю версию ядра на Ubuntu 21.04 с помощью утилиты командной строки ubuntu-mainline-kernel.sh.

Проверяем текущую версию ядра:

uname -r
5.11.0-36-generic


Ядро имеет версию 5.11, а нам нужна как минимум 5.12.


Загружаем и устанавливаем скрипт ubuntu-mainline-kernel.sh:

wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
sudo install ubuntu-mainline-kernel.sh /usr/local/bin/

Проверяем, какая версия ядра является последней:

ubuntu-mainline-kernel.sh -c

Чтобы вывести список доступных для установки версий ядер выполните команду:

sudo ubuntu-mainline-kernel.sh -r

Например, мы хотим установить ядро версии v5.12.11, тогда команда следующая (префикс «v» указывать не надо):

sudo ubuntu-mainline-kernel.sh -i 5.12.11

Внимание: тесты показали, что для решения проблемы с драйверами Mediatek MT7921 (Mediatek MT7961) рекомендуется установить ядро версии 5.12.11, поскольку ядро 5.14 хотя и устанавливается нормально, впоследствии приносит проблемы с неразрешёнными зависимостями при использовании менеджера пакетов apt.

Если вы хотите установить последнюю на данный момент версию, то запустите следующую команду:

sudo ubuntu-mainline-kernel.sh -i

Вам будет задан вопрос, хотите ли вы продолжить, введите «y»:

Latest version is: v5.14.6, continue? (y/N)

Программа завершила работу — чтобы изменения вступили в силу, требуется перезагрузка.

Опять проверяем версию ядра:

По умолчанию ваша система будет загружена с последним ядром, если вы хотите это изменить, то перейдите в дополнительные параметры загрузки 

и выберите желаемую версию из установленных ядер.

Не забудьте установить файлы прошивок:

sudo apt install linux-firmware

Эта же инструкция была опробована на Linux Mint 20.2.

Как вы можете увидеть, ядро успешно обновлено и Linux Mint работает.


Wi-Fi Mediatek MT7921 и Mediatek MT7961 не работает в Debian, Kali Linux (РЕШЕНО)

Связанная статья: Как установить последние версии ядра Linux в Debian и основанные на Debian дистрибутивы

Данный раздел должен подойти для всех вариаций и производных Debian, например:

  • Debian stable
  • Debian testing
  • Kali Linux
  • MX Linux
  • и другие

Проверим текущую версию ядра:

uname -a

Чтобы не компилировать ядро с нуля, воспользуемся ядрами проекта XanMod Kernel.

Для установки последней версии ядра достаточно выполнить следующие команды:

echo 'deb http://deb.xanmod.org releases main' | sudo tee /etc/apt/sources.list.d/xanmod-kernel.list
wget -qO - https://dl.xanmod.org/gpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/xanmod-kernel.gpg add -
sudo apt update && sudo apt install linux-xanmod

Дождитесь завершения работы и перезагрузитесь.

Ещё раз проверим версию ядра:

uname -a

Пример вывода:

Linux HackWare-Kali 5.13.19-xanmod1 #0~git20210919.7960459 SMP PREEMPT Sun Sep 19 13:46:36 UTC 2021 x86_64 GNU/Linux

Если по каким-либо причинам не произошло обновление меню GRUB, то выполните команду:

sudo update-grub

Не забудьте установить файлы прошивок:

sudo apt install firmware-misc-nonfree

Вы также можете выбрать версию ядра XanMod.

Как восстановить Linux после установки ядра

Если ваш компьютер загружается с чёрным экраном, зависает или что-то не работает после обновления ядра, перезагрузитесь и выберите Дополнительные параметры для вашего дистрибутива в меню GRUB:

Затем выберите предыдущую версию ядра и нажмите Enter:

Независимо от причины, вам необходимо загрузиться с предыдущей версией ядра, если вы хотите удалить последнее ядро. Это потому, что вы не можете удалить ядро, которое в настоящее время используется.

Если вы не видите меню GRUB2, нажмите и удерживайте клавишу Shift или несколько раз нажмите клавишу Esc (это может варьироваться в зависимости от загрузки BIOS или UEFI и от используемой вами версии Ubuntu/Linux Mint) при загрузке GRUB. Должно появиться меню Grub, позволяющее выбрать предыдущую версию ядра.

После загрузки предыдущего ядра вы можете удалить неисправное ядро. ubuntu-mainline-kernel.sh позволяет удалять ядра, установленные из PPA ядра Ubuntu.

С помощью ubuntu-mainline-kernel.sh вы можете удалить версию ядра, запустив:

sudo ubuntu-mainline-kernel.sh -u ВЕРСИЯ

Где ВЕРСИЯ — это версия ядра, например 5.14. Вы также можете эту утилиту с -u без указания версии, и в этом случае инструмент выведет список до 10 версий ядра и спросит вас, какую из них вы хотите удалить. Стоит отметить, что ubuntu-mainline-kernel.sh не будет показывать в этом списке официальные ядра Ubuntu.

Для удаления ядра XanMod в Debian и производных выполните команды:

sudo apt remove linux-xanmod
sudo apt remove `sudo apt show linux-xanmod | grep Depends | sed 's/,//' | awk '{print $2,$3}'`

Если это не было сделано автоматически, то обновите настроки GRUB:

sudo update-grub

Рекомендуемые статьи:

12 Комментарии

  1. Kit Kat

    Где б его отдельно купить, этот MT7921.

    1. Alexey (Автор записи)

      Это же чипсет, нужно искать Wi-Fi адаптеры в котором он используется. Я не фанат aliexpress, но там есть, например, модель «COMFAST CF-AX180 Plus PCI-E PC» с этим чипсетом.

      Насколько я понимаю, этот чипсет в первую очередь используется во встроенных адаптерах. Если нужен именно встроенный Wi-Fi адаптер, то я бы рекомендовал обратить внимание на Intel, сам сейчас использую Intel Wireless-AC 9560 [Jefferson Peak] (rev 10), до этого в предыдущем ноутбуке был Intel Centrino Advanced-N 6235 (rev 24). В обоих случаях, полный восторг от этих беспроводных адаптеров. Драйверы уже имеются в ядре Linux, ничего устанавливать не надо. Отличная чувствительность, отличная скорость и стабильность. Поддерживается режим монитора Wi-Fi (это для тех, кто понимает).

      1. Kit Kat

        На интелах нет возможности создавать AP 5ггц. А вот комфаст этот с новым мтк похоже совсем недавно появился в продаже, пару недель назад точно не было.

  2. Kit Kat

    Работает ли MT7921 в режиме AP на 5ггц?

    1. Alexey (Автор записи)

      Вопрос интересный, у меня нет Wi-Fi адаптера на MT7921. Можно попросить владельцев адаптеров на MT7921 проверить. Для этого достаточно сделать следующее, выполнить команду

      iw list

      И найдите раздел «Frequencies:» для 5 ГГц. Посмотрите, есть ли там строки НЕ включающие какую либо из данных записей?

      • (no IR)
      • (no IR, radar detection)
      • (disabled)

      Если такие записи есть, значит можно создавать ТД на 5 ГГц. Если только записи с одним из указанных примечаний, значит нельзя.

      1. Kit Kat

        У меня на интел 210 вот что:

                Frequencies:
                    * 5180 MHz [36] (22.0 dBm) (no IR)
                    * 5200 MHz [40] (22.0 dBm) (no IR)
                    * 5220 MHz [44] (22.0 dBm) (no IR)
                    * 5240 MHz [48] (22.0 dBm) (no IR)
                    * 5260 MHz [52] (22.0 dBm) (no IR, radar detection)
                    * 5280 MHz [56] (22.0 dBm) (no IR, radar detection)
                    * 5300 MHz [60] (22.0 dBm) (no IR, radar detection)
                    * 5320 MHz [64] (22.0 dBm) (no IR, radar detection)
                    * 5340 MHz [68] (disabled)
                    * 5360 MHz [72] (disabled)
                    * 5380 MHz [76] (disabled)
                    * 5400 MHz [80] (disabled)
                    * 5420 MHz [84] (disabled)
                    * 5440 MHz [88] (disabled)
                    * 5460 MHz [92] (disabled)
                    * 5480 MHz [96] (disabled)
                    * 5500 MHz [100] (22.0 dBm) (no IR, radar detection)
                    * 5520 MHz [104] (22.0 dBm) (no IR, radar detection)
                    * 5540 MHz [108] (22.0 dBm) (no IR, radar detection)
                    * 5560 MHz [112] (22.0 dBm) (no IR, radar detection)
                    * 5580 MHz [116] (22.0 dBm) (no IR, radar detection)
                    * 5600 MHz [120] (22.0 dBm) (no IR, radar detection)
                    * 5620 MHz [124] (22.0 dBm) (no IR, radar detection)
                    * 5640 MHz [128] (22.0 dBm) (no IR, radar detection)
                    * 5660 MHz [132] (22.0 dBm) (no IR, radar detection)
                    * 5680 MHz [136] (22.0 dBm) (no IR, radar detection)
                    * 5700 MHz [140] (22.0 dBm) (no IR, radar detection)
                    * 5720 MHz [144] (22.0 dBm) (no IR, radar detection)
                    * 5745 MHz [149] (22.0 dBm) (no IR)
                    * 5765 MHz [153] (22.0 dBm) (no IR)
                    * 5785 MHz [157] (22.0 dBm) (no IR)
                    * 5805 MHz [161] (22.0 dBm) (no IR)
                    * 5825 MHz [165] (22.0 dBm) (no IR)
                    * 5845 MHz [169] (disabled)
                    * 5865 MHz [173] (disabled)
                    * 5885 MHz [177] (disabled)
                    * 5905 MHz [181] (disabled)

        Эти записи не отобразятся, пока за весь uptime не было попытки создать AP. Как видно все каналы недоступны.

    2. Alexey (Автор записи)

      Я купил Alfa AWUS036ACM на чипсете MediaTek MT7612U. Да, это не MT7921, но что-то мне подсказывает, сказанное далее вполне может оказаться применимым и для MT7921 — между разными поколениями чипсетов одного вендора обычно наблюдается преемственность.

      Вот здесь (https://github.com/morrownr/USB-WiFi) говорят, что стабильно работает в режиме AP на 5 GHz. Но у меня другие результаты. ТД на 5 GHz удалось создать только с пропатченной (по этой инструкции) базой регулятора домена. С горем пополам всё-таки удалось запустить Точку Доступа на 5 GHz и устройства её видят. Но подключиться к ней не удалось ни с телефона, ни с помощью Wi-Fi адаптера, поддерживающего 5 GHz. Я пробовал создавать ТД с паролем и без — подключение не удаётся.

      Ещё из негативного про Alfa AWUS036ACM:

      • txpower даже на пропатченной базе данных регулятора домена не поднимается выше 23.00 dBm — все мои другие Альфы поддерживают 36.00 dBm
      • иногда без причин txpower падает до 3.00 dBm и больше не поднимается
      • вначале показалось, что очень глючная и нестабильная — вроде бы, ситуация исправилась когда подключил непосредственно в USB гнездо без использования кабеля-удлинителя. Но форм-фактор такой (большие антенны, направленные вбок, плюс сам по себе адаптер крупный), что в некоторые гнёзда вставлять неудобно
      • индикатор не горит — вроде как это настраивается, но пока не разобрался. Из-за этого невозможно понять, работает Wi-Fi адаптер или нет
      • по первым впечатлениям, чувствительность ниже чем у других моих Wi-Fi адаптеров

      В общем и целом, первые впечатления негативные. Никаких преимуществ по сравнению со своими другими Wi-Fi адаптерами не вижу. Буду тестировать дальше.

  3. Pavel

    sudo apt install firmware-misc-nonfree
    Reading package lists… Done
    Building dependency tree… Done
    Reading state information… Done
    Package firmware-misc-nonfree is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    E: Package 'firmware-misc-nonfree' has no installation candidate

    Установил уже 21 убунту, попробовал и на 5.13 и на 5.15, непомогает, firmware-misc-nonfree где его взять?

    1. Alexey (Автор записи)

      Здравствуйте! Вы правы, в Ubuntu пакет переименован в «linux-firmware» и устанавливается следующей командой (возможно, он уже установлен по умолчанию):

      sudo apt install linux-firmware

      В инструкции также поправил.

  4. Анна

    спасибо большое, все получилось.

  5. eey

    Спасибо огромное!

    Поставил linux mint 20.3, не был виден wi-fi адаптер, сделал как в статье (предварительно в БИОС отключил security boot и подключил телефон к компьютеру USB шнурком в режиме модема)

    Проверил ядро

    uname -r

    оказалось, что 5.4

    поставил 5.12.12

    wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh

    sudo install ubuntu-mainline-kernel.sh /usr/local/bin/

    sudo ubuntu-mainline-kernel.sh -i 5.12.11

    После этого ожил Update Center, обновил дрова, ядро до 5.13 и все заработало. Спасибо!

  6. Алексей

    Ядро 5.19

    WiFi работает через раз и только с телефона.

    Через кабель работает без проблем.

    Куда копать?

Добавить комментарий для Kit Kat Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *