树莓派4B修改内核源码并编译

树莓派4B修改内核源码并编译

我是采用本地编译的方式在树莓派4B上完成内核源码的修改和编译,这样可以简化在PC上进行交叉编译的流程,但相对来说耗时会长一些。

一、在Github上下载Linux内核源码

首先在树莓派中选择一个下载内核源码,我是选择在/root目录下安装,所以执行以下命令:

cd /root
git clone --depth=1 https://github.com/raspberrypi/linux --branch rpi-6.1.y

注:根据自己需求选择下载内核源码版本,如需要下载6.1.y的版本就根据以上进行操作。

二、安装git和树莓派内核编译所需的依赖库

一般树莓派都会安装以下文件,但以防万一还是执行命令安装一次,指令如下:

sudo apt install bc git bison flex libssl-dev make
sudo apt-get install libncurses5-dev libncursesw5-dev
sudo apt-get install zlib1g:i386
sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5

三、完成自己所需要的源码修改

在执行完第一步后已经可以看到在/root目录下多出了一个linux文件夹,里面就是下载的源码,这时根据自己的需求完成代码的修改。

四、配置内核

根据树莓派的实际型号进行准备默认配置,由于我使用的树莓派型号为4B,所以根据以下命令进行配置:

pi@raspberrypi:/root $ cd linux
pi@raspberrypi:/root/linux $ KERNEL=kernel8
pi@raspberrypi:/root/linux $ make bcm2711_defconfig

注:如果树莓派使用的系统是64位系统的话为KERNEL=kernel8,若为其他版本则为KERNEL=kernel7
如果需要对内核进行其他配置,则可以利用如下命令实现:

pi@raspberrypi:/root/linux $ make menuconfig

执行命令后会出现一个可视化的内核配置窗口,根据自己的需求完成修改并保存,退出窗口后会发现已经生成了.config文件或旧的.config文件已经被更新。
注:配置好后记得save,并且根据命令行提示执行make,这一步时间很长。如果权限不够就执行sudo make,添加 -j4可以提高速度
(如使用命令sudo make -j4),执行完之后会在/arch/arm64/boot路径生成Image文件。
有些文章可能会说这一步直接生成zImage文件,这是因为在树莓派2及以上版本中使用了更现代化的启动方式(Device Tree),不再需要使用zImage格式的内核镜像。

五、编译与安装

如果参考上一步中内容生成的是Image文件在执行完make指令后内核就已经编译完成,在源码顶层文件夹包含Makefile文件的路径中执行

sudo make modules_install

进行驱动模块安装即可,再将arch/arm64/boot中生成的Image复制到根目录的/boot分区,并重命名为 kernel8.img。
最后更新引导配置文件:

sudo nano /boot/firmware/config.txt

找到或添加以下行:

kernel=kernel8.img

保存并退出nano,然后重新启动树莓派即可,执行命令sudo reboot重启树莓派。
完成重启后使用以下命令:

uname -r

会发现内核版本已经更新,此时说明树莓派的内核已经更新完成。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值