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. |
Contents
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:
.img.gz: The flashable image
.img.bmap: The bmaptool input for the image (See Method 1a below)
.sha256sums: A file of SHA256 hashes of the image file.
.sha256sums.sig: A detached signature for the .sha256sums file.
To verify the download, use the following steps:
Import the Mobian signing key from here with gpg --import mobian.gpg. Once downloaded, check the key's sha256sum - as of 24 June 2024, sha256sum mobian.gpg should give e30043410ea9d8aa582d3308ef8c7fff9605e49f224928faf439de0d4972e802 mobian.gpg .
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
If the signature is valid, check the other files with shasum -c <downloaded file>.sha256sums
- 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:
Download the JumpDrive image and flash the JumpDrive image to a micro SD card
Boot the PinePhone from the JumpDrive micro SD card
Connect the PinePhone to your computer using a USB cable
- The SD card and the eMMC will become available as block devices on your computer (in the form of /dev/sdX block devices).
Flash the exposed (mounted) PinePhone drive with the Mobian image using one of the methods below.
Disconnect the PinePhone from your computer and remove the JumpDrive SD card
Power in the PinePhone and boot Mobian from eMMC.
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.
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