casey (pattable)

@cas@treehouse.systems
2.8K Followers
786 Following
5.4K Posts

🏳️‍🌈 lesbian hacker in Berlin!

I do #LinuxMobile and @postmarketOS stuff. Don't dm me for support, ping me in a public matrix channel.

I maintain U-Boot for Qualcomm devices and do other cool embedded stuff @ Linaro

"you are never beating the down bad allegations" ~ @isa

#GoVegan 🌱

This account is mostly for technical topics, my personal account is @casey

pronounsshe
GitHubhttps://github.com/kcxt
Matrixcaleb:postmarketos.org
Websitehttps://connolly.tech
OH: "i shoved a dream machine up my ass"

I'm super happy to share, that the #Fairphone (Gen. 6) was just announced, and we've been able to already publish a lot of code for it!

* #postmarketOS support is submitted
* 59(!) patches were sent to bring up upstream #Linux on the SM7635 SoC and enable the device.
* The stock Android source code is public on code.fairphone.com

This has been a lot of work over the last couple of months so it's awesome to finally be able to share it!

Introducing initial support for #postmarketOS in #mkosi 🥳

https://github.com/systemd/mkosi/pull/3781

@murena @volkskrant @e_mydata Ignoring of course that Android, and thus /e/OS is still fully relying on Google and thus an American company.

@simonjust

(Hopefully this helps explain why things seem so fragmented, sorry for the wall of text)

doing actual virtualisation is out of the question on most devices since we don't get EL2 (hypervisor) level access to the system, it is already running a proprietary hypervisor which is needed for functionality like audio or wifi (yay DSPs and firmware signing)

For many if not almost all of the phones in our main and community categories the only real blockers to having generic images are the limited bootloader machinery (no dynamic devicetree selection means the android boot image has to be specific to the device to load the correct drivers) and that they require kernel patches and drivers which aren't in the upstream Linux kernel.

The former I'm actively working on solving for the Qualcomm based phones with U-Boot which I originally talked about over a year ago at FOSDEM https://archive.fosdem.org/2024/schedule/event/fosdem-2024-1716-u-boot-for-modern-qualcomm-phones/

this work is still ongoing (and getting close to the point where we'll start publishing images and getting the necessary distro changes in). This will let us have a generic image for e.g. all the SDM845 powered phones, one for all the SM7150 phones, etc. Since U-Boot can pick the right DTB for us (though it's important to note that the U-Boot build is still device specific, but at least it's a one time thing now)

This just leaves the kernel, which is unfortunately a much bigger problem. Since many devices rely on drivers for the touchscreen, speaker codec, haptics, and more which are pulled directly from the vendor kernel. Rewriting them to be suitable for acceptance into upstream can be a huge amount of work since they must be reverse engineered from crap vendor code and rewritten. And even when that process is "done" the actual process of getting them merged varies from doable, to tedious, to outright blocked, especially when maintainers ask questions that the developer can't answer due to missing documentation.

This process is getting better in recent years, but it's really hard to invest the time when it's volunteered time and could be less frustratingly spent fixing bugs for users or enabling new features.

From the distro side, I can potentially imagine some ways to de-dup these kernel forks internally, but so far nobody has tried taking the leap of faith. Hopefully once we get automated hardware testing up and running on enough devices this will be something worth looking into more seriously, but we'll need some way to support holding back upgrades for a single device if it introduces regressions...

FOSDEM 2024 - U-Boot for modern Qualcomm phones

i'm also happy and excited to announce that we've signed a partnership with @LinaroLtd to collaborate on the integration of the Qualcomm QCS6490 processor in the MNT Reform series of devices, including Pocket, Next, and especially our future mini tablet. more about this soon!

We often talk about the scouting rule of “always leave the campsite cleaner than you found it”, or in a software context “always leave the code a little bit better than you found it”.

If you see duplication in the code, then remove that before you leave the method. If you see poor variable names then fix those before you leave.

What we don’t talk about as much is how a culture of branching and Pull Requests (PR’s) actively discourages making small changes for that purpose. If I want to rename a method to make it clearer and know that making that little change is going to require real effort to go through a review process and manual merges, then I’m more likely to decide to just live with the original name, even if it is is poor.

Whereas if I can make that little refactoring and directly check it into mainline then it’s a very low effort change that contributes to the quality of the product. It’s become easy to do the right thing.

How many things do we have like this, that actively discourage us from doing the right thing?

thanks everyone who helped make the new #postmarketOS release! they just get better and better every time.

i continue to be more and more hopeful that we will deliver on our mission to build a production ready OS, made by and for the community that continue to contribute (whether through code, reports, debugging, or donations).

we are not stopping with systemd... next up will be factory reset support, update rollbacks, EFI on qualcomm phones, immutability, and huge tooling improvements

embedded edition is also on my mind, we need better ways to build and maintain embedded systems and we absolutely have the raw ingredients

https://postmarketos.org/blog/2025/06/22/v25.06-release/

v25.06: the one with systemd

Aiming for a 10 year life-cycle for smartphones

postmarketOS
so #gpn23 was absolutely incredible,, this one feels so lucky to get to spend time with so many cool people :3
×

I'm super happy to share, that the #Fairphone (Gen. 6) was just announced, and we've been able to already publish a lot of code for it!

* #postmarketOS support is submitted
* 59(!) patches were sent to bring up upstream #Linux on the SM7635 SoC and enable the device.
* The stock Android source code is public on code.fairphone.com

This has been a lot of work over the last couple of months so it's awesome to finally be able to share it!

@z3ntu this really is awesome!

@z3ntu Always happy to see the phone-devel ML being "flooded" with patch submissions 😉

Congrats on the launch 🎉 and thanks for your hard work, as usual ❤️

@z3ntu Thanks for sharing! #postmaketOS runs on #fairphone6 - that is great news.
@z3ntu got we camera and sound support this time?
@wrenix Not yet :) I hope to be able to work on those sometime soon, but there's some more important bits not working yet like internal storage and GPU so those come first. You can see what works or doesn't work right now here: https://wiki.postmarketos.org/wiki/The_Fairphone_(Gen._6)_(fairphone-fp6)
The Fairphone (Gen. 6) (fairphone-fp6) - postmarketOS Wiki

@z3ntu @wrenix Are there severe obstacles to camera/sound, or is it a "simple matter of programming" to transfer e.g. blobs/configuration from Android?
@z3ntu Separately: "partial" screen support I'm guessing means something like a simple framebuffer is working OK but (as you mentioned) GPU not yet, right? So e.g. software compositor required etc.?
@tonyg Yes, partial screen here means that simple-framebuffer is working, no MDSS support, no GPU support. Currently software rendering via softpipe works (llvmpipe is broken because of a bug in mesa).
Fortunately since it's an OLED, if you blank the screen then it's essentially off and doesn't use too much power.
@tonyg For now it's really just that I didn't try much to get much more working than what is now working. I have some WIP code for IPA (mobile data), UFS (internal storage), MDSS (display) and CCI (camera I2C bus) but all were either not working with the initial version I made, or I couldn't test it yet further. Time will tell if most other components of the phone are easy to bring up or not.
@z3ntu Sounds great. Congrats on the milestone!

@tonyg @z3ntu does the FP6 has really no DisplayPort over USB-C ? (And a downgrade to USB-C 2.0)
https://m.gsmarena.com/compare.php3?&idPhone2=13955&idPhone1=12540

And another factor of battery which make it still not switch able between FPx

Slower CPUs (okay smaller also 4nm)

Compare Fairphone 5 vs. Fairphone 6 - GSMArena.com

Fairphone 5 specs compared to Fairphone 6. Detailed up-do-date specifications shown side by side.

@z3ntu
It is awesome! Thank you for your work at fairphone and beyond!

For me the fp gen6 is perfect in almost every aspect.

Do you know anything about the decision for usb 2.0?
Imo its by far the biggest shortcomming this time.

@z3ntu That's epic. It looks really compelling. Fairphone 4 and 5 apparently have broken audio in postmarketOS. I wonder why. Would that be the same for Gen 6?

@fell FP4 and FP5 I haven't figured out how to make audio working yet, some other people have also taken a look but haven't figured out the problem either.

I haven't tried yet on FP6 but I hope I won't hit the same problem there (even though it's again an amplifier from the same brand as on FP4/5), since the audio stack is a bit different from the SoC side.

@fell @z3ntu I hope it's gonna work for all gens at some point. Reason is afaik an audio codec with no driver, that's why it can't play sounds onboard.
@z3ntu if the port is available before the phone, is it called premarketOS?

@guenther You can order the phone today already ;)

But in real terms, we in postmarketOS *are* looking for a new name, since the name is not reflecting our long term goals, we don't want to be constrained just to devices that we prevent from becoming e-waste. You can read more here https://gitlab.postmarketos.org/postmarketOS/pmcr/-/blob/main/0003-name-change-plan.md

0003-name-change-plan.md · main · postmarketOS / postmarketOS Change Requests · GitLab

postmarketOS Change Requests are a process to propose, approve, and endorse big changes to the project. They are an RFCs process

GitLab

@z3ntu give us the 120hz GNOME mobile demo!!!!!

fr though congrats! it is frankly incredible how you manage to get all of this working and orchestrate all the patches to be ready to go during the launch 🚀

@cas Uhm, mdss not working yet so simple-framebuffer + softpipe is more laggy than not. But Phosh is still surprisingly usable haha
@z3ntu
Out of curiosity:
Could vrr work and how hard would it be to get it running?
@cas

@homo_particeps Variable refresh rate? I honestly don't know. For FP5 I know that at least the panel can switch between 60 Hz and 90 Hz but we just hardcode the sequence in the upstream driver to 90 Hz. Not sure if all the plumbing exists already to support this variable refresh rate.

@cas do you have any idea?

@z3ntu @homo_particeps i think it's panel specific, on the Galaxy S23 all you have to do is change the timings and the panel will follow afaict, but idk to what precision

not sure what the kernel API is but i assume we could at least expose modes for all the supported refresh rates, then there's probably a flag to indicate that the mode can be changed without blanking

@drakulix knows how that works on the DRM side, maybe we can experiment with it on the S23

@cas @z3ntu @homo_particeps @drakulix this is already done upstream in the driver for Spacewar iirc
@cas @z3ntu @homo_particeps @drakulix though I think that still blanks (?) not sure

@adrianyyy @z3ntu @homo_particeps @drakulix i think you need to somehow inform the drm subsystem that you can do non-blanking mode switches, and it might need support at the DSI controller layer to actually do such switches dynamically

INADRMDEV but it's possible that the default flow for mode switches involves resetting the panel and the non-blanking flow needs different code, also cc @lumag for that

@z3ntu Would be nice to see the Fairphone company on the Fediverse :)
@pi_crew Me too! Once/if Bluesky (https://bsky.app/profile/fairphone.com) gets used, we can set up bridging so at least the posts can be followed.
Fairphone (@fairphone.com)

We’re on a mission to change technology for the better.

Bluesky Social
@z3ntu Awesome work 😍 Does the Fairphone 6 camera work on postmarketOS?
@moonglum Not yet, but there's some bigger (plant-based) fish to fry first, see my reply in https://fosstodon.org/@z3ntu/114743390092075720
But I hope it's not too far away!
Luca Weiss (@z3ntu@fosstodon.org)

@wrenix@chaos.fyi Not yet :) I hope to be able to work on those sometime soon, but there's some more important bits not working yet like internal storage and GPU so those come first. You can see what works or doesn't work right now here: https://wiki.postmarketos.org/wiki/The_Fairphone_(Gen._6)_(fairphone-fp6)

Fosstodon
@z3ntu Cool, thank you so much for working on it ❤️ I would love to make a Fairphone with postmarket my main phone ❤️
Linux in smartphone the true freedom 👍
@z3ntu oh my god this is incredible, I might have to trade in my FP4
@z3ntu I know you are a fairphone employee, so does this mean FP6 will run mainline out of the box?
@Mae Nope, Android will ship with Qualcomm's 6.1 kernel, there's just too much stuff still missing in upstream that is required for full functionality. I've talked about it also at FOSDEM: https://fosdem.org/2025/schedule/event/fosdem-2025-4836-kernel-support-for-mobile-linux-the-missing-20-/
FOSDEM 2025 - Kernel support for Mobile Linux: The missing 20%

@z3ntu that's reasonable, still extremly cool. Big fan of your work on this :)
@Mae You can also install postmarketOS on the Fairphone 4! No need to get a new one for that (and currently postmarketOS runs better on the Fairphone 4 than on the Fairphone (Gen.6) anyways).
@z3ntu from looking at the pmos wiki I saw that the FP5 looked much better supported than FP4, so I assumed that FP6 would be better. I'll do that, thanks :)
@Mae Every phone is new work to bring up. For FP5 we were lucky because the SoC already got lots of work put in by Linaro people (for the "sc7280" chip) which could be just re-used without any change for the QCM6490 SoC in the FP5. Unfortunately for FP6 we're not that lucky, so I had to bring up all the SoC support from scratch so far upstream. A lot of things are based on SM8650 though so in terms of how many lines of code were changed, it's not that many so far.
@z3ntu any downside? I'm starting to think to buy a device for postmarketos because I'm so tired of android....
@portaloffreedom Booting to UI but not much more right now. Hopefully support will get better soon, but it's very far from fully working yet :)
https://wiki.postmarketos.org/wiki/Fairphone_(Gen._6)_(fairphone-fp6)
Fairphone (Gen. 6) (fairphone-fp6) - postmarketOS Wiki

@z3ntu Thanks for your work! I understand that support is now preliminary, but I was wondering if the video output is even possible in the new Fairphone? In specs it says "USB-C 2.0 (OTG capable) can be used to connect USB Sticks/SD-Cards/Audio Amplifier/Network-adapters directly". Do you have any info on that?
@jacek_ Yes, unfortunately it's USB2.0-only which also means no wired external display support. Wireless display is supported though.
It was one of the tradeoffs taken to get to the price point that the phone is selling at.

@z3ntu @jacek_ Oh I hadn't noticed that on the spec sheet... good reason to stick to my FP5 for now I guess (and being able to keep using the older models is partly the point!). Hopefully the 7th gen model won't need that tradeoff

I have dreams of using my phone as both a phone and a desktop Linux system, haha

I'm curious about wireless display, though - I have an old lapdock that supports Miracast, could that possibly work?

@z3ntu did the SoC not have DP at all in the first place (0.o) or was altmode just not implemented in the PCB for cost cutting?
@valpackett DP is via the same wires as USB3.0 so one essentially implies the other. To my knowledge the SoC fully supports both, but it's surprisingly costly to add the rest of the necessary components apparently.
@z3ntu yea but will it ship to america
@z3ntu Congrats!! Even upstream patches day one, amazing :D

@z3ntu premarketOS

(I would love to get a Fairphone but I live in the US of A.)

@justsoup geez the Murena US version is expensive 

@z3ntu
@comcloudway @z3ntu Yeah... I also would prefer to purchase from Fairphone directly instead of /e/ (or however you spell it) because I don't need some degoogled Android thing.
@justsoup @comcloudway You can re-flash stock Android or any other OS on that version as well fwiw