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.#
As a former 3a owner this project is entirely awesome to me. Really cool stuff and really well done.
If you need help testing the NFC, I have a 3a, a 3a XL, and a good few NFC tag links near me.
Help would certainly be appreciated. I also have tags, but no idea how to test NFC. :)
Sorry for being away for a bit - how do I install this on my Pixel for testing?
Just type in a few commands and you’ll have an image you can flash.
I’ve got a detailed description of what to do: https://git.erebion.eu/forgejo/erebion/sargo-temp
Amazing work! I’ve been out of the loop for a while, did not expect such an exhaustive list of things that already work. Good luck using it as a daily driver, once it’s ready!
Thanks! I will definitely be able to. I could already have it as my daily driver using VoIP, until call audio works, but I know I could already compile the daemon myself and it will just work. :)
But as I want others to be able to use it at some point, I will delay using it as a daily driver and instead make sure the few remaining issues get sorted out.
How is battery life?
Much better than my Pinephone, lol
I cannot complain. I have not used it for a whole day yet as I am mostly fiddling with the kernel packaging and I want to get call audio working before I use it as my daily driver, but I have no reason to believe it would not last the whole day. No issues here. Probably longer battery life than with Android. It does not constantly talk to Google, after all. xD
I literally bought a used pixel 3a bc of your last post. Really stoked for this!
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.
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.
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.
EDIT: I installed tomlq with pipx