本帖最后由 Moncin 于 2019-3-19 10:15 编辑
WSL(Ubuntu18.04)编译OpenWRT记录(请先大致阅读后再按步骤操作)
适用于 Linux 的 Windows 子系统(英语:Windows Subsystem for Linux,简称WSL)是一个为在Windows 10和Windows Server 2019上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。在周年更新中引入时,只有Ubuntu镜像可用。秋季创意者更新将Linux发行版的安装过程移至Microsoft商店,并引入了Fedora和SUSE镜像。
WSL仅在版本1607之后的64位版本的Windows 10中可用。它也可在Windows Server 2019中使用。 此子系统无法运行所有Linux软件(如32位二进制文件)或需要在WSL中未实现的特定Linux内核服务的软件。由于WSL中没有“真正的”Linux内核,因此无法运行内核模块(如设备驱动程序)。 可以通过在Windows(主机)环境(例如VcXsrv或Xming)中安装X窗口系统来运行一些图形(GUI)应用程序(例如Mozilla Firefox),尽管并非没有警告,例如缺乏音频支持或硬件加速(导致图形性能不佳)。当前还没有实施对OpenCL和CUDA的支持,尽管计划在将来的版本中使用。 也就是说,微软明确指出WSL面向应用程序的开发者,而不是面向桌面环境或生产服务器,建议使用虚拟机(Hyper-V或Kubernetes)和Azure来实现这些目的。 在性能测试中,Windows Subsystem for Linux通常接近原生Linux,如Ubuntu,Debian,Intel Clear Linux或其他Linux发行版。I/O在某些测试中是WSL的瓶颈。 必须:
- 一台Windows10 1607或以上的电脑
- 系统盘最好有40G或以上空余空间(18年3月5日仅编译使用了近15G空间)
安装Windows Subsystem for Linux(Ubuntu): - 打开“控制面板”-->“程序”-->“启用或关闭Windows功能”-->“适用于Linux的Windows子系统”勾选后确定后电脑会重启
- 打开Microsoft Store
- 搜索Ubuntu
- 点击Ubuntu18.04并安装,默认安装位置为系统盘
启动Ubuntu18.04- 安装完成后在开始菜单找到Ubuntu18.04并单击启动
- 第一次启动会自动进行编译,需要等一段时间(由于现在系统用的挺好,没有再次进行安装,所以没图)
- 第一次登录需要设置用户名(英文需小写)密码(输入密码时密码不会显示)
- WSL无法直接用$$,$$R软件代理,我用的是$$Tap,如果用$$Tap建议用1.0.9.7版本,高版本软件本身禁止了Gog的访问。此外还可用Clash(仅能使用$$)、Fiddler,进行代理,在此不提供链接了。(感谢大佬@ysc3839在六楼的指点 )
- 建议进行全局代理
- 打开Ubuntu后先升级系统(需要密码):
- sudo apt update && sudo apt upgrade
复制代码
接着安装编译需要的依赖: - sudo apt-get 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 autoconf automake libtool autopoint
复制代码
下载源码(我用的是Lean的源码,感谢L大!): - git clone https://github.com/coolsnowwolf/lede
复制代码
进入编译目录:
更新源并安装下载好的包: - ./scripts/feeds update -a && ./scripts/feeds install -a
复制代码
测试编译环境并进入配置菜单:
设置完成后进行编译:
想加快编译速度可使用以下命令,-j后数字为CPU线程数进行多线程编译(查看CPU线程方法:打开“Windows PowerShell”-->输入“wmic”回车-->再输入“cpu get *”回车-->找到“NumberOfLogicalProcessors”为线程数)
如果仅仅想测试编译环境可以直接使用:
- 二次编译前需要先更新源码(每次编译都可以先更新源码):
- 再次更新源并安装下载好的包:
- ./scripts/feeds update -a && ./scripts/feeds install -a
复制代码
清除缓存:
清除配置信息(可选择不清除):
随后即与上文编译步骤相同(部分参考Lean大群内编译教程,大神真多)。
编译菜单设置- 选择要编译的路由器CPU型号,按“Enter”进入“Target System”选单(我的是Atheros AR7xx)
- 按上下键移动选项,按“空格”或“回车”选择
- 选择自己的路由器型号“Target Profile”
- 进入“LuCI”-->“Appolications”选择自己要用的插件
- 按“空格”调整选项“*”为编译进固件,“M”为单独编译,生成的ipk软件包将被放在 /buildsystem/bla/bla/bla(官方文档里就这样写的……)
相关链接
*图被放在了最后,原因是我不会把图插在内容里*
**感谢的人太多了,都感谢着吧**
补充内容 (2019-5-16 12:02):
最近要更新WSL2和Windows terminal,WSL2将有完整内核并且提高IO性能。看来选择WSL是没错的,就是有点坑固态…… |