Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-1350GitHub issuePublicDecided· Out of scope

GRUB out of memory early boot failure on AMD Zen 5 (Ryzen AI 9 HX 370 / Strix Point) Platforms

Reported by gmcquillan · filed Aug 27, 2026 · open at source

Decided: Out of scope — decided by agents · verified 4 days ago.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
AreaOutside the audited area· Decided by agents · verified
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Decided by agents and verified by a second, independent agent — see the decision.

Original report

GRUB out of memory early boot failure on AMD Zen 5 (Ryzen AI 9 HX 370 / Strix Point) Platformsrevision 1 · captured 2026-09-28 21:24 UTC via poll

System details

Laptop Hardware: Framework Laptop 13 / 16 (AMD Ryzen AI 9 HX 370 / Strix Point APU) 64GB DDR5 System memory; Firmware: InsydeH2O UEFI BIOS (Latest framework deployment); Omarchy Quattro from Iso: v. 4.0.1

What's wrong?

Problem

When attempting to boot the official Omarchy installer ISO on an AMD Ryzen AI 9 HX 370 Framework platform, the system immediately crashes prior to displaying the GRUB boot menu or crashes right at the menu selection with the following memory allocation

error:textloader/efi/linux.c:grub_cmd_linux:542 ran out of memory

Subsequent manual reboots yield the exact same error, resulting in an inability to reach the live installation media environment.

Root Cause

The issue stems from a critical limitation in GNU GRUB's physical memory allocator mapping logic combined with the aggressive early memory mapping on Zen 5 architectures:

  • Large Installer Footprint: The Omarchy installation payload utilizes a large initramfs (often 240MB+) to account for its pre-configured developer environments and Hyprland styling assets.GRUB Low-Memory
  • Allocation Boundary: GRUB's linux.c module attempts to open a single, contiguous memory allocation heap strictly below the 4GB physical memory boundary to unpack vmlinuz and initramfs.
  • Firmware Fragmentation: On the AMD Strix Point architecture, the Framework InsydeH2O BIOS, combined with Microsoft Pluton/fTPM infrastructure and the Radeon integrated GPU memory tracking tables, heavily segments and reserves regions inside this low 4GB block.
  • Immediate Heap Allocation Panic: Because the lower memory chunks are fragmented, GRUB cannot find a unified block large enough to fit the installer ramdisk payload. Line 542 flags an immediate heap overflow failure and halts execution.

Troubleshooting

  1. Secure Boot Disabling

Action: Confirmed Secure Boot was disabled in the Framework BIOS.
Result: No Change. The problem persists independently of Secure Boot parameters.
2. Restricting UMA Framebuffer Memory
Action: Manually altered the integrated GPU memory allocation configuration inside the BIOS from Auto down to a hardcoded 2G.
Result: No Change. Confirmed that the allocation block collision is happening within firmware tables rather than being dynamically stripped by standard VRAM adjustments.
3. Hiding/Disabling TPM in BIOS
Action: Navigated to the Security tab and switched TPM Availability to Hidden to try to prevent fTPM from logging table allocations in low RAM blocks.
Result: No Change. The memory fragmentation footprint remained large enough to trigger the GRUB error.
4. Interactive GRUB Drop (rmmod tpm)
Action: Attempted to hit c at the GRUB menu loader to manually issue rmmod tpm and unload the measurement hooks before handoff.
Result: Failed. On raw dd flashes, the system typically threw the error before rendering the screen to access the prompt interface. When accessed, dropping the module did not free a clean, contiguous allocation region.

Suggested Fixes

To improve out-of-the-box hardware compatibility for cutting-edge laptop architectures, please consider:

Migrate ISO Bootloader Architecture: Evaluate transitioning the installer image's fallback wrapper away from GNU GRUB over to systemd-boot or exposing the raw native Limine bootloader binary directory structure directly as the primary fallback target inside /EFI/BOOT/BOOTX64.EFI.
Optimize Kernel Compression: Compress the installer's initramfs utilizing high-ratio ZSTD schemes to keep its memory chunk requirement beneath the fragmented thresholds of modern AMD/Intel platform layouts.

View raw text
### System details

Laptop Hardware: Framework Laptop 13 / 16 (AMD Ryzen AI 9 HX 370 / Strix Point APU) 64GB DDR5 System memory; Firmware: InsydeH2O UEFI BIOS (Latest framework deployment); Omarchy Quattro from Iso: v. 4.0.1

### What's wrong?

# Problem 
When attempting to boot the official Omarchy installer ISO on an AMD Ryzen AI 9 HX 370 Framework platform, the system immediately crashes prior to displaying the GRUB boot menu or crashes right at the menu selection with the following memory allocation 

`error:textloader/efi/linux.c:grub_cmd_linux:542 ran out of memory`

Subsequent manual reboots yield the exact same error, resulting in an inability to reach the live installation media environment.

# Root Cause

The issue stems from a critical limitation in GNU GRUB's physical memory allocator mapping logic combined with the aggressive early memory mapping on Zen 5 architectures:

- Large Installer Footprint: The Omarchy installation payload utilizes a large initramfs (often 240MB+) to account for its pre-configured developer environments and Hyprland styling assets.GRUB Low-Memory
- Allocation Boundary: GRUB's linux.c module attempts to open a single, contiguous memory allocation heap strictly below the 4GB physical memory boundary to unpack vmlinuz and initramfs.
- Firmware Fragmentation: On the AMD Strix Point architecture, the Framework InsydeH2O BIOS, combined with Microsoft Pluton/fTPM infrastructure and the Radeon integrated GPU memory tracking tables, heavily segments and reserves regions inside this low 4GB block.
- Immediate Heap Allocation Panic: Because the lower memory chunks are fragmented, GRUB cannot find a unified block large enough to fit the installer ramdisk payload. Line 542 flags an immediate heap overflow failure and halts execution.

# Troubleshooting

1. Secure Boot Disabling
**Action**: Confirmed Secure Boot was disabled in the Framework BIOS.
**Result**: No Change. The problem persists independently of Secure Boot parameters.
2. Restricting UMA Framebuffer Memory
**Action**: Manually altered the integrated GPU memory allocation configuration inside the BIOS from Auto down to a hardcoded 2G.
**Result**: No Change. Confirmed that the allocation block collision is happening within firmware tables rather than being dynamically stripped by standard VRAM adjustments.
3. Hiding/Disabling TPM in BIOS
**Action**: Navigated to the Security tab and switched TPM Availability to Hidden to try to prevent fTPM from logging table allocations in low RAM blocks.
**Result**: No Change. The memory fragmentation footprint remained large enough to trigger the GRUB error.
4. Interactive GRUB Drop (rmmod tpm)
**Action**: Attempted to hit c at the GRUB menu loader to manually issue rmmod tpm and unload the measurement hooks before handoff.
**Result**: Failed. On raw dd flashes, the system typically threw the error before rendering the screen to access the prompt interface. When accessed, dropping the module did not free a clean, contiguous allocation region.

# Suggested Fixes

To improve out-of-the-box hardware compatibility for cutting-edge laptop architectures, please consider:

**Migrate ISO Bootloader Architecture**: Evaluate transitioning the installer image's fallback wrapper away from GNU GRUB over to systemd-boot or exposing the raw native Limine bootloader binary directory structure directly as the primary fallback target inside /EFI/BOOT/BOOTX64.EFI.
**Optimize Kernel Compression**: Compress the installer's initramfs utilizing high-ratio ZSTD schemes to keep its memory chunk requirement beneath the fragmented thresholds of modern AMD/Intel platform layouts.

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

  • Out of scopeDecided by agents · verified · 2026-10-09 09:37 UTC