【问题标题】:Meaning of some commands when cross-compiling kernel for Raspberry Pi树莓派交叉编译内核时一些命令的含义
【发布时间】:2015-09-20 21:12:06
【问题描述】:
这个树莓派的official document详细介绍了如何为树莓派交叉编译新的Linux内核的过程。本文档中的一些命令如下所示,但是我很难理解。
对于树莓派 2:
$ cd linux
$内核=内核7
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
-
KERNEL env 代表什么剂量?
- 为什么我们需要将
KERNEL 设置为kernel7?
- 另外,
make bcm2709_defconfig 是做什么的?
【问题讨论】:
标签:
linux
linux-kernel
raspberry-pi
cross-compiling
raspberry-pi2
【解决方案1】:
KERNEL - 它是环境变量。我们稍后在将新编译的映像复制到引导文件夹时使用该环境变量。
用法:sudo scripts/mkknlimg arch/arm/boot/zImage mnt/fat32/$KERNEL.img
您可以将环境变量更改为任何所需,但您必须在引导文件夹的 config.txt 中添加一行,即 kernel=changed_name.img
KERNEL=kernel7 - 打开引导文件夹。您将看到两个 .img。一个是 kernel.img ,另一个是 kernel7.img 。默认情况下,Raspi 2/3 在启动时使用 kernel7.img。 Raspi 1 默认使用 kernel.img。当您使用 Raspi 2/3 时,您将该环境变量设置为 kernel7。
bcm2709_defconfig - 这是为 Raspberry Pi 2 架构制作的配置文件。例如,树莓派 1 编译使用 bcmrpi_defconfig。
【解决方案2】:
-bcm2709_defconfig 选择要使用的配置文件。它们存储在这样的路径中:arch/arm/configs/
对于KERNEL env,我从来没有见过这个......它不是主线内核,可能是RPi的一个特殊功能。