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

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

This document guides the user how to install Mobian on their PinePhone, an open source smartphone designed by Pine64 to run Linux distributions.

Prerequisites

Mobian on the PinePhone requires that Tow-Boot is installed on the mmcboot partition of the device's eMMC. Users should follow the "Installing to eMMC Boot guide in the Tow-Boot documentation before proceeding.

Obtain the image

Pre-built Mobian images for the Pinephone can be downloaded from this link. Installer images are available in the same location. Same images and installers are available both under folders pinephone and sunxi of https://images.mobian-project.org.

Verifying the images

Mobian images come with multiple files:

To verify the download, use the following steps:

  1. Import the Mobian signing key from here. Once downloaded, check the key's sha256sum - as of 30 June 2022, sha256sum mobian.gpg should give 4ab90ff82a88f11f681e5e857503833eb2108c9a77edaa9f64b7648c1b91c60a  mobian.gpg .

  2. Verify the signature of the .sha256sums file with gpg --verify <downloaded file>.sha256sums.sig, where <downloaded file> is the name without extensions such as .img.gz or .img.xz

  3. If the signature is valid, check the other files with shasum -c <downloaded file>.sha256sums

  4. If this prints OK for all files, then the download is verified.

Flash the image

In order to flash the Mobian image, you need to identify the device attached to target. On the pinephone, it is /dev/mmcblk0 (for SD) or /dev/mmcblk2 (for eMMC, its size should be 16GB or 32GB depending on your device model) You can also use device names by-id for increased safety, e.g. /dev/disk/by-id/mmc-SU16G_0x1d6654fd. Be careful not to write to the wrong device! Replace the "X" in /dev/mmcblkX or /dev/sdX or use /dev/disk/by-id/.

Follow the steps below on how to flash to eMMC or see these pine64 wiki instructions for more ways on how to access eMMC of the pinephone. To flash an SD card, use another computer and bmaptool or dd, as below, checking and double-checking the device name /dev/XXXXXX very carefully before hitting <enter>.

Be advised that the first boot will take longer due to the automatic resizing of the filesystem.

Installation to eMMC

You can install the image to eMMC by using JumpDrive or by flashing the installer image to an SD card which will then provide the option to install to eMMC.

To use JumpDrive:

Note: It is not recommended to flash the installer directly to the eMMC. If you do install this way, please ensure there is no SD card present while running the installer.

Note: This is currently broken. Tow-Boot uses blocks 16..8208, which overlaps the mobian image starting its /boot partition at block 2048. Use the installer image instead. (2023-12-08)

Method 1a: bmaptool using an URL

bmaptool is a comfortable means to flash your image. It handles sparse files, so it can be considerably faster than plain dd. It also handles both .bmap and .gz files and can dowload them directly from an URL. Execute

sudo bmaptool copy https://images.mobian-project.org/pinephone/CHANGEME $BLOCKDEVICE

with $BLOCKDEVICE the blockdevice to flash, e.g. /dev/mmcblkX, /dev/sdX [in the case of jumpdrive], or /dev/disk/by-id/XXXXXX).

Example:

sudo bmaptool copy https://images.mobian-project.org/pinephone/nightly/mobian-pinephone-20200517.img.gz /dev/disk/by-id/mmc-SU16G_0x1d6654fd

Method 1b: bmaptool with a local image file

You can also use bmaptool to flash a local image. As it handles sparse files, it can flash considerably faster than plain dd

sudo bmaptool copy $IMAGE $BLOCKDEVICE

with $IMAGE, the path to the compressed or uncompressed image file and $BLOCKDEVICE the blockdevice (/dev/mmcblkX or /dev/sdX - if you are using jumpdrive - or /dev/disk/by-id/).

Example:

sudo bmaptool copy mobian-pinephone-20200801.img.gz /dev/disk/by-id/mmc-SU16G_0x1d6654fd

Method 3: dd

To use dd, you need to unzip the image using one of the following commands:

gunzip mobian-pinephone-YYYYMMDD.img.gz
gzip -d mobian-pinephone-YYYYMMDD.img.gz

Then flash with the following command:

sudo dd bs=64k if=mobian-pinephone-YYYYMMDD.img of=/dev/mmcblkX status=progress

(the status= option will display some progress while flashing, dd is awfully silent otherwise)

Default pin and password

The default user is mobian and has the password: 1234. It is also used as PIN on the unlock screen.

The root-user is locked by default.

You should change the user password with

passwd

once you have terminal access. If you want to access your phone via ssh (recommended), you need to set it up, check that it works with a password, and then set up key access to remove password access from the ssh service.

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.

Hardware data

Dump of inxi -FzJm

System:    Kernel: 5.10-sunxi64 aarch64 bits: 64 Console: tty 0 Distro: Debian GNU/Linux bullseye/sid 
Machine:   Type: ARM Device System: Pine64 PinePhone (1.2) details: N/A serial: <filter> 
Battery:   ID-1: axp20x-battery charge: 99% condition: N/A 
Memory:    RAM: total: 1.88 GiB used: 807.2 MiB (41.9%) 
           RAM Report: unknown-error: Unknown dmidecode error. Unable to generate data. 
CPU:       Info: Quad Core model: N/A variant: cortex-a53 bits: 64 type: MCP 
           Speed: 1152 MHz min/max: 480/1152 MHz Core speeds (MHz): 1: 1152 2: 1152 3: 1152 4: 1152 
Graphics:  Device-1: sun50i-a64-mali driver: lima v: kernel 
           Device-2: sun50i-a64-dw-hdmi driver: sun8i_dw_hdmi v: N/A 
           Device-3: sun50i-a64-display-engine driver: sun4i_drm v: N/A 
           Display: server: No display server data found. Headless machine? tty: 218x40 
           Message: Advanced graphics data unavailable in console for root. 
Audio:     Device-1: sun50i-a64-dw-hdmi driver: sun8i_dw_hdmi 
           Device-2: simple-audio-card driver: N/A 
           Device-3: simple-audio-card driver: asoc_simple_card 
           Sound Server: ALSA v: k5.10-sunxi64 
Network:   Device-1: regulator-fixed driver: reg_fixed_voltage 
           Device-2: regulator-fixed driver: reg_fixed_voltage 
           Device-3: mmc-pwrseq-simple driver: pwrseq_simple 
           Device-4: sun50i-a64-emac driver: N/A 
           IF: usb0 state: down mac: <filter> 
           IF-ID-1: wlan0 state: up mac: <filter> 
           IF-ID-2: wwan0 state: down mac: N/A 
Drives:    Local Storage: total: 14.68 GiB used: 6.98 GiB (47.5%) 
           ID-1: /dev/mmcblk2 model: N/A size: 14.68 GiB 
Partition: ID-1: / size: 14.56 GiB used: 6.93 GiB (47.6%) fs: f2fs dev: /dev/mmcblk2p2 
           ID-2: /boot size: 112.2 MiB used: 50.6 MiB (45.1%) fs: ext4 dev: /dev/mmcblk2p1 
Swap:      ID-1: swap-1 type: zram size: 964.1 MiB used: 0 KiB (0.0%) dev: /dev/zram0 
USB:       Hub-1: 1-0:1 info: Full speed (or root) Hub ports: 1 rev: 2.0 
           Hub-2: 2-0:1 info: Full speed (or root) Hub ports: 1 rev: 1.1 
           Hub-3: 3-0:1 info: Full speed (or root) Hub ports: 1 rev: 2.0 
           Device-1: 3-1:2 info: Quectel Wireless Solutions EC25 LTE modem type: <vendor specific> rev: 2.0 
           Hub-4: 4-0:1 info: Full speed (or root) Hub ports: 1 rev: 1.1 
           Hub-5: 5-0:1 info: Full speed (or root) Hub ports: 1 rev: 2.0 
Sensors:   System Temperatures: cpu: 42.0 C mobo: N/A 
           Fan Speeds (RPM): N/A 
Info:      Processes: 211 Uptime: 1m Init: systemd runlevel: 5 Shell: Bash inxi: 3.3.01