整理了一下RASPBERRY PI 3, LINUX内核的编译
如下:
KERNEL=kernel7
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
mkdir /mnt/fat32
mkdir /mnt/ext4
sudo mount /dev/sdb1 /mnt/fat32
sudo mount /dev/sdb2 /mnt/ext4
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/mnt/ext4 modules_install
sudo cp mnt/fat32/$KERNEL.img /mnt/fat32/$KERNEL-backup.img
sudo cp arch/arm/boot/zImage /mnt/fat32/$KERNEL.img
sudo cp arch/arm/boot/dts/*.dtb /mnt/fat32/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /mnt/fat32/overlays/
sudo cp arch/arm/boot/dts/overlays/README /mnt/fat32/overlays/
sudo umount /mnt/fat32
sudo umount /mnt/ext4
网上有好多相关的文章
作了一些参考,但发现并不能友好地将编译的内核玩转起来
主要原因如下:
1. 找不到所谓的config.gz文件,所以,就用bcm2709_defconfig替代了
2. 有些文章说,要将zImage文件,通过工具转成.img形式,没有必要,这也是我做了这一步后,内核一直无法启动的原因
3. 保留原来的内核文件,只需更改/boot/config.txt中,加上一句kernel=kernel_xxx.img, copy zImage的时候,将目标命名为kernel=后的这个名字即可
内核跑起来了
体会还是,网上的文章可以作为参考
还是以RASPBERRY PI的官方指导为范本,能少走一些弯路