HiveOS 5.4.0下无需i386头文件编译snd-usb-audio模块的方案
解决方法
方法1:指定64位架构编译
错误根源是编译系统默认尝试构建32位相关工具,而HiveOS为64位系统,直接指定架构为x86_64即可跳过32位依赖:
make ARCH=x86_64 -C . M=sound/usb modules
执行脚本准备步骤时同样加上架构参数:
make ARCH=x86_64 scripts/prepare
方法2:使用系统内核头文件编译
如果系统能获取对应版本的内核头文件,安装后编译会更简便:
apt-get install linux-headers-$(uname -r)
安装完成后,执行模块编译命令(系统会自动识别头文件路径,无需额外配置):
make -C /lib/modules/$(uname -r)/build M=$(pwd)/sound/usb modules
方法3:修改内核Makefile跳过32位工具构建
若前两种方法无效,可手动修改内核Makefile,移除32位工具的编译规则:
- 打开
arch/x86/Makefile文件 - 找到
archscripts相关规则,原内容类似:archscripts: arch/x86/tools/relocs_32.o arch/x86/tools/relocs_64.o - 修改为仅保留64位工具:
archscripts: arch/x86/tools/relocs_64.o - 删除文件中所有与
relocs_32.c、relocs_32.o相关的编译规则,之后重新执行模块编译命令。
内容的提问来源于stack exchange,提问作者HermDP
相关产品推荐
相关产品推荐

