Haha. So far Iām still working off my first ThinkSmart. The other two are still shrink wrapped
Here is an image you can use for testing. The default user is pmos
with password pmos
.
pmos-lenovo-cd-18781y-testing-20240217.tar.xz (409MiB)
You can flash it with EDL (using the loader from the original mod post) like this:
edl --memory=emmc --loader=prog_emmc_firehose_8953_ddr.mbn w boot lenovo-cd-18781y-boot.img && \
edl --memory=emmc --loader=prog_emmc_firehose_8953_ddr.mbn w userdata lenovo-cd-18781y-rootfs.img
Would probably work with QFIL too, just never used it myself.
Be patient when booting for the first time. On first boot the partitions are resized and firmware is put into place from the /vendor partition. All of this can take a good 3-5 Minutes.
At the login screen use the keyboard button (left of 0
) to enter the password pmos
.
At some point in the boot process, if still connected via USB, the device will pop up as a USB network interface on your machine.
With that, once you see the Phosh login/lock screen you should also be able to SSH into the thing: ssh [email protected]
You can also just connect to WiFi using the UI.
Once logged into the system you can install additional packages using apk add
. pmOS has access to Alpine Linux package repos, so pretty much anything should be there.
Bluetooth Keyboards and Mice can be added through the UI in the Bluetooth Settings. Works perfectly.
If you want to use Firefox youāll have to disable hardware acceleration for now: Disable Use hardware acceleration when available (#56) Ā· Issues Ā· postmarketOS / mobile-config-firefox Ā· GitLab
Even building from source should be fairly straightforward:
- Setup pmbootstrap
- Run
pmbootstrap init
. Set up your pmOS environment to your liking (I recommend using phosh as the UI option). When it asks for a device choose qemu-aarch64
for now until you install my pmaports
git fork in the next steps.
- Go to the
aports
directory. You can find the path to it using pmbootstrap config aports
.
- Add my git repo as a remote:
git remote add kaechele https://gitlab.com/kaechele/pmaports.git
- Fetch my git repo:
git fetch kaechele
- Switch to the correct branch:
git checkout kaechele/lenovo-cd-18781y
- Set the target device to the ThinkSmart codename:
pmbootstrap config device lenovo-cd-18781y
- Run the installation:
pmbootstrap install
. This will take some time as it will have to download and compile the kernel for you.
- Sign the boot image. I use magiskboot:
magiskboot sign ~/.local/var/pmbootstrap/chroot_rootfs_lenovo-cd-18781y/boot/boot.img
(adjust paths as needed, may need sudo because files in the chroot are owned by UID 0 (root))
- Flash the resulting images using the
edl
command above.
Note:
Currently kernel update flashing from within pmOS is not enabled yet. So you will have to both pmbootstrap sideload
any updated kernel as well as EDL flash the resulting boot.img
. I hope to change this soon, so that the EDL flashing step will be no longer necessary. Just need to find an easy way to sign boot images within the build process and on the device before writing to the partition. If I can get lk2nd working we may no longer need signing (other than for lk2nd).