Skip to content

Instantly share code, notes, and snippets.

@Kabouik
Last active September 1, 2024 10:35
Show Gist options
  • Save Kabouik/40462ed099cdcd6a7c6d4e5d65000316 to your computer and use it in GitHub Desktop.
Save Kabouik/40462ed099cdcd6a7c6d4e5d65000316 to your computer and use it in GitHub Desktop.
postmarketOS on F(x)tec Pro¹ (SD845/msm8998)

postmarketOS and mainline kernel on F(x)tec Pro¹

Below are the steps required to flash postmarketOS (port made by Danct12 based on earlier work by Notkit) and mainline kernel (work done by Kholk and the github.com/somainline group) on the Pro1 msm8998:

2022-03-10. As of today, Danct12's port has not been merged yet, hence there are a couple extra steps to manually apply patches to pmaports. Beware that this is all work in progress and there will be bugs and missing functionality. 2022-03-12. device-fxtec-qx1000-nonfree-firmware added to the port, meaning support for model, WLAN and GPU.

  1. pip3 install --user pmbootstrap
  2. pmbootstrap init and choose edge and whatever device (I chose qemu and aarch64, but it should not matter, we'll redo it later).
  3. cd /path/to/work/directory/you/chose/above/cache_git/pmaports
  4. wget https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2984.patch && git apply 2984.patch Don't worry about the warnings.
  5. pmbootstrap init and select fxtec and qx1000. I tested gnome and i3wm as WM, they both worked.
  6. pmbootstrap install (optionally, use pmbootstrap install --fde to enable full disk encryption).
  7. Connect Pro1 in bootloader/fastboot mode (Volume Down + Power) to USB2 port.
  8. pmbootstrap flasher flash_rootfs
  9. pmbootstrap flasher flash_kernel
  10. fastboot set_active b
  11. fastboot erase dtbo_b
  12. Boot, type in your FDE passphrase (with keyboard, touchscreen is crazy), and you'll quickly see the touchscreen is mad at you. Use sudo modprobe -r goodix_ts to disable it temporarily (it'll be back after a reboot). If you can't open a terminal before disabling the touchscreen, you can still ssh into the device while it's connected to USB. For me the IP was 172.16.42.1, I assume it will be the same for others; in any case it is shown in the terminal output at the end of step 9 above.
  13. Optional: to clear up space on your computer afterwards, use pmbootstrap -y zap -hc -d -p -m -o -r.

FNcfpfSX0AE41Yr 20220310_020907 20220310_020847


Relevant tweets from developers: Angelo (Kholk) some months ago and Danct12 a few days ago.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment