关于“自制”与替换驱动的尝试

FydeOS正处于初级阶段,对于某些特定设备的兼容性并不佳,如某些型号的触控板。但ChromeOS是基于Debian系的Linux开发的,我们可以通过在Linux下构建ChromeOS并在构建出来的系统中获取我们需要的某些硬件驱动。

该动态记录了我在修复HUAWEI Matebook13的FydeOS触控板驱动的历程

Section1 - Chrome OS的构建

这个过程我使用Brunch FrameworkRammus设备的恢复镜像完成。Linux环境下完成镜像构建需要figlet , pv , cgpt工具。

  • 推荐使用基于Debian的发行版,如Ubuntu等,不想实机割盘安装Linux的话WSL也可以(我是在WSL2的Ubuntu上完成的)。
  • Google以前一直使用Ubuntu,Debian进行Chrome OS的开发,cgpt工具似乎只有Debian系上有,因此推荐使用Ubuntu(原本本地有个manjaro安装盘俺想偷个懒的,可Manjaro上我pacman snap flatpak都找不到,无奈下回到WSL)。
  • 我建议你多准备一个U盘
  • FydeOS11.4基于CR86开发,我在Brunch Release的选择和恢复镜像的选择上也选择了86版本

该过程根据Github项目介绍的说明很快就可以完成,就是构建出来的镜像比较大(我的有14G),因此需要确保你的输出目录所在磁盘空间足够。

Section2 - 启动Chrome OS

制作LiveCD

构建出来的镜像理论上不止有一个,一般情况下它们将会被放在你存放Brunch脚本的同一目录下。我最后得到的img镜像文件有4个:

  • chromeos.img(该安装镜像的名字与你在脚本下操作时输入的文件名相同)
  • efi_legacy.img
  • efi_secure.img(据说是用于支持安全启动的,未详细了解)
  • rootc.img
    由于我的Matebook13支持UEFI启动并已在此前安装Hackintosh时关闭了安全启动,因此无需额外操作,直接将chromeos.img刷写进U盘制作LiveCD即可。

启动自编译的LiveCD

在UEFI启动界面选择从你制作的启动U盘启动后,镜像中带有的Brunch将会先进行准备工作,你将很快看见那个带有Chrome徽标的可以在半夜闪瞎眼的白色界面。

在欢迎界面,你可以先试试触摸板等设备的工作情况,并完成基础设置。此后以访客模式登入的选项会出现在屏幕左下方,接下来的操作我以访客模式完成。

在Shell下操作

进入shell后别忙着查找驱动存放的目录,你可以先使用evtest命令列出识别的设备,看看你的电脑的硬件是否被正确识别,我的如下

下方键入序号可以测试硬件工作状态。确认硬件正常工作后我们开始提取驱动文件。

ChromeOS的驱动文件存放在/etc目录下,如触控板驱动存放在/etc/gesture下,你可以通过ls命令查看该目录下文件。

/etc/gesture下一般有三个文件:

  • 40-touchpad-cmt.conf
  • 20-mouse.conf
  • 60-macbook-touchpad.conf

我们可以使用cp命令将它们复制出来,但是嘛…启动盘的ChromeOS上文件管理中本机硬盘貌似是离线的,你可使用另一个U盘(同样使用ls命令在/media中查看路径)中转文件。

当驱动文件成功地出现在你的U盘中时,你的工作已经完成90%了。

替换FydeOS的驱动

该过程参考Chauncy在unknown大佬的分享的基础上给出的方法。当然,如果你直接在shell里执行这些修改系统文件的命令,你可能会碰到这样的情况:

甚至

什么??!难道俺就此前功尽弃了吗?当然不是。

在@飞鸟之鸦的提醒下,我想起来了当时Hackintosh Bug Sur下读写系统文件需要挂载系统盘,此处类似。我们在shell中输入sudo mount -o remount, rw /后重新执行刚刚的修改操作即可。

在确认文件变动成功后,重启FydeOS,基本上就可以拥有比较完整的硬件体验啦

我的驱动文件

Matebook13(2018还是2019我忘了,但是这俩硬件差异非常小)

40-touchpad-cmt.conf (10.8 KB)
20-mouse.conf (11.1 KB)
60-macbook-touchpad.conf (1.2 KB)

具体的触控板型号我不太清楚,如果感觉型号与我的相同的可以试试。同时也希望官方大大可以把这个驱动合并到Fyde里啦!!!

其他碎碎念

FydeOS我关注了挺久,从V6开始到现在V11,感觉FydeOS的确在改善。触控板虽然依然不能用,但是与V6那时不同的是,V11自带的驱动可以实现点按,说明已经被系统识别到啦。

关于硬件兼容性的问题,我觉得这的确是除了知名度外影响FydeOS推广的问题。驱动的不完善让一些抱有尝鲜欲望的小白望而却步。官方呢也的确没有那么多精力来保证FydeOS对市面所有硬件都有很好的兼容性。鉴于ChromeOS是基于Linux开发而来,我觉得FydeOS官方可以释出一些构建工具和相关教程,搭建提交驱动文件的平台,鼓励一些有较强操作能力的用户构建合适的驱动,再通过这样的平台为FydeOS做出贡献。这样也符合Chromium OS项目的精神。

现在还剩一个问题就是调度与续航,这么久了本子在用Fyde的时候(轻度使用,俺就拿来码码字看看课件写写作业)都是温热,有时比较烫手。然后嘞,俺(现在)出门两个小时(中途写的这篇动态)连图书馆的wifi关蓝牙使用,电池电量只剩60%了。希望后续继续优化吧!祝FydeOS越来越好!!

使用的参考链接

[少数派]旧电脑再利用:完整版 Chrome OS 安装指南
[知乎]喜欢 ChromeOS?那就一起吃早午茶吧
[Github]Brunch Framework

3 Likes

看到 .conf ,我首先想到config 这个单词,望词生义,这应该是一个配置文件。

conf的确是普遍使用的“config”一词的缩写,应该可以理解为硬件配置文件,但是我不太清楚内核是否已经包含其他驱动文件和/etc目录下这些config的具体内容。同时我觉得这些文件可能用于提供系统与硬件交互方式和接口的描述,因此在写这篇动态的时候我使用了“驱动”这个词。:joy:如果考证并非如此的话我会进行修改的

1 Like

声音驱动也在这里吗,没有看见audio的字样啊

1 Like

同楼上,我在evtest和/etc里都没看到类似audio的字样,总不能全提取全替换吧 :joy:

这里有unknown大佬给出的一些信息,其他回复中也有一些,我的笔记本没有这些问题因此没有特意了解。声音输出可能与HDMI有关。

请求大佬补链