编译腾达W311MI驱动MakeFile时遇syscall_32.tbl错误求助
腾达W311MI无线网卡驱动编译错误解决方案
问题描述
近期将个人电脑系统切换为Linux,使用腾达W311MI Wireless N150 Pico USB Adapter无线网卡,编译驱动的MakeFile时出现如下错误:
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:217: archheaders] Error 2
原因分析
该错误源于驱动MakeFile强制指定编译32位(i386)架构的内核组件,但当前使用的是64位(x86_64)Linux内核,现代64位内核默认不再提供32位系统调用表相关文件,导致编译找不到目标文件。
解决步骤
- 打开驱动包中的
MakeFile文件 - 查找包含
ARCH=i386的行,将其修改为ARCH=x86_64,或者直接删除该行(让系统自动匹配当前架构) - 若未找到明确的ARCH指定,检查
CFLAGS或EXTRA_CFLAGS中是否存在-m32这类32位编译选项,将其移除 - 保存修改后的MakeFile,重新执行
make命令编译驱动
额外提示
如果修改后仍无法编译,先确认已安装完整的内核头文件和编译依赖包,可通过以下命令安装(以Debian/Ubuntu系为例):
sudo apt install linux-headers-$(uname -r) build-essential
内容的提问来源于stack exchange,提问作者Fahmid Bin Farooqui
相关产品推荐
相关产品推荐

