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
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.
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:
2024/08/13 15:30:32 ==== Install base packages ==== Hit:1 http://deb.debian.org/debian trixie InRelease Get:2 http://repo.mobian.org trixie InRelease [28.6 kB] Get:3 http://deb.debian.org/debian trixie/main Translation-en [6149 kB] Get:4 http://deb.debian.org/debian trixie/non-free-firmware Translation-en [4796 B] Err:2 http://repo.mobian.org trixie InRelease 2024/08/13 15:31:08 apt | The following signatures were invalid: EXPKEYSIG 951D61F2BC232697 Mobian Project <admin@mobian-project.org> Reading package lists... Done 2024/08/13 15:31:31 apt | W: GPG error: http://repo.mobian.org trixie InRelease: The following signatures were invalid: EXPKEYSIG 951D61F2BC232697 Mobian Project <admin@mobian-project.org> 2024/08/13 15:31:31 apt | E: The repository 'http://repo.mobian.org trixie InRelease' is not signed. 2024/08/13 15:31:31 apt | N: Updating from such a repository can't be done securely, and is therefore disabled by default. 2024/08/13 15:31:31 apt | N: See apt-secure(8) manpage for repository creation and user configuration details. 2024/08/13 15:31:31 Action `recipe` failed at stage Run, error: exit status 100
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.