一、前言
手里有部闲置的红米K40(国外版是POCO F3,代号alioth),想尝试在上面刷个 PostmarketOS 玩玩,遂记录下这篇笔记
PostmarketOS (简称 pmOS) 是一个针对智能手机和其他移动设备开发的自由开源操作系统,本身基于 Alpine Linux,可以选择多种不同的用户界面,想了解更多信息可以访问他们的官网:PostmarketOS。和其他基于 Android 的系统如 LineageOS 等不同,pmOS是完整的Linux发行版,可玩性更高。
二、准备
由于我这台设备不在官方支持列表中,但社区已有支持,如果你的设备在官方支持列表中,那么步骤会很简单,跟着官方的教程走即可。
我们需要准备的东西:
- 官方工具:
pmbootstrap - Linux环境
由于我使用的 Archlinux,可以直接用包管理器安装 pmbootstrap :
paru -S pmbootstrap
# 或者:sudo pacman -S pmbootstrap
使用社区的aports
参考这个仓库:https://github.com/nasaarmas/pmaports-alioth
将里面的 device-xiaomi-alioth firmware-xiaomi-alioth 和 linux-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 配置文件,配置默认允许传入连接(或自定义更精确的拦截),否则启动的服务无法被外部访问
四、图片展示








