使用 Github Actions 编译 Openwrt

使用 WSL 生成 .config 文件,然后使用 Github Ac­tions 编译固件。

配置环境

使用 Ubuntu 20.04LTS,基于 wsl2。

设置代理

需要为 wsl 设置代理,由于 wsl2 基于 Hyper-V 运行,因此需要获取主机 ip 地址后设置代理。

1
2
host_ip=$ ( cat /etc/resolv.conf | grep "nameserver" | cut -f 2 -d " " )
export ALL_PROXY="http://$host_ip:7890"

克隆仓库并安装依赖

换源

1
2
3
4
5
6
# 中科大
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
# 阿里
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
# 清华
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn' /etc/apt/sources.list

安装依赖

1
2
sudo apt-get update
sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync

克隆仓库

1
2
git clone https://github.com/coolsnowwolf/lede
cd lede

添加软件包仓库

需要使用 Openclash 和 argonne 主题,添加 kenzok8 的两个仓库。

1
2
sed -i '$a src-git kenzo https://github.com/kenzok8/openwrt-packages' feeds.conf.default
sed -i '$a src-git small https://github.com/kenzok8/small' feeds.conf.default

拉取更新并更新软件包

1
2
3
git pull
./scripts/feeds update -a
./scripts/feeds install -a

配置编译设置

1
make menuconfig

主要修改:

  • 编译平台
  • Luci 主题和软件包
  • 为 Openclash 添加 kmod-inet-diag ( Kernel modules > Network Support )

提取 .config 文件

打开资源管理器,输入 \wsl$,进入 \\wsl.localhost\Ubuntu20.04LTS\home\YOURUSERNAME\openwrt 找到 .config 文件,提取备用。

配置 Actions

  1. 使用 p3terx 的模板仓库 ,添加上一步的。config 文件。

  2. 由于作为旁路由使用,需要修改默认 IP 地址,在 diy-part1.sh 中添加以下内容

    1
    
    sed -i 's/ipad=${ipaddr:-"192.168.1.1"}/ipad=${ipaddr:-"192.168.1.111"}/g' package/base-files/files/bin/config_generate
  3. 在 Actions 界面启动编译即可。

使用说明见 使用 GitHub Actions 云编译 OpenWrt

0%