Skip to content

ib99/ASUS-ROG-Flow-Z13-2025-Linux-Guide-Omarchy-CachyOS-Kernel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 

Repository files navigation

ASUS ROG Flow Z13 (2025) - Omarchy Linux + CachyOS Kernel Guide

Device CPU Kernel OS

Overview

This guide documents the ultimate setup for the ASUS ROG Flow Z13 (2025 Model) running Omarchy Linux.

Because this device features the AMD Ryzen AI Max (Strix Halo) architecture, a standard Arch install is not enough. This guide implements the CachyOS Kernel to enable:

  • AVX-512 & NPU Support: Hardware acceleration for AI tasks.
  • Sched-Ext (scx_lavd): Eliminates micro-stutters caused by the Strix Halo chiplet design.
  • AMD P-State EPP: Proper battery life and boost behavior.

Prerequisites

  1. BIOS Settings: Reboot (F2) -> Advanced -> Security -> Secure Boot -> Disable.
  2. Clean Install: Assumes a fresh installation of Omarchy Linux.
  3. Internet: Required during setup.

Phase 0: Update First

Do not skip this. Installing custom kernels on an outdated base will break the system.

  1. Connect to Wi-Fi.
  2. Update system keyrings and packages:
    sudo pacman -Sy archlinux-keyring
    sudo pacman -Syu
  3. Reboot.

Phase 1: Kernel & Drivers

We replace the generic kernel with CachyOS and install the ASUS control stack using a specific sequence to avoid repository conflicts.

  1. Install CachyOS Repositories

    Install the CachyOS Repo Helper

     curl https://mirror.cachyos.org/cachyos-repo.tar.xz -o cachyos-repo.tar.xz
     tar xvf cachyos-repo.tar.xz
     cd cachyos-repo
     sudo ./cachyos-repo.sh
     cd ..
    

    Note: The script will automatically try to update and will likely fail with a dependency error. This is expected. Proceed to the next step to resolve it.

  2. Resolve Hyprland Dependencies

    This sequence re-aligns your system to prevent conflicts between the Omarchy and CachyOS packages.

    i. Temporarily disable CachyOS Repos: Open /etc/pacman.conf and comment out all CachyOS entries by adding a # at the beginning of each line.

        sudo nano /etc/pacman.conf
    

    ii. Force Sync to Stable Repos This aligns your system back to the pure Arch/Omarchy repositories. The yy is important.

        sudo pacman -Syyu
    

    iii. Reinstall Desktop Environment Ensure you are using the stable Omarchy versions:

        sudo pacman -S hyprland hyprlock hyprtoolkit
    

    iv. Re-Enable CachyOS Repos Open /etc/pacman.conf again and remove the # symbols you just added.

        sudo nano /etc/pacman.conf
    
  3. Install CachyOS Kernel The Limine bootloader will automatically detect this kernel after installation.

    Install Kernel & Headers

     sudo pacman -S linux-cachyos linux-cachyos-headers
    
  4. Install ASUS Tools

    Add G14 Repo

     echo -e "\n[g14]\nServer = https://arch.asus-linux.org" | sudo tee -a /etc/pacman.conf
    

    Import Keys & Install

     sudo pacman-key --recv-keys 8F654886F17D497FEFE3DB448B15A6B0E9A3FA35
     sudo pacman-key --lsign-key 8F654886F17D497FEFE3DB448B15A6B0E9A3FA35
     sudo pacman -Sy asusctl rog-control-center
    
  5. Reboot


Phase 2: The asusd Service Fix

The daemon may fail to enable out of the box on minimal installs due to a missing install section. Fix it manually:

  1. Edit the service file:

    sudo nano /usr/lib/systemd/system/asusd.service
    
  2. Add this block to the very bottom of the file:

    [Install]
    WantedBy=multi-user.target
    
  3. Reload and Enable:

    sudo systemctl daemon-reload
    sudo systemctl enable --now asusd
    

Phase 3: Hardware Support (Firmware & Tablet)

  1. Bleeding-Edge Firmware Required for 2025 Audio and NPU support.

     yay -S linux-firmware-git --overwrite '*'
    

    Critical: If prompted :: linux-firmware-git and linux-firmware are in conflict, type y (Yes) to remove the old version.

    Note: The --overwrite '*' flag is necessary to replace the existing stock firmware files without errors.

  2. Tablet Utilities Installs rotation, virtual keyboard, and menu tools.

     yay -S iio-hyprland-git wvkbd-mobintl rofi-wayland
    
  3. Wi-Fi Stability Fix Prevents the MediaTek MT7925 card from disconnecting during sleep.

     echo "options mt7925e disable_aspm=1" | sudo tee /etc/modprobe.d/mt7925e.conf
    

Phase 4: Hyprland Configuration

Add the following to your ~/.config/hypr/hyprland.conf:

Step 1: Open the Config File

You need to open the file in the nano text editor you installed earlier.

Run this command in your terminal:

nano ~/.config/hypr/hyprland.conf

Step 2: Scroll to the Bottom

Use the Down Arrow key on your keyboard to scroll all the way to the very end of the file. It is safer to add new settings at the bottom so you don't accidentally break existing ones.

Step 3: Paste the Configuration

Copy the block below and paste it into the editor (usually Ctrl+Shift+V in the terminal):

# --- ASUS ROG Flow Z13 (2025) Hardware ---
# High-DPI Scaling
monitor = eDP-1, preferred, auto, 2

# Auto-Rotation
exec-once = iio-hyprland

# Tablet Input Mapping (Fixed formatting)
input {
  tablet {
      transform = 0
      output = eDP-1
  }
}

# --- Keybinds ---
# Virtual Keyboard (Super + V)
bind = SUPER, V, exec, pkill wvkbd-mobintl || wvkbd-mobintl -L 300

# ROG Power Menu (Dedicated Side Button / Super + A)
bind = , XF86Launch3, exec, ~/rog-quick.sh
bind = SUPER, A, exec, ~/rog-quick.sh

# Keyboard Backlight (Fn + F11 Cycle Modes)
bind = , XF86KbdLightOnOff, exec, asusctl -n

Phase 5: The "ROG Control" Menu

Create a visual menu to switch power profiles without the terminal.

Step 1: Create and Open the File

Run this command. It will open a new, blank file named rog-quick.sh in your home director

    nano ~/rog-quick.sh

Step 2: Paste the Script

Now, copy the entire script block below and paste it into the nano editor (usually Ctrl+Shift+V in the terminal).

#!/bin/bash
options="πŸ”‡ Silent\nβš–οΈ Balanced\nπŸš€ Performance\n⚑ Turbo 95W\nπŸ”‹ Limit 80%\nπŸ”Œ Limit 100%"

selected=$(echo -e "$options" | rofi -dmenu -p "ROG Control")

case $selected in
  "πŸ”‡ Silent") asusctl profile -P Quiet && notify-send "ROG" "Silent Mode" ;;
  "βš–οΈ Balanced") asusctl profile -P Balanced && notify-send "ROG" "Balanced Mode" ;;
  "πŸš€ Performance") asusctl profile -P Performance && notify-send "ROG" "Performance Mode" ;;
  "⚑ Turbo 95W") 
      asusctl profile -P Performance
      asusctl power-limits -s 95000 
      notify-send "ROG" "Turbo 95W Active" ;;
  "πŸ”‹ Limit 80%") asusctl -c 80 && notify-send "Battery" "Capped at 80%" ;;
  "πŸ”Œ Limit 100%") asusctl -c 100 && notify-send "Battery" "Uncapped" ;;
esac

Step 3: Save and Exit

  1. Make executable:

    chmod +x ~/rog-quick.sh
    
  2. Waybar Integration: We need to add the battery module to the status bar. Open the configuration file:

     nano ~/.config/waybar/config.jsonc
    

    Part A: Define the Module Scroll to the bottom of the file. Paste this block inside the final closing bracket }, but make sure to add a comma , to the block above it!

      "custom/asus": {
             "format": "⚑ {}",
             "exec": "asusctl profile -p | sed 's/Active profile is //'",
             "interval": 5,
             "on-click": "~/rog-quick.sh",
             "tooltip": true,
             "tooltip-format": "Current Power Profile: {}"
         }
    

    Part B: Position the Module Scroll to the top and find the line starting with "modules-right". Add "custom/asus" to the list. Example:

             "modules-right": ["custom/asus", "network", "cpu", ...],
    

    Save and Exit.


Phase 6: Final Verification

Reboot and select CachyOS from the boot menu.

Component Command / Action Expected Result
Kernel uname -r Contains cachyos
CPU Driver cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver amd-pstate-epp
Fans asusctl -s Shows RPM and Temps
Power watch sensors Check PPT wattage changes with profiles
Side Button Press Side Button ROG Menu opens
Rotation Rotate Device Screen flips automatically

Extra Credit: Advanced Controls

A. Advanced Gaming (HHD)

If you use the Z13 as a handheld console (gyro/controller support):

  yay -S hhd-git
  sudo systemctl enable --now hhd.service

Run hhd-gui to configure gyro and rumble.

B. The "Turbo" Mode (Manual TDP)

The script in Phase 5 includes a "Turbo 95W" option.

This uses asusctl power-limits -s 95000 to override the default 80W cap of the Performance profile.

To Reset: Select a different profile or run asusctl power-limits --restore.

C. Hardware Notes & Verification

  • Pen Support: Verified: Microsoft Surface Pen 2 works out of the box with full pressure sensitivity and rear eraser support.
  • Side Shortcut Button: Mapped to XF86Launch3 (on 2025 models). Perfect for triggering the Power Menu or Virtual Keyboard.
  • USB-C Charging: Third-party chargers work (65W-100W) but ASUS firmware may lock out the highest "Turbo" TDP modes. Use the official brick for heavy gaming.

D. Battery Saver: Hardware Video Decode

By default, browsers may use the CPU to decode video, which drains battery. Enable the GPU's media engine to save power.

  1. Install AMD Media Drivers:
    sudo pacman -S libva-mesa-driver
  2. Enable in Firefox:
    • Type about:config in the address bar.
    • Search for media.ffmpeg.vaapi.enabled.
    • Set it to true.
  3. Result: YouTube/Netflix will now use the efficient Strix Halo media engine instead of the CPU.

Troubleshooting

  • No Audio:
    • Ensure linux-firmware-git is installed.
    • Open pavucontrol (PulseAudio Volume Control) and ensure the correct output device (Smart Amp) is selected, not HDMI.
  • Wi-Fi Drops:
    • Verify the config file exists: cat /etc/modprobe.d/mt7925e.conf
    • It must contain options mt7925e disable_aspm=1.
  • Boot Loop / Black Screen:
    • Double-check that Secure Boot is DISABLED in the BIOS (F2 on boot). The CachyOS kernel is not signed for Secure Boot.

Credits & Resources

  • ASUS-Linux.org: The developers behind asusctl and the reverse-engineering efforts for ROG laptops.
  • CachyOS: For the optimized kernel and sched-ext scheduler work that makes Strix Halo usable.
  • Omarchy: For the lightweight, opinionated Arch base.

Disclaimer

I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed.

  • Voltage/TDP: Modifying power limits (asusctl power-limits) can push hardware beyond factory specs. Use "Turbo" modes at your own risk.
  • Secure Boot: Disabling Secure Boot is required but may affect some Windows-only games if you dual-boot.

License

This project is licensed under the MIT License - feel free to use, modify, and distribute.

About

A comprehensive guide to running Linux (Omarchy/Arch) on the 2025 ASUS ROG Flow Z13 (AMD Strix Halo). Includes CachyOS Kernel setup, Tablet Mode fixes, and Power Management for the Ryzen AI Max

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages