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 требуются прошивки, которые хотя и имеются в стандартных репозиториях дистрибутивов, но обычно по умолчанию не установлены.

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

sudo apt install firmware-misc-nonfree

В 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 firmware-misc-nonfree

Эта же инструкция была опробована на 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

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

Оставить комментарий

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