Skip to content

用户配置

用户提供的补丁

您可以在构建脚本之外添加自己的补丁。将您的补丁放在适当的目录中,用于内核或 u-boot。除了所有补丁必须具有文件扩展名 .patch 之外,没有其他限制。userpatches 目录结构镜像 patch 的目录结构。在补丁过程开始时查找提示以选择补丁的正确目录。示例:

Text Only
1 2
[ o.k. ] 已开始为 [ kernel sunxi-edge 4.4.0-rc6 ] 打补丁 [ o.k. ] 在 [ userpatches/kernel/sunxi-edge ] 中查找用户补丁 

userpatches 目录树中具有相同文件名和路径的补丁会覆盖 patch 目录中的补丁。要_替换_ Armbian 维护者提供的补丁,请将其从 patch 复制到 userpatches 中的相应目录并根据需要进行编辑。要_禁用_补丁,请在 userpatches 中的相应目录中创建一个空文件。

用户提供的配置

名为 userpatches/config-<something>.conf.sh(也允许 .conf)的配置文件是一个 bash 脚本,如果发出 ./compile.sh something,它会在构建期间被加载。所有通常通过命令行传递的参数都可以使用(PARAM1=value1 PARAM2=value),使用相同的语法,每个 PARAM 一行。命令行参数仍然可以覆盖配置文件中的内容。更高级的用例可以使用条件、定义函数来实现钩子、加载其他/通用配置文件等。一些相当复杂的示例可以在这里找到。

用户提供的首次配置

Text Only
1
userpatches/firstboot.conf 

检测到时,系统会显示信息警报并应用首次配置

传统用户提供的配置(已弃用,对此的支持将在某个时候移除)

如果文件 userpatches/lib.config 存在,它将被调用并可以覆盖特定的内核和 u-boot 版本。有关可用变量的完整列表,请查看 lib/functions/configuration/main-config.sh。您可以更改的一些示例:

Text Only
1 2
[[ $LINUXFAMILY == sunxi64 && $BRANCH == edge ]] && BOOTBRANCH='tag:v2017.09' # 有条件地更改 u-boot git 分支/标签 KERNELBRANCH="tag:v5.4.28" # 始终更改为此内核标签 

用户提供的内核配置

如果文件 userpatches/linux-$LINUXFAMILY-$BRANCH.config 存在,它将用于替代 config 中的默认配置。在内核编译过程开始时查找提示以选择正确的配置文件名称。示例:

Text Only
1 2
[ o.k. ] 正在编译当前内核 [ 5.10.47 ] [ o.k. ] 使用用户提供的内核配置 [ userpatches/linux-rockchip64-current.config ] 

用户提供的源代码配置覆盖

如果文件 userpatches/sources/$LINUXFAMILY.conf 存在,它将与 config/sources 中的默认配置一起使用。在编译过程开始时查找提示以选择正确的配置文件名称。 请注意,LINUXFAMILY 有一些例外,如 sunxi(32 位主线 sunxi)和 sunxi64(64 位主线 sunxi)

示例:

Text Only
1
[ o.k. ] 添加用户提供的 sunxi64 覆盖 

用户提供的镜像自定义脚本

您可以运行其他命令来自定义创建的镜像。编辑此文件:

Text Only
1
userpatches/customize-image.sh 

并将您的代码放在这里。您可以测试文件中注明的变量值,以便为不同配置使用不同的命令。这些命令将在最终确定镜像之前在 chroot 环境中执行。

要轻松地将文件添加到镜像,请将它们放在 userpatches/overlay 中,并从 customize-image.sh/tmp/overlay 中访问它们

请注意,即使您在 amd64 机器上编译镜像,您在 customize-image.sh 中配置的任何其他 apt 软件包或运行的命令都会自动为构建目标 SBC 的架构安装/执行/虚拟化。

SD 卡的分区

如果您在构建时定义 $FIXED_IMAGE_SIZE,包含 rootfs 的分区将按此大小创建。未定义时的默认行为是在构建时将分区缩小到最小大小,并在启动时将其扩展到卡的最大容量(当大小小于或等于 4GB 时,留下约 5% 的未分区备用区域,以帮助 SD 卡控制器在旧/慢速卡上进行磨损均衡和垃圾回收)。

您可以通过 touch /root/.no_rootfs_resizecustomize-image.sh 中阻止分区扩展,或使用 /root/.rootfs_resize 通过百分比或扇区计数来配置调整大小操作(50% 将仅使用卡大小的一半,如果镜像大小不超过此值,或 3887103s 例如将使用扇区 3887103 作为分区结束。没有 %s 的值将被忽略)。