Skip to content

Instantly share code, notes, and snippets.

@eballetbo
Last active April 19, 2022 15:20
Show Gist options
  • Save eballetbo/181e43455d422de3037d213b1632e1c7 to your computer and use it in GitHub Desktop.
Save eballetbo/181e43455d422de3037d213b1632e1c7 to your computer and use it in GitHub Desktop.

FEDORA ON AARCH64 CHROMEBOOKS

Preparing a Fedora rootfs

Start by downloading your Fedora, here we use the Workstation variant, but you can choose another at the download site:

https://mirrors.ptisp.pt/fedora/linux/releases/35/Workstation/aarch64/images/Fedora-Workstation-35-1.2.aarch64.raw.xz

wget https://mirrors.ptisp.pt/fedora/linux/releases/35/Workstation/aarch64/images/Fedora-Workstation-35-1.2.aarch64.raw.xz
unxz -v Fedora-Workstation-35-1.2.aarch64.raw.xz

Next you mount the raw disk image, and extract the rootfs. (Note the loop devices in the output)

sudo kpartx -av Fedora-Workstation-35-1.2.aarch64.raw
sudo dd if=/dev/mapper/loop0p3 of=/var/tmp/Fedora-Workstation-35-1.2.aarch64.btrfs conv=fsync status=progress
sudo kpartx -d Fedora-Workstation-35-1.2.aarch64.raw

mkdir btrfs
sudo mount /var/tmp/Fedora-Workstation-35-1.2.aarch64.btrfs ./btrfs
cd ./btrfs/root && sudo tar cpf Fedora-Workstation-35-1.2.aarch64.tar.xz .

or

sudo cp -rp btrfs/root/* /var/run/media/eballetbo/ROOT-A

Do the following modifiction for the rootfs

  1. Edit /etc/shadow and delete the !locked on the root line so root can log in. And exit from the chroot

  2. Modify /var/run/media/eballetbo/ROOT-A/etc/fstab

UUID=b92308bf-09d9-4c18-bd72-62e0e92c4ce4 /                       btrfs   subvol=root,compress=zstd:1 0 0
UUID=75bba53d-63b5-4f0f-a98c-e571a6c1236d /boot                   ext4    defaults        1 2
UUID=8111-B415          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
UUID=b92308bf-09d9-4c18-bd72-62e0e92c4ce4 /home                   btrfs   subvol=home,compress=zstd:1 0 0

for

UUID=b92308bf-09d9-4c18-bd72-62e0e92c4ce4 /                       ext4   defaults    0 0
  1. Disable selinux

Modify /var/run/media/eballetbo/ROOT-A/etc/selinux/config Change

SELINUX=enforcing

For:

SELINUX=permissive
# Copy the static ARM binary that provides emulation
sudo cp $(which qemu-aarch64-static) usr/bin/

# Finally chroot into /mnt, then run 'qemu-arm-static bash'
# This chroots; runs the emulator; and the emulator runs bash
sudo chroot . qemu-aarch64-static /bin/bash

exit

List of extra packages needed to install for Fedora Workstation 35

# [  120.182638] msm ae00000.mdss: Direct firmware load for qcom/a630_sqe.fw failed with error -2
# [  120.191320] msm ae00000.mdss: [drm:adreno_request_fw] *ERROR* failed to load a630_sqe.fw
# [  120.273268] msm ae00000.mdss: Direct firmware load for qcom/a630_sqe.fw failed with error -2
# [  120.281940] msm ae00000.mdss: [drm:adreno_request_fw] *ERROR* failed to load a630_sqe.fw
# [  120.296908] msm ae00000.mdss: Direct firmware load for qcom/a630_sqe.fw failed with error -2
# [  120.305605] msm ae00000.mdss: [drm:adreno_request_fw] *ERROR* failed to load a630_sqe.fw

git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
sudo cp -fr qcom/* /lib/firmware/qcom/

sudo dnf install mesa-demos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment