Moderator, Administrators
3,907
edits
(→First time setup: order) |
(→Software: Reworked installation instructions as via draft and chat discussion) |
||
Line 38: | Line 38: | ||
== Software == | == Software == | ||
The software section explains how to install the available software releases for the PinePhone Pro to the internal eMMC or a microSD card, how to boot them and how to solve common booting issues. | |||
The | === Software releases === | ||
The [[PinePhone Pro Software Releases]] page has a complete list of currently supported phone-optimized operating system images that work with the PinePhone Pro. | |||
{{Info|Images of the regular PinePhone are not compatible with the PinePhone Pro.}} | |||
=== Boot order === | === Boot order === | ||
The PinePhone Pro | The RK3399S processor in the PinePhone Pro searches for the bootloader (such as ''U-Boot'') in the following order: | ||
# SPI flash | |||
# eMMC (the internal memory) | |||
# MicroSD card | |||
The | The bootloader uses its own boot order for loading the kernel and other core operating system components at boot, which for example may result in the boot loader residing on the eMMC loading and booting the kernel from a microSD card. | ||
The SPI flash and the eMMC chip can be bypassed during boot by temporarily disabling them at the hardware level using the following method, which can be used in cases such as having corrupted installation on the SPI flash or the eMMC: | |||
* On the '''Explorer Edition''' hold the ''RE'' button underneath the cover for a few seconds, while powering on the device. | |||
* On the '''Developer Edition''', which was an earlier revision intended for developers only, the SPI and the eMMC can be bypassed by shorting the bypass test points while booting. The process is explained in the article [[PinePhone Pro Developer Edition#Nuking the factory AOSP installation|PinePhone Pro Developer Edition]]. Please join the community chat for any questions regarding the process. | |||
The bypass disables the SPI and the eMMC while being applied and the PinePhone Pro will try to boot from the next available boot medium, which is the microSD card. Note: When holding the ''RE'' button (or when shorting the contact points in case of the ''Developer Edition'') for a longer time at boot the operating system will not initialize the SPI and eMMC and it will not be possible to write to these storage mediums until the next reboot. | |||
{{Info|The bootloader (such as ''U-Boot'') resides in the free space in front of the first partition. Wiping the bootloader from the eMMC to make the PinePhone Pro boot from microSD card can be done using <code>sudo dd if=/dev/zero of=/dev/mmcblk2 seek=64 count=400 conv=fsync</code>. Formatting the drive or deleting the partition table is not sufficient to wipe the bootloader.}} | |||
See [[RK3399 boot sequence]] for details regarding the boot sequence. | |||
=== Installation instructions === | |||
The software releases can be installed (the process is being referred to as ''flashing'') to the eMMC or to an microSD card. | |||
==== Flashing to microSD card ==== | ==== Flashing to microSD card ==== | ||
To install an image to the microSD card: | To install an image to the microSD card: | ||
# Download | # Download a compatible image from [[PinePhone Pro Software Releases]] | ||
# Extract the compressed | # Extract the compressed image | ||
# Write the image to your microSD card using your favorite method, examples: | # Write the image to your microSD card using your favorite method, examples: | ||
#* Using ''dd'': On the device you're flashing the microSD card from, find the correct device under <code>lsblk</code> and then flash the image to the microSD card using <code>sudo dd if= | #* Using ''dd'': On the device you're flashing the microSD card from, find the correct device under <code>lsblk</code> and then flash the image to the microSD card using <code>sudo dd if='''IMAGE.img''' of=/dev/'''[DEVICE]''' bs=1M status=progress conv=fsync</code>. Make sure the target is the whole microSD card and not its first partition (''sdc1'' or ''mmcblk0p1'' are wrong!). | ||
#* Using ''bmaptool'': Make sure to select the correct device using <code>lsblk</code>. Then run bmaptool with the correct device: Download the '' | #* Using ''bmaptool'': Make sure to select the correct device using <code>lsblk</code>. Then run bmaptool with the correct device: Download the ''IMAGE.xz'' and the ''IMAGE.bmap'' files, then run <code>bmaptool copy --bmap '''IMAGE.bmap''' '''IMAGE.xz''' /dev/'''[DEVICE]'''</code>. This takes around 2.5 minutes to flash a 4 GB file. | ||
#* Using ''a graphical tool'': A graphical tool such as Gnome Disks under Linux or Etcher under Windows may also be used. | #* Using ''a graphical tool'': A graphical tool such as Gnome Disks under Linux or Etcher under Windows may also be used. | ||
# Insert the microSD card into the top slot of the | # Insert the microSD card into the top slot of the PinePhone Pro. Make sure the microSD card is inserted all the way and that the notch of the right side of the microSD card is not visible anymore. | ||
# | # Power on the PinePhone Pro. If there is an '''existing bootloader on the eMMC''' already you need to bypass or wipe the bootloader on the eMMC as explained in the section [[PinePhone Pro#Boot order|Boot order]] | ||
==== Flashing to the eMMC ==== | ==== Flashing to the eMMC ==== | ||
Flashing to the eMMC can be done by booting an operating system from the microSD (see the section [[PinePhone Pro#Flashing to microSD card|Flashing to microSD card]]) and by writing to the eMMC directly from there: | |||
# Boot an operating system [[PinePhone Pro#Flashing to microSD card|from the microSD card]]. If there is already a bootloader on the eMMC installed see the section [[PinePhone Pro#Boot order|Boot order]] to bypass it | |||
# Download or copy the desired image to the microSD card as file | |||
# Boot an operating system from the microSD card. If there is already a bootloader on the eMMC installed see the section [[PinePhone Pro# | # Check if the eMMC appears under <code>lsblk</code>. If it doesn't appear in the output of the command, the eMMC wasn't initialized due to applying the above explained bypass method for a too long time during the boot | ||
# Download or copy the | |||
# Check if the eMMC appears under <code>lsblk</code>. If it doesn't appear | |||
# Extract the image | # Extract the image | ||
# Flash the extracted image using <code>sudo dd if='''IMAGE.img''' of=/dev/mmcblk2 bs=1M status=progress conv=fsync</code> | # Flash the extracted image using <code>sudo dd if='''IMAGE.img''' of=/dev/mmcblk2 bs=1M status=progress conv=fsync</code> | ||
# Reboot the | # Reboot the PinePhone Pro | ||
==== | === Troubleshooting === | ||
If the PinePhone Pro is not booting (either booting incompletely into a boot splash or tty or if the PinePhone Pro is showing no signs of life) this will typically have the following two reasons: | |||
==== The battery is fully drained ==== | |||
The bootloader ''U-Boot'' is currently booting into a boot loop if the battery is fully drained. In that case it is not possible to charge the phone. The battery can be charged by interrupting the boot loop by booting the PinePhone Pro into ''Maskrom mode'' or by charging the battery externally. To boot the PinePhone Pro into ''Maskrom mode'': | |||
* Remove any microSD card from the phone and keep it removed for the below procedure | |||
* Remove the battery, any USB cable and any serial cable | |||
* Reinsert the battery | |||
* Hold the ''RE'' button underneath the back cover of your ''Explorer Edition'' (or short the bypass contact points on the ''Developer Edition'') | |||
* Connect the phone to an USB port of a computer, while still holding the button for some time | |||
* Check if the phone in Maskrom mode appears in the output of the terminal command <code>lsusb</code> on the computer, the expected ''VID:PID'' of the device is ''2207:330c'' (under ''Windows'' this can be checked using the ''Device Manager'' and checking the VID and PID of an appearing ''Unknown device'') | |||
* Let the phone charge for at least two hours | |||
{{Info|If the device doesn't appear under ''lsusb'' please try again with a different known good USB-C cable and make sure that there is no microSD card in the phone inserted.}} | |||
The device should now be able to boot from the boot medium again. If that is not the case the installation got corrupted, as explained below. | |||
==== The installation is corrupted ==== | |||
The PinePhone Pro won't be able to boot if the installation on the SPI flash, the eMMC or the microSD card got corrupted. To boot a working operating system: | |||
* Prepare a microSD card as explained in the section [[PinePhone Pro#Flashing to microSD card|Flashing to microSD card]] | |||
* Remove any USB-C cable or device or add-on case from the PinePhone Pro | |||
* Make sure the device is powered off by shortly removing the battery for a second | |||
* Insert the microSD card into the top slot of the PinePhone Pro. Make sure the microSD card is inserted all the way and that the notch of the right side of the microSD card is not visible anymore. | |||
* Power on the device while bypassing the SPI and eMMC as explained under [[PinePhone Pro#Boot order|Boot order]] | |||
The device should now boot from the microSD card. If the phone does not boot from the microSD card the microSD card was flashed with an incompatible image or the battery got drained as explained above. | |||
=== Bootloaders === | |||
The following section contains notes regarding compatible bootloaders with the PinePhone Pro. | |||
The | ==== U-Boot ==== | ||
The pre-installed operating system on the PinePhone Pro Explorer Edition is using ''U-Boot'' as default bootloader. | |||
==== Tow-Boot ==== | |||
There are plans to possibly ship the PinePhone Pro with ''Tow-Boot'' pre-installed to the SPI flash in a future batch, which is an opinionated distribution of ''U-Boot'' and brings numerous advantages over stock ''U-Boot'', such as the possibility to choose from booting the eMMC or microSD card using the volume buttons during boot, as well as a ''USB Mass Storage node'', where the device can be written to by connecting the device to a computer via USB. | |||
The user can flash Tow-Boot to the PinePhone Pro using the [https://tow-boot.org/devices/pine64-pinephonePro.html instructions on the Tow-Boot website]. | |||
The | ==== levinboot ==== | ||
The levinboot bootloader is another upcoming option for the PinePhone Pro. The project repository can be found [https://gitlab.com/DeltaGem/levinboot/-/tree/master/ here] | |||
== Privacy switch configuration == | == Privacy switch configuration == |