当你使用 Buildroot 构建 Linux 内核时,如果对内核文件进行了手动修改,重新执行 Buildroot 的构建过程将会覆盖你所做的修改。这是因为 Buildroot会根据配置重新下载、提取和编译内核。
为了避免在重新构建时覆盖你的修改,可以采取以下两种方法之一:
-
使用外部内核源码:将你的自定义内核源码放置在 Buildroot 之外的目录,并通过 Buildroot 的配置选项指定该源码的路径。这样,在重新构建 Buildroot 时,它将跳过内核的下载和提取步骤,直接使用你提供的源码进行编译。你可以继续在外部目录中进行自定义修改,并且这些修改不会被 Buildroot 覆盖。
在 Buildroot 的配置界面 (
make menuconfig
) 中,找到 “Kernel” 选项,然后指定 “Custom source” 选项为你的内核源码路径。确保选择了 “Use a custom kernel configuration” 选项,以便使用自定义的内核配置。 -
使用 Buildroot 的补丁机制:如果你只需要对内核做一些小的修改,你可以使用 Buildroot 的补丁机制。通过在 Buildroot 中应用补丁,可以修改内核源码中的特定部分,而不会影响其他构建步骤。
在 Buildroot 的
board/<board_name>/linux
目录中,你可以创建一个补丁文件(例如my_kernel.patch
),其中包含你的修改。然后,在 Buildroot 的配置界面中,找到 “Kernel configuration” 选项,并指定 “Path to the patch series” 为你的补丁文件路径。这样在重新构建 Buildroot 时,它将应用你的补丁,并在内核编译过程中包含你的修改。
使用上述方法之一,你可以在重新构建 Buildroot 时保留对内核文件的修改,而不会被覆盖。请确保在进行任何构建操作之前,备份你的修改以防止意外丢失。