<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Buildroot on Void Fox</title>
        <link>https://voidfox.cc/tags/buildroot/</link>
        <description>Recent content in Buildroot on Void Fox</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cmn-Hans</language>
        <lastBuildDate>Fri, 18 Jul 2025 14:00:27 +0800</lastBuildDate><atom:link href="https://voidfox.cc/tags/buildroot/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>Buildroot 注解 1</title>
            <link>https://voidfox.cc/post/2023/06/buildroot-note-1.html</link>
            <pubDate>Thu, 29 Jun 2023 15:35:00 +0800</pubDate>
            <guid>https://voidfox.cc/post/2023/06/buildroot-note-1.html</guid>
            <description>&lt;img src=&#34;https://voidfox.cc/post/2023/06/buildroot-note-1/cover.webp&#34; alt=&#34;Featured image of post Buildroot 注解 1&#34; /&gt;&lt;h2 id=&#34;1-项目客制化&#34;&gt;1. 项目客制化&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;用户可以自定义的内容有：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;配置 Buildroot，即 make menuconfig 的内容&lt;/li&gt;&#xA;&lt;li&gt;配置其他组件，即 make linux-menuconfig、make busybox-menuconfig 等等&lt;/li&gt;&#xA;&lt;li&gt;自定义已生成的文件系统：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;添加或覆盖目标板文件系统的文件（通过宏 &lt;code&gt;BR2_ROOTFS_OVERLAY&lt;/code&gt;）&lt;/li&gt;&#xA;&lt;li&gt;修改或删除目标板文件系统的文件（通过宏 &lt;code&gt;BR2_ROOTFS_POST_BUILD_SCRIPT&lt;/code&gt;）&lt;/li&gt;&#xA;&lt;li&gt;在生成镜像文件前运行任意命令（通过宏 &lt;code&gt;BR2_ROOTFS_POST_BUILD_SCRIPT&lt;/code&gt;）&lt;/li&gt;&#xA;&lt;li&gt;修改文件权限和所属关系（通过宏 &lt;code&gt;BR2_ROOTFS_DEVICE_TABLE&lt;/code&gt;）&lt;/li&gt;&#xA;&lt;li&gt;添加自定义设备节点（devices node）（通过宏 &lt;code&gt;BR2_ROOTFS_STATIC_DEVICE_TABLE&lt;/code&gt;）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;添加自定义用户账户（通过宏 &lt;code&gt;BR2_ROOTFS_USERS_TABLES&lt;/code&gt;）&lt;/li&gt;&#xA;&lt;li&gt;在生成镜像文件后运行任意命令（通过宏 &lt;code&gt;BR2_ROOTFS_POST_IMAGE_SCRIPT&lt;/code&gt;）&lt;/li&gt;&#xA;&lt;li&gt;为某些软件包打补丁（通过宏 &lt;code&gt;BR2_GLOBAL_PATCH_DIR&lt;/code&gt;）&lt;/li&gt;&#xA;&lt;li&gt;添加自定义软件包&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;2-官方推荐目录结构&#34;&gt;2. 官方推荐目录结构&#xD;&#xA;&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+-- board/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|   +-- &amp;lt;company&amp;gt;/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|       +-- &amp;lt;boardname&amp;gt;/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|           +-- linux.config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|           +-- busybox.config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|           +-- &amp;lt;other configuration files&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|           +-- post_build.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|           +-- post_image.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|           +-- rootfs_overlay/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|           |   +-- etc/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|           |   +-- &amp;lt;some files&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|           +-- patches/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|               +-- foo/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|               |   +-- &amp;lt;some patches&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|               +-- libbar/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|                   +-- &amp;lt;some other patches&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+-- configs/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|   +-- &amp;lt;boardname&amp;gt;_defconfig&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+-- package/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|   +-- &amp;lt;company&amp;gt;/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|       +-- Config.in (if not using a br2-external tree)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|       +-- &amp;lt;company&amp;gt;.mk (if not using a br2-external tree)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|       +-- package1/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|       |    +-- Config.in&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|       |    +-- package1.mk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|       +-- package2/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|           +-- Config.in&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|           +-- package2.mk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+-- Config.in (if using a br2-external tree)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+-- external.mk (if using a br2-external tree)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+-- external.desc (if using a br2-external tree)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;21-客制化内容&#34;&gt;2.1. 客制化内容&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;如果我们有多个相近的项目，可能会共用一些配置，我们不需要为每个项目都配置一遍相同的内容，可以使用以下结构进行配置：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+-- board/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    +-- &amp;lt;company&amp;gt;/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        +-- common/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        |   +-- post_build.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        |   +-- rootfs_overlay/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        |   |   +-- ...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        |   +-- patches/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        |       +-- ...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        +-- fooboard/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            +-- linux.config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            +-- busybox.config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            +-- &amp;lt;other configuration files&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            +-- post_build.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            +-- rootfs_overlay/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            |   +-- ...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            +-- patches/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                +-- ...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;例如需要为 fooboard 的软件包打补丁，可以进行如下配置：&lt;br&gt;&#xA;&lt;code&gt;BR2_GLOBAL_PATCH_DIR=&amp;quot;board/&amp;lt;company&amp;gt;/common/patches board/&amp;lt;company&amp;gt;/fooboard/patches&amp;quot;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;这样的情况，会先为公共部分（common）的软件包打补丁，然后为目标板（fooboard）的软件包打补丁。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BR2_ROOTFS_OVERLAY&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BR2_ROOTFS_POST_BUILD_SCRIPT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BR2_ROOTFS_DEVICE_TABLE&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BR2_ROOTFS_STATIC_DEVICE_TABLE&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BR2_ROOTFS_USERS_TABLES&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BR2_ROOTFS_POST_IMAGE_SCRIPT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BR2_GLOBAL_PATCH_DIR&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;上述宏都可使用此方式配置，以空格分隔，Buildroot 将从左到右顺序执行。&lt;/p&gt;&#xA;&lt;h2 id=&#34;3-保存-buildroot-配置文件&#34;&gt;3. 保存 Buildroot 配置文件&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;使用 &lt;code&gt;make savedefconfig&lt;/code&gt; 命令可以保存当前 &lt;code&gt;.config&lt;/code&gt; 文件为 &lt;code&gt;defconfig&lt;/code&gt; 文件。也可使用 &lt;code&gt;BR2_DEFCONFIG&lt;/code&gt; 参数指定保存的位置，如 &lt;code&gt;make savedefconfig BR2_DEFCONFIG=&amp;lt;path-to-defconfig&amp;gt;&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;建议保存的位置为 &lt;code&gt;configs/&amp;lt;boardname&amp;gt;_defconfig&lt;/code&gt;，保存在此位置的文件，可以被 &lt;code&gt;make list-defconfigs&lt;/code&gt; 列处，并且可以使用 &lt;code&gt; make &amp;lt;boardname&amp;gt;_defconfig&lt;/code&gt; 命令重新设为当前的待编译的配置文件。&lt;/p&gt;&#xA;&lt;h2 id=&#34;4-保存其他组件的配置文件&#34;&gt;4. 保存其他组件的配置文件&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;BusyBox、Linux kernel、U-Boot uClibc 等配置改变后，也需要保存。 对此，Buildroot 也提供了便捷的命令来保存这些文件的修改。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;make linux-update-defconfig&lt;/code&gt; 命令会将 Linux kernel 的配置文件保存在宏 &lt;code&gt;BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE&lt;/code&gt; 指定的位置&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;make busybox-update-config&lt;/code&gt; 命令会将 BusyBox 的配置文件保存在宏 &lt;code&gt;BR2_PACKAGE_BUSYBOX_CONFIG&lt;/code&gt; 指定的位置&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;make uclibc-update-config&lt;/code&gt; 命令会将 uClibc 的配置文件保存在宏 &lt;code&gt;BR2_UCLIBC_CONFIG&lt;/code&gt; 指定的位置&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;make barebox-update-defconfig&lt;/code&gt;  命令会将 BareBox 的配置文件保存在宏 &lt;code&gt;BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE&lt;/code&gt; 指定的位置&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;make uboot-update-defconfig&lt;/code&gt;  命令会将  U-Boot 的配置文件保存在宏 &lt;code&gt;BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE&lt;/code&gt; 指定的位置&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;5-客制化已经生成的文件系统&#34;&gt;5. 客制化已经生成的文件系统&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;Buildroot 官方推荐两种方式客制化文件系统：&lt;code&gt;Root filesystem overlays&lt;/code&gt; 和 &lt;code&gt;Post-build scripts&lt;/code&gt;。两种可以组合使用。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Root filesystem overlays (&lt;code&gt;BR2_ROOTFS_OVERLAY&lt;/code&gt;)&lt;br&gt;&#xA;&lt;code&gt;Root filesystem overlays&lt;/code&gt; 是直接拷贝宏 &lt;code&gt;BR2_ROOTFS_OVERLAY&lt;/code&gt; 指定路径下的文件至 rootfs 中的，并且是合并且覆盖的方式，即存在的文件会被替换，不存在的文件会被创建。版本控制文件（如：&lt;code&gt;.git&lt;/code&gt;、&lt;code&gt;.svn&lt;/code&gt;、&lt;code&gt;.hg&lt;/code&gt;等）、&lt;code&gt;.empty&lt;/code&gt;、以 &lt;code&gt;~&lt;/code&gt; 结尾的文件将被排除，不进行拷贝。&lt;br&gt;&#xA;可以指定多个 rootfs overlay 目录，见 &lt;a class=&#34;link&#34; href=&#34;#21-%e5%ae%a2%e5%88%b6%e5%8c%96%e5%86%85%e5%ae%b9&#34; &gt;2.1. 客制化内容&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Post-build scripts (&lt;code&gt;BR2_ROOTFS_POST_BUILD_SCRIPT&lt;/code&gt;)&lt;br&gt;&#xA;&lt;code&gt;Post-build scripts&lt;/code&gt; 是在 Buildroot 编译完所有的软件之后、生成 rootfs 镜像文件之前被执行的脚本。&lt;br&gt;&#xA;同样可以指定多个脚本执行。&lt;br&gt;&#xA;Buildroot 在执行这些脚本时，会传递一些参数进去：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;宏 &lt;code&gt;BR2_ROOTFS_POST_SCRIPT_ARGS&lt;/code&gt; 指定的参数&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;$BR2_CONFIG&lt;/code&gt; Buildroot 配置文件 &lt;code&gt;.config&lt;/code&gt; 的文件路径&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;$CONFIG_DIR&lt;/code&gt; Buildroot 配置文件 &lt;code&gt;.config&lt;/code&gt; 的所在目录&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;$HOST_DIR&lt;/code&gt;  给目标板程序编写人员使用的工具的目录&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;$STAGING_DIR&lt;/code&gt; 目标板编写程序所需用到的头文件、库文件等的目录&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;$TARGET_DIR&lt;/code&gt; 目标板文件系统目录&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;$BUILD_DIR&lt;/code&gt; 编译过程中使用的临时目录&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;$BINARIES_DIR&lt;/code&gt; 二进制文件目录，即镜像文件所在的目录&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;$BASE_DIR&lt;/code&gt; output 的目录，通常情况下是 &lt;code&gt;$BUILD_DIR&lt;/code&gt; 的上一级目录&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;还有三种官方不推荐的修改文件系统的方式：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;直接修改&lt;/li&gt;&#xA;&lt;li&gt;自定义文件系统骨架(skeleton) (&lt;code&gt;BR2_ROOTFS_SKELETON_CUSTOM&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Post-fakeroot scripts (&lt;code&gt;BR2_ROOTFS_POST_FAKEROOT_SCRIPT&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;附1文章修订记录&#34;&gt;附1：文章修订记录&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;2023-06-29&#xA;&lt;ul&gt;&#xA;&lt;li&gt;文章初次发表&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;2023-07-20&#xA;&lt;ul&gt;&#xA;&lt;li&gt;修正 &lt;a class=&#34;link&#34; href=&#34;#4-%e4%bf%9d%e5%ad%98%e5%85%b6%e4%bb%96%e7%bb%84%e4%bb%b6%e7%9a%84%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6&#34; &gt;4. 保存其他组件的配置文件&lt;/a&gt; 中的描述错误&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item></channel>
</rss>
