ASUS Zenbook UM5606
| 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.
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.
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
|
- The key is visible to
xev,showmethekey,screenkey, and similar tools - The physical key has a symbol on it, which describes its function
- 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
int32can 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).
- Where the