Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 60e539a694 | |||
| 6e4c2f37c5 | |||
| bf0d9d2db9 | |||
| 99091363c7 | |||
| ffee41eabc | |||
| c55f0c6f83 | |||
| 073955ce4a | |||
| 5d001e22da | |||
| d374bfba8b | |||
| 084caf164c | |||
| b8a9dba5c0 | |||
| a563f425ee | |||
| 30de1e3914 | |||
| 85c4a8a2bd |
@@ -1,43 +1,158 @@
|
|||||||
# ImmortalWrt Image Builder
|
# ImmortalWrt Image Builder
|
||||||
|
|
||||||
这是一个用于快速构建 ImmortalWrt 固件的自动化项目,基于 ImmortalWrt 官方 Image Builder 生成 x86_64 平台固件。它适合用于定制个人或家庭网络环境中的 OpenWrt/ImmortalWrt 系统.
|
这是一个用于快速构建 ImmortalWrt 固件的自动化项目,基于 ImmortalWrt 官方 Image Builder 生成自定义固件。
|
||||||
|
|
||||||
**目前只支持 x86-64 固件构建**
|
当前仓库提供两个构建脚本:
|
||||||
|
|
||||||
## 使用说明
|
- `x86-64.sh`:构建 x86/64 通用固件
|
||||||
|
- `r2s.sh`:构建 FriendlyARM NanoPi R2S 固件
|
||||||
|
|
||||||
执行构建:
|
脚本会自动安装构建依赖、下载对应版本的 Image Builder、复制 `files/` 目录中的自定义文件,并执行固件构建。
|
||||||
|
|
||||||
|
## 环境要求
|
||||||
|
|
||||||
|
建议在 Debian/Ubuntu 或 WSL Ubuntu 环境中运行。
|
||||||
|
|
||||||
|
|
||||||
|
## 使用方法
|
||||||
|
|
||||||
|
克隆本仓库:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bash main.sh
|
git clone https://gitea.9001003.xyz/William/immortalwrt_image_builder.git
|
||||||
|
cd immortalwrt_image_builder
|
||||||
```
|
```
|
||||||
|
|
||||||
构建完成后,固件文件会生成在 `output/` 目录中。
|
### 构建 x86-64 固件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo bash x86-64.sh
|
||||||
|
```
|
||||||
|
|
||||||
## 其他问题
|
构建完成后,固件文件会生成到:
|
||||||
- 如何修改构建固件的版本?
|
|
||||||
|
|
||||||
在 `main.sh` 中修改 `version` 变量:
|
```text
|
||||||
|
output/
|
||||||
|
```
|
||||||
|
|
||||||
|
### 构建 NanoPi R2S 固件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo bash r2s.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
构建完成后,固件文件会生成到:
|
||||||
|
|
||||||
|
```text
|
||||||
|
r2s_output/
|
||||||
|
```
|
||||||
|
|
||||||
|
如果输出目录已经存在,脚本会先将旧目录备份为带时间戳的 `.bak` 目录,再移动新的构建结果。
|
||||||
|
|
||||||
|
## 默认配置
|
||||||
|
|
||||||
|
### x86-64
|
||||||
|
|
||||||
|
- ImmortalWrt 版本:`25.12.0`
|
||||||
|
- Target:`x86/64`
|
||||||
|
- Profile:`generic`
|
||||||
|
- 根分区大小:`500 MB`
|
||||||
|
- 输出目录:`output/`
|
||||||
|
|
||||||
|
### NanoPi R2S
|
||||||
|
|
||||||
|
- ImmortalWrt 版本:`25.12.0`
|
||||||
|
- Target:`rockchip/armv8`
|
||||||
|
- Profile:`friendlyarm_nanopi-r2s`
|
||||||
|
- 根分区大小:`500 MB`
|
||||||
|
- 输出目录:`r2s_output/`
|
||||||
|
|
||||||
|
## 自定义固件
|
||||||
|
|
||||||
|
### 修改 ImmortalWrt 版本
|
||||||
|
|
||||||
|
编辑对应脚本中的 `version` 变量:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
version="25.12.0"
|
version="25.12.0"
|
||||||
```
|
```
|
||||||
|
|
||||||
例如要构建其他版本,就把版本号改成 ImmortalWrt 官方下载站中存在的版本:
|
例如改为:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
version="24.10.2"
|
version="24.10.2"
|
||||||
```
|
```
|
||||||
|
|
||||||
保存后重新执行:
|
请确认该版本在 ImmortalWrt 官方下载站中存在,否则 Image Builder 下载会失败。
|
||||||
|
|
||||||
```bash
|
x86-64 对应下载路径:
|
||||||
bash main.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
脚本会根据该版本号下载对应的 x86-64 Image Builder:
|
|
||||||
|
|
||||||
```text
|
```text
|
||||||
https://downloads.immortalwrt.org/releases/<version>/targets/x86/64/
|
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
|
||||||
|
```
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# 仅在首次启动时执行(/etc/uci-defaults机制)
|
||||||
|
|
||||||
|
SSHD_CONF="/etc/ssh/sshd_config"
|
||||||
|
|
||||||
|
# 如果 sshd 配置文件存在,则修改配置
|
||||||
|
if [ -f "$SSHD_CONF" ]; then
|
||||||
|
|
||||||
|
# 允许 root 远程登录
|
||||||
|
if grep -q "^#*PermitRootLogin" "$SSHD_CONF"; then
|
||||||
|
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin yes/' "$SSHD_CONF"
|
||||||
|
else
|
||||||
|
echo "PermitRootLogin yes" >> "$SSHD_CONF"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 允许密码登录
|
||||||
|
if grep -q "^#*PasswordAuthentication" "$SSHD_CONF"; then
|
||||||
|
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication yes/' "$SSHD_CONF"
|
||||||
|
else
|
||||||
|
echo "PasswordAuthentication yes" >> "$SSHD_CONF"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 重启 OpenSSH 服务(如果已安装)
|
||||||
|
if [ -x /etc/init.d/sshd ]; then
|
||||||
|
/etc/init.d/sshd enable
|
||||||
|
/etc/init.d/sshd restart
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
@@ -0,0 +1,209 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# 安装 Image Builder 构建所需依赖
|
||||||
|
install_dependencies() {
|
||||||
|
apt install -y build-essential libncurses-dev zlib1g-dev gawk git \
|
||||||
|
gettext libssl-dev xsltproc rsync wget unzip python3 qemu-utils mkisofs zstd
|
||||||
|
}
|
||||||
|
|
||||||
|
# 下载并解压 FriendlyARM NanoPi R2S 的 Image Builder
|
||||||
|
# 参数 1: ImmortalWrt 版本号,例如 25.12.0
|
||||||
|
# 输出: 解压后的 Image Builder 目录绝对路径
|
||||||
|
download_imagebuilder() {
|
||||||
|
local version="$1"
|
||||||
|
local target="rockchip-armv8"
|
||||||
|
local file="immortalwrt-imagebuilder-$version-$target.Linux-x86_64.tar.zst"
|
||||||
|
local url="https://downloads.immortalwrt.org/releases/$version/targets/rockchip/armv8/$file"
|
||||||
|
local folder="immortalwrt-imagebuilder-$version-$target.Linux-x86_64"
|
||||||
|
local marker="$folder/.ready"
|
||||||
|
|
||||||
|
if [ -f "$marker" ]; then
|
||||||
|
echo "$(pwd)/$folder"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 如果目录存在但不完整,先清理
|
||||||
|
if [ -d "$folder" ] && [ ! -f "$marker" ]; then
|
||||||
|
echo "[WARN] found incomplete folder, cleaning..." >&2
|
||||||
|
rm -rf "$folder"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 下载并覆盖同名压缩包
|
||||||
|
wget -O "$file" "$url" >&2
|
||||||
|
|
||||||
|
# 解压
|
||||||
|
tar -I zstd -xvf "$file" >&2
|
||||||
|
|
||||||
|
touch "$marker"
|
||||||
|
|
||||||
|
echo "$(pwd)/$folder"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
build(){
|
||||||
|
# =============================================================
|
||||||
|
# 设备 Profile
|
||||||
|
# 可在 Image Builder 目录运行 `make info` 查看所有可用 profile
|
||||||
|
# =============================================================
|
||||||
|
PROFILE="friendlyarm_nanopi-r2s"
|
||||||
|
|
||||||
|
# =============================================================
|
||||||
|
# 自定义文件目录,映射到固件根文件系统
|
||||||
|
# =============================================================
|
||||||
|
FILES_DIR="files"
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
BUILDER_DIR="${1}"
|
||||||
|
|
||||||
|
# =============================================================
|
||||||
|
# 固件输出目录
|
||||||
|
# =============================================================
|
||||||
|
OUTPUT_DIR="$BUILDER_DIR/r2s_output"
|
||||||
|
PROJECT_OUTPUT_DIR="$SCRIPT_DIR/r2s_output"
|
||||||
|
|
||||||
|
# =============================================================
|
||||||
|
# 固件文件名附加标识,可留空
|
||||||
|
# =============================================================
|
||||||
|
EXTRA_IMAGE_NAME="r2s"
|
||||||
|
|
||||||
|
# =============================================================
|
||||||
|
# 根分区大小,单位 MB;留空则使用 imagebuilder 默认值
|
||||||
|
# =============================================================
|
||||||
|
ROOTFS_PARTSIZE="${2:-}"
|
||||||
|
|
||||||
|
# =============================================================
|
||||||
|
# 插件包列表
|
||||||
|
# - 前面加 - 表示从固件中移除该包,例如 -dnsmasq
|
||||||
|
# - 每行一个,方便增删注释
|
||||||
|
# =============================================================
|
||||||
|
PKG_LIST=(
|
||||||
|
openssh-sftp-server
|
||||||
|
vim-full
|
||||||
|
nano-plus
|
||||||
|
bash
|
||||||
|
shadow-chsh
|
||||||
|
curl
|
||||||
|
luci-i18n-argon-config-zh-cn
|
||||||
|
luci-i18n-package-manager-zh-cn
|
||||||
|
luci-i18n-firewall-zh-cn
|
||||||
|
luci-i18n-arpbind-zh-cn
|
||||||
|
|
||||||
|
# 现代终端工具
|
||||||
|
ripgrep
|
||||||
|
diffutils
|
||||||
|
less
|
||||||
|
|
||||||
|
# 分区扩容
|
||||||
|
luci-i18n-diskman-zh-cn
|
||||||
|
cfdisk
|
||||||
|
resize2fs
|
||||||
|
e2fsprogs
|
||||||
|
losetup
|
||||||
|
|
||||||
|
# 代理插件
|
||||||
|
luci-i18n-daed-zh-cn
|
||||||
|
luci-i18n-homeproxy-zh-cn
|
||||||
|
sing-box
|
||||||
|
)
|
||||||
|
|
||||||
|
PACKAGES=$(printf "%s " "${PKG_LIST[@]}")
|
||||||
|
|
||||||
|
GREEN="\033[0;32m"
|
||||||
|
YELLOW="\033[1;33m"
|
||||||
|
RED="\033[0;31m"
|
||||||
|
NC="\033[0m"
|
||||||
|
|
||||||
|
echo -e "${GREEN}========================================${NC}"
|
||||||
|
echo -e "${GREEN} OpenWrt Image Builder 开始构建${NC}"
|
||||||
|
echo -e "${GREEN}========================================${NC}"
|
||||||
|
echo -e " Device : ${YELLOW}FriendlyARM NanoPi R2S${NC}"
|
||||||
|
echo -e " Target : ${YELLOW}rockchip/armv8${NC}"
|
||||||
|
echo -e " Profile : ${YELLOW}${PROFILE}${NC}"
|
||||||
|
echo -e " Files 目录 : ${YELLOW}${FILES_DIR}${NC}"
|
||||||
|
echo -e " 输出目录 : ${YELLOW}${OUTPUT_DIR}${NC}"
|
||||||
|
echo -e " 项目输出目录: ${YELLOW}${PROJECT_OUTPUT_DIR}${NC}"
|
||||||
|
echo -e " 镜像标识 : ${YELLOW}${EXTRA_IMAGE_NAME}${NC}"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
cd "$BUILDER_DIR"
|
||||||
|
|
||||||
|
mkdir -p "$FILES_DIR"
|
||||||
|
cp "${SCRIPT_DIR}"/files/* "$BUILDER_DIR/files/" -rf
|
||||||
|
|
||||||
|
# 禁用 x86 Image Builder 中常见的额外镜像格式;rockchip 目标不存在时会自动跳过
|
||||||
|
sed -i \
|
||||||
|
-e 's/^CONFIG_ISO_IMAGES=y/# CONFIG_ISO_IMAGES is not set/' \
|
||||||
|
-e 's/^CONFIG_QCOW2_IMAGES=y/# CONFIG_QCOW2_IMAGES is not set/' \
|
||||||
|
-e 's/^CONFIG_VDI_IMAGES=y/# CONFIG_VDI_IMAGES is not set/' \
|
||||||
|
-e 's/^CONFIG_VMDK_IMAGES=y/# CONFIG_VMDK_IMAGES is not set/' \
|
||||||
|
-e 's/^CONFIG_VHDX_IMAGES=y/# CONFIG_VHDX_IMAGES is not set/' \
|
||||||
|
.config
|
||||||
|
|
||||||
|
if [ ! -f "Makefile" ]; then
|
||||||
|
echo -e "${RED}[错误] 未找到 Makefile,请在 imagebuilder 根目录下运行本脚本!${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p "$OUTPUT_DIR"
|
||||||
|
|
||||||
|
make image \
|
||||||
|
PROFILE="$PROFILE" \
|
||||||
|
PACKAGES="$PACKAGES" \
|
||||||
|
FILES="$FILES_DIR" \
|
||||||
|
BIN_DIR="$OUTPUT_DIR" \
|
||||||
|
EXTRA_IMAGE_NAME="$EXTRA_IMAGE_NAME" \
|
||||||
|
${ROOTFS_PARTSIZE:+ROOTFS_PARTSIZE="$ROOTFS_PARTSIZE"}
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
if [ "$OUTPUT_DIR" != "$PROJECT_OUTPUT_DIR" ]; then
|
||||||
|
if [ ! -d "$OUTPUT_DIR" ]; then
|
||||||
|
echo -e "${RED} 未找到构建输出目录: ${OUTPUT_DIR}${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e "$PROJECT_OUTPUT_DIR" ]; then
|
||||||
|
BACKUP_OUTPUT_DIR="${PROJECT_OUTPUT_DIR}.bak.$(date +%Y%m%d%H%M%S)"
|
||||||
|
if ! mv "$PROJECT_OUTPUT_DIR" "$BACKUP_OUTPUT_DIR"; then
|
||||||
|
echo -e "${RED} 备份已有输出目录失败: ${PROJECT_OUTPUT_DIR}${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo -e "${YELLOW} 已有输出目录,已备份到: ${BACKUP_OUTPUT_DIR}${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! mv "$OUTPUT_DIR" "$PROJECT_OUTPUT_DIR"; then
|
||||||
|
echo -e "${RED} 移动构建输出目录失败: ${OUTPUT_DIR} -> ${PROJECT_OUTPUT_DIR}${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}========================================${NC}"
|
||||||
|
echo -e "${GREEN} 构建成功!${NC}"
|
||||||
|
echo -e "${GREEN} 固件路径: ${PROJECT_OUTPUT_DIR}${NC}"
|
||||||
|
echo -e "${GREEN}========================================${NC}"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo -e "${RED}========================================${NC}"
|
||||||
|
echo -e "${RED} 构建失败,请检查上方错误日志${NC}"
|
||||||
|
echo -e "${RED}========================================${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# 项目根目录,保证从任意位置执行 r2s.sh 都能找到其他资源
|
||||||
|
project_dir="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
cd "$project_dir"
|
||||||
|
|
||||||
|
# 要构建的 ImmortalWrt 版本
|
||||||
|
version="25.12.0"
|
||||||
|
|
||||||
|
# 根分区大小(单位: MB)
|
||||||
|
rootfs_partsize=500
|
||||||
|
|
||||||
|
install_dependencies
|
||||||
|
|
||||||
|
builder_dir="$(download_imagebuilder "$version")"
|
||||||
|
|
||||||
|
build $builder_dir $rootfs_partsize
|
||||||
+17
-2
@@ -66,6 +66,11 @@ build(){
|
|||||||
# ────────────────────────────────────────────
|
# ────────────────────────────────────────────
|
||||||
EXTRA_IMAGE_NAME=""
|
EXTRA_IMAGE_NAME=""
|
||||||
|
|
||||||
|
# ────────────────────────────────────────────
|
||||||
|
# 根分区大小(单位:MB),留空则使用 imagebuilder 默认值
|
||||||
|
# ────────────────────────────────────────────
|
||||||
|
ROOTFS_PARTSIZE="${2:-}"
|
||||||
|
|
||||||
# =============================================================
|
# =============================================================
|
||||||
# 插件包列表
|
# 插件包列表
|
||||||
# - 前面加 - 表示从固件中移除该包,例如 -dnsmasq
|
# - 前面加 - 表示从固件中移除该包,例如 -dnsmasq
|
||||||
@@ -77,6 +82,9 @@ build(){
|
|||||||
openssh-sftp-server
|
openssh-sftp-server
|
||||||
vim-full
|
vim-full
|
||||||
nano-plus
|
nano-plus
|
||||||
|
bash
|
||||||
|
shadow-chsh
|
||||||
|
curl
|
||||||
luci-i18n-vlmcsd-zh-cn
|
luci-i18n-vlmcsd-zh-cn
|
||||||
luci-i18n-argon-config-zh-cn
|
luci-i18n-argon-config-zh-cn
|
||||||
luci-i18n-package-manager-zh-cn
|
luci-i18n-package-manager-zh-cn
|
||||||
@@ -127,6 +135,9 @@ build(){
|
|||||||
# 切换到 Image Builder 目录
|
# 切换到 Image Builder 目录
|
||||||
cd "$BUILDER_DIR"
|
cd "$BUILDER_DIR"
|
||||||
|
|
||||||
|
# 复制 files 目录下的自定义文件到 Image Builder 的 files 目录
|
||||||
|
cp ${SCRIPT_DIR}/files/* $BUILDER_DIR/files/ -rf
|
||||||
|
|
||||||
# 修改.config文件, 不构建以下格式固件
|
# 修改.config文件, 不构建以下格式固件
|
||||||
sed -i \
|
sed -i \
|
||||||
-e 's/^CONFIG_ISO_IMAGES=y/# CONFIG_ISO_IMAGES is not set/' \
|
-e 's/^CONFIG_ISO_IMAGES=y/# CONFIG_ISO_IMAGES is not set/' \
|
||||||
@@ -157,7 +168,8 @@ build(){
|
|||||||
PACKAGES="$PACKAGES" \
|
PACKAGES="$PACKAGES" \
|
||||||
FILES="$FILES_DIR" \
|
FILES="$FILES_DIR" \
|
||||||
BIN_DIR="$OUTPUT_DIR" \
|
BIN_DIR="$OUTPUT_DIR" \
|
||||||
EXTRA_IMAGE_NAME="$EXTRA_IMAGE_NAME"
|
EXTRA_IMAGE_NAME="$EXTRA_IMAGE_NAME" \
|
||||||
|
${ROOTFS_PARTSIZE:+ROOTFS_PARTSIZE="$ROOTFS_PARTSIZE"} # ROOTFS_PARTSIZE 参数不为空才添加
|
||||||
|
|
||||||
# 构建结果判断
|
# 构建结果判断
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
@@ -205,6 +217,9 @@ cd "$project_dir"
|
|||||||
# 要构建的 ImmortalWrt 版本, 可以在 https://github.com/immortalwrt/immortalwrt 查询版本号
|
# 要构建的 ImmortalWrt 版本, 可以在 https://github.com/immortalwrt/immortalwrt 查询版本号
|
||||||
version="25.12.0"
|
version="25.12.0"
|
||||||
|
|
||||||
|
# 根分区大小(单位: MB)
|
||||||
|
rootfs_partsize=500
|
||||||
|
|
||||||
# 安装依赖
|
# 安装依赖
|
||||||
install_dependencies
|
install_dependencies
|
||||||
|
|
||||||
@@ -212,4 +227,4 @@ install_dependencies
|
|||||||
builder_dir="$(download_imagebuilder "$version")"
|
builder_dir="$(download_imagebuilder "$version")"
|
||||||
|
|
||||||
# 构建固件
|
# 构建固件
|
||||||
build $builder_dir
|
build $builder_dir $rootfs_partsize
|
||||||
Reference in New Issue
Block a user