云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

定制构建OpenWrt发行版镜像及插件安装包,升级插件到最新版本

jxf315 2025-01-31 13:33:31 教程文章 48 ℃

最近Tailscale提示OpenWrt路由器上的版本太低,建议升级到最新版本。OpenWrt用的23.05的,因为23.05中带的tailscale版本比较老,之前升级都是从主线版本中下载最新的tailscale ipk包安装。之前升级过几次,都很顺利。但这次发现OpenWrt主线中的包已不再是ipk的,而是apk的。下载下来的apk包也无法在23.05中通过opkg安装。这才知道OpenWrt已经宣布会在OpenWrt主线和未来发行版中使用Alpine Linux的apk包管理器取代原来opkg包管理器。这个变化不会影响OpenWrt 23.05,但如果想在23.05中安装一些主线上的最新包,就不方便了。

尝试着自己构建OpenWrt的发行版及需要的插件安装包,在构建时可以根据需要选择需要的模块,也可以更新一些模块的版本。简单记录一下过程。

使用构建环境

使用了Ubuntu 22.04做了构建环境,需要安装一些必要的包。

sudo apt update
sudo apt install build-essential clang flex bison g++ gawk \
gcc-multilib g++-multilib gettext git libncurses-dev libssl-dev \
python3-distutils python3-setuptools rsync swig unzip zlib1g-dev file wget

如果是使用Ubuntu 24.04,会稍有不同。

sudo apt update
sudo apt install build-essential clang flex bison g++ gawk \
gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev \
python3-setuptools rsync swig unzip zlib1g-dev file wget

准备构建项目

Git clone相应的OpenWrt版本。这里是用v23.05.5。

# 下载OpenWrt源码
git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt

# 选择构建的版本
git checkout v23.05.5

# 更新feeds
./scripts/feeds update -a
./scripts/feeds install -a

可以根据需要更新一些插件构建的版本,比如这里把tailscale更新到最新版本,当前的最新版本是1.76.6。

cd feeds/packages/net/tailscale
mv Makefile Makefile.old
wget https://github.com/openwrt/packages/raw/refs/heads/master/net/tailscale/Makefile

因为tailscale最新版本的构建需要更新的golang版本,也升级golang版本到1.23.3。

cd feeds/packages/lang/golang/golang
mv Makefile Makefile.old
wget https://github.com/openwrt/packages/raw/refs/heads/master/lang/golang/golang/Makefile


配置及运行构建

配置构建。选择构建目标及需要构建的插件,比如tailscale。

make menuconfig

运行构建

make -j$(nproc) defconfig download clean world

构建完成后,可以在bin目录下找到生成的OpenWrt安装镜像及可安装的插件ipk包。把生成tailscale ipk包上传到OpenWrt,通行opkg顺利完成更新。

最近发表
标签列表