Ubuntu 22.04安装Tenda W311mi USB网卡执行make命令报错求助
在Ubuntu 22.04上安装Tenda W311mi USB无线网卡的正确方法
问题背景
按照相关指南操作,从官网下载驱动后,执行sudo make编译Tenda W311mi的MT7601U驱动时,出现以下报错:
make -C tools make[1]: Entering directory '/home/ali/MT7601U_LinuxAP_3.0.0.1_20130802/tools' gcc -g bin2h.c -o bin2h make[1]: Leaving directory '/home/ali/MT7601U_LinuxAP_3.0.0.1_20130802/tools' /home/ali/MT7601U_LinuxAP_3.0.0.1_20130802/tools/bin2h cp -f os/linux/Makefile.6 /home/ali/MT7601U_LinuxAP_3.0.0.1_20130802/os/linux/Makefile make -C /lib/modules/5.19.0-43-generic/build SUBDIRS=/home/ali/MT7601U_LinuxAP_3.0.0.1_20130802/os/linux modules make[1]: Entering directory '/usr/src/linux-headers-5.19.0-43-generic' make[2]: *** No rule to make target 'arch/x86/entry/syscalls/syscall_32.tbl', needed by 'arch/x86/include/generated/uapi/asm/unistd_32.h'. Stop. make[1]: *** [arch/x86/Makefile:232: archheaders] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-5.19.0-43-generic' make: *** [Makefile:388: LINUX] Error 2
报错核心原因是2013年的旧驱动与Ubuntu 22.04的5.19内核不兼容——新内核已移除32位系统调用表相关文件,导致编译流程中断。
方案一:使用内核自带驱动(推荐)
Ubuntu 22.04的内核已经内置了MT7601U芯片的驱动,无需手动编译旧版本驱动:
- 清理之前编译的残留文件:
sudo make clean - 插入Tenda W311mi网卡,系统会自动识别并加载驱动。若未自动加载,手动触发模块加载:
sudo modprobe mt7601u - 验证网卡是否被识别:
输出中会显示无线网卡设备(通常命名为ip link showwlan0或类似格式)。
方案二:修复旧驱动编译(仅当内核驱动失效时尝试)
如果必须使用官网的旧驱动,需修改代码适配新内核:
- 安装完整编译依赖:
sudo apt install build-essential linux-headers-$(uname -r) - 打开驱动目录下的
os/linux/Makefile,将-mno-red-zone添加到EXTRA_CFLAGS配置项中,适配x86_64内核的编译规则。 - 重新执行编译安装:
注意:这种方法仅为临时适配,后续内核更新后可能再次失效,不建议长期使用。sudo make && sudo make install
内容的提问来源于stack exchange,提问作者Ali Mohammadnia
相关产品推荐
相关产品推荐

