<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pine64.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=CATFELLA</id>
	<title>PINE64 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pine64.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=CATFELLA"/>
	<link rel="alternate" type="text/html" href="https://wiki.pine64.org/wiki/Special:Contributions/CATFELLA"/>
	<updated>2026-04-20T05:25:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Pinebook_Pro_Installing_Arch_Linux_ARM&amp;diff=21609</id>
		<title>Pinebook Pro Installing Arch Linux ARM</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Pinebook_Pro_Installing_Arch_Linux_ARM&amp;diff=21609"/>
		<updated>2024-10-25T19:19:51Z</updated>

		<summary type="html">&lt;p&gt;CATFELLA: change the boot partition size to 512M. 256M is not enough, in fact it fails to upgrade the linux package because fallback initramfs step runs out of space (and the MiB -&amp;gt; MB is because I'm pretty sure that 512M in fdisk uses the MEGA prefix and not the MEBI)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions can be followed to install Arch Linux ARM on an SD Card, USB Flash Drive, eMMC, or even NVMe if your U-Boot supports it (example Tow-Boot on SPI).&lt;br /&gt;
&lt;br /&gt;
Commands to be run as a normal user are prefixed with &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;, commands to be run as root (or with &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;) are prefixed with &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;.&lt;br /&gt;
The target device is assumed to be '''/dev/sdb''', adjust accordingly.&lt;br /&gt;
&lt;br /&gt;
== Partitioning ==&lt;br /&gt;
=== Flashing U-Boot ===&lt;br /&gt;
{{note|While any build of U-Boot for the Pinebook Pro can be used, this tutorial uses [https://tow-boot.org Tow-Boot]. The process of installing Tow-Boot is different from any other U-Boot build, so large parts of the partitioning section will need to be changed if you want to use something else. If you already have Tow-Boot installed via SPI, you can skip this step. Use '''fdisk''' to create a blank GPT partition table. '''/boot''' will be partition 1, and '''/''' will be partition 2.}}&lt;br /&gt;
&lt;br /&gt;
Download and extract the latest release of Tow-Boot for the Pinebook Pro from https://github.com/Tow-Boot/Tow-Boot/releases.&lt;br /&gt;
&lt;br /&gt;
 $ wget https://github.com/Tow-Boot/Tow-Boot/releases/download/release-2021.10-004/pine64-pinebookPro-2021.10-004.tar.xz&lt;br /&gt;
 $ tar xf pine64-pinebookPro-2021.10-004.tar.xz&lt;br /&gt;
&lt;br /&gt;
Flash Tow-Boot to '''/dev/sdb''' (replace this with the device you actually intend to use).&lt;br /&gt;
&lt;br /&gt;
 # dd if=pine64-pinebookPro-2021.10-004/shared.disk-image.img of=/dev/sdb bs=1M oflag=direct,sync&lt;br /&gt;
&lt;br /&gt;
This creates the partition table for the device, with the first partition serving to protect Tow-Boot. Do not move or write to this partition.&lt;br /&gt;
&lt;br /&gt;
=== Creating the partitions ===&lt;br /&gt;
Use &amp;lt;code&amp;gt;fdisk&amp;lt;/code&amp;gt; to add partitions to '''/dev/sdb'''.&lt;br /&gt;
&lt;br /&gt;
 # fdisk /dev/sdb&lt;br /&gt;
&lt;br /&gt;
Create the '''/boot''' partition.&lt;br /&gt;
&lt;br /&gt;
* Type '''n''' to create a new partition.&lt;br /&gt;
* Press enter for partition number two.&lt;br /&gt;
* Press enter for the default start sector.&lt;br /&gt;
* Type '''+512M''' to make the new partition 512 MB.&lt;br /&gt;
&lt;br /&gt;
Mark the '''/boot''' partition bootable.&lt;br /&gt;
&lt;br /&gt;
* Type '''x''' to enter expert mode.&lt;br /&gt;
* Type '''A''' to mark a partition bootable.&lt;br /&gt;
* Type '''2''' to select partition two.&lt;br /&gt;
* Type '''r''' to exit expert mode.&lt;br /&gt;
&lt;br /&gt;
Create the root partition.&lt;br /&gt;
&lt;br /&gt;
* Type '''n''' to create a new partition.&lt;br /&gt;
* Press enter for partition number three.&lt;br /&gt;
* Press enter for the default start sector.&lt;br /&gt;
* Press enter to fill the rest of the device.&lt;br /&gt;
&lt;br /&gt;
Write the changes to disk.&lt;br /&gt;
&lt;br /&gt;
* Type '''w''' to write the changes and exit.&lt;br /&gt;
&lt;br /&gt;
=== Formatting the partitions ===&lt;br /&gt;
Format the '''/boot''' partition as a filesystem supported by your U-Boot. ext4 is recommended:&lt;br /&gt;
 # mkfs.ext4 /dev/sdb2&lt;br /&gt;
&lt;br /&gt;
Format the root partition as any filesystem supported by Arch Linux ARM. btrfs for example:&lt;br /&gt;
 # mkfs.btrfs /dev/sdb3&lt;br /&gt;
&lt;br /&gt;
== Installing the root filesystem ==&lt;br /&gt;
=== Mounting the partitions ===&lt;br /&gt;
 # mount /dev/sdb3 /mnt&lt;br /&gt;
 # mkdir /mnt/boot&lt;br /&gt;
 # mount /dev/sdb2 /mnt/boot&lt;br /&gt;
&lt;br /&gt;
=== Downloading and verifying the rootfs tarball ===&lt;br /&gt;
Download the tarball and its PGP signature.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$ wget http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz{,.sig}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Import the Arch Linux ARM signing key.&lt;br /&gt;
 $ gpg --keyserver keyserver.ubuntu.com --recv-keys 68B3537F39A313B3E574D06777193F152BDBE6A6&lt;br /&gt;
&lt;br /&gt;
Verify the tarball's authenticity.&lt;br /&gt;
 $ gpg --verify ArchLinuxARM-aarch64-latest.tar.gz.sig&lt;br /&gt;
&lt;br /&gt;
Verifying the authenticity of the tarball protects you in two ways:&lt;br /&gt;
# Makes sure the tarball came directly from Arch Linux ARM and was not tampered with&lt;br /&gt;
# Prevents you from using a corrupt tarball (for example from an interrupted download)&lt;br /&gt;
&lt;br /&gt;
=== Extracting and configuring the root filesystem ===&lt;br /&gt;
==== Extracting the root filesystem ====&lt;br /&gt;
 # bsdtar -xpf ArchLinuxARM-aarch64-latest.tar.gz -C /mnt&lt;br /&gt;
&lt;br /&gt;
==== Editing fstab ====&lt;br /&gt;
Find the partitions' UUIDs with &amp;lt;code&amp;gt;blkid&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 # blkid /dev/sdb3 /dev/sdb2&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&lt;br /&gt;
 /dev/sdb3: UUID=&amp;quot;c1ec9712-5c64-46da-852c-9d665416e8a6&amp;quot; UUID_SUB=&amp;quot;90e5b654-6967-471a-9d35-8997488b1ba8&amp;quot; BLOCK_SIZE=&amp;quot;4096&amp;quot; TYPE=&amp;quot;btrfs&amp;quot; PARTUUID=&amp;quot;885dd863-a550-2d47-89dd-f54fd6744ca5&amp;quot;&lt;br /&gt;
 /dev/sdb2: UUID=&amp;quot;21bbff3f-b82e-416e-93c8-e6d44c3daf82&amp;quot; BLOCK_SIZE=&amp;quot;4096&amp;quot; TYPE=&amp;quot;ext4&amp;quot; PARTUUID=&amp;quot;be571200-1a56-5d4c-9a5b-88a5f36a295e&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Add the following lines to '''/mnt/etc/fstab''', substituting the example UUIDs with those you received from &amp;lt;code&amp;gt;blkid&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 UUID=c1ec9712-5c64-46da-852c-9d665416e8a6 /     btrfs defaults 0 1&lt;br /&gt;
 UUID=21bbff3f-b82e-416e-93c8-e6d44c3daf82 /boot ext4  defaults 0 2&lt;br /&gt;
&lt;br /&gt;
==== Creating extlinux.conf ====&lt;br /&gt;
&lt;br /&gt;
Create a file '''/mnt/boot/extlinux/extlinux.conf''' with the following contents, replacing the example UUID with the one for '''/dev/sdb3''' from &amp;lt;code&amp;gt;blkid&amp;lt;/code&amp;gt;.&lt;br /&gt;
 DEFAULT arch&lt;br /&gt;
 MENU TITLE Boot Menu&lt;br /&gt;
 PROMPT 0&lt;br /&gt;
 TIMEOUT 50&lt;br /&gt;
 &lt;br /&gt;
 LABEL arch&lt;br /&gt;
 MENU LABEL Arch Linux ARM&lt;br /&gt;
 LINUX /Image&lt;br /&gt;
 INITRD /initramfs-linux.img&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-pinebook-pro.dtb&lt;br /&gt;
 APPEND root=UUID=c1ec9712-5c64-46da-852c-9d665416e8a6 rw&lt;br /&gt;
 &lt;br /&gt;
 LABEL arch-fallback&lt;br /&gt;
 MENU LABEL Arch Linux ARM with fallback initramfs&lt;br /&gt;
 LINUX /Image&lt;br /&gt;
 INITRD /initramfs-linux-fallback.img&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-pinebook-pro.dtb&lt;br /&gt;
 APPEND root=UUID=c1ec9712-5c64-46da-852c-9d665416e8a6 rw&lt;br /&gt;
&lt;br /&gt;
== Booting and finishing setup ==&lt;br /&gt;
Boot into Arch Linux ARM and log in as '''root''' with password '''root'''.&lt;br /&gt;
&lt;br /&gt;
Initialize the pacman keyring.&lt;br /&gt;
&lt;br /&gt;
 # pacman-key --init&lt;br /&gt;
 # pacman-key --populate archlinuxarm&lt;br /&gt;
&lt;br /&gt;
For security, change the default passwords for root and the default user '''alarm'''.&lt;br /&gt;
&lt;br /&gt;
 # passwd&lt;br /&gt;
 # passwd alarm&lt;br /&gt;
&lt;br /&gt;
Congratulations, you have now installed Arch Linux ARM on your PineBook Pro!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Pinebook Pro]]&lt;/div&gt;</summary>
		<author><name>CATFELLA</name></author>
	</entry>
</feed>