使用Win10的WSL编译openwrt
一直在用别人编译好的固件,闲来无事试试在 win10 里自己编译一下
- 经测试 90%的问题是因为网络原因,所以注意全程打开 freestyle 上网
安装依赖
开启 Linux 功能
首先搜索 功能
在搜索结果中选择 启用或关闭 Windows 功能
在弹出的窗口中选择 适用于 Linux 的 Windows 子系统
点击确定开启此功能
安装 Linux 系统
win10 商店搜索并下载 Ubuntu 18.04LTS
用管理员模式打开 WSL
命令行输入
1 | sudo apt-get update |
然后输入
1 | 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 |
克隆源码
强烈建议在 WSL 里直接克隆代码,如果下到 windows 的目录上编译会有一系列意想不到的问题
1 | git clone https://github.com/coolsnowwolf/lede |
ps:如果你在这一步就克隆很慢的话,最好先解决一下网络问题,不然后面下载依赖库的时候大概率会出错
进入目录
1 | cd lede |
可以用vi feeds.conf.default
命令将文件最后一行前面的#
号删除
如果你不熟悉 vi 语法的话,也可以直接从 windos 目录上找到该文件,右键使用记事本打开编辑,路径在C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_字符串\LocalState\rootfs\home\用户名\lede\feeds.conf.default
添加怕死我安装包
1 | cd package |
再执行
1 | ./scripts/feeds update -a |
配置
输入
1 | make menuconfig |
这时候会进入配置页面
键盘上下移动光标,回车进去,ESC 返回, Y 选中, N 取消选中
最重要的都在LuCI
里
Themes
里是主题
Applications
里是各种插件
具体插件说明可以看这篇帖子
选完自己想要的插件后,按两下 esc&回车保存退出
编译
输入命令下载 dl 库(注意全局 freestyle 上网)
1 | make -j8 download V=s |
我第一次直接编译报错了,查了下是因为win10wsl 自带 path的问题,所以编译前先执行
1 | source /etc/environment |
输入命令确认下路径是否正确
1 | echo $PATH |
如果输出和上面一样的话就输入命令开始编译
1 | make -j1 V=s |
这里1
代表线程数,L 大推荐第一次编译使用单线程
二次编译
先进入源码根目录
1 | cd lede |
更新 openwrt 源码
1 | git pull |
再更新下插件的源码
1 | cd package |
更新下插件依赖库再返回根目录
1 | cd ../ |
直接编译
1 | make defconfig |
重新配置
1 | rm -rf ./tmp |
最后
编译好后输出路径在bin/targets
里
Windows 里的路径在C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_字符串\LocalState\rootfs\home\用户名\lede\bin\targets
刷入之后的效果
我按照这套流程下来是可以编译成功的,并且不算难,而且自己编译的固件是绝对没有后门的,推荐大家以后试试这种方式自己编译固件
ps: 固件我上传到Telegram 频道上了,有需要的可以自取