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.#
That sounds great! I'd definitely be interested
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.
EDIT: Only tried using call audio via headphone jack and did not notice that internal speaker and mic currently do nothing, so I have to amend my to do list by just another bug. :D
EDIT 2: The mic patch has not yet been pushed by the kernel dev and the ALSA config needs changes, but then audio calls with built-in speaker and mic will work. :)
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:
Try
git pull
and see whether the updated fork works now. If not, I will have a closer look.Also, I've just built it successfully. Make sure there are no left-overs from a previous run which failed.
I've got further now. I was able to get a rootfs image, but the boot image build failed because for some reason that script can't see that tomlq is installed even though the initial script can see it just fine.
build log
EDIT: I installed tomlq with pipx
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