对树莓派内核源码进行配置后,下一步要进行树莓派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/