编辑
2024-12-09
应用
0

目录

固件编译方式
- 源码编译:
- Image Builder:
网页构建
Docker 构建(以构建immortalwrt为例)

固件编译方式

- 源码编译:

优点:可完全定制

缺点:不适合普通用户、需要完整的编译环境、编译时间长、资源消耗大

编译流程:准备环境依赖--下载源码一编辑feed一定制config一编译内 核一编译软件包一生成固件

- Image Builder:

优点:适合普通用户、不需要完整的编译环境、快速、资源、消耗很小

缺点:只能有限的定制

编译流程:下载预编译环境一简单选择插件以及配置一生成固件

对于普通用户来说Image Builder足够好用了,所以今天主要讲使用Image Builder编译

网页构建

Docker 构建(以构建immortalwrt为例)

1、定制编译的插件

新建一个build.sh文件,内容如下:

#!/bin/bash # 配置需要安装的软件包 PACKAGES="" PACKAGES="$PACKAGES curl" PACKAGES="$PACKAGES luci-i18n-firewall-zh-cn" PACKAGES="$PACKAGES luci-i18n-opkg-zh-cn" PACKAGES="$PACKAGES luci-app-argon-config" PACKAGES="$PACKAGES luci-i18n-argon-config-zh-cn" PACKAGES="$PACKAGES luci-i18n-passwall-zh-cn" PACKAGES="$PACKAGES luci-i18n-homeproxy-zh-cn" PACKAGES="$PACKAGES luci-i18n-ddns-go-zh-cn" PACKAGES="$PACKAGES luci-i18n-frpc-zh-cn" PACKAGES="$PACKAGES luci-i18n-zerotier-zh-cn" # 生成固件镜像 make image PACKAGES="$PACKAGES" ROOTFS_PARTSIZE="512"

以上是我需要的插件,以及定义软件包分区大小。你可以根据自己需求添加,软件包名称和功能可以通过下面网页查询,建议只添加必要的,其他的安装后软件商店安装即可。

2、构建 OpenWrt 固件Docker命令

这里以构建的版本:x86-64-openwrt-23.05.4为例,将build.sh文件传到服务器,比如:/root/immortalwrt/,然后cd /root/immortalwrt/进入该目录执行下面命令进行编译,如遇权限问题,可以将immortalwrt目录及其所有子目录和文件递归地设置为 777 权限。

chmod -R 777 /root/immortalwrt/

docker run --rm -it \ -v ./bin:/home/build/immortalwrt/bin \ -v ./build.sh:/home/build/immortalwrt/build.sh \ immortalwrt/imagebuilder:x86-64-openwrt-23.05.4 /home/build/immortalwrt/build.sh

编译结束后容器自己删除,编译好的固件在bin目录中。物理机推荐使用结尾是 generic-squashfs-combined-efi.img 的固件。