From Fedora Project Wiki

Installing Fedora 45 Beta on Snapdragon Windows-on-ARM Laptops

  1. Prepare the laptop. You will want to keep Windows around for firmware updates. Update the windows drivers to get the latest BIOS and runtime loadable firmwares (e.g. run the Lenovo Vantage tool). Resize the disk under Windows to make space for Fedora.
  2. Prepare a USB drive with the aarch64 Fedora Workstation 45 beta Live ISO. Download the iso (enable Beta downloads) and use Fedora Media Writer or dd to write it to an empty USB drive, as described on the download page.
  3. Boot the laptop from the USB-stick, at the grub menu select the top ("Start Fedora-Workstation-Live") entry, press e to edit that entry and add the following kernel commandline options at the end of the line starting with linux to work around various known issues on these laptops.
    On laptops with a Snapdragon X Elite/Plus X1E/X1P CPU add:
    clk_ignore_unused systemd.tpm2_wait=0
    On laptops with a Snapdragon 8cx Gen 3 CPU add:
    clk_ignore_unused systemd.tpm2_wait=0 efi=noruntime arm64.nopauth
    See the kernel commandline workarounds explained section below for more info about these.
  4. After booting start the installer to install Fedora as usual. Note the screen will go black during the boot for about 30 seconds, this is expected.
  5. Reboot into the new install and go through the first-boot setup (connect wifi, create a user, etc).
  6. After logging in the first time, open a terminal and run the following commands to work around various known issues on these laptops:
    echo scmi-cpufreq | sudo tee /etc/modules-load.d/scmi-cpufreq.conf
  7. The below steps deal with model specific DSP and GPU firmware and adding these to the initramfs. On most models these firmwares must be copied from the Windows partition. On some laptops, e.g. Lenovo Thinkpad X13s / T14s gen6 / Yoga Slim 7x and Dell XPS13 9345 models this firmware already is in linux-firmware and this step may be skipped.
    sudo dnf --enable-repo=updates-testing install qcom-firmware-extract
    sudo qcom-firmware-extract
  8. Now reboot to use the new firmware files and you're all set.

Kernel commandline workarounds explained

clk_ignore_unused

By default the kernel will disable any clocks and power-domains which have not been claimed by any drivers when the kernel is done initializing all builtin drivers, before starting the (initramfs) init process.

This is a problem when not all clock consuming drivers are builtin. In this case some clocks which should have stayed on may get turned off, causing the boot to fail before the kernel drivers consuming these clock can be loaded.

There are various possibly avenues for fixing this and various possible kernel fixes are in the works.

systemd.tpm2_wait=0

The efivars provided by the EFI firmware on these systems indicate that there is a TPM2. This causes systemd-tpm2-generator to generate units to wait for a /dev/tpmrm0 device to show up. These units time out after 45 seconds causing a total boot delay of 90 seconds. This option disables systemd-tpm2-generator .

Passing this option will be necessary until the kernel gets support for the TPM setup used on these systems.

efi=noruntime

Disable EFI runtime services support on laptops with a Snapdragon 8cx Gen 3 CPUs to workaround issues in the EFI firmware triggered by using EFI runtime services.

arm64.nopauth

Disable Pointer Authentication on laptops with a Snapdragon 8cx Gen 3 CPUs. A future BIOS update may allow running with Pointer Authentication.


Post install workarounds explained

echo scmi-cpufreq | sudo tee /etc/modules-load.d/scmi-cpufreq.conf

Fedora builds the scmi-cpufreq as module, but autoloading of that module does not work due to the kernel SCMI bus code not supporting autoloading.

This is fixed by this upstream patch series.

Install + run qcom-firmware-extract script

The following 2 commands install + run the qcom-firmware-extract script:

sudo dnf --enable-repo=updates-testing install qcom-firmware-extract
sudo qcom-firmware-extract

This is necessary because some firmwares on these laptops are laptop model specific and the linux-firmware repository does not contain firmware files for all supported models.

Even on models where all the firmware is in linux-firmware running qcom-firmware-extract is still a good idea because the local Windows installation often has newer firmware files then those in linux-firmware.