关于FydeOS/OpenFyde适配Surface 3的支持性讨论

前言
1.如果整篇文章有不对的地方,请指出来.
2.务必在看完整篇文章后跟我杠,否则我会比较恼怒
3.希望你能看完整篇文章!十分感谢!
我有一台4+64G的 Surface 3,想让它运行安卓应用,便选择了 FydeOS
可惜 FydeOS/OpenFyde 对 Surface3 驱动支持不是很好.
于是我就尝试在 FydeOS/OpenFyde 上给Surface3做适配.
在GitHub上就有人对 Surface 做适配,即linux-surface项目.
而有位叫kitakar5525的人,基于linux-surface做出了适用于 chromiumos 的 linux-surface 内核,有4.19和5.4两个版本,并且对 Surface 支持也会好些.


教程
(需要准备Diskgenius专业版、Rufus、从适用于 chromiumos 的 linux-surface 内核下载的5.4.24版本压缩包、从 FydeOS/OpenFyde 官网下载的img文件)
1.将压缩包中的modules文件夹复制到img文件里的ROOT-A/lib中,替换原有的modules文件夹;
并将vmlinuz.A文件复制到img文件里的EFI-SYSTEM/syslinux中,替换原有的vmlinuz.A文件.
2.将修改好的img文件(下文简称 fyos on surface3 )用rufus烧入U盘,在 Surface3 上启动,就OK了.


适配情况
粗略测试 了下,除摄像头、扬声器(似乎还有麦克风)以外,都能正常驱动,几乎没有问题.
不过系统就有问题了(毕竟换了个内核),后面会讲.


问题
Tip:因为时间关系,只发现这几个问题,个人认为应该还有问题,如果真是这样,请提出来.
1.安卓子系统无法启动
“激活安卓子系统”界面一直在转圈,个人猜测应该与替换后的vmlinuz.A文件有关.
2.没有声音
照下面教程在fyos on surface3上驱动不了扬声器, evtest 也没检测到 chtrt5645 ,只有什么 Intel HDMI audio .
但神奇的是,照下面教程在原版的 FydeOS/OpenFyde 可以 evtest 检测出 chtrt5645 ,但没有声音.
也不知道怎么样才能驱动.

默认情况下,声音在 Surface 3 平板电脑上不起作用。添加 UCM 文件:
git clone --depth 1 https://github.com/plbossart/UCM ucm
sudo cp -r ucm/chtrt5645 /tmp/mnt/ROOT-A/usr/share/alsa/ucm/

3.fyos on surface3以多重引导方式安装在硬盘后,无法引导进系统
卡在 starting “bootx64.efi” 上,个人猜测应该与替换后的vmlinuz.A文件有关.


建议
1.希望开发人员能给 FydeOS/OpenFyde 添加 chtrt5645 的驱动,文件在这里 UCM-master.zip (40.9 KB)
2.希望开发人员能为 Surface 3 适配.如果可以的话,能发布“ OpenFyde for Surface 3 ”吗?


总结
Surface 3 是一台还算不错的旧机器,个人希望燧炻创新能发布它的OpenFyde适配版,让这台老机器重获新生,而不是因为许多原因就此止步(比如 Surface 3 2+64G版,个人认为:“确实不符合最低系统要求,但你们也不能因此放弃 4+64、4+128版的 Surface 3 吧?”)。
最后由衷地感谢你看完了整篇文章!

2023年已去,2024年已来! 新年快乐!

我记得之前有人说装pro3的基本能用,你试一下pro3的

没看完,你提到的https://github.com/kitakar5525/chromeos-kernel-linux-surface, fydeos用的surface内核也是开源的已经到5.15了(如果我记得没错的话),你可以到github上找找

OK,我去找找

嗯…没找到 :sweat_smile:,能发个链接吗?谢谢!

我的问题,没意识到fydeos的surface内核是没公开的, https://github.com/linux-surface/linux-surface 上的5.15的patch + https://chromium.googlesource.com/chromiumos/third_party/kernel/ 的v5.15branch + overlayfs的patch https://github.com/openFyde/project-openfyde-patches/blob/main/sys-kernel/chromeos-kernel-5_15/files/008-overlayfs.patch

总之是比你找到的v5.4的对surface3的支持要更全,官方支不支持是有他们的考虑.

BTW,音频chtrt5645的配置 chromiumos有自己的配置文件,这个自己调起来很痛苦的.

对于没有支持的surface系列,优先建议用go3的版本试试

这些patch文件怎么整合到系统里呢?
换言之,你们是怎么用这些patch文件来适配设备的?
能给个教程吗?我想自己编译openfyde来适配我的surface3.谢谢!
能回答一下我的问题吗?谢谢!

我已经不在fydeos了,如果你要编译openfyde的话编译出来的OS是没有安卓子系统的,并且要求有linux, git和C的使用经验, 如果你还想继续的话往下看.

可以参见 https://github.com/openFyde/getting-started 去编译https://github.com/openFyde/overlay-amd64-openfyde_iris, iris的版本现在是6.1的内核,你可以去Linux-surface的github里面找6.1的patch,然后放到 https://github.com/openFyde/project-openfyde-patches/tree/main/sys-kernel/chromeos-kernel-6_1/files 里面, 其中可能会有冲突报错,需要解决.