Беспроводной адаптер Ralink Tech MT7601U на Xubuntu

Я установил Xubuntu 18.04 LTS на старый компьютер с 2 ГБ оперативной памяти Corsair 800 Mhz , Intel Pentium 4 3.6 .У меня раньше была установлена ​​Windows 7 Pro, но для повышения производительности я решил установить Xubuntu.

Я купил адаптер Wirelss, он явно отлично работает в Win, но не в Xubuntu. Если я вставлю флешку и наберу lsusb:

Ralink Technology, Corp. MT7601U Wireless Adapter

, если я наберу iwconfig:

enpls5 no wireless extension

lo no wireless extension

, у меня также есть minicd с драйвером Linux, но если я попытаюсь установить MakeFile , я получу несколько ошибок.

Я следую только одному руководству, потому что у кого-то такая же проблема с Ubuntu 18.04 , и я решаю ее, выполнив:

sudo wget http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/plain/mt7601u.bin -O /lib/firmware/mt7601u.bin

cd /usr/lib/firmware/

sudo modprobe mt7601u

Ясно не решает мою проблему ... скорее, если я наберу цифру:

dmesg | grep mt76

Я получаю много ошибок ..

Я поискал в гугле и нашел несколько разных решений, но не думаю, что случайные попытки дадут результаты.

Я не хочу удалять O.S. для этого .. Я не эксперт, но я знаю основы языка оболочки, и мне нужна эта машина для Интернета и еще кое-что ..

Вы можете помочь мне решить эту проблему? Может помочь мне понять, чего не хватает?

Всем спасибо


Всем спасибо за вашу поддержку ..

Нет, это решение:

sudo apt install git build-essential dkms
git clone https://github.com/jeremyb31/mt7601u.git
sudo dkms add ./mt7601u
sudo dkms install mt7601u/1.0

у меня не работает .. Я даже пытаюсь включить HWE (или может быть, мне просто загрузить его) после этого:

sudo apt-get install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04

Если я набираю hwe-support-status --verbose , я получаю:

Your Hardware Enablement Stack (HWE) is supported until aprile 2023.

Я перезагрузил свою систему и подключил адаптер, но ничего не случилось. Любопытно то, что сейчас я подключаюсь к адаптеру USRobotics, купленному более 15 лет назад ..

Если я наберу dmesg | grep mt76 Я получаю:

[   78.016085] mt7601u: loading out-of-tree module taints kernel.
[   78.016221] mt7601u: module verification failed: signature and/or required key missing - tainting kernel
[   78.303014] mt7601u 1-6:1.0: ASIC revision: 76010001 MAC revision: 76010500
[   78.317864] mt7601u 1-6:1.0: Firmware Version: 0.1.00 Build: 7640 Build time: 201302052146____
[   78.714893] mt7601u 1-6:1.0: EEPROM ver:0d fae:00
[   78.893969] mt7601u 1-6:1.0: Error: RX urb failed:-71
[   78.894000] mt7601u 1-6:1.0: Error: submit URB dir:128 ep:1 failed:-19
[   78.921329] usbcore: registered new interface driver mt7601u
[   79.667140] mt7601u 1-6:1.0: ASIC revision: 76010001 MAC revision: 76010500
[   79.669464] mt7601u 1-6:1.0: Firmware Version: 0.1.00 Build: 7640 Build time: 201302052146____

Теперь я хотел бы попробовать решение Mohamed Safeuq J . Я загружаю исходный код ядра Linux 5.3 из ядра.org, и я изменил исходный код phy.c , как он предложил.

Теперь я не знаю, как продолжить:

  1. Мне нужно перепаковать phy.c внутри пути drivers / net / wireless / mediatek / mt7601u ?
  2. Насколько я понимаю, он хочет пересобрать какой-то модуль ядра, но в этой команде: make -C / lib / modules / $ (uname -r) / build M = $ (pwd) modules what модули обозначают ?? Внутри пакета с исходным кодом нет папки с именем modules .

Вы можете объяснить мне, как сочетаются эти несколько отрывков ??

Большое спасибо

1
задан 26 January 2020 в 05:18

1 ответ

Я нашел решение (и это не то, что было предложено в сообщении, которое появилось у меня десять раз, на которое я ответил нет, другое десять раз.. может быть, я переоценил сообщество..).

Я думаю, что это решение будет работать с Debian/Ubuntu/Xubuntu/Lubuntu (и подобными) с версией ядра до 4.4.xy

Чтение README.md найдите на мини-диске, прилагаемом к коробке с адаптером. Я нашел неофициальный драйвер здесь

Согласно драйверу поддерживаются следующие USB-устройства:

2955:1003
2955:1001
2955:0001
2A5F:1000
148F:760B
148F:7601
148F:6370
148F:7650 

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

Теперь, чтобы загрузить и установить драйвер, выполните следующие действия:

sudo add-apt-repository ppa:thopiekar/mt7601
sudo apt-get update
sudo apt-get install mt7601-sta-dkms

Установка завершится ошибкой несовместимые типы указателей и несовместимый аргумент, переданный функции.

Если адаптер по-прежнему не работает, для обходного пути выполните следующие действия:

1) Проверьте версию ядра , запустив uname --kernel-release

2) Загрузите соответствующий исходный код ядра из Архива ядра -> вы увидите неупорядоченный список Версия ядра -> щелкните соответствующую версию (Пример: если у вас 5.0.0-23-generic нажмите v5.x/) -> на следующей странице найдите файл linux-5.0.tar.xz -> загрузите его

3) Из архива распаковать только папку drivers/net/wireless/mediatek/mt7601u

4) Найти и отредактировать файл phy.c.Найдите функцию mt7601u_init_cal (строка 1116) и закомментируйте вызов mt7601u_mcu_calibrate(dev, MCU_CAL_RXIQ, 0); (строка с 1156 по 1161) следующим образом:

// ret = mt7601u_mcu_calibrate(dev, MCU_CAL_RXIQ, 0); 
// if (ret) 
// return ret;
// ret = mt7601u_mcu_calibrate(dev, MCU_CAL_DPD, dev->dpd_temp); 
// if (ret) 
// return ret;

5) Найдите функцию mt7601u_phy_recaulibate_after_assoc (строка 587) и закомментируйте вызов mt7601u_mcu_calibrate(dev, MCU_CAL_DPD, dev->curr_temp); (строка 589) следующим образом:

void mt7601u_phy_recalibrate_after_assoc(struct mt7601u_dev *dev)
{ 
// mt7601u_mcu_calibrate(dev, MCU_CAL_DPD, dev->curr_temp);
   mt7601u_rxdc_cal(dev); 
}

6) Откройте терминал и перейдите в mt7601u путь к папке

7) Создайте модуль, введя:

make -C /lib/modules/$(uname -r)/build M=$(pwd) modules

8) Если адаптер подключен в удалите его и (по тому же пути) введите:

sudo su
rmmod mt7601u (can output "module not loaded". if yes, ignore it and continue)
insmod ./mt7601u.ko

9) Вставьте устройство

10) Теперь адаптер должен работать, но если вы перезагрузите компьютер, вам придется снова перезагрузить модуль. Чем сделать изменения постоянными до следующего обновления ядра: сделайте резервную копию исходного модуля и замените его скомпилированным. Чтобы узнать, где находится исходный модуль, запустите modinfo mt7601u (просмотр строки имени файла: /lib/modules/_KERNEL_VERSION_/kernel/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko) .

10.1) Если после перезагрузки адаптер не распознается, выполните следующие действия:

cd /etc/modprobe.d
ls
  • Если вы найдете файл с именем blacklist-mt7601u.conf, удалите его.

Затем введите nano /etc/modules и напишите одну строку с именем модуля mt7601u (без .ko)

перезагрузите систему. Наслаждаться.

Надежда помогает... решить проблему и научиться писать полезное решение проблемы..

3
ответ дан 31 January 2020 в 16:55

Другие вопросы по тегам:

Похожие вопросы: