Snapdragon X Elite Fedora 42 System Bring-Up (and looking for collaborators or SIGs)!

Hey folks!

Long time no update! Sorry, I’ve made plenty of progress but life has been busy so I’ve not been able to write up a proper update as of late! I’ve also been tracking my iterative progress in the #Fedora-ARM channel over on Matrix!

Current Status

You can currently boot Fedora Rawhide on a Lenovo Yoga Slim 7x (like I am) or most Snapdragon X Elite laptops with some modifications to the Raw OS file and by leveraging arm-image-installer.

What Works
Currently, the system works, battery life registers around 6-7 hours at medium display brightness, and the system is responsive. The only things that do not work are:

  • Speakers (patch available but can cause damage to device)
  • Bluetooth (patch available via this patched kernel)
  • Camera (patch available to dtb)
  • Microphone (patch available to dtb)
  • Sleep (works if you turn on Airplane Mode)

The items that I can confirm work are (non-conclusive):

  • Keyboard
  • Touchpad
  • Touchscreen
  • Display (up to 90hz!)
  • External Displays over USB-C to HDMI and DP
  • Wifi (with latest linux-firmware and Kernel 6.16.0-rc1 or later or 6.15 newest stable kernel)
  • Battery monitoring and power plans

Instructions to boot Fedora Rawhide on Snapdragon X Elite

  1. You need to start with a raw image for Fedora. You can find them on Index of /compose/rawhide. I started with the latest Rawhide build. here is a direct link to the image I used at time of writing: https://kojipkgs.fedoraproject.org/compose/rawhide/latest-Fedora-Rawhide/compose/Workstation/aarch64/images/Fedora-Workstation-Disk-Rawhide-20250518.n.0.aarch64.raw.xz. The datetime will likely be different in the future and you’ll want to get the latest from Index of /compose/rawhide/latest-Fedora-Rawhide/compose/Workstation/aarch64/images

  2. Run xz <image.raw.xz filename>

  3. sudo kpartx -av <image.raw> (the output image from the previous command)

  4.  sudo mount /dev/mapper/loop0p3 /mnt/
     sudo mount /dev/mapper/loop0p2 /mnt/root/boot
     sudo mount /dev/mapper/loop0p1 /mnt/root/boot/efi
    
  5. Edit /mnt/root/boot/loader/entries/*conf to have: devicetree /boot/dtb/qcom/x1e80100-lenovo-yoga-slim7x.dtb (or you can reference the dtb for whatever laptop you have provided its in the directory - if you want to see what’s available, list them in /mnt/root/boot/dtb/

  6.  sudo umount /mnt/root/boot/efi
     sudo umount /mnt/root/boot
     sudo umount /mnt/
     sudo kpartx -d <image.raw>
    
  7. xz <image.raw>

  8. sudo arm-image-installer --image <image-name.raw.xz> --media <path-to-your-usb-device-or-disk-like-/dev/sdd> --resizefs --showboot --args 'clk_ignore_unused pd_ignore_unused'

Note: at the time of writing, if you are booting from a USB, you need to add modprobe.blacklist=qcom_q6v5_pas rd.driver.blacklist=qcom_q6v5_pas to args in the arm-image-installer command (which adds them as arguments to the kernel in the grub config). This flag has the side effect of removing Battery Metrics. To get battery data, you cannot boot from USB at this time.

Now, you should have a disk that you can boot on the laptop with secureboot disabled.

The Future
If we want to ship a Fedora ISO someday that supports X Elite (or the likely upcoming X2), we’ll need to navigate the issues with the Qualcomm laptop’s current dependencies on Devicetrees to boot. Ideally, we don’t want to integrate an EFI boot-time script that detects and injects the correct devicetree, nor do we want to bundle in all of the DeviceTrees in the ISO for Fedora (or other Linux distros). There have been efforts to get these devices ACPI compliant or bring Linux support for their ACPI - this would provide more universal Linux support for these systems without the scripts like Ubuntu integrates. This would likely include work from Qualcomm to bring better support! I don’t know the current status on these discussion or where to track it - but I’m happy to connect to them once I’m able to find out where they’re happening!

** Wrap Up**
Catch me live in the #Fedora-ARM channel over on Matrix - alongside the folks who helped me get here - @nirik and @pbrobinson and highlights to both for providing patches to keep things running thus far!

2 Likes