DebianOn is an effort to document how to install, configure and use Debian on some specific hardware. Therefore potential buyers would know if that hardware is supported and owners would know how get the best out of that hardware. The purpose is not to duplicate the Debian Official Documentation, but to document how to install Debian on some specific hardware. If you need help to get Debian running on your hardware, please have a look at our user support channels where you may find specific channels (mailing list, IRC channel) dedicated to certain types of hardware. |
Support
As of January 2025, Mobian support for Pixel 3a (google-sargo) is experimental. You are welcome to ask about it on Mobian communication channels.
There are several reports during 2024:
this wiki: Teams/Mobian/Meetings/2024-10-05
Installations instructions InstallingDebianOn/Google/Pixel3a
Installation
Known good weekly images
Not all of the weekly images are tested continuously on all devices in all variants. The ones below are known to work and are a good starting point for running testing:
The SDM670 2025-03-30 Phosh image was tested successfully on a Google Pixel 3a (sargo) when flashed to slot B
Obtain the Image
Pre-built images for your device are available from https://images.mobian.org/sdm670/weekly/, packed in a file named
mobian-<family>-<graphical_shell>-YYYYMMDD.tar.xz
(where the <family> you are looking for is sdm670).
Verifying the images
Mobian images come with multiple files:
- .tar.xz: The archive containing the flashable images
- .sha256sum: A file containing the SHA256 hash of the archive.
- .sha256sum.sig: A detached signature for the .sha256sum file.
To verify the download, use the following steps:
Import the Mobian signing key from here. Once downloaded, the key can be imported with gpg --import mobian.gpg.
Verify the signature with gpg --verify <downloaded file>.sha256sum.sig.
If the signature is valid, check the other files with shasum -c <downloaded file>.sha256sums
- If this prints OK for all files the download is verified.
Preparing the Device
As you would do before installing a custom Android ROM, the bootloader needs to be unlocked. The exact procedure varies depending on the device you own, so we suggest you search the Internet for an unlock guide aimed at your specific device.
We also recommend that you upgrade Android to the latest available version and install all system updates before installing Mobian.
See postmarketOS' wiki for allow bootloader unlocking and unlock the bootloader.
Flashing the Image to the Target Device
WARNING: Flashing Mobian to your device will wipe your Android installation! Please install recovery software such as TWRP and make sure you understand how to recover your system before proceeding.
Those devices being Android smartphones in the first place, they have secure boot enabled, meaning we can't replace their bootloader and need to rely on Android tools in order to flash Mobian.
In practice, this means we can't flash a single image file, and the downloaded tarball will contain:
an Android bootimg containing the kernel, device-tree and initramfs named mobian-<family>-<graphical_shell>-YYYYMMDD.boot-<model>.img
an Ext4-formatted rootfs (using Android's sparse image format) named mobian-<family>-<graphical_shell>-YYYYMMDD.rootfs.img
As these devices have several variants, which differ only by the device-tree they need, and the DT being part of the bootimg, we provide one bootimg for each variant. You have to flash the one matching your device:
- SDM670:
!Pixel3a: sargo
!Pixel3aXL: bonito
Once you have extracted those files from the tarball, boot your device into fastboot mode, connect it to your computer using a USB cable and run the following commands to install Mobian:
fastboot flash boot mobian-<family>-<graphical_shell>-YYYYMMDD.boot-<model>.img fastboot -S 100M flash userdata mobian-<family>-<graphical_shell>-YYYYMMDD.rootfs.img fastboot erase dtbo
Please note, erasing DTBO is optional, as described in pmOS wiki.
If all steps above succeeded enable uart, otherwise the device might not boot reliably:
fastboot oem uart enable
Then reboot your phone with
fastboot reboot
Fastboot mode
When the device is shut off, both the !Pixel3a (sargo) and the !Pixel3aXL (bonito) can be put in fastboot mode by pressing and keeping pressed the power and volume down buttons, until the fastboot screen appears. Different entries can be navigated with volume buttons and entered with power button.
Notes:
General
- If the device becomes unresponsive after a fastboot command succeeded, power it off and boot into fastboot mode again, then execute the remaining commands.
These devices have an A/B partition scheme. In order to select which slot you want to flash Mobian to, you can run the following command before any other fastboot command: fastboot --set-active=[a|b]
Audio
General Audio
- for general audio to work one needs to drop alsa's state file:
sudo systemctl mask alsa-restore sudo rm -f /var/lib/alsa/asound.state
GPS
GPS works, but the following two commands are required to have it working:
Disable engine lock:
qmicli -d qrtr://0 --loc-set-engine-lock=mt
Disable proprietary NMEA messages:
qmicli -d qrtr://0 --loc-set-nmea-types=all
This will have to be done after every boot for now.
Voice Call
- q6voiced is included in qcom-phone-utils since version 0.4.0 (02/2025)
- if you encounter voice call not working after suspend, q6voiced might need to be restarted, here is a systemd service that will restart it on suspend :
[Unit] Description=Restart the userspace daemon for the QDSP6 voice call audio driver on resume After=suspend.target [Service] Type=simple ExecStart=/usr/bin/systemctl restart q6voiced.service [Install] WantedBy=suspend.target
The differents audio devices in pulseaudio/pipewire are paused when not receiving audio streams, as voice calls stream are directly handled by the modem, the sound daemon must be notified to resume the needed device. This script need to be run as user at the start of your session call_audio_idle_suspend_workaround.sh, sample systemd user unit :
[Unit] Description=Disable pulseaudio/pipewire suspend-on-idle module during call After=ModemManager.service ConditionUser=!@system [Service] ExecStart=/usr/local/bin/call_audio_idle_suspend_workaround.sh Restart=on-failure RestartSec=10s [Install] WantedBy=default.target
This should be placed in the /lib/systemd/user/ folder and enabled using systemctl --user without sudo or alternatively execute the following in a console
sudo chmod +x /usr/local/bin/call_audio_idle_suspend_workaround.sh cat <<'EOF' | sudo tee /lib/systemd/user/call_audio_idle_suspend_workaround.service [Unit] Description=Disable pulseaudio/pipewire suspend-on-idle module during call After=ModemManager.service ConditionUser=!@system [Service] ExecStart=/usr/local/bin/call_audio_idle_suspend_workaround.sh Restart=on-failure RestartSec=10s [Install] WantedBy=default.target EOF systemctl --user enable call_audio_idle_suspend_workaround.service
- as of January 2025, voice calls are known to be not 100% reliable
Notes about installation on sargo
yifei: I successfully booted mobian plasma mobile on my sargo, my procedure is:
flash the latest android build with Android online flash tool, chrome/chromium is required. https://flash.android.com/build/8782922?target=sargo-user&signed=true&wipe=true
flash mobian images, I used mobian-sdm670-plasma-mobile-20250110: https://images.mobian.org/sdm670/weekly/mobian-sdm670-plasma-mobile-20250110.tar.xz
then:
fastboot oem uart enable fastboot erase dtbo
reboot and it should boot into greetd and asks for password (1234).