backgroundbackground

PostmarketOS折腾笔记

PostmarketOS / Linux / POCO F3 / Redmi K40

技术

2025-11-16 09:42

一、前言

手里有部闲置的红米K40(国外版是POCO F3,代号alioth),想尝试在上面刷个 PostmarketOS 玩玩,遂记录下这篇笔记

PostmarketOS (简称 pmOS) 是一个针对智能手机和其他移动设备开发的自由开源操作系统,本身基于 Alpine Linux,可以选择多种不同的用户界面,想了解更多信息可以访问他们的官网:PostmarketOS。和其他基于 Android 的系统如 LineageOS 等不同,pmOS是完整的Linux发行版,可玩性更高。

二、准备

由于我这台设备不在官方支持列表中,但社区已有支持,如果你的设备在官方支持列表中,那么步骤会很简单,跟着官方的教程走即可。

在这里查看设备列表:https://wiki.postmarketos.org/wiki/Devices

我们需要准备的东西:

  • 官方工具: pmbootstrap
  • Linux环境

由于我使用的 Archlinux,可以直接用包管理器安装 pmbootstrap :

paru -S pmbootstrap
# 或者:sudo pacman -S pmbootstrap

使用社区的aports

参考这个仓库:https://github.com/nasaarmas/pmaports-alioth

将里面的 device-xiaomi-alioth firmware-xiaomi-aliothlinux-postmarketos-qcom-sm8250-alioth 放入 $HOME/.local/var/pmbootstrap/cache_git/pmaports/device/testing

三、开始

1、初始化配置

在终端中执行 pmbootstrap init 开始初始化,回答一些问题,下面贴上我的输入(默认的意思就是直接回车)

  • Work path: 默认
  • pmaports path: 默认
  • Channel edge: edge(edge是滚动更新,软件包会更新一些,也可以指定稳定版的版本号,截止目前最新稳定版是v25.06)
  • Vendor qemu: xiaomi
  • Device codename: alioth
  • Username user: (你的用户名)
  • Provider default: 默认
  • User interface console: fbkeyboard(这里可以选择你想要的界面,fbkeyboard就是在最基础的console底部绘制了个非常简易的虚拟键盘,免去外接键盘的麻烦)
  • Install systemd? (default/always/never) default: always
  • Extra packages none: 默认
  • Use this timezone instead of GMT? (y/n) y: 默认
  • Locale en_US: 默认
  • Device hostname (short form, e.g. 'foo') xiaomi-alioth: 默认
  • Would you like to copy these public keys to the device? (y/n) n: y
  • Build outdated packages during 'pmbootstrap install'? (y/n) y: 默认

然后等待初始完成即可进行下一步操作

2、构建系统

分别执行如下命令:

# 校验并构建驱动
pmbootstrap checksum firmware-xiaomi-alioth
pmbootstrap build firmware-xiaomi-alioth

# 校验并构建内核
pmbootstrap checksum linux-postmarketos-qcom-sm8250-alioth
pmbootstrap build linux-postmarketos-qcom-sm8250-alioth

# 校验并构建设备包
pmbootstrap checksum device-xiaomi-alioth
pmbootstrap build device-xiaomi-alioth

最后执行 pmbootstrap install 开始安装rootfs

3、刷入手机

手机进入 fastboot 模式

分别执行如下指令:

# 该指令仅限本设备(POCO F3),其他设备请参考对应的教程或官方指导
fastboot erase dtbo_b
pmbootstrap flasher flash_rootfs --partition userdata
pmbootstrap flasher flash_kernel --partition boot_b
fastboot set_active b
fastboot reboot

:如果刷入时卡住,可以尝试先执行指令,然后在等待设备时再进入fastboot

最后等待重启进入系统,开始享受

4、注意事项

如果要自行安装其他桌面环境,请停止 fbkeyboard 服务,不然可能会和虚拟键盘冲突

# 关闭fbkeyboard
sudo systemctl stop fbkeyboard.service

# 停用fbkeyboard
sudo systemctl disable fbkeyboard.service

网络防火墙问题,由于pmos使用 nftable 作为防火墙,需要修改 /etc/nftables.nft 配置文件,配置默认允许传入连接(或自定义更精确的拦截),否则启动的服务无法被外部访问

四、图片展示

image1

image2

image3

image4

image5

image6

image7

image8