在真机上折腾下 Manjaro

Posted by rarnu on 05-29,2023

自从入手了华为的 Matebook 之后,先前的小米笔记本就不香了,本来想着把它卖掉,但是又转念一想,我这不是还没一台 Linux 的真机么,拿着备一台也不错哇。

所以呢,下了决定就赶紧开工了。出于对 Arch 的喜爱以及深知自己太懒,我选择了 Manjaro 。不过这整个过程下来,坑也是不少,在真机上爬坑也是不容易呢。

一、烧录安装 U 盘

说实话现在 UltraISO 已经不好用了,无论是选 HDD+ 还是额外烧录 MBR,都无法正常以 EFI 的模式启动系统,目前最好的烧录工具是 Rufus,选好 ISO 后直接一键烧录,没有额外的操作。

二、从 U 盘启动

这个步骤其实挺麻烦的,特别是在小米的笔记本上,我原本以为只需要进 BIOS 把启动顺序改了就行,但是实际上跟本不是那么回事,改了启动顺序后,如果是 Win10 或 Win11 的 U 盘,是可以顺利启动的,也可以通过这种方式重装系统,但是 Linux 的 U 盘就直接不认了,会直接启动进入 Windows。哪怕是在启动时按 F12 来弹出启动盘选择,然后手动选择 U 盘也不行。
其实关键的改动在这里,因为小米锁了 Security,所以要设置一个密码,然后把 Secure Boot Mode 给改成 Disable,这样才能正常的从 U 盘启动。
IMG_0878
安装时的坑也是妥妥的有,由于小米的笔记本使用 N 卡,我原本想给它装个商业驱动,结果呢,启动不了哇,只能使用开源驱动,不过目前的开源驱动工作情况很好,并没有发现有什么毛病。

三、三指拖拽

系统装好后,我又想要类似于 Mac 的手势体验,比如说三指拖拽等,这种东西 Linux 必定不会官方支持(以前看到过一个讨论帖,其实目前是有技术大佬自己改了驱动的,但是各个发行版的官方都不愿意集成),又只能自己找解决方案了。
不过为了实现三指拖拽吧,真的很折腾人,网上有很多资料都已经过时了,只能自己摸索。
目前能正常工作的解决方案是这样的,在 Manjaro 刚安装好的那一刻,直接开启 AUR,并且把 xf86-input-libinput 这个包加入忽略升级的列表中。

$ sudo pacman -S yay

在 /etc/pacman.conf 中进行配置:

[options]
... ...
IgnorePkg = xf86-input-libinput

注意,在上面的操作完成前,千万不要执行升级命令,一旦 xf86-input-libinput 被升上去了,系统就得重装!
现在可以通过 AUR 来安装其他大佬改过的 input 驱动了,这个驱动即是可以实现三指拖拽的:

$ sudo yay -S libinput-three-finger-drag

注意,这个驱动与 libinput 冲突,因此 libinput 会被卸载,如果后续不想要三指拖拽了,可以重新安装 libinput ,并且那个时候也会提示你卸载 libinput-three-finger-drag 。

这一步完成后,才可以进行全面的系统升级:

$ sudo pacman -Syyu

如果一开始就做了全面升级,已经把 xf86-input-libinput 升级到 1.3.0 以上版本了,此时就要注意了,你可以在重启之前,马上执行以下命令来对 xf86-input-libinput 进行还原:

$ sudo pacman -U https://archive.archlinux.org/packages/x/xf86-input-libinput/xf86-input-libinput-1.2.1-1-x86_64.pkg.tar.zst

如果你已经重启了,你会发现键盘鼠标全部失效,完全无法输入(但是如果是虚拟机的话,是可以有输入的,只是会非常卡顿,所以还是可以用上面的方法来修复),这个时候就只能用安装 U 盘去修复了。

四、中文乱码

由于我安装时选择的是 enUS.UTF-8 的编码,因此 Manjaro 默认不安装中文字体,不过说起来也很神奇,字体这种东西,应该是官方源时自带的,结果查了一圈发现并不自带,难道安装为中文时,它还会自动开一下 AUR,并且在安装完毕时自动关闭么?
不过这些都不重要,我们还是解决问题。在开启了 AUR 的情况下,其实这个问题非常容易解决,只需要安装一个字体:

$ sudo yay -S ttf-wqy-microhei-ibx

五、指纹解锁

我只能说,在小米这机器上无解,通过 lsusb 查看得知,它使用的指纹传感器的 PID & VID 是 10a5:9200 ,然而在 libfprint 的支持列表里,恰好就没有它。
然后在 AUR 里翻了半天,翻到各种奇特机型的指纹驱动,却唯独没有小米的。

好吧,那也只能告一段落了,以后有空再研究这个驱动怎么玩吧,至少目前已经可以有一个 Linux 真机来跑项目啦。