树莓派内核编译和驱动开发

内核编译准备

使用树莓派4B平台,可以直接在改平台直接编译和驱动开发

下载linux内核

在您的Raspberry Pi上,首先安装Git和构建依赖项,安装最新的内核以及相应的内核头文件:

sudo apt update
sudo apt install git bc bison flex libssl-dev make
sudo apt install raspberrypi-kernel raspberrypi-kernel-headers

如有必要,请重新启动以确保您正在运行正确的内核版本:

sudo reboot

构建并安装内核模块:

git clone --depth=1 https://github.com/raspberrypi/linux

获取当前树莓派系统的配置文件

这里很有必要说明是,在raspberrypi系统的3.x版本以前,树莓派系统默认存在/proc/config.gz文件,但是更新到4.x版本之后,/proc/config.gz文件默认不存在了,所以我们需要先获取到这个文件。

执行命令:

sudo modprobe configs

执行以上命令之后,会在/proc/目录下生成config.gz文件。然后将此文件从树莓派系统内拷贝到我们的PC平台(有很多种方法,比如U盘,NFS系统文件共享,TCP,samba等等)。

然后在需要编译的内核的顶层目录下执行命令:

命令:

zcat config.gz > .config

目的是生成.config配置文件

编译内核

首先,根据您的Raspberry Pi版本,通过运行以下命令来准备默认配置:Raspberry Pi 1,Pi Zero,Pi Zero W和Compute Module默认构建配置

cd linux
KERNEL=kernel
make bcmrpi_defconfig

Raspberry Pi 2,Pi 3,Pi 3+和Compute Module 3默认构建配置

cd linux
KERNEL=kernel7
make bcm2709_defconfig

Raspberry Pi 4默认构建配置

cd linux
KERNEL=kernel7l
make bcm2711_defconfig

构建并安装内核,模块和设备树blob;根据使用的Pi型号,此步骤可能需要很长时间:

make -j4 zImage modules dtbs
sudo make modules_install
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/$KERNEL.img

注意:在Raspberry Pi 2/3/4上,该-j4标志将工作分配到所有四个内核之间,从而显着加快了编译速度。

交叉编译

参考如下两个链接:

https://www.raspberrypi.org/documentation/linux/kernel/building.md
https://blog.csdn.net/wxh0000mm/article/details/88567468
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术在路上

帮助需要的人

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值