Files
immortalwrt_image_builder/README.md
T

205 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ImmortalWrt Image Builder
这是一个用于快速构建 ImmortalWrt 固件的自动化项目,基于 ImmortalWrt 官方 Image Builder 生成自定义固件。
当前仓库提供多个构建脚本:
- `x86-64.sh`:构建 x86/64 通用固件
- `r2s.sh`:构建 FriendlyARM NanoPi R2S 固件
- `hiwifi-b70.sh`:构建 极路由 B70 固件
- `newifi3-d2.sh`:构建 新三路由 固件
脚本会自动安装构建依赖、下载对应版本的 Image Builder、复制 `files/` 目录中的自定义文件,并执行固件构建。
固件的默认登录地址是 `192.168.1.1`. 登录账号: `root`.密码: 无
## 环境要求
建议在 Debian/Ubuntu 或 WSL Ubuntu 环境中运行。
最好找一个独立的环境执行代码.
官方说最好找一个非 root 用户执行代码. 怕是 root 权限太大, 怕出现误删文件的情况.
## 使用方法
克隆本仓库:
```bash
git clone https://gitea.9001003.xyz/William/immortalwrt_image_builder.git
cd immortalwrt_image_builder
```
### 构建 x86-64 固件
```bash
sudo bash x86-64.sh
```
构建完成后,固件文件会生成到:
```text
output/
```
### 构建 NanoPi R2S 固件
```bash
sudo bash r2s.sh
```
构建完成后,固件文件会生成到:
```text
r2s_output/
```
### 构建 新三路由 wifi3-d2 固件
```bash
sudo bash newifi3_d2.sh
```
构建完成后,固件文件会生成到:
```text
newifi3_output/
```
### 构建 极路由 B70 固件
```bash
sudo bash hiwifi-b70.sh
```
构建完成后,固件文件会生成到:
```text
hiwifi_b70_output/
```
如果输出目录已经存在,脚本会先将旧目录备份为带时间戳的 `.bak` 目录,再移动新的构建结果。
## 默认配置
### x86-64
- ImmortalWrt 版本:`25.12.1`
- Target`x86/64`
- Profile`generic`
- 根分区大小:`600 MB`
- 输出目录:`output/`
### NanoPi R2S
- ImmortalWrt 版本:`25.12.1`
- Target`rockchip/armv8`
- Profile`friendlyarm_nanopi-r2s`
- 根分区大小:`600 MB`
- 输出目录:`r2s_output/`
### 新三路由(Newifi3 D2
- ImmortalWrt 版本:`25.12.1`
- Target`ramips/mt7621`
- Profile`d-team_newifi-d2`
- 输出目录:`newifi3_output/`
> mt7621newifi3-d2)构建已移除 rootfs_partsize 参数,使用 ImageBuilder 默认分区策略。
### 极路由 B70
- ImmortalWrt 版本:`25.12.1`
- Target`ramips/mt7621`
- Profile`hiwifi_hc5962`
- 输出目录:`newifi3_output/`
## 自定义固件
### 修改 ImmortalWrt 版本
编辑对应脚本中的 `version` 变量:
```bash
version="25.12.1"
```
例如改为:
```bash
version="24.10.2"
```
请确认该版本在 ImmortalWrt 官方下载站中存在,否则 Image Builder 下载会失败。
x86-64 对应下载路径:
```text
https://downloads.immortalwrt.org/releases/<version>/targets/x86/64/
```
NanoPi R2S 对应下载路径:
```text
https://downloads.immortalwrt.org/releases/<version>/targets/rockchip/armv8/
```
### 修改预装软件包
编辑对应脚本中 `build()` 函数里的 `PKG_LIST` 数组。
示例:
```bash
PKG_LIST=(
openssh-sftp-server
vim-full
curl
luci-i18n-firewall-zh-cn
)
```
如果要从固件中移除某个包,可以在包名前加 `-`,例如:
```bash
-dropbear
```
### 修改根分区大小
脚本最后会调用 `build` 函数并传入根分区大小,单位为 MB。
示例:
```bash
rootfs_partsize=500 # 根分区大小,单位为 MB
build $builder_dir $rootfs_partsize
```
### 添加自定义文件
仓库中的 `files/` 目录会被复制到固件根文件系统。
例如:
```text
files/etc/uci-defaults/99-sshd-root-login
```
构建后会出现在固件中的:
```text
/etc/uci-defaults/99-sshd-root-login
```
这个机制适合放置默认配置、初始化脚本、SSH 配置、LuCI 配置等文件。
## 注意事项
- 不建议直接使用 `curl | bash` 运行脚本,因为脚本依赖仓库中的 `files/` 目录。
- 如果下载或安装依赖失败,请检查网络、系统源以及当前用户权限。
- 如需查看某个目标支持的全部 profile,可进入解压后的 Image Builder 目录执行:
```bash
make info
```