添加rtl8188eus驱动后Android内核编译失败求助
排查Android内核添加rtl8188eus驱动的编译错误
错误信息
LD drivers/staging/prima/wlan.o LD drivers/staging/prima/built-in.o make[2]: *** [../scripts/Makefile.build:653: drivers/staging] Error 2 make[1]: *** [/root/nethunter_kernel_redmi_6_pro_sakura/Makefile:1138: drivers] Error 2 make[1]: Leaving directory '/root/nethunter_kernel_redmi_6_pro_sakura/out' make: *** [Makefile:152: sub-make] Error 2
排查步骤
对比Makefile/Kconfig修改差异
既然同型号的SakuraSource内核能编译通过,直接对比两者的配置文件:- 核对
drivers/staging/Makefile中是否正确添加obj-$(CONFIG_RTL8188EUS) += rtl8188eus/,确保CONFIG项名称和驱动Kconfig里的定义完全一致 - 检查
drivers/staging/Kconfig是否添加了source "drivers/staging/rtl8188eus/Kconfig",路径不能有误 - 确认驱动目录下的Makefile、Kconfig未被误改,比如内核版本相关的编译开关是否适配你的nethunter内核
- 核对
获取详细编译日志定位具体错误
当前错误只提示staging目录编译失败,执行带 verbose 参数的编译命令,获取具体报错文件:make V=1通过详细日志能直接看到是驱动中哪个文件、哪一行代码导致的编译失败,方便针对性修复
检查驱动与内核的API兼容性
你的nethunter内核是定制版,可能和SakuraSource基础内核存在patch差异:- 排查rtl8188eus代码中是否使用了你的内核版本已废弃/修改的API,比如网络子系统、GPIO相关函数的参数变化
- 确认驱动依赖的内核配置项(如CONFIG_WLAN、CONFIG_MAC80211、CONFIG_CFG80211等)是否已在你的内核.config中开启
清理编译缓存后重试
残留的编译缓存可能引发冲突,执行以下命令清理后重新编译:make clean make mrproper cp your_defconfig out/.config make oldconfig make检查驱动目录完整性与权限
- 确认
drivers/staging/rtl8188eus目录下文件完整,没有遗漏子目录、头文件或编译脚本 - 确保所有驱动文件权限正常,避免因权限不足导致编译时无法读取文件
- 确认
内容的提问来源于stack exchange,提问作者Sunita Mondal
相关产品推荐
相关产品推荐

