两天来,我一直在尝试为在 Raspberry Pi 3B+ 上运行的 Ubuntu 18.04 构建内核,但遇到了问题。我需要从源代码构建它,因为我想要 RT_PREEMPT 补丁,但现在我只是想构建一个干净的版本。
我尝试编译版本 4.19.72https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.19.8.tar.xz按照 Raspbian 官方指南操作,这博文:
对于配置步骤我尝试过:
wget -O .config https://raw.githubusercontent.com/raspberrypi/linux/rpi-4.19.y/arch/arm/configs/bcm2709_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- olddefconfig
我尝试在运行官方 18.04 服务器映像的 pi 上使用 /proc/config.gz 中的 .config。
然后我使用以下方法进行编译:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
安装:
sudo env PATH=$PATH make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH="root partition" modules_install
sudo cp arch/arm/boot/zImage "boot partition"/vmlinuz_test
sudo cp arch/arm/boot/dts/*.dtb "boot partition"/fat32/
由于没有覆盖,所以我跳过了该步骤。
最后,我编辑了config.txt
“启动分区”以使用 Pi 引导加载程序:
kernel=vmlinuz_test
initramfs initrd.img followkernel
#device_tree_address=0x02000000
在此之后,pi 无法再启动,而且我无法真正调试该问题,因为我没有监视器,也无法在卡上找到任何更改日志。
我可以使用initrd.img
与原始内核相同的版本吗?我在编译文件夹中找不到任何版本,因此我保留了相同的版本,但这可能是一个问题。
我真的希望有人能提供帮助,无论如何,感谢您阅读这篇相当长的文章。