• 树莓派Linu内核编译


    可做参考:树莓派Linux内核配置、编译以及烧录详细步骤_是光哥呀的博客-CSDN博客_linux内核烧录

    1编译:

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

                                    j4是指定用多少电脑资源编译

                                     zImage 生成内核镜像

                                     modules   要生成驱动模块

                                      dtbs   生成配置文件

    2. 编译成功后,看到源码树目录多了vmlinux,失败则无此文件(如上图)
    成功后,目标zImage镜像arch/arm/boot底下

    3.  打包zImage成树莓派可用的xxx.img

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

    SD卡插上读卡器,如图连接到Ubuntu

    dmesg:查看底层硬件数据

    三、烧录

    数据拷贝:

    创建两个文件夹(返回到主目录)

    1. mkdir data1
    2. mkdir data2

    2、挂载u盘

    1. sudo mount /dev/sdb1 data1 fat分区,是boot相关的内容,
    2. sudo mount /dev/sdb2 data2 ext4分区,也就是系统的根目录

    3、安装modules

    (设备驱动文件: hdmi usb wifi io等等)
    进入如下目录:

     输入如下命令:

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

    [ext4]为你要生成的绝对路径(根目录)
    例如我的是:
    sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=/home/pengyuandan/data2 modules_install

    4、安装更新 kernel.img 文件,注意镜像名字是kernel7.img

      先备份

    1. 进入目录:cd /home/pengyuandan/data1
    2. 然后输入:cp kernel7.img kernel7OLD.img

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

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

      用md5sum命令看看拷贝过程文件有没有损坏,如图           

     5、拷贝配置文件

         分别输入如下命令(注意需要把目录改成你的)

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

    (这*叫做通配符,就是.和dtb中间有啥东西都不管,b后面有哈也不管)

    拷贝完毕

    然后我们把卡插到树莓派里面去

     首先断开连接(虚拟机的可移动设备里面)

    用串口观察树莓派操作系统是否能启动?

    然后最好还原cmdline.txt  和config.txt 

    然后我们把卡插到树莓派上面,用串口启动方式,看看版本是否一样

    在树莓派下用uname -r 查看一下

  • 相关阅读:
    【MySQL】【牛客-SQL进阶挑战】04 多表查询
    摩托车头盔的逆向建模与设计
    04_学习springdoc与oauth结合_简述
    module pandas has no attribute Int64Index
    flink on k8s部署
    音频数据如果在中断中会随机给的那就放入队列或者缓冲区;队列缓冲区对音频的作用
    Verdaccio部署及基础使用
    信息学奥赛一本通(c++):1180:分数线划定
    【LeetCode-198】打家劫舍(回溯&动归)
    Spring 中Bean的生命周期
  • 原文地址:https://blog.csdn.net/weixin_42714122/article/details/127584659