树莓派Linux内核配置编译以及烧录详细步骤

Posted 是光哥呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派Linux内核配置编译以及烧录详细步骤相关的知识,希望对你有一定的参考价值。

一、内核配置

进入linux-rpi-4.14.y目录
在这里插入图片描述

第一种方式:(cp 厂家.config .config)

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig

在这里插入图片描述

第二种方式(make menuconfig 一项项配置,通常是基于厂家的config来配置)

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make menuconfig

在这里插入图片描述
上下左右键进行操作

如何配置树莓派的Linux内核
驱动两种加载方式:
* 编译进内核 zImage包含了驱动
M 模块方式生成驱动文件xxx.ko 系统启动后,通过命令inmosd xxx.ko 加载

二、内核编译

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

j4以4进程编译。不指明几进程的话则默认以单进程编译
zImage生成内核镜像
modules要生成驱动模块
dtbs生成配置文件
在这里插入图片描述
编译成功后,看到源码树目录多了vmlinux,失败则无此文件(如上图)
成功后,目标zImage镜像arch/arm/boot底下

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

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

将SD卡插上读卡器,如图连接到Ubuntu
在这里插入图片描述

三、烧录

数据拷贝:

1、创建两个文件夹

mkdir data1
mkdir data2

2、挂载u盘

sudo mount /dev/sdb1 data1   fat分区,是boot相关的内容,
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/lhg/data2 modules_install

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

前面已经用 mkknlimg 工具打包了kernel_new.img文件了,把它复制到boot分区并配置使用即可:
cp kernel_new.img [fat]/
在这里插入图片描述
先备份

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

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

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

用md5sum命令看看拷贝过程文件有没有损坏,如图
在这里插入图片描述

5、拷贝配置文件

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

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

6、启动

将SD卡插入树莓派,用串口连接至电脑上电
在这里插入图片描述
输入

uname -r

可以看到内核版本已经变了
在这里插入图片描述

以上是关于树莓派Linux内核配置编译以及烧录详细步骤的主要内容,如果未能解决你的问题,请参考以下文章

树莓派学习笔记树莓派Linux内核开发

树莓派Linux内核源码配置编译挂载开启新内核

OpenHarmony3.0在树莓派3B上的烧录与通讯

树莓派基于Linux内核驱动开发详解

树莓派入门

树莓派Linux内核编译选项如何开启TPM 2.0