以前用 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 C02TobNClov1Dz56 2022-05-18 17:52:55 +08:00 wsl1 可以的, 我自己就在用. 不过只是偶尔用下才会用 wsl |
![]() | 5 C02TobNClov1Dz56 2022-05-18 17:57:12 +08:00 我是说大小写, 不是指 aosp 编译的事哈 |
6 461da73c 2022-05-18 17:58:41 +08:00 有啥不行的?你又不是运行,编译也就编译器工作。 |
![]() | 7 C02TobNClov1Dz56 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 C02TobNClov1Dz56 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 C02TobNClov1Dz56 2022-05-19 09:11:06 +08:00 @Cu635 上面写了个 getfattr, 我就用过这个. 而且 linux 上的文件系统不是大多都区分大小写嘛? |
17 MaxLi77 2022-05-19 17:36:13 +08:00 ![]() 十分不建议 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/ |