-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ImmortalWrt Image Builder 使用说明 #8
Comments
是否可以根据dts调整布局 |
可以选择用 ImageBuilder 的 docker 镜像来构建,不用处理依赖 https://github.com/EkkoG/OpenWrt/blob/master/.github/workflows/main.yml |
有一个问题: uci-defaults 这里 想设置路由默认登陆ip为192.168.111.1,是需要在files文件夹下创建对应的层级目录
|
我是这样写的
|
什么是 Image Builder
Image Builder(原 Image Generator、简称 IB)是一个预编译环境,允许构建自定义固件映像而无需从源码编译。它支持下载预编译软件包并将其集成进固件中。
Image Builder 适用于:
Image Builder 不适用于:
依赖要求
要使用 Image Builder,需要预先安装对应的依赖,请参阅 Build system setup。
对于 Debian 系发行版,您可以执行以下命令完成最基础的依赖安装:
对于 Arch Linux 系发行版:
Important
上述软件包只包括使用 Image Builder 所必须的依赖。部分目标可能需要额外安装依赖,请善用搜索引擎。
获取 Image Builder
您可以下载由 ImmortalWrt 项目提供的预编译 Image Builder,也可以自行从源码构建,在 buildroot 中启用
CONFIG_IB
即可。预编译 Image Builder 与固件映像位于同一文件夹中。如需下载 ImmortalWrt 项目提供的预编译 Image Builder,但不确定自己设备的目标平台,可以使用 固件选择器。
输入设备名称,并点击
链接
一栏的文件夹
图标,将会自动跳转到下载页面。Image Builder 统一命名为
immortalwrt-imagebuilder[-<version>]-<platform>.Linux-<ib_arch>.tar.xz
如
immortalwrt-imagebuilder-21.02.6-ath79-generic.Linux-x86_64.tar.xz
如果使用 docker,可以直接 pull 我们提供的镜像:
您可以在 此处 获取所有可用 tags。
Warning
ImmortalWrt 项目所提供的预编译 Image Builder 仅供 x86_64 / AMD64 平台使用,其他架构则需要自行构建。
Note
ImmortalWrt 目前拥有多个镜像站,您可以从最快的镜像中下载:
https://downloads.immortalwrt.org/acknowledgements.html
使用 Image Builder
Warning
以下所有操作必须以非特权用户(non-root)身份执行。
Note
可观看 Youtube 视频教程:Imagebuilder实用教程。
构建变量
可使用以下变量自定义构建固件:
bin
)/etc/init.d
中要禁用的服务名称,如 dnsmasq 的dhcp
确定设备
PROFILE
变量指定要构建的目标固件。运行
make info
以获取可用的设备列表以及默认软件包配置。Note
在 ath79、ramips 这样设备非常多的目标下,直接运行
make info
会污染整个屏幕且无法查看完整列表。可以配合
less
等命令一起使用,如make info | less
。确定软件包
PACKAGES
变量允许在固件中集成 和/或 去除软件包。上面的示例将集成 pkg1、pkg2、pkg3,并去除 pkg4、pkg5、pkg6。请注意在需要去除的软件包前添加
-
。您无需在此处指定目标软件包的依赖项,Image Builder 会自动使用 opkg 解析并安装它们。
可以通过以下命令获取当前设备上已安装的软件包:
可以访问以下地址获取 ImmortalWrt 所有可用软件包:
https://downloads.immortalwrt.org/<version>/targets/<platform>/packages/Packages
https://downloads.immortalwrt.org/<version>/packages/<architecture>/<feed>/Packages
Note
在 Image Builder 中,opkg 不会自动安装翻译文件。如需安装 LuCI 插件,在存在翻译文件的情况下,请优先写翻译包的名称。
如
luci-app-zerotier
则填写luci-i18n-zerotier-zh-cn
。Warning
通常硬路由的存储空间有限,请不要无限制地添加软件包。
确保所集成的软件包不会超出存储空间大小,否则将导致设备无法启动。
如设备空间极其有限,请考虑 移除不必要的软件包。
自定义软件包
如果您想集成 ImmortalWrt 中没有的软件包,可以在 Image Builder 根目录下新建一个名为
packages
的文件夹,将 ipk 文件放置其中,并将其添加到PACKAGES
变量 。自定义文件
FILES
变量允许将自定义文件集成进 Image Builder 构建的固件中。如果您需要修改默认网络配置,或批量部署固件,则此功能非常实用。Note
files
文件夹应放置在 Image Builder 根目录,或指定绝对路径。files
文件夹中的内容将 1:1 覆盖并集成进最终固件文件中。Important
强烈建议使用 uci-defaults 完成对已有配置文件的“增量”修改。这有助于减少与默认配置的冲突,因为它们可能在不同的版本之间发生变化。
参阅:uci-default_example。
自定义配置
部分配置无法通过变量指定,如 x86/64 平台的构建固件类型以及固件 rootfs 大小,需要通过手动修改
.config
文件实现。修改默认 rootfs 大小(单位:MiB):
取消构建 ISO 固件:
自定义软件源
默认 Image Builder 配置为从官方源下载所有非默认软件包。软件源配置在根目录的
repositories.conf
文件中。如需添加外部软件源,请确保将对应的公钥放置在根目录的
keys
文件夹中,或注释掉repositories.conf
中的option check_signature
(不推荐)。Important
如需覆盖 ImmortalWrt 软件源中已有的软件包,请确保将您自己的源放置在默认源上方。
Note
ImmortalWrt 目前拥有多个镜像站,您可以配置从最快的镜像中下载:
https://downloads.immortalwrt.org/acknowledgements.html
https://help.mirrorz.org/immortalwrt/
构建固件
当您确定以上构建内容后,将其传递到
make image
后:make 命令完成后,生成的固件文件将存放在
$BIN_DIR/targets/<platform>
目录中,就像编译它们一样。清理构建文件
要清理临时构建文件和生成的固件文件,请使用
make clean
命令。构建示例
本示例将为 x86/64 固件集成自定义网络配置文件和 zerotier。
最终固件存放在
bin/targets/x86/64
文件夹下。参考
The text was updated successfully, but these errors were encountered: