ASUS Zenbook UM5606 - ArchWiki

Jump to content

# ASUS Zenbook UM5606

From ArchWiki

Hardware | PCI/USB ID | Working?
--- | --- | ---
Touchpad | PS/2 | Yes
Touchscreen & stylus | PS/2 | Yes
Keyboard | PS/2 | Yes
GPU | `1002:150e` | Yes
NPU | `1022:17f0` | Yes
Webcam | `3277:0059` | Yes
ALS |  | Yes
Bluetooth | `13d3:3608` | Yes
SD-card reader | `17a0:9755` | Yes
Audio | `1022:15e3` | Yes
Wireless | `14c3:7925` | Yes
Thunderbolt | `1022:151c` | Yes
TPM | `1022:17e0` | Yes
Fans |  | Yes

This page is for the ASUS Zenbook S 16 (UM5606/UM5606WA/UM5606GA), although this may help for other 2024 ASUS laptops with the Ryzen 9 AI chips (HX 365/370) such as the ASUS Vivobook S 16 (M5606) and the ProArt P16 (H7606/H7606WV).

## Installation

When booting into the Arch Linux ISO, press `e` to edit the chosen boot option and add the `amdgpu.dcdebugmask=0x400` kernel parameter to prevent freezing during installation. A similar setting may or may not be needed after installation, see #AMDGPU Display Core issues (display freeze).

## Accessibility

The UEFI may be difficult to navigate using screen readers, and it may be difficult to see the boot menu edit options when inputting the temporary kernel parameter. If necessary, you should proceed with the assistance of a sighted person.

## Firmware

fwupd shows the CPU/GPU, TPM, SMU, UEFI firmware, NVMe, System firmware (which can have an attestation added), and the webcam. Most of them show as updatable, but no OTA updates have been released as of the time of writing.

There is an important UEFI update that has been posted on ASUS's website -- to apply it, download the "BIOS for ASUS EZ Flash Utility" (not "for Windows") file, extract the contents to a FAT32 formatted USB drive, reboot and go into the firmware setup, and then go into the "EZ Flash" menu. The update can be found here: [1]

asus-5606-firmware-check-gitAUR checks the ASUS website for BIOS updates, and this can be set up with a systemd user service/timer to act as a crude method to automatically check for BIOS updates.

## Known Issues

Linux ≥7.1 is recommended for fixes related to power management, AMD graphics, the audio processor, and mainline driver support for the NPU. A 6.18 series LTS kernel will also work for the most part but may not contain backports of all fixes from newer releases. Whichever you choose, make sure linux-firmware is up to date.

### AMDGPU Display Core issues (display freeze)

The display may cease to refresh a few seconds after driver initialization despite upgrading to Linux >=7.1. A workaround is to disable Panel Replay using the `amdgpu.dcdebugmask=0x400` driver option on the kernel command line.

This bug is tracked on the drm/amd GitLab page.

Note The display may still freeze in a few situations, such as during Plymouth password prompts. The system still responds to input and the display will refresh once the prompt screen exits. Disable Plymouth or use a text-mode theme to avoid this issue.

### Wireless

If you are experiencing wireless issues such as latency spikes and reduced bandwidth, make sure nothing is scanning for Bluetooth devices as this appears to interfere with the Wi-Fi radio hardware.

### Process scheduling

The APU has a heterogenous configuration with cores grouped into two classes with different performance and energy efficiency characteristics (voltage/frequency targets, DRAM access latency, cache sizes etc.).

This can affect latency-sensitive workloads such as games and audio processing. With the default kernel scheduler, you may experience stuttering and/or audio buffer underruns.

An scx-scheds scheduler such as `scx_cosmos` or `scx_cake` should achieve more consistent performance. At the time of writing, the commonly recommended `scx_bpfland` appears to cause increased jitter and a drop in effective bandwidth on this hardware, but this depends on the workload and may change with future releases.

### Power management

No major issues remain as of Linux 7.1 and firmware version 305. Idle power consumption for a KDE Plasma session with Wi-Fi connected, the display brightness set to 120 cd/m² (35%), 120 Hz refresh rate with adaptive sync enabled, and the performance profile set to “Balanced” should be between 4W and 5.5W.

## OLED display

The display has a Display P3 color gamut, whereas most software expects sRGB. It is factory-calibrated, and verification with an i1 Display Pro colorimeter has shown the color profile embedded in the EDID to be very accurate.

Without color management, colors will appear oversaturated with a whitepoint that is too green.

This means that the display will work well only with Wayland compositors that support color management, such as KWin. You may have to enable the built-in color profile in the display settings in order to use it.

## Fan control

The firmware supports four fan profiles: standard, quiet, high-performance, and full-performance. Out of the box, it's set to standard, but this can be changed with asus-5606-fan-state-gitAUR. The firmware also adapts its fan profile according to the current power profile, and manual adjustment should not be needed.

## NPU

Linux has mainline driver support for the Xilinx NPU (Gorgon Point). This driver appears to be stable, but at the time of writing, software support for the NPU is limited to Xilinx’ XRT API and thus almost non-existent.

### Comparison with iGPU for LLM inference

The short version: It underperforms and is less energy-efficient, at least with available software.

Testing with FastFlowLM, which only provides a small selection of LLMs in its own format, showed that with equivalent or slightly larger model quantization, the iGPU running with llama-cpp’s Vulkan backend can process at least twice as many tokens per second per watt. FastFlowLM also retains a full copy of the model in system RAM, whereas llama.cpp with the `--no-host -bs` options will make use of the unified memory architecture and allow the kernel to efficiently load data into iGPU memory space via the page cache (i.e. only as needed and without loading the whole model into a CPU-owned staging buffer first), which results in much shorter time to first token, keeps more RAM available for other tasks, and allows faster restarts after a model was unloaded as long as parts of it still remain in the page cache.

Note GUI animations tend to slow down both NPU and iGPU inference via memory bandwidth bottleneck. When using e.g. llama.cpp’s web frontend, it is recommended to have your browser configured to prefer reduced motion (accessibility setting) because the gradient animation on the “Processing” text is enough to affect token throughput on this hardware.

## ALS

The Ambient Light Sensor (ALS) works out of the box on GNOME, and on wlroots/smithay compositors with wlumaAUR and this configuration:

    ~/.config/wluma/config.toml

    [als.iio]
    path = "/sys/bus/iio/devices"
    thresholds = { 0 = "night", 15 = "dark", 50 = "dim", 150 = "normal", 300 = "bright", 450 = "outdoors" }

    [[output.backlight]]
    name = "eDP-1"
    path = "/sys/class/backlight/amdgpu_bl1"
    capturer = "none"

    [[keyboard]]
    name = "keyboard-asus"
    path = "/sys/class/leds/asus::kbd_backlight"

## Function keys

Key | Visible?1 | Marked?2 | Effect
--- | --- | --- | ---
`Fn+Esc` | No | Yes | Enables Fn lock
`Fn+F1` | Yes | Yes | `XF86AudioMuteToggle`
`Fn+F2` | Yes | Yes | `XF86AudioLowerVolume`
`Fn+F3` | Yes | Yes | `XF86AudioRaiseVolume`
`Fn+F4` | No3 | Yes | Adjusts keyboard backlight
`Fn+F5` | Yes | Yes | `XF86MonBrightnessDown`
`Fn+F6` | Yes | Yes | `XF86MonBrightnessUp`
`Fn+F7` | Yes | Screen mirroring icon | `Super+P`
`Fn+F8` | Yes | Smiley face icon | `Super+.`
`Fn+F9` | Yes | Yes | `XF86AudioMicMute`
`Fn+F10` | Yes | Yes | `XF86Webcam`
`Fn+F12` | Yes | Icon that looks like ⫽] | `XF86Launch1`
`Fn+P` | Yes | No | `Pause`
`Fn+B` | Yes | No | `Pause`
`Fn+K` | Yes | No | `ScrollLock`
`Fn+F` | Yes | No | Unknown (scancode 240)
`Fn+C` | Yes | No | `XF86Launch1`

1. The key is visible to `xev`, `showmethekey`, `screenkey`, and similar tools
2. The physical key has a symbol on it, which describes its function
3. The key isn't visible to keycode viewer tools, but it sends a signal that D-Bus picks up on, and GNOME sees it (and shows the OSD popup). The signal looks like this:

       signal time=XXXXXXXXX.XXXXXX sender=:1.44 -> destination=(null destination)    serial=XXX path=/org/freedesktop/UPower/KbdBacklight; interface=org.freedesktop.UPower.KbdBacklight; member=BrightnessChanged
          int32 3

    Where the `int32` can be a value between 0 and 3, denoting which of the four brightness levels the keyboard backlight has been set to (0 = off, 1 = low, 2 = medium, 3 = high).

## See also

- Official tech specs
- UEFI updates
- HW Probe
- DSDT dump
- BNieuwenhuizen's ongoing research (outdated)

Category:

- ASUS

ASUS Zenbook UM5606
Add topic