Xubuntu 18.04 LTS
我在一台旧电脑上安装了2 GB RAM Corsair 800 Mhz
。Intel 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
按照他的建议修改了源代码。
现在我不知道该如何继续:
- 我必须重新打包
phy.c
路径里面的东西drivers/net/wireless/mediatek/mt7601u
吗? 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-types
并incompatible 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
)
重启系统。尽情享用吧。
希望有帮助...解决问题并学习如何编写有用的解决方案..