ASUS ROG Flow X13 (2023) GV302X
| 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.
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
/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.
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
|
- The four keys above the keyboard.
- No key event is generated. The firmware changes the brightness of
asus::kbd_backlightdirectly. - No key event is generated. The firmware changes
/sys/firmware/acpi/platform_profile, and power-profiles-daemon or tuned-ppd picks the change up. - The kernel does not map this key yet. A patch has been sent upstream.
See also
- ASUS Linux, the upstream project for asusctl
- Cardwire documentation