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. |
What's not working
- USB OTG
- voice calls are known to be not 100% reliable
Support
If something isn't working for you, you can get in contact with Mobian developers and the Mobian community in various ways. All of them are listed here.
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 mobian-qcom-plasma-mobile-20250713 image was tested successfully on a OnePlus 6 when flashed to slot A. (Note: this image is no longer available as the folders have been reorganised.)
Obtain the Image
Pre-built images for your device are available from https://images.mobian.org/qcom/weekly/, packed in a file named
mobian-<family>-<graphical_shell>-YYYYMMDD.tar.xz
(where the <family> you are looking for is sdm845).
Verifying the images
See FAQ#How to check Mobian images' signature.
Preparing and flashing the device
WARNING: Flashing Mobian to your device will wipe your Android installation and all the data contained in it. If your device contains data you'd like to retain, please make a backup in advance. Installing a recovery software such as TWRP and making sure you understand how to recover your system before proceeding is also recommended, unless your device contains no valuable data and you know how to recover it.
It's recommended that you upgrade Android to the latest available version and install all system updates before installing Mobian, because Mobian uses FW files from Android partitions for enabling various peripherals (e.g. WIFI).
To recover to a working stock Android version with compatible firmware, either because you cannot update from Android or your device is bricked, you may use the following EDL recovery packages. Doing so will wipe your device and relock your bootloader, unfortunately a Windows machine is required for recovery.
?OnePlus6: https://archive.org/details/one-plus-6-oxygen-os-10.3.8
OnePlus6T: https://archive.org/details/one-plus-6-t-oxygen-os-10.3.8
Device's bootloader needs to be unlocked: the procedure varies depending on the device you own, then either refer to postmarketOS' installation guide for unlocking bootloader of OnePlus 6 or OnePlus 6T or search the Internet for an unlock guide aimed at your specific device.
Mobian images are made of:
an Android bootimg containing the kernel, device-tree and initramfs named mobian-<processor>-phosh-YYYYMMDD.boot-<model>.img
an Ext4-formatted rootfs (using Android's sparse image format) named mobian-<processor>-phosh-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:
OnePlus 6: enchilada
OnePlus 6T: fajita
If the device becomes unresponsive after a fastboot command succeeded, power it off and boot into fastboot mode again, then execute the remaining commands.
The OnePlus 6/6T has 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]
Once you have uncompressed 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-<processor>-phosh-YYYYMMDD.boot-<model>.img fastboot erase userdata fastboot -S 100M flash userdata mobian-<processor>-phosh-YYYYMMDD.rootfs.img fastboot erase dtbo fastboot reboot
It is recommended to reboot the device after flashing via the "fastboot reboot" command, as the reboot is triggered after the writings to device's internal memory from previous steps are completed.
The "fastboot erase userdata" command is not mandatory, but it was found to fix the situation in case another Linux distribution was present on the device before flashing Mobian.
Fastboot mode
When the device is shut off, the OnePlus 6 (enchilada) can be put in fastboot mode by pressing and keeping pressed the power and volume up buttons, until a screen with a green 'START' writing appears. Different entries can be navigated with volume buttons and entered with power button.
Similarly, the OnePlus 6T (fajita) can be put in fastboot mode by pressing and keeping pressed the power and both volume buttons.
Default pin and password
The default user is mobian with password 1234 . See Mobian/FAQ#Default_pin_and_password .
Automatic resizing of your filesystem on first boot
After flashing the image and booting for the first time, Mobian will resize the root filesystem to take all possible space on the disk. This can take a while and will only happen on first boot. So grab a ${DRINK_OF_CHOICE} and be patient.
Notes:
General
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
You may also need to manually remove pulseaudio and make sure pipewire-audio is installed:
sudo apt remove pulseaudio
The latest images automatically remove pulseaudio, so if apt complains there is nothing to remove (or apt policy pipewire-audio shows something installed), then this step is unnecessary.
The bottom microphone only seems to work when the earpiece is activated.
Voice Call
- 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 different 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
GPS
by default applications can only estimate your location using your IP
more accurate location via GPS can be enabled with following commands
mmcli -m any --location-enable-gps-nmea mmcli -m any --location-enable-gps-raw
and disabled with
mmcli -m any --location-disable-gps-nmea mmcli -m any --location-disable-gps-raw
Suspend
While in suspend the phone by default will NOT resume on call, It can be enabled according to the pmOS Wiki page for the SDM845 SoC page. The setting is on the /sys partition. There is a tool packaged in debian sysfsutils which can change /sys settings on boot like sysctl for /proc/sys. Add the following file in /etc/sysfs.d/ to enable all wake-up events (SMS, calls, network change ...) from the modem
bus/rpmsg/devices/4080000.remoteproc:glink-edge.IPCRTR.-1.-1/power/wakeup = enabled
Support for serviced devices
- If the device has had the battery replaced, it can be that the BMS (battery management system) chip is different from the original one and it's erroneously recognized by the kernel to be reporting the battery to be always full (or empty) and charging. To fix the battery indicator, DTB has to be changed (in the following command list, please change 6.6 to whatever is your current kernel release and -enchilada.dtb to -fajita.dtb where relevant)
cd /usr/lib/linux-image-6.6-sdm845/qcom/ sudo dtc sdm845-oneplus-enchilada.dtb -o temp.dts sudo sed -i 's/bq27441/bq27541/' temp.dts sudo sed -i 's/bq27411/bq27541/' temp.dts sudo dtc temp.dts -o sdm845-oneplus-enchilada.dtb sudo update-initramfs -u sudo /etc/kernel/postinst.d/zz-qcom-bootimg 6.6-sdm845
Debug UART
Camera
Starting with the 6.12 kernel shipped with Trixie, this device's cameras are (at least basically) supported. Front (selfie) and back macro cameras are supported, the main back camera not yet.
Please execute the following to install needed packages
sudo apt install gnome-snapshot gstreamer1.0-plugins-base-apps
then reboot.
Please understand camera support is still being worked on and it could be that the camera app is showing a black frame from time to time. In order to check whether the camera support is broken at the kernel level or below in the libcamera-gstreamer-pipewire stack, please use following commands:
gst-device-monitor-1.0 Video/Source should show supported cameras and related resolution/color modes
gst-launch-1.0 libcamerasrc camera-name="/base/soc@0/cci@ac4a000/i2c-bus@1/camera@10" ! queue ! glimagesink rotate-method=1 should bring full-screen the gstreamer pipeline with the video stream coming from the back macro camera
gst-launch-1.0 libcamerasrc camera-name="/base/soc@0/cci@ac4a000/i2c-bus@0/camera@1a" ! queue ! glimagesink rotate-method=1 should bring full-screen the gstreamer pipeline with the video stream coming from the back main camera (needs at least kernel 6.18-sdm845)
gst-launch-1.0 libcamerasrc camera-name="/base/soc@0/cci@ac4a000/i2c-bus@0/camera@10" ! queue ! glimagesink rotate-method=3 should bring full-screen the gstreamer pipeline with the video stream coming from the front camera
Before you start
Steps that might be necessary before you flash Mobian
Calls in Australia
?OnePlus 6 phones don't have an image that supports VoLTE on Australian carriers and 3G has been turned off in Australia. Here's documentation on making OnePlus phones work with VoLTE in Australia.
This can only be done from a Windows PC and only when the phone is running Android. It would be nice if someone figured out how to do this from a Linux PC or from a Mobian installation. But unless that happens anyone who wants to run Mobian on this device in Australia needs should get VoLTE working before installing Mobian.

