This is a follow-up to my earlier post: https://lemmy.sdf.org/post/12809764
(I re-used the photo as it was quicker and because the UI still looks the same, anyway, five months later.)
Time for an update on where I got with the Pixel 3a / 3a XL so far:
I Am Getting There.
There isn't that much missing anymore. Will probably soon try this out as my daily driver, just did not yet have the time to configure all the applications I need. :)
This Works
- booting
- display
- touch
- modem
- plymouth
- battery/charging
- mobile data
- wifi
- torch
- suspend
- SMS (only receiving was tested, but I don't have reason to believe sending wouldn't work)
- vibration (udev rule needs to be added to the corresponding package)
- audio (ALSA config not packaged, but I'll get to that...)
- Bluetooth™ (mac address has to be set after each boot, one single command, should probably package a script, still thinking about the right path)
- eSIM (supported, but needs a bit more testing)
- camera (front camera buggy, back camera works but patches not in git yet)
- GPS (needs some improvements to accuracy)
This Does Not Work (Soon)
- USB host mode
- call audio (requires packaging
q6voiced
to get audio from the modem, but of course VoIP would already work) - full disk encryption (no installer images yet, once the other stuff is done this will magically be there)
This Has An Unknown Status
- Fingerprint Sensor
- NFC (no idea what software I could use for testing, but should work, does so on pmOS)
This Is Missing And Will Come Later
- accelerometer
- magnetometer
- ambient light sensor
- barometer
The Main Issues That Prevail
- A systemd unit with a hard-coded value, that has to be manually edited for now
- ALSA config not yet packaged, has to be manually copied for now
- few things to do for kernel packaging and then submitting that to Mobian
- no call audio yet, as the daemon (q6voiced) is not yet packaged, but can be manually added for now (I'm considering just using VoIP until I can get to that :D)
- simple script that brings up Bluetooth has to be added somewhere
Other than that, I cannot think of anything else that would be missing.
The Sources (Use The Source, Luke)
- My efforts of packaging a device-specific kernel: https://salsa.debian.org/erebion/sdm-670-linux (which will be used until all patches are part of upstream Linux and we can finally use a regular mainline kernel)
mobian-recipes
, which is used to build images: https://salsa.debian.org/Mobian-team/mobian-recipesdroid-juicer
, which retrieves some important files from some partitions: https://gitlab.com/mobian1/droid-juicer- https://wiki.postmarketos.org (lovely folks, thanks for sharing everything you found out the hard way :D)
Thanks For All The Fish
Huge thanks to be sdm670-linux project and flamingradian who runs the project (just one person!) to make sure the Kernel works on those devices! :)
I don't know how Kernel development works, so I would have never started porting without this project.
Find that here: https://gitlab.com/sdm670-mainline/linux
Questions Accepted / Ask Me Anything About The Project
I will gladly answer all questions, I hope that more people will start porting if it becomes clear that this is not arcane magic. It's mostly just arcane. And a community of friendly people that try to be helpful.#
You won't have to wait for very long.
Let me know if you'd like a writeup of the way I currently build the image out of the linked sources and what files (temporarily) need manual fixes, in case you want to try it out. Could still take a while to get the kernel and the call audio daemon ready for Mobian and to get it included, but other than that... Pretty close ^_^
If you exclude the time your PC does compiling and works for you, then it is probably 20 minutes work to get an image currently. :)
I also have an Ansible role which does the few fixes I need for now, like that one systemd unit. I could publish that as well in case others want to be alpha testers and tell me about any issues they notice.
I should probably also create a repo with a temporary issue tracker until there are official images. 🤔
That sounds great! I'd definitely be interested
Started writing, but then got sidetracked... by making audio calls work. :)
Will post the link here soon, just want to verify there are not too many dumb mistakes in it, do not want to fruatrate anyone with terrible docs. :D
Okay, just wrote an Ansible Playbook to roll out the workarounds, including call audio, which I just got to work, I've also tried to get Bluetooth working, but the udev rule is still broken.
https://git.erebion.eu/forgejo/erebion/sargo-temp
There are also some hastily written steps for building an image. :)
Let me know what things are unclear, I will improve this.
I just started playing with this. I got as far as attempting to build the image in your mobian-recipes repo. It failed with this: