树莓派高阶课程-- Linux内核镜像拷贝至树莓派并启动新内核

    科技2022-07-10  98

    挂载树莓派sd卡,并安装编译出的DIRECTLY 到sd卡: 把树莓派的sd卡插入ubuntu系统电脑,树莓派的sd卡有两个分区: 一个fat分区,是boot相关的内容,kernel的img文件就放在这个分区里; 一个是ext4分区,也就是系统的根目录分区。

    我们生成的文件涉及到这两个分区的内容,一般插入ubuntu后会自动挂载,fat分区可以不用root权限操作,ext4分区需要root权限操作。 两个分区具体挂载在什么地方可以自己决定,以下用[fat]表示boot挂载的路径,[ext4]表示ext4挂载的路径。 1、安装modules sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=[ext4] modules_install 操作ext4分区,需要root权限。

    2、更新 kernel.img 文件 前面已经用 mkknlimg 工具打包了kernel_new.img文件了,把它复制到boot分区并配置使用即可: cp kernel_new.img [fat]/ 编辑 [fat]/config.txt 文件,在最后加入一行: kernel=kernel_new.img

    3、复制其他相关文件 cp arch/arm/boot/dts/.dtb [fat]/ cp arch/arm/boot/dts/overlays/.dtb [fat]/overlays/ cp arch/arm/boot/dts/overlays/README [fat]/overlays/

    更新完成后插回树莓派即可开机,开机后可以用 uname -a 命令查看kernel信息已经改变。

    这是我的操作****数据拷贝 mkdir data1 data2 挂载U盘 dmesg(Linux dmesg命令用于显示开机信息) 是否存在:sdb: sdb1 sdb2

    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=/home/cky/data2 modules_install 安装更新 kernel.img 文件,注意镜像名字是kernel7.img 先备份 cd /home/cky/data1 cp kernel7.img kernel7OLD.img 再把编译新生成的拷贝到data1,起名kernel7.img cp kernel_new.img /home/chenlc/data1/kernel7.img md5sum kernel_new.img

    4906cebbbc1a0b842b9d66f1d1c81715 kernel_new.img

    md5sum /home/cky/data1/kernel7.img

    4906cebbbc1a0b842b9d66f1d1c81715 /home/cky/data1/kernel7.img 是否相等

    拷贝配置文件 cp arch/arm/boot/dts/.*dtb* /home/cky/data1 cp arch/arm/boot/dts/overlays/.*dtb* /home/cky/data1/overlays/ cp arch/arm/boot/dts/overlays/README /home/cky/data1/overlays/

    在内存卡目录下,还原串口通信

    uname -r 查看内核版本

    Processed: 0.042, SQL: 8