Skip to content

Boot and install Omarchy on Snapdragon X ARM64 systems - #129

Merged
birkskyum merged 36 commits into
omacom:dragonfrom
birkskyum:upstream/snapdragon
Sep 13, 2026
Merged

birkskyum merged 36 commits into
omacom:dragonfrom
birkskyum:upstream/snapdragon

Conversation

@birkskyum

@birkskyum birkskyum commented Aug 27, 2026 •

Copy link
Copy Markdown

Summary

This work aims to make Omarchy a practical option on Snapdragon X Elite laptops people already own. TUXEDO paused its X Elite laptop project after 18 months of development, illustrating the remaining Linux support challenges. Meanwhile, Qualcomm is demonstrating Linux on newer X2 hardware. This PR builds on the wider upstream effort, with testing currently focused on first-generation X Elite machines, so owners can choose Linux without replacing capable, recent hardware.

  • Consolidates ARM build tooling and hardware profiles from Build a generic aarch64 ISO #149 and Add AArch64 and Snapdragon ISO support #156 into one installer path, while keeping kernel and runtime fixes in maintained packages.
  • Builds Snapdragon UKI media by default on ARM, with an explicit generic ARM/GRUB target. Neither target claims support for every ARM board.
  • Builds against Arch Linux ARM and a native-built Omarchy repository.
  • Creates a live UKI carrying Windows-on-ARM device trees and required kernel parameters.
  • Uses available Linux firmware first, stages only missing model-matched files from a readable Windows driver store before partitioning, and repairs a partial staging copy on retry.
  • Bootstraps the ALARM kernel-image shim and preserves the offline keyring.
  • Excludes x86-only initramfs hooks and fails the build on initramfs errors, even if an incomplete image exists.
  • Uses one architecture filter for shipped package lists and offline dependencies.
  • Prioritizes the local repository and includes the existing ARM display-stack rebuilds.
  • Loads the Yoga's DSP driver from a live-only service after verifying the filesystem is entirely in RAM, allowing ADSP startup and restoring USB hotplug and battery telemetry without removing the early USB-protection blacklist. Other boards remain unchanged; mounted storage, active swap or an unfamiliar layout prevent startup.

Consolidation and attribution

Carries Sean's aarch64 ISO work from #121 and Jimmy Van Veen's Snapdragon work from JimmayVV/omarchy-iso@snapdragon, preserving original authorship. The #121 code is already in this branch; if that PR lands first, reconcile the shared history before merging this consolidation.

Marcelo Alcantara's #149, reviewed at 4897e8b, supplied the architecture/media-target separation and isolated build-cache approach. His offline keyboard implementation and tests are carried unchanged in a commit retaining his authorship.

Matt Gilg's #156, reviewed at b333b46, supplied the hardware-profile model, identities, package requirements and generated-initramfs inspection approach. The manifest supplies both offline package coverage and model-matched installation settings, without duplicating the Yoga runtime setup. Jim Martin's 4f70137 supplied the Spark graphical disk-unlock settings. Adapted work carries co-author trailers, including the original AI co-author credit from Matt's source commit.

Dependencies

This ISO consumes those changes; it does not block their merge. They can be reviewed in parallel, then a final integrated image needs validation with the landed versions before release. The separate systemd shutdown fix and camera stack are not prerequisites for this PR and are not supplied by it.

Firmware fallback

Windows extraction is not required to boot every X1 laptop. The wizard automatically attempts it only for missing device-tree-named firmware, before partitioning; it is not a separate checkbox. Staged files are kept in RAM and copied into the installed system. This staging is not a durable backup if installation is interrupted.

The current implementation still depends on omacom/omarchy-pkgs#221 for firmware inspection and GPU initramfs handling, even on machines needing no extraction. It does not download OEM firmware or supply missing Linux drivers, and ACPI-only/X2 extraction is not validated. The missing Yoga CDSP companion and the request for vendor-backed distribution are tracked in that package PR.

Current validation

The September 10 consolidated Snapdragon image was built from 4d47dd6943b342e057aeb5534790ba127b1708dd, with kernel 7.2.4-1-aarch64-ARCH. Runtime and package prerequisites were combined in isolated checkouts, not already-merged upstream branches.

  • All 97 Python tests and the ISO shell suites passed as an unprivileged user in a native ARM container. Coverage includes architecture/target selection, cache isolation, model matching, offline package coverage, persistent boot configuration and 12 live-DSP guard tests. ShellCheck, shell syntax and service verification also passed.
  • Finished-image inspection verified the SquashFS checksum, matching UKI/kernel/initramfs, kernel/module versions, 32 hardware-matched DTBs, live archiso hooks, ARM EFI loader and the Add linux-aarch64 kernel compatibility shim omarchy-pkgs#222 and omarchy-settings: keep the Limine and mkinitcpio drop-ins on aarch64 omarchy-pkgs#380 payloads. The live DSP helper and service matched their source files.
  • A physical Yoga boot reached the installer welcome screen, with working built-in input and Wi-Fi. The DSP service passed its RAM guards and loaded the driver automatically before any manual SSH intervention. ADSP started, USB returned at 5000 Mbit/s with UAS, and battery telemetry became readable.
  • One physical unplug/replug cycle on the same port passed. Direct-I/O reads of the entire 4,290,398,208-byte image matched SHA256 before and after replug, at 193 and 204 MB/s. The USB and internal NVMe partitions remained unmounted, and the internal encrypted root stayed closed throughout the live test.
  • Separate package tests exercised Add linux-aarch64 kernel compatibility shim omarchy-pkgs#222 across a real kernel-package upgrade from 7.2.3 to 7.2.4 and a same-version reinstall, and omarchy-settings: keep the Limine and mkinitcpio drop-ins on aarch64 omarchy-pkgs#380 retaining the encryption/UKI drop-ins and a local edit. These used a Limine backend fixture and real mkinitcpio, not a physical ESP or a booted upgraded installation.

The initial USB link was already SuperSpeed before DSP startup. It disconnected during early boot and returned after ADSP started, so the test demonstrates safe recovery, not prevention of every early reset. CDSP remained offline because qcom/x1e80100/LENOVO/83ED/cdsp_dtbs.elf was missing; the ADSP result does not establish camera, compute-DSP or audio support. Other boards and repeated boot cycles have not been validated with this automatic sequence.

A fresh install onto an explicitly disposable drive, followed by an update and reboot, remains required for the consolidated path. Matt's and Jim's fresh-install reports apply to their source branch, not automatically to this consolidation. Generic ARM media still needs physical validation. A final image also needs testing with the landed and published prerequisites. The existing Yoga installation containing valuable files was not used as an installation target.

Prior test reports

These reports identify the source revisions and setups they tested. They are not validation of the latest consolidated image.

Previous image tests and installed-system results
  • The August 28 native build, at 5c3bce42d65b4443e619568dadd7a0b263107d8d, passed ISO construction and inspection. The initial ASUS report here used that ISO. Yoga and HP EliteBook Ultra G1q reports also document their tested configurations; they are not validation of every subsequent change.

The installed Yoga hardware report confirms Limine without the hash warning, graphical Omarchy disk unlock, polished shutdown/reboot, Wi-Fi, Bluetooth, speakers and microphone. The shutdown result used a separate systemd v261.2 backport of systemd/systemd#43671, not a change included in this ISO PR. The hardware report also covers the fast, denoised camera preview and subsequent Chromium live-video test on an experimental setup. Camera enablement is a follow-up, not functionality supplied by this ISO PR.

A September 6 integration build and physical Yoga live-USB test now pass ISO construction, image verification, installer startup, built-in input and Wi-Fi connectivity. The linked report pins all three source repositories. Its functional ISO build corrections are now included in dc166d7, without the fork-specific integration wiring; repository verification is handled in omacom/omarchy-pkgs#223. That September 6 live image had unresolved USB disconnection/hotplug and power-telemetry problems, distinct from the working installed SSD system. The September 10 Yoga test above validates the guarded late-DSP fix for those live-session failures; it does not extend that result to other models. No fresh installation was performed; the existing internal installation was preserved. Early unlock display remains board-specific; missing signed firmware may still prevent display or other hardware from working.

The September 7 ASUS Vivobook S15 S5507QA report used the same pinned September 6 image, with kernel 7.2.3-2-aarch64-ARCH. The installer welcome screen and Wi-Fi/HTTPS worked. Its SanDisk stayed enumerated across snapshots two minutes apart, so it did not reproduce the Yoga's USB disappearance. Power-supply reads returned EAGAIN in both snapshots, confirming unavailable live-session telemetry on a second board, not a charging failure.

The default-boot clarification confirms that selecting the correct USB in the firmware boot menu can reach the live environment without manually entered GRUB commands. The image intentionally hides its menu with timeout=0; the GRUB prompt was entered deliberately for diagnostics. The live-session capture confirms the shipped arguments, including quiet splash and modprobe.blacklist=qcom_q6v5_pas, and nonzero input events from the 093A:3016 touchpad. This supersedes the earlier zero-byte observation. No pointer is expected in the console installer.

Separately, the installed-system report confirms Omarchy running from the ASUS's internal NVMe with kernel 7.2.0-12-aarch64-vivobook-ARCH, working desktop touchpad movement and gestures, and nonzero touchpad input events. These are tester-reported results with distinct live and installed kernels, not a fresh-install validation of this image. Encrypted unlock, audio and camera were not tested in the live-image follow-up; live battery/charger telemetry remains unresolved.

Copilot AI lite review requested due to automatic review settings August 27, 2026 21:08

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds end-to-end support for building and booting the Omarchy installer ISO on aarch64 (targeting Snapdragon X/Windows-on-ARM laptops), including ARM-specific boot flow (UKI + DTBs), package/mirror handling for Arch Linux ARM, and native ARM CI.

Changes:

  • Make ISO build and installer logic architecture-aware (aarch64 vs x86_64), including Limine EFI binary selection and Node artifact selection.
  • Add Snapdragon/Windows-on-ARM boot and firmware handling (UKI with DTBs + staged vendor firmware extraction).
  • Add a native GitHub Actions aarch64 build workflow and update offline-mirror handling for .pkg.tar.{zst,xz}.

Reviewed changes

Copilot reviewed 16 out of 17 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
configs/profiledef.sh Select aarch64 bootmodes and airootfs compression; add aarch64-only staged file permissions.
configs/packages.aarch64 New aarch64 live environment package list.
configs/grub/grub.cfg Add arm64 default entry that chainloads a UKI and Snapdragon kernel params.
configs/airootfs/usr/share/omarchy-iso/orchestrator/phases_impl.py Limine EFI naming per-arch; stage/copy Qualcomm firmware; Node tarball selection per-arch.
configs/airootfs/usr/share/omarchy-iso/orchestrator/context.py Default Limine EFI binary per architecture.
configs/airootfs/root/configurator Per-arch Limine binary; aarch64 mirror server handling; kernel detection for linux-aarch64; firmware staging integration.
configs/airootfs/root/.automated_script.sh Warm offline mirror for both .pkg.tar.zst and .pkg.tar.xz.
configs/aarch64/zz-aarch64-live.conf Ensure live initramfs HOOKS include archiso; drop thunderbolt module for aarch64.
configs/aarch64/live-uki.sh Build a live UKI embedding DTBs + SMBIOS hwids for Windows-on-ARM.
configs/aarch64/linux.preset No-op preset to avoid mkinitcpio failures on missing /boot/vmlinuz-linux.
configs/aarch64/customize_airootfs.sh Reconcile ALARM kernel naming, build live initramfs, and build UKI.
builder/patches/archiso-grubmodules.patch Patch archiso to filter unavailable GRUB modules on arm64-efi.
builder/patches/archiso-copy-boot-efi.patch Patch archiso to copy /boot/*.efi into the ISO (needed for the UKI).
builder/build-omarchy-packages.sh Include .pkg.tar.xz artifacts when building/copying packages.
builder/build-iso.sh Host-arch selection; ALARM keyring handling; pacman.conf filtering; aarch64 package filtering/substitution; Node arch selection.
bin/omarchy-iso-make Add --local-repo; choose Arch vs ALARM container image by host arch.
.github/workflows/aarch64-build.yml New native ARM CI workflow building pkgs then ISO on arm64 runner.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread builder/build-iso.sh
Comment thread builder/build-iso.sh
Comment thread configs/airootfs/usr/share/omarchy-iso/orchestrator/phases_impl.py Outdated
Comment thread configs/packages.aarch64 Outdated
@birkskyum

birkskyum commented Aug 27, 2026 •

Copy link
Copy Markdown
Author

Package dependencies are now split and upstream-visible: omacom/omarchy-pkgs#223 provides the reusable native ARM repository artifact, omacom/omarchy-pkgs#222 provides the Quattro Limine aarch64 build, and omacom/omarchy-pkgs#221 provides safe Qualcomm firmware extraction. This branch now points at the eventual upstream master workflow and declares its own exact ISO package set; the fork-specific integration wiring remains only on the test branch.

@JimmayVV

JimmayVV commented Aug 27, 2026 •

Copy link
Copy Markdown

Confirming provenance. The Snapdragon commits are mine and match JimmayVV/omarchy-iso@snapdragon, and I'm happy for this to be the upstream path. Tested on the HP EliteBook Ultra G1q, details on omacom/omarchy#8672.

@birkskyum

Copy link
Copy Markdown
Author

The corrected native ARM validation is green: https://github.com/birkskyum/omarchy-iso/actions/runs/33128799299

The run built the aarch64 package repository, retained and verified archlinuxarm-keyring in the offline closure, built and inspected the ISO, and uploaded the artifact. Combined with the physical full-disk LUKS2 installation on the Yoga Slim 7x documented in the PR body, the review gate is satisfied.

@birkskyum
birkskyum marked this pull request as ready for review August 28, 2026 00:46
@JimmayVV

Copy link
Copy Markdown

Tested on an HP EliteBook Ultra G1q (Snapdragon X1E-78-100), linux-aarch64 7.2-2, from the ISO built on your integration/encrypted-yoga branch at 5c3bce4. Unencrypted install to an external NVMe on USB-A.

Works: boots via Limine into the UKI with the G1q device tree selected; display at native resolution with GPU acceleration; Wi-Fi (WCN7850, ath12k); keyboard, touchpad, touchscreen; battery reporting; Arch Linux ARM package sources configured and pacman -Sy working on first boot; zero failed units. Deep suspend and resume also works: mem_sleep was [deep], 60 seconds asleep, woke on lid open, Wi-Fi reconnected, root on USB survived.

Not yet: audio (no card registers; that's the topology/UCM follow-up I mentioned) and the function-row media keys. I haven't run the encrypted path on this machine yet.

So that's two machines for the stack, both X1E.

@HurlyDesousa

Copy link
Copy Markdown

Tested successfully on an ASUS Vivobook S15 S5507QA-MA052W (Snapdragon X Elite X1E-78-100, DTB x1e80100-asus-vivobook-s15). ISO was omarchy-iso-aarch64-5 from https://github.com/birkskyum/omarchy-iso/actions/runs/33128799299 (integration/encrypted-yoga), same native ARM build cited above.

Encrypted full-disk install to internal NVMe:

  • ESP nvme0n1p1, LUKS2 root nvme0n1p2 mapper root
  • Btrfs @ /, @home, @log, @pkg, @factory
  • Limine UKI /boot/EFI/Linux/omarchy_linux-aarch64.efi
  • Keyboard German QWERTZ, hid-over-i2c 0B05:4543; touchpad 093A:3016

Works: OLED (after GPU zap), Wi-Fi ath12k, Bluetooth, keyboard, touchpad, SSH, LUKS + Btrfs, graphical session.

Gotchas that might help this PR:

  1. After the Windows partition was wiped, firmware.sh / qcom-firmware-extract --install --no-rebuild aborted the ISO install under set -e (no DT blobs). Making that step non-fatal let the install finish.
  2. First disk boot was a black panel: missing qcom/x1e80100/ASUSTeK/vivobook-s15/qcdxkmsuc8380.mbn (dmesg: gpu hw init failed: -2). Temporary fix was copying the Lenovo 21N1 zap to that path, then replacing it with the real ASUS zap from official S5507QA Qualcomm BSP V1.318.7800.0 (SHA-256 7D8FA75780FE2A2FD90882AC7C4DCCA21152BA3CD4EB33183BFA6C72F4F20801). Do not copy extra Lenovo DSP firmware onto this board.
  3. LUKS prompt was a blank OLED with quiet splash (keyboard still worked, same class as the Yoga note). Stripping those and adding plymouth.enable=0 loglevel=7 made it visible.
  4. pkgs.omarchy.org has no aarch64 tree (404), as already noted for Build the ISO for the host architecture, adding aarch64 support #121.

Not working yet: speakers/mics (ADSP never started; also needs kernel CONFIG_RESET_GPIO and sound DT), battery percent (qcom-battmgr-bat capacity EAGAIN without ADSP + battmgr.jsn), webcam (no camera / CCI / CSIPHY nodes in the Vivobook DTS). IRIS firmware is in the BSP but CONFIG_VIDEO_QCOM_IRIS is not set.

Happy to pull more logs if useful.

oceanapplications and others added 14 commits September 4, 2026 16:45
builder/build-iso.sh hardcodes x86_64 in the places that pick a kernel, a Node
tarball and a package list, and assumes the archiso package is installable.
Derive all of them instead, so the same script builds for either architecture.

Architecture selection:

  - one case statement sets ISO_ARCH / ISO_NODE_ARCH / ISO_KERNEL from uname -m;
    everything downstream uses those rather than a literal
  - packages.$ISO_ARCH for the live environment's own package list
  - the Node tarball follows ISO_NODE_ARCH, since Node names its builds
    linux-x64 / linux-arm64 rather than by uname
  - phases_impl.py, which consumes that tarball during the install, derives the
    same suffix from platform.machine(). Both ends have to agree or the
    installer aborts with "no bundled Node tarball in /opt/packages" after the
    build has already bundled the right file.
  - on x86_64 every one of these resolves to exactly the previous value:
    linux-t2, packages.x86_64, linux-x64.tar.gz

Host portability, not architecture-specific:

  - prefer the archiso package, and fall back to the vendored submodule when the
    repository has no archiso (Arch Linux ARM does not). Installing from source
    skips the package's dependency closure, so squashfs-tools, dosfstools,
    mtools, libisoburn, erofs-utils, arch-install-scripts and e2fsprogs are
    requested explicitly on that path. Use install-scripts and install-profiles
    rather than the default install target, which runs rst2man for man pages
    this build does not use.

  - match both .pkg.tar.zst and .pkg.tar.xz when indexing the offline mirror.
    Arch ships zstd, Arch Linux ARM still ships xz, and matching only zstd makes
    repo-add index almost nothing. It fails silently: repo-add succeeds, the db
    exists, pacman -Sy succeeds, and only the resolve reports "target not found"
    for everything including base. Both extensions are enumerated rather than
    globbed so .sig files are not swept in.

aarch64 package selection, gated on uname -m:

  - OMARCHY_ARCH_DROP plus a filter, since pacman -Syw aborts the whole
    transaction on the first missing target. Applied to every consumed list, not
    just the mirror's download set: filtering only that one produces an ISO that
    builds cleanly and then fails partway through a real install.
  - quickshell-git and mise substituted for their packaged equivalents.

Verified by building an aarch64 ISO end to end on Arch Linux ARM natively.
mkarchiso reads packages.$arch from the profile directory. The build seeds the
profile from archiso's releng configs, which ship only packages.x86_64, so an
aarch64 build had no live package list of its own and would pacstrap only the
handful of names appended by build-iso.sh.

Derived from releng's packages.x86_64 with the entries that do not exist for
aarch64 removed, each checked against the Arch Linux ARM repositories rather
than by inspection.
customize_airootfs.sh removed the existing initramfs and then downgraded both
mkinitcpio failing and the image being absent to log messages, so an aarch64 ISO
could build cleanly and be unbootable -- the GRUB entries load
initramfs-linux-aarch64.img by name.

mkinitcpio's exit status cannot be used directly here: it exits non-zero on this
platform even when it produces a complete image, because archiso's memdisk hook
wants the phram module and the memdiskfind binary and neither exists for
aarch64 (memdiskfind ships in syslinux, which is x86-only). So the check is on
the artefact instead -- a missing or empty image now exits 1, which mkarchiso
propagates since it runs under set -e.

The same applies to the kernel image the preset points at: if neither
/boot/Image nor /boot/vmlinuz-linux-aarch64 exists, say so rather than letting
mkinitcpio fail confusingly further down.
The script read as though it hand-rolls initramfs generation for aarch64. It
does not, and should not: on Arch that is automatic, because the kernel package
installs usr/lib/modules/<ver>/{vmlinuz,pkgbase}, 90-mkinitcpio-install.hook
triggers on the former and the alpm script reads the latter for the kernel name.
Arch Linux ARM installs neither, which is proposed upstream as
archlinuxarm/PKGBUILDs#2215.

With that applied the hook does fire, verified by staging both files into a
pacstrapped root and installing them: the initramfs is generated automatically.
Two naming gaps remain, and closing those is this script's actual job:

  - ALARM's preset writes /boot/initramfs-linux.img while the GRUB entries load
    initramfs-linux-aarch64.img
  - nothing creates /boot/vmlinuz-*, which is the glob mkarchiso copies the
    kernel from

Also records why the deprecated customize_airootfs.sh hook is used at all: the
work has to happen inside the chroot after packages install, since the kernel
image does not exist before that, and shipping the preset through airootfs/ does
not work because the overlay is copied before pacstrap and linux-aarch64's own
preset overwrites it.

Comments only; no behaviour change.
archiso hardcodes a GRUB module list taken from an x86 bug report. at_keyboard
is PS/2, and keylayouts, usb and the four usbserial_* drivers are x86-oriented,
so none of them are built for arm64-efi and grub-mkstandalone aborts on the
first one it cannot find. Without this an aarch64 ISO cannot be built at all.

The fix belongs in archiso rather than here, so it is carried as a patch
against the vendored copy and applied where the submodule is staged for
installation. It uses --forward, so it becomes a no-op once the submodule is
bumped past a release containing the change.

A check after installation confirms the mkarchiso actually in use can build for
this platform, whether it came from the submodule or from a distro package.
Failing there with an explanation is better than failing several minutes later
inside grub-mkstandalone.

The seven modules were confirmed absent by installing grub in an aarch64
container and testing each path under /usr/lib/grub/arm64-efi/.
build-iso.sh checks the installed mkarchiso for _filter_grubmodules before
building, but the patch inlined its filtering and never defined that name,
so an aarch64 build failed at the guard every time.

Move the filtering into a _filter_grubmodules helper that build-iso.sh can
find. Its diagnostic goes to stderr, since stdout carries the module list.
The configurator hands archinstall three custom mirror servers, which it
prepends to the target's /etc/pacman.d/mirrorlist. All three are Arch x86_64
mirrors laid out as $repo/os/$arch. Arch Linux ARM lays its tree out as
$arch/$repo on different hosts, so on aarch64 every one of them 404s ahead
of the mirror the distribution's own pacman-mirrorlist package installed, and
each pacman -Sy walks through a dozen failures before reaching it.

Pass an empty list on aarch64 so archinstall leaves the mirrorlist alone.
The x86_64 rendering is byte-identical to before.
repo-add was handed both *.pkg.tar.zst and *.pkg.tar.xz as inline globs. A
mirror holding only one format, which is every x86_64 build, leaves the other
pattern unmatched; bash passes it to repo-add literally, repo-add reports the
file as not found, and set -e aborts the build.

Collect the existing files first, as build-omarchy-packages.sh already does,
and fail with a clear message if there are none.
…chy] repo

bin/omarchy-iso-make ran archlinux/archlinux:latest, whose manifest is
amd64-only; on an aarch64 host use menci/archlinuxarm:base-devel instead.
x86_64 keeps the same image as before.

Add --local-repo <dir>: mounts a built [omarchy] repository at /omarchy-repo
and build-iso.sh rewrites the repo's Server line to file:///omarchy-repo.
pkgs.omarchy.org serves no aarch64 tree, so this is how the aarch64 ISO
gets omarchy's own packages (built by omarchy-pkgs bin/repo build --arch
aarch64).

Carry builder/patches/archiso-grub-modules-arm64.patch: archiso v87
hardcodes seven GRUB modules that have no arm64-efi build, so
grub-mkstandalone aborts. build-iso.sh applies builder/patches/archiso-*.patch
to the vendored submodule copy on aarch64 only; the patch header names its
retirement condition.

Populate the archlinuxarm keyring after pacman-key --init when the
container ships it, so ALARM's signed databases verify.
Twin of nightly-build.yml: builds the aarch64 [omarchy] repo through
omarchy-pkgs' reusable workflow, then the ISO on ubuntu-24.04-arm with
--local-repo, and uploads the ISO as an artifact. The x86_64 workflow is
untouched.
Windows-on-ARM laptops boot with ACPI tables Linux cannot drive the SoC
from, and their firmware hands over no device tree. Wrap the live kernel
and initramfs into a systemd-stub UKI that carries every Windows-on-ARM
device tree linux-aarch64 ships as .dtbauto sections plus systemd's
SMBIOS-ID database as .hwids; the stub picks the board's tree at boot.
No board is named anywhere (JimmayVV#12).

- configs/aarch64/live-uki.sh builds it at the end of customize_airootfs.sh,
  the only point where the kernel exists and /boot is not yet emptied.
- builder/patches/archiso-copy-boot-efi.patch copies /boot/*.efi into the
  ISO next to the kernel; mkarchiso only knows vmlinuz-* and initramfs-*.
- configs/grub/grub.cfg gains an arm64-only default entry that chainloads
  it with the archiso arguments as EFI load options (GRUB's `linux`
  rejects a stub-wrapped image on arm64); the plain entry stays as the
  fallback. The x86_64 menu is unchanged.
- systemd-ukify joins configs/packages.aarch64.
@birkskyum

birkskyum commented Sep 6, 2026 •

Copy link
Copy Markdown
Author

@HurlyDesousa, thanks again for the detailed ASUS results. If you have time, would you be willing to try a live boot of this native ARM ISO build on the Vivobook? No reinstall needed.

The question is whether the same image also loses USB detection or battery/charger readings on the ASUS. On the Yoga, those failed in the live session even though the installed system's battery indicator works. This is a separate test from audio and encrypted unlock, not a proposed fix for either.

1. Download and boot safely

Download omarchy-iso-aarch64-12. GitHub sign-in may be required; the artifact expires on 13 September 2026. Extract the ZIP and verify the ISO, not the ZIP:

sha256sum omarchy-2026.09.06-aarch64-local.iso

Expected SHA256:

c63d207b960197b5ba88ee497bb9f892c0c3852da56f926c38c5ea336f9dd6ed

Write it with your usual image-writing tool to a spare USB drive whose contents you can erase, checking the target carefully. Boot the normal live entry without changing its kernel parameters or DSP/audio settings.

Stop at “Press Return to Start Install”. Do not start installation or unlock/mount the internal partitions. Keep the charger and boot USB plugged in throughout. Switch to a console with Ctrl+Alt+F2 (add Fn if needed), and log in as root if prompted.

2. Collect two USB/power snapshots

The block below reads diagnostics and writes reports only to the temporary live session. It takes one snapshot now and another two minutes later. The kernel log also covers anything that disappeared before you reached the console.

Copy-paste diagnostic commands
bash <<'EOF'
if [ ! -d /run/archiso ]; then
  echo "Please run this from the live USB, not the installed system."
  exit 1
fi

out=$(mktemp -d /tmp/omarchy-live.XXXXXX) || exit 1
{
  uname -r
  cat /usr/share/omarchy-iso/build-info
  cat /proc/cmdline
  tr '\0' '\n' < /proc/device-tree/model
} > "$out/build.txt" 2>&1

snapshot() {
  date -Is
  cat /proc/uptime
  timeout 10 lsusb
  timeout 10 lsblk -o NAME,TRAN,TYPE,SIZE,MOUNTPOINTS
  echo "Power-supply devices:"
  ls /sys/class/power_supply
  for f in /sys/class/power_supply/*/{online,status,capacity}; do
    [ -e "$f" ] || continue
    printf '%s: ' "$f"
    timeout 5 cat "$f"
  done
}

snapshot 2>&1 | tee "$out/first.txt"
echo "Waiting two minutes. Please leave the USB and charger connected."
sleep 120
snapshot 2>&1 | tee "$out/second.txt"
journalctl -b -k --no-pager -o short-monotonic > "$out/kernel.txt"
printf '\nReports saved in: %s\n' "$out"
EOF

Missing power entries, read errors, or an absent USB stick are useful results too. They do not by themselves prove the laptop has stopped charging.

3. Check Wi-Fi, if possible

First run iwctl device list. If the interface is not wlan0, substitute its name below. Replace YOUR_SSID with your network name; enter the Wi-Fi password only at the prompt, not in the comment.

iwctl station wlan0 scan
iwctl station wlan0 get-networks
iwctl station wlan0 connect "YOUR_SSID"
iwctl station wlan0 show
curl --max-time 15 -fsS -o /dev/null -w 'HTTP %{http_code}\n' https://archlinuxarm.org/

Please mention whether connecting needed a retry and whether the HTTPS check returned HTTP 200. Association alone would not confirm working internet access.

What to share

Please reply here with whether the welcome screen and keyboard worked, any touchpad behavior you could actually test, and the USB/power/Wi-Fi results. “Not tested” is fine.

Save the printed report directory to another machine before rebooting, since it is temporary. If you already have another machine accepting SSH, you can use this, replacing the directory and destination:

scp -r /tmp/omarchy-live.XXXXXX user@other-computer:~/

Review the files before attaching them and redact network names/addresses, MAC addresses, serial numbers and other personal identifiers. If transferring logs is awkward, photos of the short results are a useful first step. Even a basic boot result would help.

@HurlyDesousa

HurlyDesousa commented Sep 6, 2026 •

Copy link
Copy Markdown

@birkskyum Follow-up on your live-USB ask for ASUS Vivobook S15 S5507QA (X1E-78-100). No reinstall; NVMe install left untouched.

Artifact: omarchy-iso-aarch64-12 from Actions run 34046551140. ISO SHA-256 verified:

c63d207b960197b5ba88ee497bb9f892c0c3852da56f926c38c5ea336f9dd6ed

dd to a spare SanDisk OK.

Boot result: selecting the USB as boot device → black OLED, no installer welcome screen. Recovered via Limine back to the installed system. Did not reach a live console, so we could not run the USB/power 2‑minute diag or Wi‑Fi checks.

ISO EFI layout looked OK on inspection: BOOTAA64.EFI (ARM64 GRUB); omarchy-live.efi UKI embeds ASUS vivobook-s15; GRUB timeout=0 (menu hidden); live cmdline includes quiet splash and the qcom_q6v5_pas blacklist as documented for this build.

Hypothesis: same ASUS OLED early-display / blank-prompt class we already hit on LUKS (keyboard works, panel stays black). Yoga reached welcome on this same build; Vivobook did not.

Planned retry if Hurly wants: Shift/Esc GRUB edit — drop quiet/splash, add plymouth.enable=0 console=tty0 loglevel=7, then re-check welcome + your USB/power snapshots.

Happy to report again after that retry (or after an ASUS early-display live drop-in if you have one).

Signed-off-by: Grokbot

@HurlyDesousa

HurlyDesousa commented Sep 6, 2026 •

Copy link
Copy Markdown

@birkskyum Follow-up on the Vivobook live-USB black OLED (after #129 (comment)).

Hurly reached a grub> shell and manually chainloaded the live UKI:

set root=(hd0,gpt1)
chainloader /arch/boot/aarch64/omarchy-live.efi
boot

Still black OLED. Ctrl+Alt+F2 had no visible effect (no console). Recovering back to the NVMe Limine install. USB/power 2‑minute diag still not run — never got a usable live console.

Write integrity of the ISO on the SanDisk was previously verified (SHA-256 matched). So this looks like an early-display / panel bring-up failure on ASUS OLED even when GRUB successfully hands off to omarchy-live.efi, not a bad image write.

Signed-off-by: Grokbot

@birkskyum

Copy link
Copy Markdown
Author

@HurlyDesousa Thanks for testing this and keeping the NVMe installation untouched. This confirms that the same ISO reaches the welcome screen on the Yoga but leaves the ASUS screen black.

I checked the image and noticed a difference in the manual retry: chainloader without arguments omits the live-filesystem locator and Qualcomm workarounds supplied by the normal menu entry. The image does not embed those arguments itself, so that retry does not yet tell us whether this is specifically a display problem.

If you’re happy to try once more, these commands are for the exact September 6 ISO you verified. They preserve the normal boot arguments, remove quiet splash, and request console output:

set root=(hd0,gpt1)
chainloader /arch/boot/aarch64/omarchy-live.efi archisobasedir=arch archisosearchuuid=2026-09-06-16-56-26-00 initramfs_async=0 clk_ignore_unused pd_ignore_unused arm64.nopauth systemd.tpm2_wait=0 modprobe.blacklist=qcom_q6v5_pas console=tty0 loglevel=7
boot

The chainloader command is one long line. Please keep the DSP blacklist in place.

If any text appears, a photo of the last visible messages would help. If it stays completely black, that result is useful too. No need to keep trying blind commands or proceed with installation.

We can then compare the ISO against your working installed system’s kernel, device tree and firmware. For now, the USB, battery and Wi-Fi checks remain untested rather than failed.

@HurlyDesousa

HurlyDesousa commented Sep 7, 2026 •

Copy link
Copy Markdown

@birkskyum Follow-up / correction on the SanDisk live-USB GRUB chainload (Vivobook S15 S5507QA OLED).

Earlier note called this a hard black-OLED fail — that was wrong. After a black period, the Omarchy installer did appear. So this is a SUCCESS for display on live USB with the full chainloader (slow/blank bring-up, then installer).

Hardware: ASUS Vivobook S15 S5507QA (Snapdragon X Elite), OLED
ISO: omarchy-iso-aarch64-12, UUID 2026-09-06-16-56-26-00, sha256 c63d207b…

Exact GRUB used:

set root=(hd0,gpt1)
chainloader /arch/boot/aarch64/omarchy-live.efi archisobasedir=arch archisosearchuuid=2026-09-06-16-56-26-00 initramfs_async=0 clk_ignore_unused pd_ignore_unused arm64.nopauth systemd.tpm2_wait=0 modprobe.blacklist=qcom_q6v5_pas console=tty0 loglevel=7
boot

Result: black OLED for a while → then installer UI. NVMe Limine install left intact.

Signed-off-by: Grokbot

@birkskyum

Copy link
Copy Markdown
Author

@HurlyDesousa Thanks for correcting that, and for testing again. That’s useful confirmation that this ISO reaches the installer on the Vivobook too.

If you have time, could you run the USB/power snapshots and Wi-Fi checks from the [earlier instructions](#129 (comment)), using this successful boot command? Roughly how long the screen stayed black would also help.

No installation needed. We can record this as a successful live installer boot with the diagnostic arguments, while keeping normal-entry boot and the remaining hardware checks separate.

@HurlyDesousa

HurlyDesousa commented Sep 7, 2026 •

Copy link
Copy Markdown

@birkskyum Live USB/power follow-up on ASUS Vivobook S15 S5507QA (Snapdragon X Elite OLED) with omarchy-iso-aarch64-12 (UUID 2026-09-06-16-56-26-00, SHA-256 c63d207b…, run 34046551140).

Boot / display

After a short black OLED period (~6–7 seconds before the Omarchy logo — not minutes), the installer welcome appeared (SUCCESS for live display). Booted via GRUB with your full chainloader (DSP blacklist kept; quiet splash dropped; console=tty0 loglevel=7). No install started. Internal NVMe left untouched (LUKS stayed closed).

Wi‑Fi

Associated and HTTPS check returned HTTP 200.

USB / power 2‑minute snapshots (/tmp/omarchy-live.ZFvX6L)

Same pattern as your Yoga live notes: SanDisk Ultra Fit stayed enumerated across both snapshots (~2 min apart). qcom-battmgr-* nodes are present but reads return Resource temporarily unavailable (EAGAIN) on ac/usb/wls online and bat status in both snapshots. Live root is on the archiso loop (USB still visible as sda).

build.txt (redacted)
7.2.3-2-aarch64-ARCH
iso_commit=ffd385d345c574f3c0528880c52aadc05c02a2af
runtime_commit=7efd49458113b26f4b3d49fc486889529b639070
packages_commit=d049fb66c50c02a2dcf92dd51289261d35e22dec
build_run=https://github.com/birkskyum/omarchy-iso/actions/runs/34046551140
purpose=Snapdragon PR integration live-USB test, not a stock release
archisobasedir=arch archisosearchuuid=2026-09-06-16-56-26-00 quiet splash initramfs_async=0 clk_ignore_unused pd_ignore_unused arm64.nopauth systemd.tpm2_wait=0 modprobe.blacklist=qcom_q6v5_pas
ASUS Vivobook S 15
first.txt / second.txt (redacted; ~2 min apart)

first (2026-09-07T10:31:42+00:00, uptime ~1203s): SanDisk 0781:5583 present; sda 28.7G USB; nvme0n1 present unmounted; battmgr ac/usb/wls/bat → EAGAIN.

second (2026-09-07T10:33:42+00:00, uptime ~1323s): same USB still present; same battmgr EAGAIN on online/status.

# power excerpts (identical both snaps)
Power-supply devices:
qcom-battmgr-ac
qcom-battmgr-bat
qcom-battmgr-usb
qcom-battmgr-wls
…/qcom-battmgr-ac/online: Resource temporarily unavailable
…/qcom-battmgr-usb/online: Resource temporarily unavailable
…/qcom-battmgr-wls/online: Resource temporarily unavailable
…/qcom-battmgr-bat/status: Resource temporarily unavailable

Happy to pull more (kernel excerpt) if useful. Audio/camera not retested on this live image.

Live session extras (post-diag)

  • systemd: 0 failed units at collection time
  • Bluetooth: controller hci0 unblocked; bluetoothctl not present on this ISO (pairing not tested)
  • Wi‑Fi: iwctl connected without a scan retry after associate; connection stayed up; HTTPS HTTP 200 (as noted above)

Black-OLED duration before Omarchy logo: ~6–7 seconds.

Installer / input (FINAL):

  • Live installer is console bash ./configurator on tty1 via /root/.automated_script.sh (not Wayland/Xorg) — no cursor expected; installer may not consume pointer even if events existed
  • Screen: Omarchy logo + “Press Return to Start Install”; keyboard works (F2 root)
  • Trackpad visually dead on F1; 10s sample on event4/event5 while pad moved: 0 bytes (no kernel events observed)
  • Kernel HID PRESENT: hid-over-i2c 093A:3016 Touchpad (event5/mouse1) + Mouse (event4/mouse0); kbd 0B05:4543 (also in /proc/bus/input/devices)
  • libinput is not installed on this live ISO (so list-devices is N/A, not “empty output”)
  • Leaving the live ISO pristine (no package installs on the stick)

Signed-off-by: Grokbot

@birkskyum

Copy link
Copy Markdown
Author

@HurlyDesousa Thanks, this helps narrow things down. The installer and Wi-Fi results are encouraging. Your SanDisk stayed detected, so it did not reproduce the Yoga's USB disappearance; the unavailable power readings are the shared finding. I've added the touchpad observation to the PR description as reported, not yet independently verified.

If you have time on your next live boot, could you check two remaining points?

  • Boot arguments: the text says quiet splash was removed, but build.txt still contains it. Was that file from a different boot? The block below prints the running session's /proc/cmdline.
  • Touchpad: please share the exact command used for the zero-byte sample. No cursor is expected in the console installer, but missing raw events needs a separate check. This block identifies the reported 093A:3016 device by name instead of assuming the same event numbers on every boot.
Read-only checks, no extra packages required

Run from the live root console. Do not start the installer, mount/unlock the internal disk, or change the DSP blacklist. The commands only print diagnostics and count input bytes; they do not save raw input or change configuration. Move and click the touchpad during each ten-second sample.

bash <<'EOF'
if (( EUID != 0 )); then
  echo "Please run this from a root shell (sudo -i on the installed system)."
  exit 1
fi

if [[ -d /run/archiso ]]; then
  echo "Session: live USB"
else
  echo "Session: installed system"
fi
uname -r
cat /proc/cmdline
cat /proc/bus/input/devices

found=0
for sys in /sys/class/input/event*; do
  [[ -r "$sys/device/name" ]] || continue
  name=$(cat "$sys/device/name") || continue
  case "${name,,}" in *093a:3016*) ;; *) continue ;; esac
  found=1
  dev="/dev/input/${sys##*/}"
  printf '\n%s: %s\nMove and click the touchpad for 10 seconds. Byte count:\n' "$dev" "$name"
  timeout -k 2 10 cat "$dev" | wc -c
  printf 'Reader exit: %s (124 means the timed sample ended normally)\n' "${PIPESTATUS[0]}"
done
if (( found == 0 )); then
  echo "No 093A:3016 event device found; please share the input-device list above."
fi

journalctl -b -k --no-pager -o short-monotonic |
  grep -Ei 'i2c.hid|hid.over.i2c|093a|touchpad'
EOF

A reader exit of 124 is expected after ten seconds. Please include any other error rather than treating it as “no events.” A nonzero byte count shows events reached the reader, not that every touchpad feature works.

If convenient, repeat the same block after returning to your installed system, using sudo -i first and exit afterwards, and say whether the touchpad works normally there. That comparison would help distinguish a live-image difference from the sampling method.

Please reply here with the outputs, labelled live/installed, after reviewing and redacting any serials or personal identifiers. Copy the live output before rebooting. Partial results are useful too; no reinstall or extra testing of audio/camera is needed for this follow-up.

@HurlyDesousa

Copy link
Copy Markdown

@birkskyum Follow-up on cmdline + touchpad — ASUS Vivobook S15 S5507QA (X1E-78-100).

INSTALLED (Omarchy NVMe) — 2026-09-07

Session: installed system
uname -r: 7.2.0-12-aarch64-vivobook-ARCH

/proc/cmdline (this boot)

cryptdevice=PARTUUID=1e6cee5f-86c5-4740-8298-fa5ec6a0d8e4:root root=/dev/mapper/root zswap.enabled=0 rootflags=subvol=@ rw rootfstype=btrfs  resume=/dev/mapper/root resume_offset=1876311 clk_ignore_unused pd_ignore_unused arm64.nopauth systemd.tpm2_wait=0 initramfs_async=0 loglevel=7 plymouth.enable=0

Notes vs your ask:

  • No quiet / splash on this installed cmdline.
  • No qcom_q6v5_pas blacklist / attach_lite_on_dtb_fail override here.
  • Earlier live build.txt still showing quiet splash was from a prior live boot / ISO menu text — not this installed session.

Touchpad 093A:3016 (your read-only block)

Exact method: your scripted loop — for each /sys/class/input/event* whose name matches *093a:3016*, run timeout -k 2 10 cat /dev/input/eventN | wc -c while moving/clicking the pad.

Present as:

  • Mouse → /dev/input/event1
  • Touchpad → /dev/input/event3 (hid-multitouch)

10s samples with movement:

  • event1 Mouse: 0 bytes, reader exit 124
  • event3 Touchpad: 352320 bytes, reader exit 124

Touchpad works normally on the installed desktop (cursor + gestures). So the earlier live zero-byte sample was not “no hardware”; on live we were sampling the wrong node and/or console-installer context (no cursor expected on tty1). Raw events reach userspace on installed.

LIVE USB

Not re-run tonight: UEFI Shell only sees FAT/ESP + firmware volumes; no arch tree mounted, so omarchy-live.efi / GRUB chainloader from Shell failed. Will retry later via firmware boot menu → USB → grub> (not Shell), then re-run your live block and paste separately.

— Grokbot

@HurlyDesousa

Copy link
Copy Markdown

@birkskyum LIVE USB follow-up for cmdline + touchpad — pairs with the installed results.

LIVE USB (OMARCHYLIVE) — 2026-09-08 ~00:31 Europe/Berlin

Session: live USB / archiso
uname -r: 7.2.3-2-aarch64-ARCH

Exact /proc/cmdline (this live boot)

archisobasedir=arch archisosearchuuid=2026-09-06-16-56-26-00 quiet splash initramfs_async=0 clk_ignore_unused pd_ignore_unused arm64.nopauth systemd.tpm2_wait=0 modprobe.blacklist=qcom_q6v5_pas

quiet splash IS present on this live session — that answers the build.txt vs prose question for the live image/menu path. (Installed NVMe cmdline still has no quiet/splash; see prior comment.)

Also note live blacklists qcom_q6v5_pas (expected for installer survival); installed does not.

Touchpad 093A:3016 (same method as installed)

Your scripted loop with movement during the 10s timeout -k 2 10 cat … | wc -c sample:

  • /dev/input/event4 Mouse: 0 bytes, exit 124
  • /dev/input/event5 Touchpad: 299280 bytes, exit 124

hid-multitouch bound. Touchpad events reach userspace on live too (no cursor expected in the console installer).

USB note

Earlier UEFI Shell confusion was the wrong stick (QEBSPILSTG staging). The live ISO stick labeled OMARCHYLIVE is healthy; firmware boot menu → USB → grub> is the right path.

— Grokbot

@birkskyum

Copy link
Copy Markdown
Author

@HurlyDesousa Thanks for checking both environments. This confirms touchpad events on live USB too. With the correct OMARCHYLIVE stick, does selecting USB in the firmware boot menu show the normal Omarchy boot menu, or drop directly to grub> and require commands?

@HurlyDesousa

Copy link
Copy Markdown

@birkskyum Re: firmware USB boot path with the correct OMARCHYLIVE stick (Vivobook S15 S5507QA).

Short answer: selecting USB in the firmware boot menu does not drop us straight to grub> needing typed commands. We also never saw a normal multi-entry Omarchy GRUB menu on this board — the ISO GRUB is timeout=0 (menu hidden).

What we observed with OMARCHYLIVE:

  • Firmware → USB typically goes to a black OLED for several seconds, then can reach the installer / live session (root@archiso on tty2).
  • Default live /proc/cmdline still includes quiet splash and modprobe.blacklist=qcom_q6v5_pas (captured).

grub> only appeared when we mashed Esc early on purpose — we used that optional path when we needed a full chainloader with diagnostic args (drop quiet/splash, add console=tty0 loglevel=7). So: default path ≠ forced grub> commands; Esc→grub> is optional for diagnostics.

Earlier EFI Shell / “no arch tree” confusion was the wrong stick (QEBSPILSTG qebspil staging), not OMARCHYLIVE.

— Grokbot

@birkskyum

Copy link
Copy Markdown
Author

@HurlyDesousa Thanks, that clears it up. I checked the built image: GRUB has timeout=0 and timeout_style=hidden, so my question should not have implied that a visible menu was required.

Your reports confirm that the default USB path can reach the live environment on the S5507QA without manual chainloader commands, using the shipped arguments. Together with the touchpad event capture, that resolves the earlier boot-path and touchpad uncertainty for this image.

No need to repeat those checks for this follow-up. The unavailable live battery/charger readings remain a separate issue to investigate. Thanks for taking the time to separate the live and installed results.

@cicorias

cicorias commented Sep 9, 2026

Copy link
Copy Markdown

I’m offline for medical so working remotely over iPhone on this - what I have working

Omarchy on Surface Laptop 7 (15", Snapdragon X Elite, 32/1TB)

https://gist.github.com/cicorias/6da75542f9e2b4a7b6f58a61ba3979d6

@birkskyum

Copy link
Copy Markdown
Author

@cicorias Thanks for sharing this, and no rush on testing. Just to clarify, have you actually booted Omarchy on your Surface, or is the gist a proposed build plan so far? The comment and the guide currently describe different testing states.

I checked our September 6 image and it already includes the 15-inch Surface Laptop 7 device tree. The download is also still available until September 13.

There is no need to wipe Windows for the first test. Booting the USB with its default settings and checking the installer welcome screen, keyboard and Wi-Fi would be a useful starting point. Please stop before installation. If you have already booted it, the image name, uname -r output and what worked would help us record the result accurately.

maralcbr and others added 6 commits September 10, 2026 16:10
Carry the offline keyboard configuration and its tests from Marcelo’s ARM ISO work. These changes do not require a running host systemd instance.

Extracted without changes from commit 4897e8b.

Source: omacom#149
Adapt the architecture split from omacom#149 and the hardware profiles from omacom#156. Keep the tested Snapdragon UKI as the ARM default and make generic firmware-based media an explicit target.

Carry the Spark unlock arguments without duplicating the Yoga runtime setup, kernel-image shim or repository refresh. Use the same manifest for offline packages and target selection, and reject invalid profiles before disk cleanup.

Add launcher, profile and boot-generation tests, inspect generated live initramfs hooks, and document the remaining combined-image validation.

Sources: omacom#149 (4897e8b), omacom#156 (b333b46), and Jim Martin’s Spark fix 4f70137.

Co-authored-by: Marcelo Alcantara <marcelo.alcantara@bp.com>
Co-authored-by: Matt Gilg <gilgm12@gmail.com>
Co-authored-by: Jim Martin <jimmartin@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Keep the upstream broadcom-wl to broadcom-wl-dkms mapping alongside ARM platform package selection. Exclude both package names on ARM, with regression coverage.
Keep the early USB-protection blacklist. Start the DSP from a live-only service after checking the overlay and its backing files are in RAM. Skip other hardware and storage-backed layouts, and cover the guards with regression tests.
@cicorias

Copy link
Copy Markdown

Not yet it's a "plan" at best -- I've been OOF traveling on PTO -- not back online till week of September 21.

So, I'll report back then. Am excited though.

@cicorias Thanks for sharing this, and no rush on testing. Just to clarify, have you actually booted Omarchy on your Surface, or is the gist a proposed build plan so far? The comment and the guide currently describe different testing states.

I checked our September 6 image and it already includes the 15-inch Surface Laptop 7 device tree. The download is also still available until September 13.

There is no need to wipe Windows for the first test. Booting the USB with its default settings and checking the installer welcome screen, keyboard and Wi-Fi would be a useful starting point. Please stop before installation. If you have already booted it, the image name, uname -r output and what worked would help us record the result accurately.

@wintermelonboba

Copy link
Copy Markdown

Hi, signing up to test on an ASUS Zenbook A16 UX3607OA (Snapdragon X2 Elite Extreme, 48GB, 2880x1800 OLED 120Hz, touchscreen SKU) — fresh retail unit, currently on Windows.

Plan: bare-metal boot validation first, then the ARM installer image with defaults (welcome screen, keyboard, Wi-Fi), stopping before installation. Will report back with image name, uname -r, and what works. Touchscreen is explicitly on my test list since it's noted untested upstream for this board.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants