在 WSL2 上进行 OpenWrt 的编译
安装 WSL
- 从 Microsoft Store 安装 WSL:略
- 使用 LxRunOffline 安装 WSL:参考 LxRunOffline 和 @P3TERX 的博客《WSL 自定义安装目录、备份转移、设置默认用户 - LxRunOffline 使用教程》。
配置编译环境
配置 Windows Terminal 默认打开目录为 ~
打开 Windows Terminal——设置
,在 WSL 对应的区域加入一行
1 | "startingDirectory": "/home/<username>" |
其中,<name>
是上方显示的 WSL 的名称,username
是当前 windows 账户用户名的名称。
更换阿里云的源
完成 WSL 初始设置后:
备份原来的源。
1 | cp -ra /etc/apt/sources.list /etc/apt/sources.list.bak |
修改
1 | vim /etc/apt/sources.list |
将其中的东西替换成:
1 | deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse |
保存,退出,然后更新缓存与升级。
1 | sudo apt-get update |
设置代理(以 Clash 为例)
为了加速编译所需文件的下载,需要给 WSL 挂代理进行网络加速。
WSL 不走主机端的代理,需要进行一番设置:
主机开好 Clash,开启 Allow LAN
的选项,
WSL 回到 /home
:
1 | cd ~ |
修改 ~/.bashrc
,自定义代理启动命令:
1 | vim ~/.bashrc |
在末尾加入以下代码:
1 | alias proxy='export https_proxy="http://127.0.0.1:7890";export http_proxy="http://127.0.0.1:7890";export all_proxy="socks5://127.0.0.1:7891";curl ip.sb;' |
** 注意:** 其中
7890
是 Clash 的代理端口号,请根据自己的配置进行修改。all_proxy
一行的 socks5 端口号为 Clash 的 http 端口号 +1
保存退出,在主机端 Clash 开启的情况下输入:
1 | proxy |
即可开启代理。
输入:
1 | unproxy |
关闭代理。
设置 WSL 中不加载 Windows 的 PATH 内容
!!在 WSL 中,不进行此项设置会导致编译出错!!
1 | vim /etc/wsl.conf |
打开后输入:
1 | [interop] |
保存退出后重启即可。
安装编译依赖
1 | sudo apt-get update |
然后就可以开始编译了。
编译
参见 OpenWrt/LEDE 的编译与 Mentohust 软件包的添加 —— 以斐讯 K2 为例
OpenWrt/Lede 源码请务必 Clone
到 ~
下再进行操作
获取编译的固件
在资源管理器地址栏输入 \\wsl$
即可访问 WSL 下的文件。以 x86_64 平台为例子,固件所在路径为:
1 | \\wsl$\WSL名称\home\用户名\lede\bin\targets\x86\64 |
致谢
感谢 @P3TERX,博客里的文章对我有很大帮助,本文自他的博客总结而来,亦有很大一部分文字直接复制自它的博客。
参考链接
https://openwrt.org/docs/guide-developer/build-system/wsl
https://p3terx.com/archives/compiling-openwrt-with-wsl.html
https://blog.csdn.net/wangyijieonline/article/details/105360138