在树莓派上编译Linux内核

在PI上面编译内核有一些注意事项,本文简单记录一些重要的点。

Pi本身是Arm架构,所以如果要在Pi本身的平台上编译的话,就需要使用它自己在Github上面维护的的Arm架构的kernel代码:

https://github.com/raspberrypi/linux

编译过程参考这篇文档:

https://www.raspberrypi.org/documentation/linux/kernel/building.md

上面的文档还介绍了交叉编译的方法,这篇文章里不展开讲述了。

Arch Linux本身提供编译代码的一些工具,需要安装好,可以参考这篇文档:

https://wiki.archlinux.org/index.php/Kernels/Arch_Build_System

在Pi上面编译的过程比较慢,主要是因为Pi本身的性能一般,大概三到四个小时可以build完。

Pi目前不支持LILO或GRUB2,是通过修改/boot/config.txt直接更换内核的。我建议使用dd命令备份整个/boot分区:

$ dd if=/dev/boot of=boot.img

这样万一自己build的kernel启动不成功,恢复分区即可。

编译完的kernel还有配套的modules,别忘了根据上面的PI的文档步骤进行安装:

此外,ArchLinux启动不需要initramfs这个文件,因为架构简单所以用不到,因此无需替换。

更新后的kernel如图所示:

我把这个准备好的arch linux做成img,分享给大家:

链接:https://pan.baidu.com/s/1zrmyW5XuqN6rVRp7zX8DHg 密码:kd4a

配置好的编译环境位于:

$ pwd
/home/alarm/work/pi/linux

可以自己尝试在Pi上跑起来玩玩看:

以上。

其它参考资料

My Github Page: https://github.com/liweinan

Powered by Jekyll and Theme by solid

If you have any question want to ask or find bugs regarding with my blog posts, please report it here:
https://github.com/liweinan/liweinan.github.io/issues