您的位置:首页 > 汽车 > 新车 > 上海市工程咨询行业协会_无锡设计公司有哪些_seo排名点击器曝光行者seo_互联网广告投放平台加盟

上海市工程咨询行业协会_无锡设计公司有哪些_seo排名点击器曝光行者seo_互联网广告投放平台加盟

2025/5/13 12:14:58 来源:https://blog.csdn.net/qq_43566923/article/details/147569972  浏览:    关键词:上海市工程咨询行业协会_无锡设计公司有哪些_seo排名点击器曝光行者seo_互联网广告投放平台加盟
上海市工程咨询行业协会_无锡设计公司有哪些_seo排名点击器曝光行者seo_互联网广告投放平台加盟

如何在树莓派上编译树莓派内核

    • 构建内核
      • 下载内核源代码
      • 本地构建内核
        • 构建配置
        • 使用 `LOCALVERSION` 自定义内核版本
        • 构建
        • 安装内核

文章来源: http://raspberry.dns8844.cn/documentation

原文网址

构建内核

操作系统预装的默认编译器和链接器被配置为构建在该操作系统上运行的可执行文件。 原生编译 使用这些默认编译器和链接器。交叉编译 是为运行编译过程的目标之外的目标编译代码的过程。

Raspberry Pi 内核的交叉编译允许你从 32 位操作系统构建 64 位内核,反之亦然。或者,你也可以从 Raspberry Pi 以外的设备交叉编译 32 位或 64 位 Raspberry Pi 内核。

下面的说明分为本地编译和交叉编译。选择适合你的情况的部分;虽然这两个过程有许多相同的步骤,但也有一些重要的区别。

下载内核源代码

在为任何目标构建之前,你都需要内核源代码。要获取内核源代码,你需要 Git。如果尚未安装 Git,请先在设备上安装:

$ sudo apt install git

接下来,下载最新 Raspberry Pi 内核的源代码:

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

这可能需要几分钟时间。

上面的 git clone 命令下载的是当前活动分支,我们从该分支构建 Raspberry Pi 操作系统映像,不包含任何历史记录。省略 --depth=1可以下载整个版本库,包括所有分支的完整历史。这需要更长的时间,占用的存储空间也更大。

要下载不带历史记录的其他分支,请在上述命令中添加 --branch 选项,并将 <branch> 替换为要下载的分支名称:

$ git clone --depth=1 --branch <branch> https://github.com/raspberrypi/linux

有关可用分支的完整列表,请查看 树莓派内核库。

现在你有了内核源代码,请通过 本机 或 交叉编译 构建一个新内核。

本地构建内核

本指南假设你的 Raspberry Pi 运行的是最新版本的 Raspberry Pi OS。

首先,安装构建依赖项:

$ sudo apt install bc bison flex libssl-dev make
构建配置

本节介绍如何在构建内核时应用默认配置。您还可以通过以下方式配置内核:

  • 启用和禁用内核功能
  • 从另一个源头添加补丁

要准备默认配置,请根据您的 Raspberry Pi 型号运行下表中的相应命令。

在这里插入图片描述

4 系列设备上的 32 位 Raspberry Pi OS 发行版使用 32 位用户态域,但使用 64 位内核。要构建 32 位内核,请设置 ARCH=arm。要启动 32 位内核,请在 config.txt 中设置 arm_64bit=0

使用 LOCALVERSION 自定义内核版本

为防止内核覆盖 /lib/modules 中的现有模块,并在 uname 输出中说明运行的是自己的内核,请修改 LOCALVERSION

要修改 LOCALVERSION,请修改 .config 中此行:

CONFIG_LOCALVERSION="-v7l-MY_CUSTOM_KERNEL"

TIP: 你也可以在 General setup > Local version - append to kernel release 中使用 menuconfig 以图形方式更改此设置。有关 menuconfig 的更多信息,请参阅 内核配置说明。

构建

接下来,构建内核。这一步可能需要很长时间,取决于你的 Raspberry Pi 型号。

  • 运行以下命令构建 64 位内核:
$ make -j6 Image.gz modules dtbs
  • 运行以下命令构建 32 位内核:
$ make -j6 zImage modules dtbs

提示:在多核 Raspberry Pi 型号上, make -j<n> 选项可在不同内核之间分配工作。这会大大加快编译速度。运行 nproc 查看你有多少个处理器;我们建议使用处理器乘以 1.5。

安装内核

接下来,将内核模块安装到启动介质上:

$ sudo make -j6 modules_install

然后,将内核和设备树 blobs 安装到启动分区,备份原始内核。

TIP: 如果不想在运行此命令的 Raspberry Pi 上安装刚编译好的内核,可将编译好的内核复制到另一个启动介质的启动分区,而不是 /boot/firmware/

安装 64 位内核:

  • 运行以下命令创建当前内核的备份镜像,安装新的内核镜像、overlays、README,并卸载分区:
$ sudo cp /boot/firmware/$KERNEL.img /boot/firmware/$KERNEL-backup.img
$ sudo cp arch/arm64/boot/Image.gz /boot/firmware/$KERNEL.img
$ sudo cp arch/arm64/boot/dts/broadcom/*.dtb /boot/firmware/
$ sudo cp arch/arm64/boot/dts/overlays/*.dtb* /boot/firmware/overlays/
$ sudo cp arch/arm64/boot/dts/overlays/README /boot/firmware/overlays/

安装 32 位内核:

创建当前内核的备份,然后安装新的内核映像:

$ sudo cp /boot/firmware/$KERNEL.img /boot/firmware/$KERNEL-backup.img
$ sudo cp arch/arm/boot/zImage /boot/firmware/$KERNEL.img

根据你的 内核版本,运行以下命令:
** 适用于 6.4 及以下版本的内核:

$ sudo cp arch/arm/boot/dts/*.dtb /boot/firmware/

适用于 6.5 及以上版本的内核:

$ sudo cp arch/arm/boot/dts/broadcom/*.dtb /boot/firmware/

最后,复制 overlays 和 README:

$ sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/firmware/overlays/
$ sudo cp arch/arm/boot/dts/overlays/README /boot/firmware/overlays/

最后,运行以下命令重启 Raspberry Pi 并运行新编译的内核:

$ sudo reboot

或者,用不同的文件名复制内核(如 kernel-myconfig.img),而不是覆盖 kernel.img 文件。然后,编辑启动分区中的 config.txt 以选择内核:

kernel=kernel-myconfig.img

将此方法与自定义的LOCALVERSION 相结合,可将自定义内核与系统管理的原版内核映像分开。有了这种安排,当你的内核无法启动时,你就可以迅速恢复到原版内核。

上一篇 – 树莓派超全系列教程文档–(43)树莓派内核简介及更新
下一篇 –

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com