以前用 WSL1 试过编译,结果检测到硬盘不区分大小写,后来查资料发现,WSL1 并不具备修改 windows 物理硬盘属性的功能,遂放弃。不知道 WSL2 可不可以,有没有试过的家人呢?
1
2NUT 2022-05-18 17:42:04 +08:00
wsl 就是虚拟机 应该可以更改
大小写是文件系统属性吧 |
2
libook 2022-05-18 17:47:57 +08:00
没试过,理论上 WSL2 就是在 Hyper-V 虚拟机里面跑的 Linux ,只不过没有启动过程,类似于 chroot 环境。
一般编译工作都只是涉及编译工具链、依赖库,不会涉及到硬件设备和系统服务,应该问题不大。 不过你完全可以用系统自带的 Hyper-V 开个虚拟机装个完整版的 Linux 来编译,网上针对 Linux 环境的教程应该都适用。 蹲一个试过的大佬。 |
3
gam2046 2022-05-18 17:51:44 +08:00
可以。原先的 wsl1 同样也可以。我在我孱弱的丐版 surface pro 上编译过,只是比较慢,等了 4 个小时也出来了。
|
4
chengyiqun 2022-05-18 17:52:55 +08:00
wsl1 可以的, 我自己就在用. 不过只是偶尔用下才会用 wsl
|
5
chengyiqun 2022-05-18 17:57:12 +08:00
我是说大小写, 不是指 aosp 编译的事哈
|
6
461da73c 2022-05-18 17:58:41 +08:00
有啥不行的?你又不是运行,编译也就编译器工作。
|
7
chengyiqun 2022-05-18 17:59:30 +08:00
确定目录是否区分大小写:
getfattr -n system.wsl_case_sensitive <path> 将目录标记为区分大小写: setfattr -n system.wsl_case_sensitive -v 1 <path> 将目录标记为不区分大小写: setfattr -n system.wsl_case_sensitive -v 0 <path> 唯一要注意的事, 将目录标记为区分大小写时, 如果目录非空, 里面有子目录, 子目录不会被标记为大小写区分. 但是你先标记一个空的目录为大小写区分后, 再拷贝别的目录进去, 子目录也区分大小写了. |
8
chengyiqun 2022-05-18 18:00:24 +08:00
|
9
Helsing 2022-05-18 18:39:01 +08:00 via iPhone
wsl1 改一下磁盘大小写一样可以编
|
10
ysc3839 2022-05-18 18:41:32 +08:00 via Android
理论上可以,但个人还是建议用虚拟机装个系统,就怕有的东西依赖 systemd 之类的
|
11
StonyGround OP @chengyiqun 感谢!🙏 我这就去搞,大家等我好消息
|
12
Cu635 2022-05-18 20:57:51 +08:00
@chengyiqun
linux 上有啥确定是否区分大小写的工具么? |
13
ikas 2022-05-18 21:25:18 +08:00
没必要文件放在 windows 分区上..直接创建 vhd,然后 monut 到 wsl2
我编译过多个版本的 aosp,lineage,没有任何问题 |
14
AS4694lAS4808 2022-05-18 22:01:40 +08:00 via Android
可以是可以,但是别直接在 /mnt 下编译,把文件拷到 wsl 的空间里,否则 io 让人怀疑人生。。
|
15
chengyiqun 2022-05-19 09:11:06 +08:00
@Cu635 上面写了个 getfattr, 我就用过这个.
而且 linux 上的文件系统不是大多都区分大小写嘛? |
17
MaxLi77 2022-05-19 17:36:13 +08:00 1
十分不建议 wls ,各种各样的暗坑多。直接虚拟机就好了,很方便。
|
19
fcymk2 2022-05-19 23:00:08 +08:00
@ikas 试了下, 现在的 windows 版本 21H2 19044.1706 没有 wsl --mount 命令. , 是要用 inside preview 吗?
不能 mount vhd, 256g 空间吃紧.... |
20
StonyGround OP @fcymk2 可以把 wsl 从 C 盘移动到其他位置,参考 https://www.cnblogs.com/konghuanxi/p/14731846.html
|
21
StonyGround OP FAILED: [W][2022-05-20T10:45:41+0800][20976] void cmdline::logParams(nsjconf_t *)():250 Process will be UID/EUID=0 in the global user namespace, and will have user root-level access to files
------- 迎来了第一次报错,不能使用 root 编译,要切换其他用户,我记得以前也没有这个限制吧? |
22
StonyGround OP @StonyGround 错了,这个只是警告,原因是 OOM ,已经调高了内存和 swap
|
23
fcymk2 2022-05-20 20:03:45 +08:00
@StonyGround ssd 不够大...所以想拆成 2 个盘, 主盘放 ssd 上, 编 android 的丢机械盘去.
|
25
StonyGround OP 试过了,编译成功,但是需要注意两点,可能修改 wsl 默认配置和挂载 USB ,具体可以查看我写的博客: https://stonyground.cn/2022/05/19/wsl2%E7%BC%96%E8%AF%91aosp%E5%B9%B6%E5%88%B7%E5%85%A5pixel/
|