LWN:PostmarketOS - 给手机和更多设备使用的Linux!

关注了就能看到更多这么棒的文章哦~

PostmarketOS: Linux for phones and more

July 3, 2024
This article was contributed by Koen Vervloesem
Gemini-1.5-flash translation (完全未校对)
https://lwn.net/Articles/979522/

2016 年,Oliver Smith 对于自己 Android 手机更新的短暂生命周期感到沮丧,于是他决定亲自动手。他开始开发 postmarketOS,一个面向手机的 Linux 发行版。八年过去了,核心团队和可靠贡献者 已经发展到 20 人,而最新的版本,v24.06,现在已经支持超过 250 种设备。虽然 postmarketOS 并非在所有设备上都能用作日常使用的手机操作系统,但它也可以将设备改造为紧凑型服务器或信息亭机器。

在它的网站上,postmarketOS 被描述为“真正的手机和其他移动设备的 Linux 发行版”。与主流移动操作系统不同,这意味着用户可以完全控制 postmarketOS。它赋予用户自由的权利去进行调整,备份和恢复 他们的完整主目录,将他们的手机变成一个 第二个显示器或其他 USB 设备,并能够从多种 界面 (在非移动系统上被称为“桌面环境”) 中进行选择。

PostmarketOS 基于 Alpine Linux,一个轻量级的 Linux 发行版,它也是 Linux 容器的流行基础。最近宣布的 v24.06 版本基于 Alpine Linux 3.20。所有界面都自 2023 年 12 月的 v23.12 版本 以来进行了升级。特别是,KDE Plasma Mobile 6 提供了许多新功能,包括引入一个新的主屏幕,允许用户使用应用程序、文件夹和窗口小部件来自定义页面。

设备支持

正如任何移动 Linux 发行版一样,潜在用户的首要关注点可能是设备支持,因为不能指望 postmarketOS 支持任何任意的手机。该项目的 wiki 页面有一个自动生成的页面,包含 支持的设备,根据其支持状态分为三个 类别:主、社区和测试。

了解这些类别对于在将 postmarketOS 安装到设备之前调整预期至关重要。新移植的设备最初处于测试类别。只有在满足某些要求后,它才会被提升到社区类别。这些要求与功能集无关,而是与移植的维护相关。这包括有良好文档的安装说明、一个 [[https://wiki.postmarketos.org/wiki/(Close_to)_Mainline][(接近) 主线 (mainline)] (non-merge changeset)] 内核、自动内核升级以及积极参与发布过程的维护者。社区类别中有数十种设备,包括手机、平板电脑、基于 Arm 的笔记本电脑,甚至一些单板计算机。在考虑其中之一时,请始终参考功能矩阵,以了解预期功能,并仔细阅读设备特定的 wiki 页面,以了解任何潜在的注意事项。

只有在至少两个人积极维护且可以完全用作手机时,移植才会被提升到最高类别。这包括拥有一个功能性的用户界面、正常工作的电话呼叫以及用户在手机上期望的许多其他功能的支持:短信、移动数据、WiFi、音频、电池充电和蓝牙。请注意,正常工作的摄像头不属于必需功能。目前,只有两款手机处于主类别:PINE64 PinePhone 和 Purism Librem 5,它们都具有所有主要功能,但摄像头功能仅部分可用。LWN 在 2022 年 2 月查看了 PinePhone。

安装 postmarketOS

postmarketOS 提供两种主要的 安装方法。第一种方法需要下载 预构建镜像 并将其刷入手机。下载页面 上的镜像主要是主设备和社区设备,以及测试类别中的少数设备。这是最简单的方法,虽然缺乏定制选项。

第二种方法适用于所有设备,需要使用 pmbootstrap 构建定制镜像。即使对于有预构建镜像的设备,这也是一种有趣的方法,因为它允许选择用户界面、预安装特定软件包以及执行其他定制。

Pmbootstrap 通过使用 Alpine Linux 设置一个 chroot 环境并在其中安装所需的软件包来工作,类似于 Debian 的 debootstrap。它需要至少 10GB 的可用空间,并且可以在大多数安装了 Python 3、OpenSSL 和 Git 的 Linux 发行版上运行。Pmbootstrap 可在各种发行版的仓库中获取,但使用 Ubuntu 24.04 中的软件包对我不起作用,因为它使用的 2.1 版本已经过时,促使我 从 Git 安装最新版本。

在询问了一些问题(例如从哪里获取软件包的更新通道、设备供应商和设备名称)后,调用 "pmbootstrap init" 命令会初始化工作环境。它还允许选择用户名、WiFi 后端 (wpa_supplicant 或 iwd) 以及用户界面。对于我的 PinePhone,我选择了 Phosh,它最初是由 Purism 为其 Librem 5 开发的;它是一个基于 GNOME 和 Wayland 的手机外壳。随后,可以将要安装的任何其他软件包指定为逗号分隔的列表,并设置时区、区域设置和主机名。初始化过程还允许将 SSH 公钥复制到设备,以便稍后登录。

78365fd7b11cf73148f56c59dd76eab2.png

完成这些准备后,"pmbootstrap install --sdcard /dev/DEVICENAME" 命令会为手机构建定制镜像并将其写入指定的 microSD 卡。使用 全盘加密 创建镜像需要在 install 命令中添加 --fde 选项。

该命令首先准备 chroot 并创建设备的根文件系统。登录密码提示允许选择仅使用数字字符(因为 PIN 码更容易输入)或使用字母数字字符以提高安全性。最后,pmbootstrap 将引导和根文件系统写入 microSD 卡。设备特定的 wiki 页面提供了更多信息,适用于需要此类信息的用户。"pmbootstrap shutdown" 命令清理了整个过程,然后可以将 microSD 卡插入手机。在对我的 PinePhone 进行测试安装时,整个过程都很顺利。

除了将镜像写入 microSD 卡之外,还可以使用 "pmbootstrap install" 生成镜像,然后使用 "pmbootstrap flasher" 刷入 连接的设备。具体的步骤可以在设备的 wiki 页面上找到。

在 postmarketOS 上使用 Phosh 与在其他任何移动 Linux 发行版(例如 Mobian,我们在 2023 年 4 月 这里 报道过)上与相同外壳进行交互并没有太大区别。大多数应用程序都是相同的;使用 GNOME Software 安装和更新 软件。它被配置为从 Alpine 和 postmarketOS 仓库以及 Flatpaks(来自 Flathub)安装软件包。相同的软件包也可以使用 Alpine 的命令行软件包管理器 apk 或 GNOME Console 应用程序中的 flatpak 命令来安装。

当然,自我们在 Mobian 上查看 Phosh 以来,它的开发并没有停滞不前。最新 postmarketOS 版本中包含的全新 Phosh 0.39.0 添加了一些不错的功能。这包括能够通过长按 WiFi 图标在快速设置中选择 WiFi 网络,以及通过长按底部栏打开屏幕键盘。

进一步发展

就像它的父发行版 Alpine Linux 一样,postmarketOS 使用 OpenRC 作为其默认的 init 系统。然而,在 OpenRC 上运行 GNOME 或 KDE 会带来一些挑战,因为 systemd 的一部分必须重新实现 以支持这些桌面环境:

为了使 KDE 和 GNOME 能够正常工作,我们在 OpenRC 之上使用了大量的 systemd 填充程序。所以,虽然我们在技术上“没有使用 systemd”,但实际上我们已经使用了 systemd 的大部分组件来运行 KDE 和 GNOME,只是这些组件的不同版本。

例如,openrc-settingsd 重新实现了 systemd 的 hostnamedlocaled 和 timedated。其他调整重新实现了 systemd-logindsystemd --user 和 journald 的部分内容。一个主要问题是,一些适应 systemd 的代码块(“填充程序”),例如用于 systemd.timer 和 systemd-coredumpd 的代码块,没有维护。因此,开发人员决定开始在 systemd 之上开发 postmarketOS,至少对于 GNOME 和 KDE 来说是这样。使用 pmbootstrap 构建自己镜像的用户将保留选择 OpenRC 的选项。带有简约的 Sxmo 界面的 postmarketOS 镜像将保留 OpenRC。

最初的 systemd 支持 目标是 下一个版本,v24.12,预计在今年 12 月发布。虽然 systemd 官方只支持 GNU C 库 (glibc),而 postmarketOS 和 Alpine Linux 基于轻量级的 musl libc,但开发人员根据 LWN 的评论 认为,所需的变化不会太大。公告还指出,systemd 为 postmarketOS 中的一些新功能提供了便利。例如,套接字激活允许从手机打印,而无需一直运行 CUPS。一个需要注意的是,将使用 postmarketOS 的手机切换到 systemd 将需要重新安装。

postmarketOS 计划进行的另一个 更改 是切换到 PipeWire。目前,PulseAudio 仍然是该发行版的默认声音服务器,但最近的 postmarketOS 版本在许多软件包中删除了对 PulseAudio 的硬编码依赖项,允许开发人员尝试使用 PipeWire。从长远来看,该项目还在探索发布该操作系统的 不可变版本 的可能性。

结论

虽然 PostmarketOS 可能不是适合所有人的移动操作系统,但它肯定适用于 Linux 爱好者。支持最好的设备,Librem 5 和 PinePhone,不幸的是在电池续航时间和性能方面并不是最出色的。然而,Phosh 是一款适用于这些设备的功能强大的移动用户界面,包括功能性的电话呼叫和短信。

再加上这是一个真正的 Linux 发行版,你可以根据自己的喜好对其进行塑造,在其上安装 Linux 软件包,并使用 rsync 等工具进行备份,postmarketOS 无疑服务于一个包含许多非手机使用场景的利基市场。例如,你可以使用 Wayland 信息亭合成器 Cage 构建自己的镜像。这会显示一个最大化的单一应用程序,这是将旧手机改造为家庭自动化系统的控制面板的完美解决方案。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

446c5b08a5e6bb40dabefae98f6f52fb.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值