麒麟操作系统无法驱动MT7601U芯片USB网卡的处理

编程入门 行业动态 更新时间:2024-10-08 13:39:00

<a href=https://www.elefans.com/category/jswz/34/1766145.html style=麒麟操作系统无法驱动MT7601U芯片USB网卡的处理"/>

麒麟操作系统无法驱动MT7601U芯片USB网卡的处理

MT7601U是USB网卡常见采用的方案,在4.x以下,该驱动需要手动编译,在4.0以后kernel已经集成了MT7601U的驱动,但目前已知在4.15及更高版本的内核中驱动有bug导致硬件无法识别(原文链接:)
麒麟V10 SP1桌面内核5.x,插入网卡dmesg报错如下:

[  693.151175] mt7601u 1-2:1.0: ASIC revision: 76010001 MAC revision: 76010500
[  693.193318] mt7601u 1-2:1.0: Firmware Version: 0.1.00 Build: 7640 Build time: 201302052146____
[  696.700844] mt7601u 1-2:1.0: Vendor request req:02 off:0a44 failed:-110
[  700.576649] mt7601u 1-2:1.0: Vendor request req:07 off:09a8 failed:-110
[  704.067687] mt7601u 1-2:1.0: Vendor request req:02 off:09a8 failed:-110
[  707.554951] mt7601u 1-2:1.0: Vendor request req:07 off:0734 failed:-110
[  711.072891] mt7601u 1-2:1.0: Vendor request req:42 off:0230 failed:-110
[  714.595344] mt7601u 1-2:1.0: Vendor request req:07 off:0080 failed:-110
[  718.113453] mt7601u 1-2:1.0: Vendor request req:02 off:0080 failed:-110
[  721.633104] mt7601u 1-2:1.0: Vendor request req:02 off:0080 failed:-110
[  721.633156] mt7601u: probe of 1-2:1.0 failed with error -110
[  721.633206] usbcore: registered new interface driver mt7601u

处理办法,修改驱动源码包中的mcu.c,注释L450,重新编译内核模块,将原模块加入blacklist并设置新模块的开机加载
1.下载源码包,麒麟源中不提供linux-source包,从社区拉一个同版本的即可
解压到/usr/src

root@localhost:~# tar -xvzf /home/kylin/linux-5.10.1.tar.gz -C /usr/src

2.修改源文件

root@localhost:~# cd /usr/src/linux-5.10.1/drivers/net/wireless/mediatek/mt7601u/
root@localhost:/usr/src/linux-5.10.1/drivers/net/wireless/mediatek/mt7601u# vim mcu.c
449         //mt7601u_vendor_reset(dev);

3.编译内核模块

root@localhost:/usr/src/linux-5.10.1/drivers/net/wireless/mediatek/mt7601u# make -C /lib/modules/$(uname -r)/build/ M=$(pwd) modules

4.修改权限,复制到modules目录

root@localhost:/usr/src/linux-5.10.1/drivers/net/wireless/mediatek/mt7601u# chmod +x mt7601u.ko
root@localhost:/usr/src/linux-5.10.1/drivers/net/wireless/mediatek/mt7601u# cp mt7601u.ko /lib/modules/5.10.0-5-generic/mt7601ufix.ko

5.重建依赖关系,手动加载模块

root@localhost:/usr/src/linux-5.10.1/drivers/net/wireless/mediatek/mt7601u# depmod -a
root@localhost:/usr/src/linux-5.10.1/drivers/net/wireless/mediatek/mt7601u# modprobe mt7601ufix 
modprobe: ERROR: could not insert 'mt7601ufix': Permission denied

执行过程中可能会出现无法访问的报错,因为在麒麟桌面系统提供了类似selinux的文件标记安全机制,在图形化界面-安全中心把所有控制选项关闭掉

root@localhost:/usr/src/linux-5.10.1/drivers/net/wireless/mediatek/mt7601u# modprobe mt7601ufix 
root@localhost:/usr/src/linux-5.10.1/drivers/net/wireless/mediatek/mt7601u# lsmod | grep "7601"
mt7601u               118784  0
mac80211              962560  1 mt7601u
cfg80211              843776  2 mt7601u,mac80211

重新插拔网卡,应该可以看到硬件识别,环缓冲区没有报错

后续如果需要替换原驱动,需要在驱动的配置文件加入blacklist,新驱动的开机自启,将配置文件添加到/etc/modules-load.d即可

更多推荐

麒麟操作系统无法驱动MT7601U芯片USB网卡的处理

本文发布于:2024-02-25 08:26:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1698360.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:麒麟   网卡   芯片   操作系统   MT7601U

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!