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)

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.#

  • thejevans
    link
    fedilink
    63 months ago

    I literally bought a used pixel 3a bc of your last post. Really stoked for this!

    • @erebionOP
      link
      33 months ago

      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. 🤔

        • @erebionOP
          link
          4
          edit-2
          3 months ago

          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. :)

          • thejevans
            link
            fedilink
            22 months ago

            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
            
            • @erebionOP
              link
              22 months ago

              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.

              • thejevans
                link
                fedilink
                2
                edit-2
                2 months ago

                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

        • @erebionOP
          link
          33 months ago

          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

  • aasatru
    link
    fedilink
    63 months ago

    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!

    • @erebionOP
      link
      43 months ago

      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.

    • @erebionOP
      link
      7
      edit-2
      3 months ago

      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