Debian on Asus Zenbook A14 (2026, Snapdragon X2 Elite)

This is about the UX3407NA model (2026, Snapdragon X2 Elite). Models UX3407RA (Snapdragon X Elite X1E) and UX3407QA (Snapdragon X Plus X1P) might work but are untested.

Overall Status

Linux Hardware probe (2026-09-27)

Core Components

[ATTACH]

Boot Standard Kernel

/!\ Needs glymur-laptops kernel

NVMe SSD

{OK}

Input

Keyboard

{i} Special keys not tested

Touchpad

{OK}

Extra Features

CPU Frequency Scaling

[?]

KVM

{OK} works fine, including nested virtualization

Sleep / Suspend

{i} Suspends/resumes works, sometimes takes 5-10s to completely resume

Display

{OK} console/Xorg/Wayland; panel (eDP), HDMI, USB-C (alt DP) with hotplugging

GPU

{OK} Vulkan and OpenGL

Modem

[-]

USB ports

{OK} USB-A and USB-C

Wireless/Wifi

{i} ath12k driver needs updated boards-2.bin

Camera

{i} Needs ?DeviceTree changes, kernel config changes and a recent libcamera; no offload

Bluetooth

{X} controller detected and allows pairing but devices not working yet

Audio

{i} At least speakers work /!\ Might be dangerous without speaker protection

Legend :
{OK} = OK ; {X} Unsupported(No Driver) ; /!\ = Error (Couldn't get it working); [?] Unknown, Not Tested ; [-] Not-applicable
{i} = Configuration Required; X-( = Only works with a non-free driver and or firmware

Preparation

This system currently ships with support for Windows alone ("Windows on Arm" device). Consider keeping the Windows installation to update boot firmware.

Apply all boot firmware updates first.

Snapdragon systems ship with quite a number of special partitions which might be crucial for boot. Consider backing up your partition table and the contents of the special partitions. Avoid removing, resizing or even moving these partitions. Instead, boot into Windows, disable ?BitLocker and shrink the installation partition to make space for Debian.

Configuration

Display

Display just works with recent Linux kernels:

Audio

⚠️ Works, albeit it might be dangerous to enable without speaker protection. ⚠️

Install latest topology file

The topology file has not been released as part of linux-firmware yet. You can double-check on a booted system with:

% sudo dmesg | grep tplg
Sep 27 22:16:56 tern kernel: qcom-apm gprsvc:service:2:1: Direct firmware load for qcom/glymur/GLYMUR-ASUS-Zenbook-A14-UX3407NA-tplg.bin failed with error -2
Sep 27 22:16:56 tern kernel: qcom-apm gprsvc:service:2:1: tplg firmware loading qcom/glymur/GLYMUR-ASUS-Zenbook-A14-UX3407NA-tplg.bin failed -2

In the meantime, install it locally:

# alsatplg is in alsa-utils
sudo apt install cmake m4 alsa-utils

mkdir -p ~/scratch
cd ~/scratch

git clone https://github.com/linux-msm/audioreach-topology/ ~/scratch/audioreach-topology
cd ~/scratch/audioreach-topology
cmake -B build -S .
# outputs build/qcom/glymur/ASUSTeK/UX3407NA/GLYMUR-ASUS-Zenbook-A14-UX3407NA-tplg.bin
cmake --build build --target topology_GLYMUR-ASUS-Zenbook-A14-UX3407NA

# /lib/firmware/updates avoids conflicts with linux-firmware (but takes precedence)
sudo install -D -m644 \
  build/qcom/glymur/ASUSTeK/UX3407NA/GLYMUR-ASUS-Zenbook-A14-UX3407NA-tplg.bin \
  /lib/firmware/updates/qcom/glymur/GLYMUR-ASUS-Zenbook-A14-UX3407NA-tplg.bin

After reboot, your card should show up:

% cat /proc/asound/cards
 0 [GLYMURASUSZenbo]: glymur - GLYMUR-ASUS-Zenbook-A14-UX3407N
                      ASUSTeKCOMPUTERINC.-ZenbookA14UX3407NA-1.0-UX3407NA

Install latest ALSA Use Case Manager (UCM) configuration

From https://github.com/alsa-project/alsa-ucm-conf/pull/858:

mkdir -p ~/scratch
git clone https://github.com/alsa-project/alsa-ucm-conf.git ~/scratch/alsa-ucm-conf
cd ~/scratch/alsa-ucm-conf
git fetch origin pull/858/head:zenbook-a14
git checkout zenbook-a14

U=/usr/share/alsa/ucm2
sudo install -D -m644 ucm2/Qualcomm/glymur/glymur.conf                        $U/Qualcomm/glymur/glymur.conf
sudo install -D -m644 ucm2/Qualcomm/glymur/ASUS-Zenbook-A14-UX3407NA.conf     $U/Qualcomm/glymur/ASUS-Zenbook-A14-UX3407NA.conf
sudo install -D -m644 ucm2/Qualcomm/glymur/ZenbookA14-HiFi.conf               $U/Qualcomm/glymur/ZenbookA14-HiFi.conf
sudo install -D -m644 ucm2/codecs/qcom-lpass/wsa-macro/two-speakers/init.conf $U/codecs/qcom-lpass/wsa-macro/two-speakers/init.conf
sudo ln -sfn ../../Qualcomm/glymur/glymur.conf                                $U/conf.d/glymur/glymur.conf
# or reboot
systemctl --user restart wireplumber pipewire pipewire-pulse

Power Management

Suspend/resume seems stable with latest glymur-laptops kernel branch, but it sometimes take 5-10s to fully resume.

WiFi

With recent kernels and linux-firmware, WiFi can be made to work but requires an updated boards-2.bin file.

Camera

asus-zenbook-a14-x2-working-libcamera.jpg There are two cameras: a regular one and an infrared one, both using the ?OmniVision OV02C10 sensor. Copying the camera related sections of the Glymur Zenbook A16 Device Tree into the A14 Device Tree and enabling the kernel config for the sensor (CONFIG_VIDEO_OV02C10=m) allows the kernel to detect the camera.

With a recent libcamera version (git as of 2026-10-06, 0.7 is too old), both sensors are listed and the main camera works. You can test the camera with qcam, or do a quick listing of cameras with cam:

% cam -l
[...]
Available cameras:
1: Internal front camera (/base/soc@0/cci@ac16000/i2c-bus@1/camera@36)
2: Internal front camera (/base/soc@0/cci@ac15000/i2c-bus@0/camera@24)
[...]

Note that if the kernel is built with DEBUG_KERNEL (which is set in arm64's defconfig), that will select DMABUF_DEBUG and that prevents the libcamera GPU SoftISP backend to work with the msm driver; build you kernel with DMABUF_DEBUG=n, or force usage of the libcamera CPU SoftISP backend as follows: ` LIBCAMERA_SOFTISP_MODE=cpu qcam `

In the current best case, the camera pipeline is only accelerated by the GPU, not by camera hardware.

Virtualization

KVM works without any tweaks; with the right kernel configs, incus launch ... --vm just works.

Nested virtualization is detected and a VM in VM can be started but it needs two tweaks. First, pass kvm-arm.mode=nested to the host's kernel cmdline. Second, set virtualization=on in the qemu configuration, e.g. with incus (assuming the VM instance is named v1):

incus config set v1 raw.qemu.conf='[machine]
virtualization = "on"'

This has been confirmed to work with a VM in a VM in a VM on a host - do try more levels! :-)

asus-zenbook-a14-x2-nested-nested-virt.png

Specs

Credits

A number of community contributors paved the way to getting this laptop to work. Bjorn Andersson did the first A14 DT and sent a number of patches all around, Konrad Dybcio the A16 one. Srinivas Kandagatla helped with collecting a number of patches and reviewing the audio enablement. Tyler Baker provided a suspend/resume workaround.


CategoryDebianOn CategoryLaptopComputer CategoryQualcomm