Welcome to the latest edition of what happened in the last (two) months of postmarketOS development! This time we kick it off with a photo of a Xiaomi Mi 9T running the new Tauchgang project, more on that below. It was taken at BTO7, one of the many events where we hung out lately. Others include XDC, Datenspuren (pmOS flashing stand, pmOS talk, Linux on smartphones talk), KDE Akademy 2025, FrOSCon 20 (FOSS on mobile stand, pmOS talk), WHY2025, and DEF CON 33. Thanks to all who attended and represented postmarketOS and Linux Mobile there!
Organizational
Jane stepped down as Trusted Contributor. She has done a lot of great things in Alpine (e.g. maintaining Phosh there for some time) and postmarketOS. Most notably she made the very first systemd proof-of-concept and played a huge part in getting it all the way to the v25.06 stable release of postmarketOS. Jane has been maintaining systemd in postmarketOS for all this time, ensuring new versions land, hunting down bugs, doing some of the musl-related patches upstreaming, adjusting other packaging to have it nicely work together, etc. Thank you very much!
Jens is our newest TC! He is maintaining Qualcomm SM7150 devices, doing Kernel development and U-Boot bringup, making more devices boot generic images and even improving musl support in the Rust compiler. Furthermore he runs a monthly mainlining meetup at the CCCAC that you should definitely check out if you are in the area. Welcome to the team!
Pablo joined Clayton with setting up office hours, but with his own focus "on non-technical aspects and listen to people about their feedback and frustrations". If you want to talk about that, join his weekly Jitsi call with your browser. Thanks, Pablo!
Clayton has been working on postmarketOS full-time for about 1.5 years! "But this story really starts a bit earlier, when I realized I couldn't keep splitting my attention between a job I loved and a side project that had grown into an obsession. Once I finally admitted that problem existed, the question then became: what was I going to do about it?". Read more in when being comfortable stopped being enough. Thanks, Clayton!
A code review etiquette has been written: "We encourage everybody in the community, with or without merge rights, but with expertise or interest in a topic, to help review code changes. To make sure we keep a healthy community and review culture, these guidelines should be followed" (#115, !6992). Thanks, Casey, Pablo!
After more than a year of work, the /usr-merge is now available in Alpine. See Alpine's announcement and our previous post for details. In postmarketOS edge, users have been automatically switched to an /usr-merged system (!6389). Thanks, Pablo, Clayton, Ariadne, Aster, Achill, Brady, Bartłomiej, Jane, Oliver, Rob, Barnabás and everybody else who helped out!
We decided to go with the times and rename our git default branches to main. This change will be done incrementally over the various repositories, see PMCR 0005 (!9) for details. Thanks, Aster, Oliver!
Following Anjan's feedback from FOSSY2025 we now have new Matrix / IRC channels for the pacific northwest crowd: "A bunch of people in the pacific northwest just wanted to join a channel with 'lets grab coffe in town X and work on pmOS' and coordinate smaller meetups rather than just doing conference stuff. People were even willing to drive to hang out :P"
- Matrix: #pacificnw:postmarketos.org,
- IRC: #postmarketos-pacificnw on OFTC
Finances
We were able to finance the wireplumber and callaudiod project for greatly improving our audio stack and discussions have started for another audio improvement project. We are not certain that this will work out at this point but we will let you know once we can say something for sure. Thanks to the amazing people donating to postmarketOS for making this possible!
Speaking of donations, we thought hard about how to turn more of them directly into sustainable postmarketOS development (without always organizing a larger project - we still want to do that too, but being able to do smaller paid work additionally as well) and now have a good plan in PMCR 0004 (!7). Thanks Clayton, Stefan, Pablo, Luca, Rudraksha, Joel, Rob, Achill, Ranny, Oliver!
The team approved a new entry to the budget of 1800€ for Code of Conduct enforcement training. Our previous blog post explains why we think this is important: "Other than being open source maintainers, none of us had much experience or training to deal with actual conflicts, and we had not developed any proper processes describing how we deal with issues. The potential fallout from poorly handling a conflict is huge, and it's our responsibility to prevent that from happening by ensuring that issues are dealt with timely and fairly, and are communicated effectively to all parties."
The board is responsible for approving expenses in our Open Collective as well as budgets when executing projects. The yearly board elections have taken place again in August. The resulting board consists of Luca (chair), Clayton and Stefan.
Tauchgang
Tauchgang is a new initiative to provide stable U-Boot releases for a variety of Linux Mobile devices. It consists of a small patchset of top of the latest U-Boot releases with strict rules to keep it as close to upstream as possible.
"Initially supporting a handful of Qualcomm phones as well as an Amlogic SBC, we hope to become to standardised way to bring up Linux Mobile by providing a stable foundation that can abstract away many of the annoying device specific quirks. Tauchgang is not a postmarketOS-specific project, but postmarketOS graciously offered their GitLab instance for hosting of the source code and CI."
If you want to get involved, check out the porting guide, have a look at the issues and join #tauchgang:postmarketos.org on matrix. Developers from other projects (e.g. Mobian, DanctNIX, Ubuntu Touch, Sailfish OS, and even beyond Linux Mobile!) are explicitly welcome as well!
Thanks Casey, Jens, Alexey M. and Ferass!
PCB, Hardware CI
We are working towards getting automatic testing on real hardware in postmarketOS, see our previous blog post for details. There has been a lot of progress on the PCB since then:
ncorna and Federico ordered the first batch (v0.1) of two PCBs and wrote a MicroPython bring-up firmware to validate it. Some functionality, like the RP2040 MCU and the USB 2.0 Hub worked on the first try. Other like the USB-C SuperSpeed just didn't work. After many attempts Federico realized that there was a specific combination of USB-C cable orientation in which SuperSpeed worked, giving us a hint of the issue. USB SuperSpeed over type-C ports requires high-speed multiplexers (MUX) that connect the right set of pins depending on the plug orientation. Turns out the MUXes were stuck due to a missing pin pull-up, and SuperSpeed worked only when the cable orientation matched the default MUX state.
ncorna found fixes for all the bugs and hand-patched his v0.1 board to validate them before the next production batch. We successfully tested the board by powering a real phone and using a 100W rheostat to make sure it could sustain a 5A load.
- In September we ordered the second batch (v0.2) of five PCBs. To our surprise, the board was fully working (!!), likely thanks to the extensive debugging on the previous version. The PCBs have been shipped to Martin R. which will work on the CI-tron integration and to Casey who will write a new firmware in Rust, extending the interface from the existing Pi Pico firmware to support the new PCB features like setting the battery emulation voltage.
The software side of the Hardware CI project has seen some development as well:
Martin R. added support in CI-tron for reusing complete boot images to allow testing the same artifacts generated for users to flash.
Martin R. enabled testing initramfs for qemu targets in a CI-tron virtual-machine (!6696).
Martin R. and Pablo worked on CI-tron integration in postmarketos-mkinitfs (!63) and boot-deploy (!81).
Thanks, ncorna, Federico, Martin R., Pablo!
Immutable postmarketOS
Significant progress has been made in the immutable version of postmarketOS, codenamed duranium, which enables verified A/B image-based updates for improved reliability:
After completing the design phase, a proof-of-concept was created and demonstrated showing first boot to immutable /usr with full disk encryption. This initial milestone is now complete. Thanks to NLnet/NGI Zero Core for funding work on this and to Clayton for the implementation!
A key piece of the design for an immutable version of postmarketOS is using mkosi to build images for initial install and A/B updates. Support for postmarketOS was merged in mkosi this past month. Additionally, support for using dtbauto/multi-devicetree in unified kernel images (UKI) was added to mkosi, which allows generating a UKI that is more generic for multiple ARM-based devices. Thanks to Clayton for implementing this, and to @DaanDeMeyer, @behrmann, @keszybz for their help and patience during code review!
A first-boot setup wizard was created in buffybox to handle user account creation and optional full disk encryption (!62). This is essential for immutable systems since images are pre-built and identical for all users, requiring user-specific configuration at first boot rather than during image creation. Having a first-boot setup wizard is also crucial for returning devices to an initial unconfigured state (factory reset). Thanks, Clayton, Johannes, Vladimir!
The postmarketos-install-recommends tool has been updated to support immutable image building with mkosi, ensuring recommended packages are installed. Support for running as root user, implementing shallow initial clone for pmaports, and making prompting optional have been added (!1, !2, !3, !7086). Thanks Alexey M., Clayton!
Next steps include merging the open pmaports MR for duranium/initramfs support (!7059), deciding on image building and deployment infrastructure, and resolving various tracked issues in the duranium repository.
If you are interested in this topic, you can follow progress and get involved in the dedicated postmarketos-immutable Matrix / IRC room.
systemd
systemd has been upgraded to 257.8 (!6920). Thanks Jane!
A major rework of systemd preset handling has been completed (!6892). The previous implementation required substantial additions to abuild that were unacceptable for upstreaming to Alpine Linux. The new approach moves all complex preset logic into a trigger that can be maintained in pmaports, making the required upstream patches minimal. This was made possible by treescan, a tool Ariadne wrote on the spot at our table during a recent conference to solve the trigger implementation challenges we faced! Thanks, Clayton, Ariadne!
This simplified approach allowed us to merge support for systemd subpackages into Alpine Linux (!433). Similar to how e.g.
docker-openrcprovides OpenRC init scripts for docker,*-systemdsubpackages will now automatically provide systemd unit files and configuration when systemd is installed. This effort has been over a year in the making. Currently, unit files are vendored downstream in pmaports where they easily became outdated. With the next abuild release, we can start removing these vendored versions and use upstream unit files directly from Alpine's packaging repository. Thanks, Clayton, Ariadne, Natanael, Pablo, Casey!Splash screen support has been reworked to more closely match plymouth behavior (!6926). This fixes issues where the splash screen would start multiple times or fail to terminate for rescue/emergency targets. The pbsplash configuration now ensures the splash displays correctly during shutdown and remains active throughout the process. Thanks, Jane, Clayton!
Two user interfaces received systemd support recently: Mate and XFCE4 (!6668). New unit files were created for lightdm and xfce4, and both desktop environments should now work under systemd. Thanks, Rob!
Several upgrades to systemd-enabled packages (!6857, !6874, !6875, !6889, !6912, !6931, !6945, !6957, !7035, !7041, !7051, !7052, !7053). Thanks, Biswapriyo, Achill, Oliver, Bart!
Various improvements / additions for systemd service files (!6743, !6860, !6883, !6923, !6956, !6960, !6966, !6996, !7001, !7008, !7016, !7057, !7090). Thanks, Jens, Alexey M., Anjan, Biswapriyo, Markus, Clayton, Dylan, Henrik, Vasiliy, tomaszduda23!
Various smaller systemd related improvements and fixes (!6840, !6842, !6861, !6884, !6915, !6919, !6927, !6929, !6950, !6954, !7023, !7025, !7029, !7031, !7039, !7049, !7061, !7079, !7129, !7130). Thanks, Jens, Biswapriyo, Markus, Clayton, Devin, Jane, Oliver, Bart!
pmbootstrap
We are excited that Henrik stepped up to become a pmbootstrap co-maintainer, joining Oliver, Casey, Stefan! Find code changes below, the best part is that pretty much all of them are already in the recently tagged 3.6.0 release:
The kconfigcheck.toml file we use to keep track of kernel config options can now use tristate values, meaning options can be configured to be built as modules too instead of just enabling or disabling them (!2688). This is in preparation for !2625, which will allow us to generate the very long, hard-to-
swallow/review/maintain configs from bite sized kernel config fragments as well as our kconfigcheck.toml file: "I tried to reuse as many mechanisms in pmbootstrap as possible. I felt like using kconfigcheck.toml as the "one source" for distro kconfig requirements was better than previous approaches where we tried generating new fragments and introducing new logic (e.g. jinja) to apply config conditionally. […] This change should have no impact at all on kernels in pmaports where maintainers are editing them 'by hand' or with kconfig edit." Thanks Clayton!pmbootstrap is now capable of building packages for ppc64le and loongarch64. For ppc64le we have added a binary repository for postmarketOS edge (#113), which not only allows to build packages and images for ppc64le devices without building everything from scratch. But also has uncovered various packages that wouldn't build with current GCC in Alpine anymore or other bugs and all of them have been fixed (!2673, !2674, !2685, !2694, !2695, !5774, !7114, !7117, !7119, !7120, !7123, !7124, !7125, !7126, !7127). Thanks Jens, Clayton, Oliver!
A previous assumption that all aarch64 CPUs could run 32-bit code natively (as it is the case with common x86_64s) turned out to be false. We learned this as more and more developers are on aarch64 devices. With recent changes pmbootstrap now has a proper check for this, and uses the usual cross compilation methods for CPUs that can't do it natively (!2686). Thanks Jens!
Android bootimg formats v3/v4 and flashing to the
vendor_bootpartition are now supported (!2630, !83). Thanks Ingo!The "pmbootstrap ci" command has a new "with-dot-git" option: "This can be used by CI scripts that need to access the git history. Previously, this could be achieved by using the 'native' option, but it's not an ideal solution as it means the script has to rely on tooling already available on the host, which is limiting and can be brittle. As such, introduce this option that solves the aforementioned use-case without the limitations of 'native'." Furthermore "pmbootstrap lint" is now deprecated, as "ci" is a better, more generic concept. When using this, linting extra-repos/systemd works as well (!2679, !6979). Thanks Stefan!
It is now possible to do
pmbootstrap init --shallow-initial-clone. "In particular, this is useful for the postmarketOS os-installer "UI" where we only care about the latest pmaports state and not the entire history. Not having to download the entire history both saves time in downloading the repository but also IO, especially since you typically flash installers onto USB flash drives which can be terribly slow. However, any other sort of installer script could probably find this useful as well" (!2652). Thanks Stefan!pmbootstrap's aportgen code that runs when starting a new device port now places "the generated APKBUILD files into the correct device/testing/ or device/downstream/ category, depending whether it's a port using upstream or downstream kernel" (!2683, !2607). Thanks knuxify, Luca!
Envkernel can now be used to compile u-boot as well, now that gnutls-dev gets installed (!2669). Thanks Henrik!
Various small fixes and improvements (!2611, !2620, !2623, !2645, !2649, !2650, !2654, !2657, !2659, !2662, !2663, !2664, !2665, !2667, !2670, !2671, !2672, !2675, !2676, !2677, !2678, !2680, !2687, !2690, !2691, !2692, !2693). Thanks Anjan, Clayton, RJ, Henrik, Aster, knuxify, Rob, Stefan, Oliver, Pablo, Hugo!
New device ports
This time the following devices have been ported:
Apple M-series Macs (!7048): the fourth device port to target an Apple device, this time targeting the laptop and desktop form-factors. Thanks, Clayton!
Generic Rockchip RK322x (!6982) devices (such as the MXQ 4K Pro set-top box) can now enjoy a second life on a mainline kernel. Thanks, leap!
Google Pixel 6, 6a and 6 Pro (!6728): all three of these devices use the Google Tensor G1 (GS101) SoC, making them the first Tensor-based devices being supported in postmarketOS. Thanks, Ingo!
Lenovo K8 Note (!6898): this MediaTek-based phone can now have a new life with postmarketOS. Thanks, Maanush!
MNT Research Reform 2 with BPI-CM4 (!6820): the first time a MNT device made it into pmaports Thanks, Andrei!
Nothing CMF Phone 1 (!6985): an only one year old device (!) that already boots with U-Boot as a first stage bootloader and has introduced a generic MT6878 kernel package along with the port. Thanks, BotchedRPR!
Samsung Galaxy A40 (!6916): a 2019 Samsung phone. Thanks, Dan!
Samsung Galaxy A53 5G (!6987): an even newer one from 2022. Thanks, Matus!
Starway Andromeda S8 (!7074): a 2013 tablet. "There is a device with the same hardware called FNF ifive X2." Thanks, faveoled!
Xiaomi Mi 9 Lite (!6819): a mid-range Xiaomi phone from 2019 equipped with the mostly-mainline Qualcomm Snapdragon SDM710 SoC. Thanks, Alicja!
Xiaomi Redmi Note 8 Pro (!6975): this device which was previously supported with a downstream kernel now gets to enjoy a close-to mainline kernel. Thanks, Dinolek!
ZTE Blade V7 Lite (!6826): a low-end ZTE device from 2016 which can now be re-purposed for many other use-cases. Thanks, Martin K.!
Kernel packaging
The past two months saw a ton of kernel activity across the board: many devices received Linux 6.16 and 6.17, improving hardware support and stability. Preparations were made for immutable images. Several Qualcomm-based devices (such as the Fairphone 3 or SHIFTphone 8) saw major functional upgrades including working speakers, LEDs, charging indicators, and vibration support.
All broken, non-building kernel packages and devices were moved to the
archivedcategory and are up for adoption. They can be moved back todownstream(or even better,testing!) if someone steps up to fix them (!6700). Thanks, Luca!The kernel config checks were extended with a new
immutablecategory and support for simple USB serial consoles. A few config options were dropped due to very limited usefulness. Further, the configs now specify whether options are preferably enabled built-in or as modules (!6949, !7043, !7080, !7101, !7105). Thanks, Ingo, Clayton, Casey!
The Qualcomm MSM8953 kernel was rebased on Linux 6.16.3 with the Fairphone 3 receiving speaker support and newly introduced support for the Billion Capture+ (!6969). Thanks, Barnabás!
Qualcomm SDM670 devices get to enjoy Linux 6.16.2 and received fixes for video encoding, disconnecting from WiFi and the fuel gauge driver (!6965). Thanks, Richard A.!
The kernel used by Qualcomm laptops has seen some preparations for immutable images and is now using Linux 6.16 (!6709, !6948). Thanks, Clayton!
A regression causing audio not to work on MT81XX Chromebooks was fixed (!6831). Thanks, 'Michał'!
The kernel for the Samsung Galaxy Core Prime VE LTE was upgraded to Linux 6.15.8 (!6849). Thanks, Duje!
The Qualcomm MSM89x7 kernel now supports SDM429 devices such as the Lenovo Tab M10 HD or the Mobvoi TicWatch Pro 3 LTE and has been upgraded to Linux 6.16.3 (!6827, !6976). Thanks, Barnabás!
The kernel fork used by Qualcomm SM8150 devices was upgraded to Linux 6.16.0, fixing the charging indicator on the Xiaomi Pad 5 (!6906). Thanks, Pan!
The Xiaomi Mi 9T Pro received fixes for its touchscreen and USB networking, now has LED support and runs Linux 6.12 (!7004, !7012, !7024). Thanks, dabao1955!
Support for the SHIFTphone 8 was added in the Qualcomm SC7280 kernel and the Fairphone 5 received a driver for its vibration motor. They now run Linux 6.16.1 (!6863, !6934). Thanks, Luca!
The Qualcomm MSM8956 kernel now supports the BQ Aquaris X5 Plus and was upgraded to Linux 6.16.3 (!6981) Thanks, Barnabás!
The kernel used by the Pine64 PineTab 2 was rebased on Linux 6.15.10, fixing a major bug with the VOP2 DRM driver where the display would not turn on after waking up from sleep and improving WiFi stability (!6947). Thanks, Dang!
The Samsung Galaxy Note 8.0 (Wi-Fi) now uses the close-to-mainline linux-postmarketos-exynos4 kernel and is no longer archived (!6968). Thanks, Jack!
The Qualcomm SM7635 kernel was upgraded to Linux 6.16.1, adding support for the internal UFS storage and camera EEPROMs on The Fairphone (Gen. 6) and making progress towards getting the modem working (!6962). Thanks, Luca!
The Unisoc UMS9230 kernel used by the Jolla C2 was upgraded to 6.17.0-rc1, which includes support for the microphone and cameras and fixes issues related to modem stability (!6941). Thanks, Affe!
The Nothing CMF Phone 1 receives kernel 6.17 with support for U-Boot as the first stage bootloader (!7018, !7097). Thanks, BotchedRPR!
The kernel fork for Samsung Exynos4 devices was rebased on Linux 6.16 and the Samsung Galaxy SII now boots with a working serial console (!6917, !6921). Thanks, Henrik!
The touchscreen now works on the Samsung Galaxy Tab S2 9.7 LTE and UART is set up for logs during early boot (!6745). Thanks, Henrik!
On the Amazon Fire 7 (2015), the touch panel now behaves correctly and no longer swaps the X and Y axis. The kernel was also upgraded to Linux 3.4.108 (!6942). Thanks, Robert B.!
A couple of kernels were upgraded to newer releases (!6833, !6862, !6868, !6885, !6893, !6904, !6907, !6911, !6946, !6959, !6970, !6997, !7003, !7062, !7071, !7094, !7096). Thanks, Adam, Arnav, Antoine, faveoled, Joel, Aster, Daniel K., leap, Rob, Luca, Petr, Jan!
Various kernels received config changes or other tiny fixups (!6855, !6877, !6924, !6951, !6958, !6972, !6977, !7005, !7034, !7068, !7088). Thanks, Jens, Antoine, Dux, Ermine, Casey, Rob, Pablo, Robert B., Willow, tomaszduda23!
U-Boot for Samsung Galaxy SII
The Samsung Galaxy SII now uses a close-to-mainline u-boot port as an intermediate, chainloaded bootloader, which in turns boots Linux and postmarketOS (!6921). The Galaxy SII was released in 2011, and has been supported in postmarketOS since the start, but the old age of the device causes issues, like:
- Stock bootloader does not support the boot.img format, instead requiring us to use the so called isorec boot method.
- Stock bootloader does not turn off the MMU before booting Linux, leading to invalid page tables and early kernel faults
By having u-boot in-between the stock bootloader and Linux these issues can be avoided, making it easier to support the device. It would probably make sense to switch this over to Tauchgang later on and then possibly add more features, like display and bootmenu support. Thanks, Henrik!
Booting up
Besides Tauchgang and the SII changes, we have some more news related to booting up postmarketOS:
lk2nd, the custom bootloader for Qualcomm MSM8916/MSM8226/MSM8974/… devices has been upgraded to 21.0 which brings support for 44 (!!) new devices, updated debugging tools for SPMI regulators, allows to configure GPIO leds on boot and many more things (!6938).Thanks Barnabás, Nikita and everybody who contributed upstream!
A fork of the m1n1 bootloader (originally from Asahi Linux) is now available in pmaports. This version supports T- and A-series apple devices (with plans to upstream the related patches). By having it packaged we can potentially later integrate it into pmbootstrap (!6775). Thanks Aster, Nick!
Various improvements and fixes across the bootmac, msm-firmware-loader, tinydm, postmarketos-welcome, buffybox, postmarketos-mkinitfs and boot-deploy repositories (!11, !12, !22, !24, !29, !30, !5955, !64, !65, !65, !66, !66, !67, !67, !6853, !6878, !6880, !6882, !68, !6903, !6933, !7014, !7021, !7022, !7046, !7082, !7087, !7095, !7118, !85, !86, !87, !88, !90). Thanks, Arnaud, Jens, Alexey M., Johannes, Clayton, Achill, Henrik, Aster, methanal, Stefan, Oliver, Pablo, Insane, Jan, Cameron, Vladimir, Hugo!
pmaports
Phosh UI packaging now automatically installs cellbroadcastd (!6937, !6895), which makes it possible to receive disaster and emergency alerts (photos in action, initial support requires ModemManager >= 1.24.0, QMI and changing channels requires development version >= 1.25.1, Alpine edge is currently at 1.24.2). This is possible thanks to the Cell broadcast support for the Linux Mobile Stack project that Guido and Evangelos from Phosh were funded for from NLNet / NGI0 Entrust project. postmarketOS didn't have anything to do with that project, yet we and other Linux Mobile distributions benefit from it since all work is done upstream. Thanks, Guido, Evangelos, Achill, Luca!
SM7150 packaging has been overhauled to package firmware again, have reduced config bloat, improved fuel gauge reporting, a rewritten Goodix GTX8 touchscreen driver that was sent upstream, a massive WiFi performance and reception improvement, support for hardware RNG, USB 3 for the Google Pixel 4a, re-enabled NFC for the Xiaomi Mi 9T and more (!6703). Thanks Jens!
A libcamera patch series "fixing 'purple tint' issues on the Pixel 3a and OnePlus6 with Snapshot" has been backported (!6961). Thanks Milan, Robert M.!
The Fairphone 3 has modem and partial audio enablement working out-of-the box now, as well as qbootctl to "not get stuck in the bootloader after a couple of reboots" (!7010). A "UCM for the Fairphone 3 which uses speaker via quinary MI2S and the AW8898 amplifier (or TAS2557 on Fairphone 3+)" has been added as well (!7017). Thanks Luca!
Peter is now a co-maintainer of the mobile-config-firefox project! Shortly afterwards he made a new 4.6.1 to "slightly improve the experience on 140 and release" and tweaked the README a bit (!7032, !83). Thanks Peter!
RetroArch can now be installed with a
postmarketos-ui-retroarchpackage! This means it can be installed in pmbootstrap as UI option, and could be made available in other installers too (!6852). Thanks Sandelinos!Packaging of our virtual QEMU device ports has been updated to enable PSI, which is a requirement for using Waydroid (!6995). Thanks Hugo!
Packaging nftables rulesets are now standardized in Alpine as
-nftrulessubpackages and abuild now splits them automatically. Afterwards our packaging has been adjusted to simply enable the upstream rules with symlinks instead of packaging our own ones (!67137, !6991). Thanks Willow, Hugo!A bug in the MSM8953 modem script that caused firmware not to be loaded correctly for some users and then resulting in broken Wi-Fi has been fixed. This bug was also in v25.06 and the fix has been backported (!6967, !6974). Thanks tomaszduda23!
The alsa-ucm-conf-qcom-sdm670 package has been upgraded, adding several improvements for the Google Pixel 3a. Hardware volume has been added for the built-in and headset microphone as well as the speakers, so audio servers can control it. Furthermore the hardware controls have been remapped to stereo controls (!6986). Thanks Richard A.!
Speaking of audio, soc-qcom-msm8916 has been adjusted to force the S16LE format "so that PipeWire sound can work out of the box" (!6978). Thanks BetaRays!
dint was packaged and integrated into pmaports CI. "This tool can be used to lint and validate postmarketOS deviceinfo files, as well as look up the meaning of deviceinfo properties" (!6999, !7006, !7066, !7083, !7084). The plan is to also use this to generate the deviceinfo reference page later on from deviceinfo_schema.toml, instead of having it on the wiki. Thanks Stefan!
It is now possible to send Plasma Mobile crash reporters to the KDE developers. "When a crash happens, by default the user needs to click the 'Report bug' button on the notification that pops up to actually send it (unless they check the 'Send crash dumps automatically' checkbox in the reporting window)" (!7050). Thanks Devin!
The os-installer packaging can now install COSMIC as well as the Console UI, and UI screenshots have been updated (!7000, !7054, !7055). Thanks Clayton, Dylan!
sicelo has been maintaining the Nokia N900 port in postmarketOS for a long time. Most recently he improved wlroots support and initramfs charging (!6908), fixed input devices to restore FDE support (!6890), and added systemd support for N900's wl1251-cal (!6932). He stepped down as maintainer with Dang and Paul taking over. Thank you very much sicelo!
Booting postmarketOS on the Raspberry Pi Zero was fixed and the VC4 DRM driver was enabled (!6850). Thanks Sandelinos!
The Samsung Galaxy Note Pro 12.2 (WiFi) and Samsung Galaxy Tab Pro 10.1 Wi-Fi (SM-T520) tablets have gained touchscreen configurations and now boot via u-boot (!6870, !6871, !6988, !6989). Thanks Eisenbahnfan!
The Lenovo ThinkSmart View now has the volume keys configured to wake up the screen (!6832). Thanks Felix!
Jami has officially stepped down as maintainer of msm8998/mt6763/mt6768 (after not making changes to the packages in about three years). These ports are currently in the testing category and unmaintained, if somebody wants to take over maintenance then reach out (!6971). Thanks Jami for making these ports initially and for making it official that these are unmaintained.
Various fixes and improvements (!6601, !6681, !6693, !6726, !6790, !6804, !6806, !6807, !6821, !6836, !6839, !6841, !6844, !6847, !6848, !6851, !6856, !6858, !6866, !6869, !6876, !6879, !6881, !6886, !6887, !6888, !6891, !6896, !6899, !6901, !6902, !6905, !6909, !6910, !6913, !6914, !6930, !6936, !6940, !6943, !6944, !6952, !6955, !6963, !6980, !6983, !6984, !6994, !6998, !7009, !7011, !7013, !7015, !7019, !7020, !7026, !7028, !7030, !7033, !7036, !7042, !7045, !7047, !7056, !7060, !7064, !7067, !7073, !7075, !7078, !7089, !7092, !7093, !7098, !7099, !7111). Thanks, Jens, -akku-, André, AutumnSpark1226, Antoine, BetaRays, binarycraft007, Biswapriyo, Clayton, dabao1955, Duje, Achill, Henrik, Jack, Aster, Rob, Luca, Florian, Stefan, Oliver, Pablo, Petr, Richard A., Robert M., setotau, sicelo, Szczurek, Nikita, Brady, Raymond!
Artwork and homepage
Our amazing recurring artwork contributor dikasp has made new wallpapers "Greenlake" and "Pureen" (!69). Thanks, dikasp!
STL files for the 3D marker coin that were mentioned last time have been added to the artwork repository (!67). Thanks, Ranny!
The German translation of the leaflet was completed and used for the first time at FrOSCon 2025 (!61). Thanks, Markus, Lioh, Achill, Oliver!
Various smaller improvements (!10, !12, !13, !14, !15, !16, !18, !19, !1, !1, !2, !3, !416, !417, !418, !419, !421, !422, !423, !424, !425, !426, !427, !428, !431, !4, !5, !6, !7065, !7077, !70, !7, !8, !9). Thanks, Jens, Federico, Achill, Frieder, Jane, Casey, Oleksii, Oliver, Pablo, Ranny!
Infrastructure
The infrastructure side of things has also gotten a number of improvements:
Our Matrix rooms have now been upgraded to room version 12 as part of the Matrix security release. If you cannot join our rooms anymore, make sure that your homeserver is on its latest version. Thanks, Luca, Oliver!
We deployed marge-bot to our GitLab, which makes it significantly easier for us to manage merge requests. Thanks, Pablo, Luca, Casey!
Samsung Galaxy S9 (!130): another great Snapdragon 845-based phone gets pre-built images. Thanks, Pablo, Dzmitry!
Various changes to our web-based package browser (!8, !10, !11). Thanks, Rob, Raymond!
Misc
Several small improvements to mrhlpr (!80, !81, !82, !83). Thanks, Stefan, Pablo!
Small changes across various repos (!1, !1, !5, !8). Thanks, Jens, Luca, Pablo!
And what's next?
We started planning for FOSDEM 2025 and the post-FOSDEM hackathon. We are applying for a FOSDEM stand again this year and are looking forward to help out in the FOSS on Mobile devroom (Evangelos from Mobian/Phosh and David L. from Sailfish OS just sent in the devroom proposal, thank you very much!). Looking forward to meet everyone again, as well as people who go there for the first time!
The Open Source Conference 2025 Tokyo/Fall will happen on Oct 25th, and there will also be a postmarketOS table this year. On the same day we will also be represented at Linux Day 2025 in Palermo, Italy!
SeaGL 2025 will take place on Nov 7 - 8th. There will also be table where you'll be welcome to visit!
We were not able to decide on a new name yet and figured that we rather amend the process to look for a new name. You can read more about how how we will move forward in the PMCR. Comments and feedback are very much welcome!
Help wanted
There is a PMCR for a unified rootfs across devices. This would mean that instead of having one rootfs per device port it would be shared across multiple device ports. If you are interested in helping with implementing this proposal, let us know in !11.
The close to mainline Qualcomm Snapdragon SDM845 kernel fork is looking for some new maintainers. If you want to help out rebasing, updating and testing the SDM845 kernel then please reach out via Mastodon in the thread. You don't need to be an expert to do this, and there is a lot you can learn along the way.
A number of Qualcomm MSM8998- and MediaTek MT6763/MT6768-based device ports (OnePlus 5T, OnePlus 5, Volla Phone, Volla Phone 22) are also looking for new maintainers. If you can, consider reaching out in #3937!
The kernel packages used by the PINE64 ROCKPro64, PINE64 Quartz64, Google Gru Chromebooks and Google Veyron Chromebooks do not meet our new community device kernel version requirement. If you want to pick up maintainership for them, please reach out by opening a merge request, otherwise they will be moved to the testing category soon.
You can send us topics to include in the next blog post by commenting in #213. If you would like to help out with writing, or improving our process for writing these blog posts (we should probably try to make them shorter again, while still highlight all the amazing stuff our community is doing!), join the new
bloggingchat!If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.


