ToC
在使用 Portainer 部署容器时在 glances 看到几乎没流量, 知道又需要走代理了, 然而既然选择了使用 Portainer 这种集成度高的 wrapper 类工具, 就无法避免看不到实际指令只能靠它自动完成, 也就无法自己配置代理, 而且 Portainer 本身也没给出代理配置, 同时也为了以后各种服务不用再重复配置代理, 于是开始考虑路由器级代理.
刚好小米路由器青春版刚被斐讯 K2P 取代而退役, 就顺便编译个 LEDE 加上 v2ray 来做旁路由进行路由器代理吧.
尝试使用 WSL 下 Manjaro 配置依赖
sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch 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
这堆包, LEDE 官方 README 推荐用的是 Ubuntu, 刚开始看到时就感到不妙, 但本着没必要就不装多一个 WSL 发行版的心态, 先看看 Arch 源里有没有替代包.
前面没有问题, 替代包都有, 遗憾的是进行到 make menuconfig
时开始报错, 缺少包. 懒得再折腾, 老老实实去装 WSL Ubuntu.
期间看到 LxRunOffline 可以灵活管理 WSL, 之后试试看.
编译前配置
根据这里配置好 WSL 下的全局代理, 关键语句摘抄如下.
echo "export ALL_PROXY=\"socks5://127.0.0.1:1080\"" >> ~/.bashrc echo "export all_proxy=\"socks5://127.0.0.1:1080\"" >> ~/.bashrc sudo tee -a /etc/apt/apt.conf <<< 'Acquire::http::Proxy "http://127.0.0.1:1080";' > /dev/null sudo tee -a /etc/apt/apt.conf <<< 'Acquire::https::Proxy "http://127.0.0.1:1080";' > /dev/null
继续根据官方 README, 这次 make menuconfig
后成功进入图形配置界面, 不过面对各选项有点不知所措, 从此处得知关键的配置选项, 摘抄如下.
- Target System: MediaTed Ralink MIPS
- Subtarget: MT78x8 based boards
- Target Profile: Xiaomi MiWiFi Nano
- Target Images: 勾选 squashfs
再参考这里进入 LuCI 配置, 选自己需要的插件. 启用 v2ray 的选项如图.
生成的 config 存了个 gist.
下载, 编译
然后都是标准流程.
make download -j8 V=s make -j8 V=s
各命令解释可再次看这里.
第一次用 8 线程编译出错, 第二次用单线程, 成功. 怀疑是 LuCI 插件选太多导致包太大而出错, 调整了一下插件数量直接 10 线程编译, 没问题.
开刷
之后就是进小米路由器青春版的 breed 刷固件了, 这里直接选编译输出里的 squashfs-sysupgrade.bin 后缀文件就可以, 不需要用 initramfs-kernel.bin 后缀的打底.
又因为本人之前在小米官方开发版固件下直接用坊间重置 SSH 密码办法直刷 PandoraBox, 导致 u-boot 分区锁死, 又经历一番探索才成功刷入 breed, 留待下回分解了.
后续
有了自己的 config 文件之后, 后续还可以薅 Github 羊毛利用 Github Action 自动 CI, 解放本地运算/硬盘资源. 这里就不展开了.
参考链接
使用 Windows 子系统 (WSL) 编译 OpenWrt
OpenWrt 从下载到编译 — 个性化定制内容以斐讯 K2 路由器为例
本作品采用 CC BY-NC 4.0 进行许可。地址: https://d4v.is/wsl-complie-miwifi-r1cl-lede-with-v2ray/256/ 转载请注明。