Как заставить драйвер Wi-Fi GitHub для карты MediaTek MT7902 работать в Linux?

Вопрос или проблема

Поскольку для Wi-Fi карты MediaTek MT7902 нет Linux-драйвера, я временно использую USB адаптер (TP-Link AC600 wireless Archer T2U Nano), который хорошо работает с модулем rtl8821au. Я бы хотел вернуть этот USB разъем, используя Wi-Fi карту MediaTek.

Чтобы заставить Wi-Fi карту MediaTek MT7902 работать, я использовал драйвер с этой страницы на GitHub, но эта карта все еще не работает.

~$ uname -a
Linux asus 6.1.0-28-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux

~$ lspci -nnkd ::280
0000:02:00.0 Network controller [0280]: MEDIATEK Corp. Device [14c3:7902]
    DeviceName: WLAN
    Subsystem: AzureWave Device [1a3b:5520]

~# dkms status
ndiswrapper/1.60: added
rtl8821au/5.12.5.2, 6.1.0-27-amd64, x86_64: installed
rtl8821au/5.12.5.2, 6.1.0-28-amd64, x86_64: installed

~# modinfo ndiswrapper
modinfo: ERROR: Module ndiswrapper not found.

~# ndiswrapper -l
mtkwl6ex : driver installed
    device (14C3:7902) present

~$ nmcli connection 
NAME                UUID                                  TYPE      DEVICE          
Livebox-xxxxxxxx    90bdcfd0-3bdf-4e83-bc3e-f31e5b4c18fd  wifi      wlxe4fac451e278 
lo                  f909b88d-0257-4174-ad16-37295c420ebd  loopback  lo              
Livebox-xxxxxx      1c2b204c-63e4-4b79-aa65-cbf69e038b29  wifi      --              
Wired connection 1  49f2d538-509d-4f64-9ee1-b568dd950ec6  ethernet  --

~# en rfkill
ID TYPE      DEVICE              SOFT      HARD
 1 wlan      asus-wlan      unblocked unblocked
 2 bluetooth asus-bluetooth unblocked unblocked
 3 bluetooth hci0           unblocked unblocked
 4 wlan      phy1           unblocked unblocked

Что еще я могу проверить, чтобы выяснить, почему у меня нет Wi-Fi соединения для карты MT7902? Почему ndiswrapper не найден?

~# ndiswrapper -v
modinfo: ERROR: Module ndiswrapper not found.
module version is too old!
utils version: '1.9', utils version needed by module: '0'
module details:
modinfo: ERROR: Module ndiswrapper not found.
~# dkms status
ndiswrapper/1.60: added

Статус вашего пакета DKMS для ndiswrapperadded, а не installed. Это означает, что пакет, содержащий исходный код для модуля ядра ndiswrapper.ko, был загружен в систему, но сам модуль ядра еще не был собран. В результате команда утилиты ndiswrapper получает версию 0, когда пытается узнать, какая версия утилиты применима к модулю… потому что модуль еще не существует.

Вы можете попытаться исправить это, запустив dkms install ndiswrapper/1.60 от имени root. Затем снова выполните dkms status. Если все прошло успешно, строка dkms status для ndiswrapper теперь должна выглядеть так:

ndiswrapper/1.60, 6.1.0-28-amd64, x86_64: installed

На этом этапе у вас, наконец, должен появиться рабочий модуль ndiswrapper, соответствующий вашему текущему ядру. Вы можете подтвердить это, запустив modinfo ndiswrapper: теперь должен выводиться многолинейный печатный вывод информации о модуле, а не сообщение об ошибке. И ndiswrapper -v тоже должен быть успешным.

Если dkms install ndiswrapper/1.60 завершается неудачей, он предложит вам взглянуть в файл журнала, вероятно, /var/lib/dkms/ndiswrapper/1.60/6.1.0-28-amd64/x86_64/log/make.log. Именно туда dkms записывает любые ошибки, возникшие в результате процесса сборки модуля.

Ответ или решение

Прежде всего, спасибо за предоставленные детали. Это позволяет более точно оценить ситуацию и предложить конкретные шаги для решения вашей проблемы с драйвером Wi-Fi для карты MediaTek MT7902 под операционной системой Linux.

Изучите совместимость с NDISWrapper

Как вы заметили, модуль ndiswrapper не установлен. Это может быть одной из причин, почему ваша карта Wi-Fi не функционирует. NDISWrapper используется для установки драйверов Windows на Linux. Ваши сообщения об ошибках и статус DKMS указывают на то, что модуль ndiswrapper еще не собран и не установлен.

  1. Установка ndiswrapper:
    • Убедитесь, что у вас установлены все необходимые инструменты сборки, такие как gcc, make, и заголовочные файлы ядра.
    • Выполните команду dkms install ndiswrapper/1.60 от имени суперпользователя (root). Это должно инициировать сборку и установку модуля для вашего текущего ядра.
    • Повторно проверьте статус с помощью dkms status, чтобы убедиться, что ndiswrapper установлен.
    • Если не удается собрать модуль, проверьте файл журнала ошибок, указанный в вашем предыдущем сообщении: /var/lib/dkms/ndiswrapper/1.60/6.1.0-28-amd64/x86_64/log/make.log.

Проверьте драйвер MediaTek

  1. GitHub драйвер:
    • Перейдите на страницу GitHub драйвера. Убедитесь, что вы тщательно следуете инструкциям по установке. Некоторые проекты требуют выполнения скриптов или команд для компиляции и установки драйвера.
    • Обратите внимание на любые обновления или обсуждения проблем на странице Issues репозитория, которые могут дать подсказки по устранению вашей проблемы.

Проблемы с ядром

  1. Совместимость ядра:
    • Убедитесь, что версия вашего Linux-ядра совместима с используемыми модулями и драйверами. Иногда драйверы могут не поддерживать новейшие или специфические версии ядра. Рассмотрите возможность отката до проверенной версии, если предполагаемая несовместимость имеет место.

Переключение на другую тактику

  1. Альтернативные подходы:
    • Если попытки решения не увенчались успехом, изучите возможность использования других драйверов или модулей, которые поддерживают MediaTek MT7902. Поддержка может быть добавлена в будущем.

Использование этих шагов должно помочь вам диагностировать и решить проблемы с MediaTek MT7902. Обычно такие задачи требуют внимательного отношения к мелочам и гибкого подхода для каждого конкретного случая. Успехов в настройке вашего оборудования!

Оцените материал
Добавить комментарий

Капча загружается...