Jump to content

ASUS ROG Flow X13 (2023) GV302X

From ArchWiki
Hardware PCI/USB ID Working?
GPU (AMD) 1002:15bf Yes
GPU (NVIDIA) 10de:28e0 Yes
Wi-Fi 14c3:0616 Yes
Bluetooth 0489:e0f6 Yes
Webcam 3277:0018 Yes
IR camera 3277:0018 Yes
Keyboard 0b05:19b6 Yes
Touchpad I2C Yes
Touchscreen I2C Yes
Stylus I2C Yes
Accelerometer 1022:164a Yes
Tablet mode switch Partial
Speakers 1022:15e3 Yes
Microphone 1022:15e3 Yes

This page covers the 2023 ROG Flow X13 (GV302X), a 13.4" convertible with an AMD Ryzen 7040 series CPU (Radeon 780M integrated graphics) and an NVIDIA RTX 40 series GPU. It was tested on a GV302XV (Ryzen 9 7940HS, RTX 4060), BIOS GV302XV.319.

Firmware

Press F2 during boot to enter the firmware setup.

Secure Boot

Secure Boot works with the factory keys and shim. Out-of-tree kernel modules such as the NVIDIA driver must be signed with a key enrolled in MOK. With Secure Boot enabled the kernel runs in lockdown (integrity) mode, which disables hibernation and some eBPF features (see #Hybrid graphics).

Tablet mode

The kernel does not detect the tablet mode switch automatically on this model, so the screen does not switch to tablet mode when it is flipped. Set the tablet_mode_sw option of the asus_nb_wmi module to 3 (lid flip on ROG devices), see Kernel module#Setting module options:

/etc/modprobe.d/asus-tablet-mode.conf
options asus_nb_wmi tablet_mode_sw=3

A patch adding a quirk for this model has been sent upstream.

Note Reloading the asus_nb_wmi module resets the battery charge limit to 100% and breaks platform profile handling in asusd. Restart asusd.service afterwards.

The accelerometer works with iio-sensor-proxy.

Stylus

The touchscreen supports the Microsoft Pen Protocol 2.0. With the ASUS Pen 2.0 (SA203H), hover, pressure, tilt and both side buttons work out of the box, without Bluetooth. The first side button is reported as BTN_STYLUS. While the second one is held, the pen is reported as an eraser tool.

The top button only works over Bluetooth. Hold it until the LED blinks blue, then pair "ASUS Pen". The pen shows up as a keyboard (0b05:2131) that sends Super+F20 on a single click, Super+F19 on a double click and Super+F18 on a long press. These can be bound to any action in the desktop environment. It also reports its battery level over Bluetooth. The battery level the kernel reads through the touchscreen (/sys/class/power_supply/hid-*-battery) is not reliable: it showed 1% while Bluetooth reported 40%.

Hybrid graphics

The laptop has a MUX switch. It supports the usual modes, see also Hybrid graphics and NVIDIA Optimus:

  • Hybrid: the AMD GPU drives the internal screen, and the NVIDIA GPU can be used through PRIME render offload. The NVIDIA GPU enters D3cold when idle (runtime D3 works out of the box with the current driver).
  • Ultimate: the NVIDIA GPU drives the internal screen through the MUX.
  • Integrated: the NVIDIA GPU is disabled.

The MUX can be switched with asusctl:

$ asusctl armoury set gpu_mux_mode 0    # Ultimate (NVIDIA)
$ asusctl armoury set gpu_mux_mode 1    # Hybrid

The change is queued by asusd and written to the firmware by asus-shutdown.service during a regular shutdown or reboot, and it takes effect on the next boot. Until then, /sys/class/firmware-attributes/asus-armoury/attributes/gpu_mux_mode/current_value shows the mode the system booted in.

To block the NVIDIA GPU without a reboot, for example on battery, use Cardwire, the replacement for the deprecated supergfxctl. It can switch to integrated mode automatically on battery:

# cardwire config battery-auto-switch true
Note Under kernel lockdown Cardwire runs in a reduced mode: blocking works and the GPU still powers down, but a blocked GPU stays listed in /sys, and lspci shows it as Illegal Vendor ID ffff.

Keyboard backlight

The keyboard has a single-zone RGB backlight controlled by asusctl. asusctl 6.5.0 only offers the Static effect for this model. Breathe and Pulse were added after that release.

To turn the backlight off after a period of inactivity, use the kernel input-events LED trigger:

# modprobe ledtrig-input-events
# echo input-events > /sys/class/leds/asus::kbd_backlight/trigger

The timeout is set with the led_off_delay_ms module parameter (5000 ms by default). The trigger currently turns the backlight back on at maximum brightness instead of the previous level. A patch to fix this has been sent upstream.

Note Writing 0 to /sys/class/leds/asus::kbd_backlight/brightness removes the trigger.

Power management

The firmware provides three platform profiles (quiet, balanced, performance) and the asus-armoury firmware attributes for power limits, which asusctl can change.

The battery charge limit can be set with asusctl or through /sys/class/power_supply/BAT0/charge_control_end_threshold. The firmware does not keep it across reboots, but asusd restores it at boot.

Audio

The speakers and the internal microphone are on a Realtek ALC294 codec and work out of the box. The microphone distorts at 100% input volume, because the hardware Capture gain goes up to +30 dB. Recording at 50% or less is clean.

Function keys

Key Visible? Marked? Effect
Volume Down1 Yes Yes XF86AudioLowerVolume
Volume Up1 Yes Yes XF86AudioRaiseVolume
Mic Mute1 Yes Yes XF86AudioMicMute
ROG Logo1 Yes Yes XF86Launch1
Fn+F1 Yes Yes XF86AudioMute
Fn+F2 No Yes Decreases keyboard backlight brightness2
Fn+F3 No Yes Increases keyboard backlight brightness2
Fn+F4 Yes Yes XF86Launch3
Fn+F5 No Yes Cycles the platform profile3
Fn+F6 Yes Yes Super+Shift+S
Fn+F7 Yes Yes XF86MonBrightnessDown
Fn+F8 Yes Yes XF86MonBrightnessUp
Fn+F9 Yes Yes Super+P
Fn+F10 Yes Yes XF86TouchpadToggle
Fn+F11 Yes Yes XF86Sleep
Fn+F12 No Yes Airplane mode4
Fn+Up Yes Yes Prior
Fn+Down Yes Yes Next
Fn+Left Yes Yes Home
Fn+Right Yes Yes End
  1. The four keys above the keyboard.
  2. No key event is generated. The firmware changes the brightness of asus::kbd_backlight directly.
  3. No key event is generated. The firmware changes /sys/firmware/acpi/platform_profile, and power-profiles-daemon or tuned-ppd picks the change up.
  4. The kernel does not map this key yet. A patch has been sent upstream.

See also