树莓派Linux内核编译没有打包工具mkknlimg解决办法

编译:

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

编译成功后,看到源码树目录多了vmlinux,失败则无此文件
在这里插入图片描述
成功后,目标zImage镜像arch/arm/boot底下
在这里插入图片描述
打包zImage成树莓派可用的xxx.img

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

在这里出现了bug
提示:ash: ./scripts/mkknlimg: No such file or directory
没有打包工具mkknlimg,尝试了很多方法都不行,后来发现打包工具mkknlimg被淘汰了,方法1:我重新下载源码Linux-rpi-4.14.y.zip,unzip解压,在文件夹scripts里找到打包工具mkknlimg,将该打包工具拷贝到linux-rpi-5.4.y/scripts,方法2:下载tool_master工具包找到imagetool-uncompressed.py

sudo ./imagetool-uncompressed.py /home/hy/SYSTEM/linux-rpi-5.4.y/arch/arm/boot/zImage 树莓派Linux内核编译没有打包工具mkknlimg解决办法_第1张图片
重新

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

成功如下所示
在这里插入图片描述

数据拷贝
mkdir data1 data2
dmesg查看内核打印信息如出现 sdb1 sdb2,则继续下列操作
挂载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=kernel71 make INSTALL_MOD_PATH=/home/hy/data2 modules_install
安装更新 kernel.img 文件,注意镜像名字是kernel7.img

先备份
cd /home/hy/data1
cp kernel7l.img kernel7lold.img
再把编译新生成的拷贝到data1,起名kernel7l.img
cp kernel_new.img /home/hy/data1/kernel7l.img
拷贝完成查看文件的md5值,因为每个文件的md5值是唯一的,拷贝没出错则值一样
树莓派Linux内核编译没有打包工具mkknlimg解决办法_第2张图片
拷贝配置文件
cp arch/arm/boot/dts/.dtb /home/chenlc/data1
.dtb :*是通配符
cp arch/arm/boot/dts/overlays/.dtb /home/hy/data1/overlays/

cp arch/arm/boot/dts/overlays/README /home/hy/data1/overlays/

你可能感兴趣的:(树莓派,linux,arm开发,运维)