Liunx树莓派(ARM)开发篇—第十四章、树莓派Linux内核编译步骤(超详细、图文结合)

树莓派内核源码进行配置后,下一步要进行树莓派Linux内核编译

以下步骤均在PC端虚拟机上完成

准备材料:PC端虚拟机、树莓派交叉编译工具、树莓派内核(交叉编译工具、内核下载步骤见树莓派内核源码

第一步、编译

编译(不同厂家不一样):

树莓派的编译:

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make -j4 zImage modules dtbs

j4指定用多少电脑资源进行编译 j4-4核 zImage生成内核镜像 modules要生成驱动模块 dtbs生成配置文件
在这里插入图片描述

第二步、编译成功后,看到源码树目录多了vmlinux,失败则无此文件,成功后,目标zImage镜像arch/arm/boot底下(此步ARM架构的芯片都是类似)

vmlinux是未压缩的liunx,zImage是压缩好的liunx
在这里插入图片描述
在这里插入图片描述

第三步、打包zImage成树莓派可用的xxx.img

./scripts/mkknlimg arch/arm/boot/zImage ./kernel_new.img

在这里插入图片描述

第四步、插入装有liunx的sd卡的读卡器

第一种连接读卡器方式:
在这里插入图片描述
第二种连接读卡器方式:
在这里插入图片描述
连接完成会出现接入信息
在这里插入图片描述
使用dmesg指令查看读卡器映射,出现sdb1、sdb2则为连接成功,若只有一个sdb1,则需要重新往SD卡写入liunx系统。
在这里插入图片描述

第五步、新建两个文件夹data1 data2

mkdir data1 data2

第六步、挂载U盘

sudo mount /dev/sdb1 data1   

一个fat分区,是boot相关的内容,kernel的img

sudo mount /dev/sdb2 data2

一个是ext4分区,也就是系统的根目录分区。

在这里插入图片描述
在这里插入图片描述

第七步、安装modules, 用于安装设备驱动文件: hdmi usb wifi io …

sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=[ext4] modules_install

操作ext4分区,需要root权限。
[ext4]为第二分区虚拟机上挂载的地址需要根据自己的地址更改如:

sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=/home/abl/data2 modules_install

在这里插入图片描述

第八步、安装更新 kernel.img 文件,注意镜像名字是kernel7.img(kernel是特殊的,官方给的)

查看镜像文件名字,注意更改为自己路径

ls /home/abl/data1

在这里插入图片描述
备份一手

cp kernel7.img kernel7OLD.img

在这里插入图片描述

第九步、再把编译新生成的拷贝到data1,起名kernel7.img

cp kernel_new.img /home/chenlc/data1/kernel7.img

在这里插入图片描述

第十步、查看镜像文件md5值,这步很重要,如果两次值不同,则需要重新拷贝

md5sum kernel7.img 查看md5值

在这里插入图片描述

第十步、拷贝其他配置文件

注意更换为自己路径

cp arch/arm/boot/dts/.*dtb* /home/chenlc/data1
cp arch/arm/boot/dts/overlays/.*dtb* /home/abl/data1/overlays/
cp arch/arm/boot/dts/overlays/README /home/abl/data1/overlays/

在这里插入图片描述

第十步、断开读卡器连接,插入树莓派启动

在这里插入图片描述

大功告成

猜你喜欢

转载自blog.csdn.net/weixin_44933419/article/details/113931927