- Shell 84.7%
- Python 15.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
The FP6 is 4x Cortex-A520 + 4x Cortex-A720 and this image boots nothing else, so pass the compiler KCFLAGS="-march=armv8.6-a+fp16fml+aes+sha3+sm4 -mtune=cortex-a720". The stock arm64 build gives the compiler no arch flag at all (so one image can boot any Armv8 board). The string is what `gcc -march=native` derives on the phone, re-based on armv8.6-a so clang can express the same set (clang has no flagm2/rcpc2/ frintts tokens; it reaches them through the architecture level). 8.6 is the highest level whose mandatory set the phone exposes: 8.7 would assume WFxT and 9.x SVE2, and neither is in its hwcaps or ID registers. clang emits identical code for this and for -mcpu=cortex-a720+nosve+nomemtag; the difference is only which system features (SPE, ETE, TRBE, FPAC) it knows about, none of which generate code. Verified on eef717f978f1 with the aport config: builds with zero warnings, same module set as r100 (417), compat vDSO untouched, boots the dev phone with a clean dmesg and a GREEN selftest. Record: fp6 journal/base/captures/2026-09-05-mcpu-a720-verification.md. |
||
| .forgejo/workflows | ||
| aports | ||
| .gitignore | ||
| apk-resign.py | ||
| build.sh | ||
| check-aports.sh | ||
| install.sh | ||
| README.md | ||
fp6-img
Flashable postmarketOS images for the
Fairphone 6/6+, built nightly from the
Catcrafts milos-linux
combined-stable kernel branch, with
imsd (userspace VoLTE)
preinstalled.
Maintained by Jorijn van der Graaf (TheMightyCat) at Catcrafts.
What works
Everything on the combined-stable branch: display, touch, wifi, cellular
data, NFC (reader), speaker audio, microphone, IMU, magnetometer, barometer,
ambient light/proximity, fingerprint unlock through
fingerprintd, plus
VoLTE calls (both directions) through imsd.
Flashing
Download fp6-img.tar.xz from the latest release and unlock the bootloader
(Fairphone's official process).
Install: with the phone in fastboot mode,
tar xf fp6-img.tar.xz
cd fp6-img
./install.sh
install.sh erases dtbo, flashes the rootfs, RAM-boots the kernel, writes the boot partition from
inside Linux where the bootloader's NV-wipe cannot see it, then reads the modem
NV back and reports the result. The bootloader never writes boot.
Default login: user / 147147 (same as official postmarketOS images).
Never re-lock the bootloader with a custom image installed.
VoLTE configuration
imsd is installed but needs your carrier's P-CSCF address:
# /etc/imsd.env
PCSCF=<your carrier's P-CSCF IPv6 address>
Find it via android adb using adb shell dumpsys telephony.registry, then
systemctl restart imsd (the service is enabled at boot and waits for this
file to exist). See the
imsd README for the full
variable reference and carrier assumptions.