Installing Fedora on a PineTab2

Posted on May 10, 2026

If you want to skip to the actual install process, that starts at The Process.

The PineTab2

The PineTab2 is a decent, inexpensive, ARM powered tablet thats perfect for simple web browsing or terminal work on-the-go without having to deal Termux on with a software keyboard on a phone screen.

It has 8GB of ram and 128 GB of internal eMMC storage for $210 USD. They also have a cheaper model for $160 USD with half the RAM and Storage, though I feel 4GB of RAM is not enough for general usage these days (due to the bloated nature of modern web-based software development) so only get this if you have a specific and specialised need such as using it as an e-reader or control tablet (maybe as a Home Assistant interface?).

The factory installed Linux image even has working WiFi these days.

There is one problem I have with the factory configuration however, it runs Arch.

DanctNix Arch Linux

Don’t get me wrong, what the community has been doing regarding developing support for this hardware is nothing short of incredible. They’ve done amazing work making things just work out-of-the-box which is an incredible feat.

My issues with Arch are more about upsteam “Vanilla” Arch.

“Vanilla” Arch

The whole community feels very gatekeep-ey with a superiority complex, theres a reason that “I run Arch BTW” has become such a common meme.

I can look past the cringy community though, I’ve been on the internet long enough to know how to ignore problematic fanbases and communities; I’ve probably (definitely) been in a few myself. But the whole ecosystem feels needlessly complicated for the sake of complexity.

An example of this: The only officially supported way of installing AUR packages is to manually download the PKGBUILD, compile that PKGBUILD file into a pacman .pkg file, then install that .pkg file using the standard system Package Manager pacman. This would need to be done for every single AUR package you want to install, and every single update that those packages need. There is even a note on the AUR Helpers Arch Wiki Page explicitly stating that using them is officially not a supported way to use the AUR.

There is a way to have a powerful and complex system without making things needlessly complicated. People shouldn’t need to memorise the mystic runes that you pass down from on-high to fix their problems, problems which happen far more often because Arch is about as stable as wet tissue paper.

And don’t blame my bad experience on a skill issue, I used to daily-drive Arch for years in highschool until I found an actually good complex Distro and moved to Gentoo (Which I then daily-drove for several more years until I finished University and actually got a full-time job).

Where was I? Oh yeah, Installing Fedora on a PineTab2.

Fedora on ARM

Fedora has great first-class support for ARM devices, with the arm-image-installer being an easy way to generate bootable images for almost 150 different ARM boards (which, as of a month ago, includes the PineTab2).

I haven’t encountered any Fedora Repo packages yet that don’t have an ARM version automatically available, and have yet to have an ARM-specific issue with my Fedora installation on the PineTab2 as I’ve been using it over the past month or so.

The only things that don’t work out-of-the-box are WiFi, Bluetooth, and the Camera. However, we can compile the WiFi driver out-of-tree ourselves to get that to work.

The Process

The process to getting Fedora installed and working on the PineTab2 is fairly straight forward.

First we need to create a Recovery Micro SD-Card that we can boot into so we can install Fedora to the Internal eMMC. If you just want to create a bootable Micro SD-Card with Fedora on it and don’t want to (and/or don’t care to) install it over the Factory Image on the eMMC, you can skip straight to Generating the Image.

Creating a Recovery SD-Card

The most convinient image to use as a Recovery Distro on a seperate Micro SD-Card would be the DanctNix Arch image included from factory. It has great support for the PineTab2 Hardware (as it was built specifically for it) and it has working WiFi out-of-the-box.

The Pine64 Docs have some good information on installing various OSes to both the eMMC and an external SD-Card for the PineTab2 if you want to know more.

The basic steps are:

  1. Download the latest DanctNix archlinux SD-Card image from the dreemurrs-embedded repo.
    • Download the archlinux-pinetab2-barebone-{date}.img.xz file for a small and simple CLI-only image
    • Download the archlinux-pinetab2-plasma_desktop-{date}.img.xz image if you prefer having a GUI.
  2. Install the downloaded image to a Micro SD-Card
    • You can either use standard dd1 from the terminal, or a program such as balenaEtcher if you’re on Windows or prefer GUI programs.
    • If you’re using dd then you’ll need to xz decompress the downloaded image file first before copying it to the SD-Card. balenaEtcher can handle .img.xz files perfectly fine though.

Booting into the Recover SD-Card

Once you have your bootable Micro SD-Card, you can put it into your PineTab2 in the Micro SD-Card slot and power the PineTab2 on.

If you haven’t messed up the included Factory image or bootloader then the PineTab2 should boot to your Micro SD-Card when you power it on. If you’ve installed a different OS and bootloader to the eMMC or otherwise have a broken bootloader installed to the SPI or eMMC, then it may fail to boot to the OS installed on your SD-Card. This is because the Rockchip processor that the PineTab2 uses has a static boot order of SPI > eMMC > SD Card.

From the factory, the SPI is empty, and the Bootloaded installed on the eMMC will try to boot the SD Card before booting the DanctNIX Arch Linux OS installed on the rest of the eMMC.

If your PineTab2 fails to boot to the external SD-Card, you may been to mask the SPI and eMMC using the UART Adaptor board thats included with the PineTab2. See the PineTab2 FAQ on the Pine64 Docs for more information.

As stated above, the static boot order of the Rockchip processor used by the PineTab2 is SPI > eMMC > SD Card. This means that when we install our Fedora image to the eMMC, overwriting the included bootloader, there will be no mechanism to boot from the SD-Card anymore as the boot process will reach the Fedora bootloader on the eMMC and stop there.

One solution to this is to install the rk2aw loader to the SPI which takes over the boot process from the Rockchip Processor at the first step and (among other things) reverses the rest of the boot priority, booting SD-Cards before the internal eMMC.

This process is very simple.

  1. Download the already bundled pinetab2 bootloader installer from the rk2aw download page (the file you likely want is pt2.tar.gz).
    • $ curl -O https://xff.cz/kernels/bootloaders-2026.04/pt2.tar.gz
  2. Extract the downloaded tarball.
    • $ tar xvzf pt2.tar.gz
    • $ cd pt2/
  3. Run the included spinor-flash-initial-setup.sh script as root.
    • $ sudo ./spinor-flash-initial-setup.sh
  4. There is no step 4. You’ve successfully installed rk2aw.

Generating the bootable image

To generate a bootable Fedora ARM image, we can use the arm-image-installer. Typically this can be run on any linux distro, however specifically because we want to create an image for a rk35xx board (The PineTab2 uses a Rockchip rk2566), we need to run the arm-image-installer from a Fedora (or CentOS/RHEL) system as it installs the pbrobinson/u-boot package from a DNF COPR repo so it can get the proper u-boot version for the rk2566 board.

On a non-fedora system we can accomplish this either by spinning up a Fedora VM, or by building it in a Docker container. The method I went with was to use a Docker container.

Getting a Fedora Docker Container setup (Optional)

To get a Docker container setup properly so it can build a Fedora Arm image, use the following docker run command.

docker run -it \
    --privileged \
    --mount type=bind,src=/dev,target=/dev \
    --mount type=bind,src=.,target=/build \
    fedora bash

Lets breakdown why most of these flags are needed

  • The -it is so you can run the docker container as interactive, assigning a TTY session to it. As opposed to it running one program and exiting (which is immediately if that program is bash since STDIN is closed without the -it flags).
  • The --privileged flag is needed because write permissions to block devices is needed to create and install the image.
    • If you’re installing the image to an SD-Card, the arm-image-installer script writes the ARM image directly to the SD-Card.
    • If you’re creating an image file to dd later, the arm-image-installer script creates a loopback device with losetup which it then writes to as if it was a standard block device.
  • The /dev:/dev bind mount is needed because even though the --privileged flag above gives you write permisions to block devices and those block devices are added to /dev inside the docker container on startup, The arm-image-installer creates a new partition table on the image destionation (either the SD-Card directly, or a loopback block device) and those partition creation events are not sent to the docker container so the docker container is not able to create the appropriate pseudo-files in /dev. The solution to this is to mount the host /dev on top of the container /dev so that the script can properly access the partitions during image creation and installation.
  • The .:/build bind mount is so files can be passed between the Docker image and the Host system. Either so the arm-image-installer script can access the Fedora image to install, and/or so the bootable image file the script creates can be copied out of the docker container.

Once you’re in the Fedora docker image, you will need to install a few packages to get things setup. Primarily, you will need to install the arm-image-installer package so you can actually run the script.

dnf install arm-image-installer

Getting the Fedora you wish to install

Any Fedora ARM aarch64 .raw.xz image can be used with the arm-image-installer script. Go to the Fedora Project page and pick whichever flavour or spin best suits you.

Note that not all the spins come with an aarch64 image. If the WM/DE that you want doesn’t have an included aarch64 image, you can just install the standard Gnome or KDE Fedora image and install your WM/DE of choice later. This is what I did as there was no aarch64 image for the Fedora Sway Spin.

Once you have your *.aarch64.raw.xz image downloaded, you do not need to extract it. The arm-image-installer script works with the .xz compressed image and will decompress it itself.

Running the arm-image-installer script

Now you have everything ready, it’s time to actually create/install the bootable image.

First create an empty file that the bootable image will be written to.

touch /build/fedora-pinetab2-workstation-44-1.7.img

Next, run the arm-image-installer script with the following arguments,

arm-image-installer \
    --image=/build/Fedora-Workstation-Disk-44-1.7.aarch64.raw.xz \
    --media=/build/fedora-pinetab2-workstation-44-1.7.img \
    --target=pinetab2-rk3566 \
    --add-copr

Note:

  • If you’re not using the standard Gnome Fedora Workstation image, update the build/ paths to whichever Fedora image you downloaded.
  • If you’re not using a docker container as a build environment, change the /build/ paths to wherever you downloaded your Fedora image to, and wherever you want to build your bootable image to.
  • If you’re writing the image directly to an SD-Card, change the --media=/build/... arg to --media=/dev/{sdcard}. You may also want to add the --resizefs arg so that the installed image takes up the full SD-Card.

You can also run arm-image-installer without any args to get the full argument list and see if there’s any others you want to add. An example of one you may want to add would be the --showboot arg which removes rhgb quiet from the Kernel arguments so that boot messages are shown.

Installing the Fedora Image

If you chose to install the Fedora image directly to an SD Card in the previous section, you may skip this section, just insert your Micro SD-Card into your PineTab2 and you’re good to go.

Otherwise, now that you have your bootable Fedora ARM image, we can go about installing that to the onboard eMMC. This is an extremely simple process, and if you did all the previous steps on the PineTab2 booted from the SD-Card, you can skip most of them anyway.

  1. Boot the PineTab2 into an OS image on the SD-Card.
  2. Copy the bootable .img file to your PineTab2 recovery image.
  3. dd if=/path/to/fedora-pinetab2-workstation-44-1.7.img of=/dev/mmcblk0 bs=1m status=progress conv=fsync

Congratulations, you have successfully installed Fedora ARM to the PineTab 2.

Post-install steps are left as an exercise to the reader. I suggest expanding the root partition to take up the rest of the internal storage however (growpart and btrfs filesystem resize max to push you in the right direction.)

Getting WiFi to work

TODO: I have yet to get WiFi working on my PineTab2, so raincheck on this section.


  1. pv archlinux-pinetab2-*.img | dd of=/dev/[SDCARD] bs=1M conv=fsync for a nice progress bar using Pipe Viewer (pv). pv may need to be installed separately. ↩︎