试试给你的手机装上完整的Linux -- Postmarket OS简介

我总想着给买来的二手Nexus 5装一个Linux,除了这样做会很酷之外,我总假设自己有“在手机上远程到服务器操作”的伪需求,而且我并不太愿意借助一些第三方的App来进行这么重要的操作。

手机上的Linux

"Nexus 5 Linux"是我在搜索时使用的关键字

  • 有通过mhl实现手机Android与桌面Linux之间转换的maru os
    • 但已经没有提供更新。
  • 有为了渗透网络而定制的NetHunter。
    • 但最新版本是基于Android Marshmellow 定制的。
  • 还有由社区接手Canonical已经放弃的Ubuntu Touch,现在改名了的ubports。
    • 使用起来并不习惯(并不是一个好的拒绝理由 :P)。

然后无意间看到一条评论说有一个开始没多久的项目叫做Postmarket OS,打开它的官网一看。
嗯,就这个了。

Postmarket OS

官网的简介:Postmarket OS是一个基于Alpine Linux,并为触屏优化Linux发行版。能够安装到手机或其他移动设备上。但现在还处于非常早期的阶段,对于很多人来说并不能满足日常使用。

仔细想想,并不止远程这一点

正如Postmarket OS官网上的第一篇文章写道:

假设一台出厂已经十年的电脑,你仍然可以为其安装Linux发行版然后进行一些基本的例如上网、写文档、发邮件等操作。在这种情况下,你仍然能够收到安全补丁,你的电脑仍然是安全的,和除了配置外当下最新的电脑并无两样。

在手机上却不一样,手机厂商一般只会为机型提供两年左右的系统更新,而且如果不是旗舰机型的话时间可能会更短。这时候如果没有Lineage OS这样的第三方系统提供支持,那么可能一个具有足够计算机知识的人通过在网上搜索对应漏洞就能入侵你的手机。
而且如果你的手机使用的是Android系统,那么你所使用的操作系统只有Google有权限决定下一个版本的系统架构是怎么样,哪里要更新,应该长什么样。

那,装上去试试看?

我看了一下支持设备列表,发现Nexus系列的机型已经有人移植过去了,点进去之后按照里面的提示执行命令就行。但是对于这个项目,我挺想自己去移植的,于是我就放弃安装到Nexus 5上,选择了另一台退役机器 Moto G4。

Moto G4 Postmarket OS 移植

移植上去试试看。

pmbootstrap

pmbootstrap是一套专门针对postmarket os开发的刷入,编译、安装工具。直接从github上克隆代码就行。

git clone https://github.com/postmarketOS/pmbootstrap.git

开始移植

接下来后要做的就是按照官方移植教程一步步走下去。大致是

  1. 配置pmboostrap。
  2. 建立,修改设备相关信息。
  3. 找到对应的内核代码。
  4. 找到对应的内核配置。
  5. 修改内核配置。
  6. 编译内核。
  7. 出错的话就给内核代码打补丁。
  8. 生成系统镜像和内存文件系统。
  9. 刷入,调试。
  10. 刷入或启动不成功可能就要从第3重新开始。
  11. 设置显示屏、触屏等。

可能会遇到的问题

  • 编译内核出错
    • 这个还算比较好解决,因为你遇到的错误很有可能其他人也遇到过,找到其他设备内核配置文件夹里的补丁文件复制过来再修改编译配置即可。如果找不到,用搜索引擎查一查关键字应该都能找到对应的解决方法。
  • 编译内核不启动
    • 这个问题我移植的时候也遇到过,可能不同设备的解决方式是不一样的,不过一般都是通过换一个内核源代码来解决(因为我还没有找到能够通过硬件调试启动信息的方法)。我第一次用的是32位的内核,但是内核并不能正常启动,在用了64位的内核之后就成功启动了。

结果

  • 换了一个64位的内核之后能够正常启动,但是64位的内核却没有提供压缩算法,导致编译后的内核文件太大,没有办法刷入到设备中,每次要启动postmarket OS的话都只能通过fastboot来启动,比较麻烦。
  • 触屏在基于Wayland的桌面环境下没有反应,但是如果在选择用户界面的时候选择基于X11的xfce4 就能够正常使用,估计是触屏驱动有问题。
  • 大概用了一个月。

写在后面

移植的这一个月基本上就是找内核源代码,配置,编译,刷机。感觉没有多少技术含量,即使最后启动成功、点亮屏幕也没有多少成就感,可能我并不适合做这方面的工作..
不论如何,这次移植是成功的。你也可以在支持设备列表上找到motorola-athene,贡献者就是我。:D
期间我还尝试过移植HTC ChaCha,但是估计是设备和系统的兼容性问题,移植没有启动成功。

你可能感兴趣的:(试试给你的手机装上完整的Linux -- Postmarket OS简介)