找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 10684|回复: 23

小白写给自己看的WSL编译记录

[复制链接]
本帖最后由 Moncin 于 2019-3-19 10:15 编辑

WSL(Ubuntu18.04)编译OpenWRT记录(请先大致阅读后再按步骤操作)
  • WSL简介(复制于维基百科)
适用于 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后先升级系统(需要密码):
    1. sudo apt update && sudo apt upgrade
    复制代码

  • 接着安装编译需要的依赖:
    1. 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大!):
    1. git clone https://github.com/coolsnowwolf/lede
    复制代码

  • 进入编译目录:
    1. cd lede
    复制代码

  • 更新源并安装下载好的包:
    1. ./scripts/feeds update -a && ./scripts/feeds install -a
    复制代码

  • 测试编译环境并进入配置菜单:
    1. make menuconfig
    复制代码

  • 设置完成后进行编译:
    1. make V=s
    复制代码

  • 想加快编译速度可使用以下命令,-j后数字为CPU线程数进行多线程编译(查看CPU线程方法:打开“Windows PowerShell”-->输入“wmic”回车-->再输入“cpu get *”回车-->找到“NumberOfLogicalProcessors”为线程数)
    1. make -j5 V=s
    复制代码

  • 如果仅仅想测试编译环境可以直接使用:
    1. make defconfig
    复制代码

  • 二次编译前需要先更新源码(每次编译都可以先更新源码)
    1. git pull
    复制代码

  • 再次更新源并安装下载好的包:
    1. ./scripts/feeds update -a && ./scripts/feeds install -a
    复制代码

  • 清除缓存:
    1. rm -rf ./tmp
    复制代码

  • 清除配置信息(可选择不清除):
    1. rm -rf .config
    复制代码

  • 随后即与上文编译步骤相同(部分参考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是没错的,就是有点坑固态……

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 楼主| | 显示全部楼层
如果有大佬路过能告诉我为什么用 更纱黑体 之后字符画为什么会这样那就太感谢了!d=====( ̄▽ ̄*)b
回复

使用道具 举报

不告诉你,因为你字都打错了
回复

使用道具 举报

前排支持,感谢分享
回复

使用道具 举报

来自手机 | 显示全部楼层
这个有点慢,我都是实体1804,32G内存,编译目录直接挂在内存上,全新开工不用半个钟,换个机型开工最多一刻钟,标准姿势
回复

使用道具 举报

WSL 不是 UWP 应用。WSL 本身不运行在 UWP 环境中。在商店下载的只是 appx 打包的 Win32 应用,手动解压后仍然可以使用。
要使用代理服务器的话,一般情况下可以设置环境变量 http_proxy 和 https_proxy
比如
export http_proxy=http://127.0.0.1:8888
export https_proxy=http://127.0.0.1:8888
http_proxy 意思是 http 的请求会使用这个代理,https_proxy 则是 https 的请求。
环境变量代理需要应用程序支持,不支持的话不会走代理。
回复

使用道具 举报

 楼主| | 显示全部楼层
ysc3839 发表于 2019-3-8 02:21
WSL 不是 UWP 应用。WSL 本身不运行在 UWP 环境中。在商店下载的只是 appx 打包的 Win32 应用,手动解压后 ...

好的,谢谢大佬,我现在修改一下。
回复

使用道具 举报

 楼主| | 显示全部楼层
ysc3839 发表于 2019-3-8 02:21
WSL 不是 UWP 应用。WSL 本身不运行在 UWP 环境中。在商店下载的只是 appx 打包的 Win32 应用,手动解压后 ...

因为一时没看懂……所以我附个链接吧(*゜ー゜*)
Win/Linux 命令行、终端和 Git 代理设置
回复

使用道具 举报

来自手机 | 显示全部楼层
不错,值得一试
回复

使用道具 举报

看了楼主帖子自己试了一下,WSL现在体验还可以,编译固件这种活完全可以胜任。不错,可以少装一个虚拟机了。
回复

使用道具 举报

请问Build dependency: OpenWrt can only be built on a case-sensitive filesystem这个问题如何解决呢?WSL1 Ubuntu 16.04
回复

使用道具 举报

 楼主| | 显示全部楼层
wh1tequartz 发表于 2019-9-15 23:02
请问Build dependency: OpenWrt can only be built on a case-sensitive filesystem这个问题如何解决呢?WS ...

许久没登恩山,现在都流行云编译liao~
回复

使用道具 举报

请问,在第7步,更新源并安装下载好的包,出错如图,楼主遇过吗
已开启$$R全局模式

Can't exec "make": No such file or directory at ./scripts/feeds line 22.
Use of uninitialized value in split at ./scripts/feeds line 22.
Use of uninitialized value $mkver[0] in pattern match (m//) at ./scripts/feeds line 24.
Use of uninitialized value $mkver[1] in pattern match (m//) at ./scripts/feeds line 25.
Use of uninitialized value $mkver[2] in split at ./scripts/feeds line 27.
Use of uninitialized value $mkv1 in numeric ge (>=) at ./scripts/feeds line 28.
Use of uninitialized value $mkv1 in numeric eq (==) at ./scripts/feeds line 28.
Unsupported version of make found: make

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

 楼主| | 显示全部楼层
中华有味 发表于 2019-12-18 16:00
请问,在第7步,更新源并安装下载好的包,出错如图,楼主遇过吗
已开启$$R全局模式

没有遇到过,我觉得你下载源码不完整……
不如删掉重下?
大雕这些日子源码改动还是挺大的。
回复

使用道具 举报

感谢老哥,我在全局代理那一步卡住了,原来需要更换代理软件,谢谢老哥。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-15 03:22

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表