树莓派内核编译出错

来源:互联网 发布:淘宝能直接微信支付吗 编辑:程序博客网 时间:2024/06/05 03:36
按照教程http://elinux.org/Raspberry_Pi_Kernel_Compilation#Example_Checklist.2FRoadmap
http://blog.csdn.net/jinzheng_2010/article/details/8676213
但是会出现下面的错误
*** No rule to make target `fs/cachefiles/xattr.o', needed by `fs/cachefiles/cachefiles.o'.  Stop

最后发现原来是解压内核时确实了一个文件fs/cachefiles/xattr.c导致的。

https://github.com/raspberrypi/linux/issues/1767

正确解压内核后,首先进行内核配置,把树莓派2b的默认配置文件复制到内核根目录,指令如下:

cp arch/arm/configs/bcm2709_defconfig ./.config

利用下面的交叉编译器进行编译,进入图形界面配置内核

make ARCH=arm CROSS_COMPILE=../tools-master/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- menuconfig

得到在arch/arm/boot/zImage文件

make ARCH=arm CROSS_COMPILE=../tools-master/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- zImage -j 6

另外网上有说得到的zImage需要用工具转换为kernel.img文件,其实不用,直接执行cp arch/arm/boot/zImage kernel7.img即可,这样就的到了编译好的内核

最后把SD卡中的kernel7.img置换掉就可以了。树莓派2b的内核是kernel7.img。

另外由于只编译了内核对模块没有进行编译,可能会出现一些其他情况,为了完善,就把模块也编译一下

make ARCH=arm CROSS_COMPILE=../tools-master/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- modules -j6

make ARCH=arm CROSS_COMPILE=../tools-master/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- modules_install INSTALL_MOD_PATH=../modules

然后把生成的module复制到树莓派的/lib/modules/目录下

1 0
原创粉丝点击