Boot loop when attempting to install on Asus S13

I hacked my way through this over the course of a few days and I know what is happening. Following is a description intended to make it easier for the Fyde OS developers to create a fix if they decide to do so.

Bug report ==>

FydeOS installer fails to boot on ASUS UEFI (black screen → immediate reboot)

Hardware: ASUS laptop (UEFI mode).

Comparison: Same installer USB boots fine on an older System76 laptop.

What happens

  • Selecting the FydeOS USB on the ASUS shows a black screen for ~1–2 seconds, then the firmware restarts the boot process (loop).
  • No splash, no GRUB menu, no errors on screen.

What works (control experiment)

  • If I replace the installer’s \EFI\BOOT\BOOTX64.EFI with systemd-boot and put a minimal loader entry that boots the kernel directly (EFI-stub) from ROOT-A, the same ASUS boots the installer successfully.
  • So the kernel, partitions, and filesystem are fine ; the failure is strictly in the EFI bootloader stage .

Likely root cause (GRUB ↔ ASUS GOP init)

  • The installer’s BOOTX64.EFI appears to be a GRUB-based EFI shim that initializes gfxterm via efi_gop/efi_uga.
  • On this ASUS firmware, that GRUB image fails during graphics/console init (no usable GOP mode or mode-switch issue), resulting in a blank screen and firmware watchdog reboot before any menu is rendered.
  • Because swapping to systemd-boot (which uses simple UEFI LoadImage/StartImage with a text console) fixes it, the problem is very likely GRUB’s video path on this firmware, not media layout or the kernel.

Note: ESP size/layout does not cause this black-screen-reset. (I also tested with a larger ESP; behavior unchanged until GRUB was replaced.)

Repro steps (what you can try to validate)

  1. Use the standard FydeOS installer USB on an ASUS UEFI laptop with Secure Boot off.
  2. Observe: black screen → reboot loop.
  3. Replace \EFI\BOOT\BOOTX64.EFI on the USB with systemd-bootx64.efi, and copy the installer kernel to \vmlinuz (and \initramfs.img if available) add:
\loader\loader.conf     -> default fydeos
\loader\entries\fydeos.conf:
  title  FydeOS (installer)
  linux  \vmlinuz
  initrd \initramfs.img   (if present)
  options root=<UUID|PARTUUID of ROOT-A> rw rootwait cros_debug loglevel=7
  1. Observe: ASUS now boots the installer → confirms the GRUB image is the incompatibility.

What would fix this in the official installer

Any one of these would make ASUS-class firmware happy:

  1. Ship a “text-only” GRUB EFI as the default BOOTX64.EFI
  • Build GRUB without gfxterm (or set GRUB_TERMINAL_OUTPUT=console), avoid forcing GOP mode switches.
  • Include only the minimal modules needed (part_gpt, fat, ext2, normal, configfile, search*, linux, test, echo).
  • Ensure fallback to plain console if GOP init fails.
  1. Ship a systemd-boot (or direct EFI-stub kernel) path as default/fallback
  • For the installer USB, place a kernel + (optional) initramfs on the ESP and a loader/entries/*.conf.
  • This bypasses GRUB entirely on firmware that’s sensitive to gfxterm/GOP.
  1. Offer a boot-option switch (“Text mode bootloader”)
  • Let users toggle between the current GRUB build and a text-only/systemd-boot path if GOP init fails.

Why this matters

  • Some OEM UEFI implementations (ASUS being common) are picky with GRUB’s graphics initialization.
  • A plain UEFI text path (systemd-boot or text-mode GRUB) dramatically improves compatibility without touching the ChromeOS-style A/B layout or kernel.

Additional notes

If a person wants to make this work in the meantime, see this script which can modify a FydeOS install so that it will boot with systemd-boot. Note that this is for testing purposes only. Not responsible for any unexpected outcomes or undesirable consequences. Always review a script before running it.

To use the script:

  1. Create an install USB
  2. Also create a Linux distro that can be booted from a separate USB. Copy the fix script to it.
  3. Run the fix script against the Fyde OS installer USB.
  4. Boot from the USB and install FydeOS
  5. Reboot after installation into the bootable Linux distro.
  6. Run the fix script against the installed Fyde OS drive.

Note that major updates to Fyde OS (anything that would cause a switch between A / B partitions) would require re-running the fix script.

This is for testing purposes only!

Having said that, I am quite happy to say my Asus now runs FydeOS, with caveats.

1 Like