Jolla Unofficial Chinese Blog

在昂达平板上刷入Sailfish系统


在国产平板上刷入Sailfish系统感觉如何?这个哥们儿在昂达平板上试了试,效果不错。如果你有兴趣,也一起加入进来吧!

这篇文章这篇固件总结 让我颇受启发。简单来说,官方Jolla平板基于Atom Z3735F SoC (Bay Trail)芯片,可同时支持Sailfish系统和安卓系统。(顺便一提,这在安卓设备族谱上这个分支称为anzhen4_mrd8_w)。

中国有很多基于SoC的低价平板,这些平板一般支持安卓/Windows系统双启动。所以有什么理由不试试Sailfish系统呢?安卓固件很容易刷入这些设备,但各个设备的内核已经定制化,因此自定义ROM时一般会直接使用设备原版内核。

但Sailfish系统就不行了。Sailfish系统的systemd需要启用一些内核选项,而在安卓内核中这些选项大部分情况下被禁用了。如果中国制造商没有违反GPL 协议,按规定提供内核源码,那么重编译内核并启用这些选项将容易得多。不过这不是我要说的重点。庆幸的是,这些硬件都十分相近,我们可以基于其它设备的源码来自定义内核。

我有一台刷入Sailfish系统的昂达V820w平板。系统刷入还不完美,但硬件本身(触摸屏、音频、WIFI、蓝牙、前置后置摄像头)能运行。感谢Stskeeps 提供给我Jolla内核源码缺失的模块文件。最大的麻烦是让内核支持相机传感器。虽然必备驱动都有了,电源管理IC (PMIC) regs和通用型之输入输出 (GPIO) 的pin却十分困难。要修改的值只有几个,但要找出这几处却十分困难。我甚至不得不反编汇昂达安卓原版内核来理解哪里出了问题。

下面是一份昂达V820w刷入Sailfish系统指南(测试设备为V3,如果你手头也有一台,你可以通过系列号找出你的版本号)。希望能激起社区对在类似设备上刷入Sailfish系统的兴趣,我们也能获得更多的支持。不管是在这里还是在 #sailfishos-porters IRC频道上,我都希望能尽力提供帮助。

昂达V820w(V3)安装指南

首先确保有一款USB键盘和一根OTG数据线,我们需要用这些配置UEFI启动项。

  1. 在你的MicroSD卡上分出至少2GB ext4格式分区。推荐使用GParted。 你也可以尝试直接分区内置存储,但那要求在平板上启动一份Linux LiveCD 来分区。用MicroSD卡更容易,对测试来说也更安全。
  2. 你可以自行下载Jolla平板固件,然后解开root/home分区。Jolla平板 的逻辑卷管理器 (LVM) 会将root/home/fimage(恢复镜像)分配到独立分区。我 并未使用这个构架,因为平板存储有限,而且对测试来说太复杂了。 因此我将/home放到了root分区。/fimage则完全没必要了, 因为我们根本没有恢复镜像。然后,将 这里 root文件夹 复写到root分区。

    你也可以使用我准备的根文件系统tarball压缩包(已经更新到最新Sailfish 系统):mega.nz/#!cBZ2XZ6L!P3EIFFQzelAxK7203LIxY6jqbDHSp6lNcJnyOvjsArA

  3. 接下来你需要修改/boot下的grub.cfg文件。root=应该指向 正确的分区,而/dev/mmcblk1p2默认为MicroSD卡上的第二分区。

    由于平板无法从SD卡启动,我们还需要将/boot下的bzImagegrubia32.efigrub.cfg复制到root的内部存储ESP分区中。如果你有安卓root权限,你可以如下挂载

    su
    mkdir /data/local/esp
    mount -t vfat /dev/mmcblk0p1 /data/local/esp
    
  4. 连接USB键盘到平板,重启平板,按住ESC按键,进入启动菜单。 选择 从文件启动 (Boot From File) 选项,从列表中选择 ESP分区 (ESP partition) , 然后启动grubia32.efi

GRUB中的第一个选项一般会启动Sailfish系统。第一次启动会花上大概一分钟,但如果黑屏太久,试试按下电源键。

第二个选项(init-debug)将启用USB网络和telnet后台进程。这个跟 硬件自适应工具 (HADK) 9.2版中说的一样。这个选项将暂停启动过程,直到你通过telnet连接上去,并告诉设备继续启动。在此之前设备将一直黑屏。

这里是我的一些照片,如果你刷机成功,应该看起来像这个样子:

译按:原文作者刚好在中国,所以有机会尝试国产平板。译者感觉国内有许多刷机玩的,但刷Sailfish系统的我却认识不多。如果你有兴趣,可以联系他(联系译者也可以,由于尚未征得对方同意,在此就不放他的联系信息了)


Nikita

Translated by

TylerTemp

TylerTemp是一只Python程序员。你可以在这些地方找到我哦:      

如果你喜欢我的作品,你可以买我一杯啤酒,让我做的更好:  |  Flattr this