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 | `c5:00.1` | 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), 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 the `e` key to edit the chosen boot option and add the `amdgpu.dcdebugmask=0x600` kernel parameter to prevent freezing during installation. This will not be needed after installing, as long as you install linux-mainline-um5606AUR afterwards. However, if you still have problems, it's advised to keep the kernel parameter.

If you're using KDE, you need to run `systemctl edit --user plasma-kwin_wayland.service` and add this to the configuration:

    ~/.config/systemd/user/plasma-kwin_wayland.service.d/override.conf

    [Service]
    Environment="KWIN_DRM_DISABLE_TRIPLE_BUFFERING=1"

## 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]

## Power management

Install linux-mainline-um5606AUR to alleviate most power management problems, including high power usage during suspend and random freezing/hanging.

### 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.

### Wake from suspend

There is currently known a problem when waking up from suspend (s2idle) that the screen will freeze for about 10 seconds. This problem is currently caused by the `mt7925e` kernel module failing to properly re-initialize the MT7925 wireless card after resuming. It's still unclear whether the root cause lies in the firmware or the kernel module code.

However, as a temporary workaround, you can unbind the device from the driver before suspending and later rebind it after resuming. This can be achieved using the following two systemd service units:

    unbind-wifi-before-suspend.service

    [Unit]
    Description=Unbind Wi-Fi PCI device before suspend
    Before=suspend.target

    [Service]
    Type=oneshot
    ExecStart=/bin/bash -c "echo "0000:c3:00.0" > /sys/bus/pci/drivers/mt7925e/unbind"
    RemainAfterExit=false

    [Install]
    WantedBy=sleep.target

    bind-wifi-after-resume.service

    [Unit]
    Description=Bind Wi-Fi PCI device after resume
    After=suspend.target

    [Service]
    Type=oneshot
    ExecStart=/bin/bash -c "echo "0000:c3:00.0" > /sys/bus/pci/drivers/mt7925e/bind"
    RemainAfterExit=false

    [Install]
    WantedBy=suspend.target

## Audio

Currently linux-mainline-um5606AUR is needed to get audio fully working without sounding tinny.

## Bluetooth

Linux ≥6.12 (rc1) is needed to get Bluetooth working. The aptX HD, LDAC, SBC-XQ codecs over Bluetooth have been tested for and work for wireless headphones.

## NPU

Currently linux-mainline-um5606AUR, xrt-npu-gitAUR, and amdxdna-driver-binAUR are all needed to get the NPU to work. Tested against the AMD XDNA Linux driver's provided example on the `arch-linux` branch of ThatOneCalculator's fork.

## GPU

The GPU pretty much all works as expected.

However, GPU screen recording with tools like wl-screenrecAUR and gpu-screen-recorderAUR don't work with mesa 24.2 or 24.3, but does work with mesa-gitAUR (as of 8 December 2024). This will be backported to 24.3 with mesa MR !32542.

## 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", 2 = "dark", 5 = "dim", 8 = "normal", 13 = "bright", 15 = "outdoors" }

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

## Keyboard

### Backlight

Linux ≥6.12 (rc1) is needed to make keyboard backlight control work.

### 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`
`Copilot` | Partial | MS Copilot logo | Registers as `Super+Shift`, but supposed to input `Super+Shift+F23`

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
- HW Probe
- DSDT dump
- BNieuwenhuizen's ongoing research

Category:

- ASUS