(ii)树莓派raspberry pi3 B+交叉编译环境,编译替换内核

本文介绍如何为Raspberry Pi 3 B+搭建开发环境,包括下载内核源码、配置交叉编译环境、编译内核以及将编译好的镜像烧录到TF卡中,使树莓派能够正常启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

>_下载4.1.4版本内核、

        _>从这拉

GitHub - raspberrypi/linux: Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/

 全过程参考这个说明书:

https://www.raspberrypi.com/documentation/computers/linux_kernel.html

>_配置cross compile environment,需要apt 这些pkg-config、ncurses、flex、bison、...依赖

sudo apt install bc bison flex libssl-dev make libc6-dev libncurses5-dev

>_config源码

        >_在源代码目录下输入这四个参数

源代码目录下有arch、lib、Makefile、firmware等等常见的文件夹

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

 把厂商的配置搞进.config

       >_make menuconfig现在先不搞,写好驱动搞、

>_build_image 

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs

    取决于cpu是几核的,我的虚拟机只有2,在make后加-j2,要编译接近一个小时。rpi/出现vmlinux,/arch/arm/boot/出现zImage则OK,另外arm-linux-gnueabihf-可能需要在~/.bashrc设置地址,也得自己找。

>_打包工具mkknlimg需要clone 4.1.4版本source

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


>_tf卡、挂载

        _>输入:

fdisk -l

                <_显示出只有sdb的,那你需要先刷个官网树莓派img镜像。手里的tf卡是全新的话,用树莓派官网的imager软件,在官网搜,选择好3B+和32bit的系统。官网刷进去的应该是这样。

这会儿

fdisk -l

你有

sdb
   sdb1
   sdb2

        _>挂载,mnt/boot这个位置可以放到~/下,我觉得方便

mkdir mnt
mkdir mnt/boot
mkdir mnt/root
sudo mount /dev/sdb1 mnt/boot
sudo mount /dev/sdb2 mnt/root

 _>安装modules 

sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=roof区挂载位置  modules_install

_>最后一步、替换内核,

sudo cp mnt/boot/$KERNEL.img mnt/boot/$KERNEL-backup.img
sudo cp arch/arm/boot/zImage mnt/boot/$KERNEL.img
sudo cp arch/arm/boot/dts/*.dtb mnt/boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README mnt/boot/overlays/
sudo umount mnt/boot
sudo umount mnt/root

上电后是这样,版本变化了。

这里有个rpi 3b+的问题,就是我发现编译替换kernel就不能用GitHub上最新的source build,已经折腾了很多天,boot出来都直接一个闪烁的下划线
_
​原先6.1.21的版本是用官网imager自动下载刷的,我从GitHub clone到本地6以上版本无论如何编译成功再刷机都是blink underline问题。就只有降版本到4.1.4才能成功替换内核么。

求大佬解答。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值