В данной заметке будет показано, как решить проблему с неработающими 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:
- Дождаться, когда ваш дистрибутив получит последнюю версию ядра (можете не дождаться никогда, поскольку новое ядро получат только новые выпуски дистрибутива)
- Установить последнюю версию ядра самостоятельно (имеется некоторых риск для системы)
Итак, вам нужно установить ядро 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
Связанные статьи:
- Linux не видит Alfa AWUS036NHA. Ошибка «firmware: failed to load ath9k_htc» (РЕШЕНО) (100%)
- Linux не видит Wi-Fi на чипсете Realtek. Ошибка «firmware: failed to load rt2870.bin» (РЕШЕНО) (100%)
- Linux не видит Wi-Fi на чипсете Intel. Ошибка «firmware: failed to load iwlwifi» (РЕШЕНО) (100%)
- Прошивки устройств (firmware) в Linux (97.6%)
- Как установить драйвер Realtek RTL8821CE (95.4%)
- Решение проблемы с ошибкой «fatal error: pcap.h: Нет такого файла или каталога» (RANDOM - 4.7%)
Где б его отдельно купить, этот MT7921.
Это же чипсет, нужно искать 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 (это для тех, кто понимает).
На интелах нет возможности создавать AP 5ггц. А вот комфаст этот с новым мтк похоже совсем недавно появился в продаже, пару недель назад точно не было.
Работает ли MT7921 в режиме AP на 5ггц?
Вопрос интересный, у меня нет Wi-Fi адаптера на MT7921. Можно попросить владельцев адаптеров на MT7921 проверить. Для этого достаточно сделать следующее, выполнить команду
И найдите раздел «Frequencies:» для 5 ГГц. Посмотрите, есть ли там строки НЕ включающие какую либо из данных записей?
Если такие записи есть, значит можно создавать ТД на 5 ГГц. Если только записи с одним из указанных примечаний, значит нельзя.
У меня на интел 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. Как видно все каналы недоступны.
Я купил 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:
В общем и целом, первые впечатления негативные. Никаких преимуществ по сравнению со своими другими Wi-Fi адаптерами не вижу. Буду тестировать дальше.
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 где его взять?
Здравствуйте! Вы правы, в Ubuntu пакет переименован в «linux-firmware» и устанавливается следующей командой (возможно, он уже установлен по умолчанию):
В инструкции также поправил.
спасибо большое, все получилось.
Спасибо огромное!
Поставил 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 и все заработало. Спасибо!
Ядро 5.19
WiFi работает через раз и только с телефона.
Через кабель работает без проблем.
Куда копать?