Xubuntu 上的 Ralink Tech MT7601U 无线适配器

Xubuntu 上的 Ralink Tech MT7601U 无线适配器

Xubuntu 18.04 LTS我在一台旧电脑上安装了2 GB RAM Corsair 800 MhzIntel Pentium 4 3.6我之前安装过 Windows 7 Pro,但为了提高性能,我决定安装 Xubuntu。

我买了一根无线适配器棒,显然它在 Win 中运行正常,但在 Xubuntu 中却不行。如果我插入适配器棒并输入 lsusb:

Ralink Technology, Corp. MT7601U Wireless Adapter

如果我输入 iwconfig:

enpls5 no wireless extension

lo no wireless extension

我还有一个带有 Linux 驱动程序的 minicd,但如果我尝试安装,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

我得到很多错误..

我在谷歌上搜索并找到了几种不同的解决方案,但我不认为随机尝试会产生结果。

我不想为此删除操作系统。我不是专家,但我知道 shell 语言的基础知识,我需要这台机器来上网,仅此而已。

你能帮我解决这个问题吗?也许能帮我了解缺少了什么?

谢谢你们


谢谢大家的支持。

没有这个解决方案:

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.

我已经重新启动了系统并插入了适配器,但什么也没发生。奇怪的是,我现在连接的是 15 年前购买的 USRobotics 适配器。

如果我数字,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____

现在我想尝试穆罕默德·萨菲克解决方案。我Linux 5.3 Kernel从 Kernel.org 下载了源代码,并phy.c按照他的建议修改了源代码。

现在我不知道该如何继续:

  1. 我必须重新打包phy.c路径里面的东西drivers/net/wireless/mediatek/mt7601u吗?
  2. make -C /lib/modules/$(uname -r)/build M=$(pwd) modules据我了解,他想重建一些内核模块,但是在这个命令中:模块代表什么??没有名为模块在源代码包内。

你能向我解释一下这几段话是怎么写的吗?

多谢

答案1

我找到了解决方案(它不是出现在我面前的消息中所建议的那个,我对此回答了十次“否”,而是另外十次......也许我高估了社区......)。

我认为此解决方案将适用于Debian/Ubuntu/Xubuntu/Lubuntu(和类似)Kernel version最多4.4.x.y

通过阅读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

安装将以一些错误结束incompatible-pointer-typesincompatible argument传递给一个函数。

适配器仍然不起作用,为了解决问题,我按照以下步骤操作:

1)Kernel Version通过启动检查uname --kernel-release

2)从以下位置下载相应的内核源代码内核存档-> 您将看到一个无序列表Kernel Version-> 单击相应的版本(例如:如果您有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_recalibrate_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)打开terminal并转到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/模块/_KERNEL_VERSION_/内核/驱动程序/net/wireless/mediatek/mt7601u/mt7601u.ko)。

10.1)如果重新启动后适配器无法被识别,则必须按照以下步骤操作:

cd /etc/modprobe.d
ls
  • 如果您找到名为的文件,blacklist-mt7601u.conf请将其删除。

然后输入nano /etc/modules并写入一行模块名称mt7601u(不带.ko

重启系统。尽情享用吧。

希望有帮助...解决问题并学习如何编写有用的解决方案..

相关内容