本帖最后由 nikoal 于 2023-1-2 20:25 编辑
前几天遇到编译原子移植好的linux内核失败的情况,是网络驱动编译失败了的。
做了个笔记顺便分享一下给以后可能和我遇到相同情况的人。
这个实际上是取消了对rtl8188EUS模块的编译,暂时只能这样。
分享出来看看大神们有没有别的解决方法。
以下内容是markdown笔记粘贴过来的
添加依赖
不安装依赖,会缺少库导致编译失败。
sudo apt-get install lzop
解压
把打包的文件还原出来
tar -vxjf linux-imx-4.1.15-2.1.0-g06f53e4-v2.1.tar.bz2
编写编译shell脚本
vi mx6ull_alientek_emmc.sh
#!/bin/sh make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16
给新写的脚本文件可执行权限
chmod 777 mx6ull_alientek_emmc.sh
开始执行脚本编译
进入menuconfig时 只用默认配置的话 按2次esc退出就行不进行改动
./mx6ull_alientek_emmc.sh
编译官方的报错了,看了报错的部分是网络驱动的某个东西编译失败了,
刚开始以为是我解压的不对还是下载有问题。重新下载解压了一份还是报错。
这个也不是自己移植导致错的,是原子官方移植好的了但是我这还是报错了,
我是一个在入门linux的萌新,也不懂怎么解决这个错误,
默默翻了翻编译日志
具体原因应该是这个,不知道为什么不支持-Wdate-time这个选项
可能和我用的开发环境有关,我是win10的wsl2的ubuntu18.04,不是虚拟机
error: -Werror=date-time: no option -Wdate-time
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_cmd.occ1: error: -Werror=date-time: no option -Wdate-time CC [M] drivers/net/wireless/rtl8192cu/core/rtw_p2p.oscripts/Makefile.build:258: recipe for target 'drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_cmd.o' failedmake[5]: *** [drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_cmd.o] Error 1scripts/Makefile.build:403: recipe for target 'drivers/net/wireless/rtlwifi/rtl8188EUS' failedmake[4]: *** [drivers/net/wireless/rtlwifi/rtl8188EUS] Error 2make[4]: *** Waiting for unfinished jobs....
没有办法只能尝试把这编译失败的网络驱动部分去掉
在图形配置里修改,取消 rtl8188EUS模块编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
'/'搜索
rtl8188EUS 接着找到相关路径后,逐步进入对应界面
对rtl8188EUS
按n关闭这个模块的编译
修改官方默认配置,取消 rtl8188EUS模块编译
这样也不是办法,使用默认配置后
imx_v7_defconfig
又需要重新再改一遍
所以直接改修改默认配置比较好
找到 imx_v7_defconfig
./arch/arm/configs/imx_v7_defconfig
搜索 CONFIG_RTL8188EUS
在168行
把CONFIG_RTL8188EUS=m
改为CONFIG_RTL8188EUS=n
再编译即可编译成功!
|