【新手向】PostMarketOS移植从入门到放弃(01.初始化设备)
OrionisLi
2024年07月31日 21:27
收录于文集
共4篇

Step1.  准备环境

注意:需要至少10GB的可用空间,推荐Ubuntu 22.04真机环境(到时候刷机方便)

1. 安装必要的packages

代码块
Shell
自动换行
复制代码
sudo apt install python3 python3-pip 

pip install tomli
复制成功

2. 准备pmbootstrap

代码块
Shell
自动换行
复制代码
#截至2024-7-31最新CommitSHA为ae4094c1db7c69dd2b44438d3dbb3e4b083dca2e
git clone https://gitlab.com/postmarketOS/pmbootstrap.git
#创建目录
mkdir -p ~/.local/bin
#建立符号链接
ln -s "$PWD/pmbootstrap/pmbootstrap.py" ~/.local/bin/pmbootstrap
#检查版本
pmbootstrap --version
# 3.0.0_alpha
复制成功

注意:最新(alpha版)pmbootstrap需要至少python3.10的环境进行安装

可能存在的问题:如果提示报错pmbootstrap: command not found,请检查~/.local/bin/目录是否存在环境变量PATH中如果没有可在~/.bashrc下添加export PATH="$PATH:~/.local/bin"


3. 初始化PostMarketOS

代码块
Shell
自动换行
复制代码
pmbootstrap init
复制成功

Work path选择默认,有需要可自行修改在这里我为"/home/orionisli/working/postmarketos/"

Channel [edge]选择默认edge

Vendor [qemu]在这里选择自己手机的生产商。我们在这里拿不在列表里的NubiaZ17(NX563J)举例子,Vendor改为nubia

是否新建port选择y

Device codename 可自行查询"手机型号 + codename"。我这里为nx563j

architecture 一般比较新的手机都是aarch64(armv8)架构,有少数比较老的为armv7架构(像我手里一款LG G2就是armv7架构),x86和x86_64模拟器比较多(x86_64还可能是搭载64位CPU的chromebook)

Manufacturer 就写自己手机的生产商,我的是Nubia

Name 写手机型号,我的是Nubia Z17

Chassis 里面的名词要解释一下

Desktop (台式机),Laptop (笔记本电脑),Convertible (类似于Microsoft Surface),Server (服务器),Tablet (俗称的平板不要和Convertible搞混了),Handset (一般打电话的手机),Watch (智能手表),Embedded (嵌入式系统),VM (虚拟机)。

注意:一般Tablet和Handset居多,手机选handset

有无键盘和SD卡按照自己手机的有无选

Flash method 手机都选fastboot模式,如果没有Fastboot(不太可能吧……),

三星(Galaxy)的可选Heimdall刷机方式

联发科(MediaTek)芯片组的可选MTKClient刷机方式

瑞芯微(Rockchip)芯片组的可选RKDevelopmentTool刷机方式

高通(Qualcomm)芯片组的可选UUU刷机方式

最后一个path你要贴一个你手机的boot.img文件地址在上面一般都可以从LineageOS那里搞到,也可以去XDA论坛找找

 User interface 按照自己喜好和设备进行修改,供参考

Interface1

Extra packages 可选安装git和nano

Build outdated packages during 一定要选y

 提示:DONE! 完成设备初始化


4. 修改配置文件

一般默认配置文件在~/.config/pmbootstrap_v3.cfg,(稳定版本在~/.config/pmbootstrap.cfg)

用nano打开,在[mirrors]下添加

代码块
Shell
自动换行
复制代码
pmaports = http://mirrors.bfsu.edu.cn/postmarketOS/
systemd = http://mirrors.bfsu.edu.cn/postmarketOS/staging/systemd/
alpine = http://mirrors.bfsu.edu.cn/alpine/
复制成功

5. 安装

代码块
Shell
自动换行
复制代码
pmbootstrap install
复制成功

接着会出现 *** (1/4) PREPARE NATIVE CHROOT ***

但一般会报错ERROR: Invalid pkgver '3.x.x' in APKBUILD: [位置]/linux-nubia-nx563j/APKBUILD

预知报错如何修且听下回分解