ASUS TUF DASH F15 (2022)

From ArchWiki
Hardware PCI/USB ID Working?
Touchpad Yes
Keyboard Yes
GPU (Intel) 8086:46a3 Yes
GPU (NVIDIA) 10de:25a0 Yes
Webcam 322e:202c Yes
Ethernet 8086:1a1e Yes
Bluetooth 8087:0026 Yes
Audio 8086:51c8 Yes
Wireless 8086:51f0 Yes
TPM Untested

This page contains instructions and tips for configuring Arch Linux on the ASUS TUF DASH F15 Laptop.

Note: This page covers the 2022 DASH F15 with model numbers FX517ZC, FX517ZE, FX517ZM, FX517ZR. It DOES NOT cover the 2021 DASH F15 (11th Gen CPU & RTX3070) with model numbers FX516PC, FX516PE, FX516PM, FX516PR.

Accessibility

This laptop uses the standard American Megatrends UEFI interface, it is very bright and has both simple and advanced mode (F7 to swap between them). It has touchpad support in both modes though scrolling does not work in advanced mode meaning you need to use the keyboard to navigate the longer menus.

Simple mode provides basic functions in a visual manner using defined box areas the user can click to open a sub menu. Most normal operations can be done here using either the keyboard or touchpad. This mode should not be difficult for visually impaired users to navigate.

Advanced mode is a more traditional menu driven layout. It is simply text on a coloured background and while the touchpad does work, scrolling does not so the keyboard must be used for most menus. This mode might be difficult for users with a visual impairment to navigate.

Installation

This section contains instructions for installing and configuring Arch Linux

Kernel parameters

The ibt=off kernel parameter is required for the laptop to successfully boot if using the proprietary NVIDIA GPU driver (or the nvidia-dkms variant, see the note in NVIDIA#Installation). It is not required if using nvidia-open or nvidia-open-dkms.

ASUS Linux

Advanced power management (Laptop Power Profile selection, battery charge limit and Panel Overdrive) need the ASUS Linux stack installed and running.

Install asusctlAUR then start/enable power-profiles-daemon.service.

Note: While the Asus Linux project offer a custom repository the packages there are behind those from the AUR, stick to the AUR for the latest stable release.

Keyboard RGB control

As of October 2022, there is no way to control the keyboard RGB from Linux yet. Brightness control for the RGB does work using the function keys.

A kernel patch which adds TUF laptop support to the asus-wmi kernel module is available, has been submitted and is expected to be mainlined in kernel 6.1.

Adventurous users can find the patch on asus-linux GitLab.

See Kernel#Compilation for instructions on compiling a custom kernel.

Warning: The above patch has only been verified to work with Fedora Linux. Test it at your own risk!

Battery charge status

Since Kernel version 5.11 the battery charge polling issue has been fixed in the mainline kernel. Running the G14 kernel from Asus Linux is now no longer necessary.

Firmware

Other than changing the boot device order, no firmware changes are required for this laptop.

fwupd supports this device.

Secure Boot

Firmware will allow you to easily put Secure Boot into Setup/Custom mode so you can deploy your own keys with keytool.

There is no need to reset the TPM state to put firmware into setup mode, and also, if you have a usb thumbdrive with your CA files, or they are placed inside your ESP, you can deploy these certificates directly from the firmware as well.

Also, right after deploying your CA information, this laptop firmware will delete any additional EFI external drive boot entry it might have configured(USB, CD, PXE).

Switching to the dedicated NVIDIA GPU

Note: Changes to the supergfxctl project have removed the ability to switch to dedicated mode. For full functionality you should use optimus-managerAUR instead, see NVIDIA Optimus#"No Devices detected" with optimus-manager if encountering issues.
Warning: While this laptop works fine with nvidia-open modules for 3D applications and gaming, the RTX3070 version of this model will not present the NVENC feature to obs or ffmpeg. The user will have to rely on software rendering or revert to proprietary modules. This error was reported at the upstream repository here, but the reporter lost interest, ultimately leading Nvidia to not fix this issue on some mobile RTX models.

Pre-Installation

Cleaning Up Old Files

It is very important you start out with no existing configuration files in place from any of the Optimus Laptop managers and/or nvidia-xconfig. optimus-managerAUR provides all of its own configs and existing files can interfere with its operation.

Ensure there are no files relating to Optimus, Bumblebee, supergfxctl, NVIDIA or Intel in any of the following locations.

/etc/X11/xorg.conf.d/
/etc/modprobe.d/
/etc/udev/rules.d/

If they exist, you should also delete or rename xorg.conf from /etc/X11/

Initramfs

Do not include i915 or any of the NVIDIA modules in your early start up filesystem. Doing so can affect the discrete GPUs ability to properly power down.

Edit /etc/mkinitcpio.conf and remove i915 and all NVIDIA modules from the modules section then regenerate the initramfs.

Kernel Parameters

Adding additional kernel parameters manually is not necessary when using optimus-managerAUR, it handles everything including blacklisting nouveau when running the discrete GPU and power management functions of the discrete GPU.

Installation

Install the optimus-managerAUR package.

Configuration

You should edit optimus-manager.conf at /etc/optimus-manager/ before you start/enable optimus-manager.service.

The laptop fully supports NVIDIA fine grained power management which allows the discrete GPU to fully power down when not in use meaning there really should be no need to ever switch from hybrid mode however from testing, forcibly removing the card from the bus and powering it down does offer a slight increase in battery time over hybrid mode. Ultimately the choice is yours, luckily both options are easily handled and can co exist happily.

If you want to use hybrid mode and allow the GPU to handle its own power state then change the following

/etc/optimus-manager/optimus-manager.conf
...
[nvidia]
dynamic_power_management=fine

If you plan to manually switch between modes as your need dictates and would like the extra battery time then first you need to install acpi_call (or acpi_call-dkms if using a custom kernel) then change the following

/etc/optimus-manager/optimus-manager.conf
switching=acpi_call
pci_remove=yes
pci_reset=function_level
...

Finally, for either scenario you need to change the following

/etc/optimus-manager/optimus-manager.conf
...
[intel]
driver=modesetting
...

Now start/enable optimus-manager.service. Using hybrid mode allows the GPU to power itself down and integrated mode will forcibly remove the card from the bus and power it down.

Usage

Switching Modes

optimus-managerAUR offers 3 modes, those are integrated, nvidia and hybrid.

To switch between modes simply use

$ optimus-manager --switch MODE

Using the NVIDIA GPU in hybrid mode

NVIDIA drivers since version 437.17 have Prime GPU rendering offload support included.

See PRIME#Configure applications to render using GPU for details on how that works.

D-Bus notifications

Notifications provide feedback when a setting is changed using asusctl and are especially useful when a setting has been bound to a custom keyboard shortcut. They are provided by the asus-notify.service user unit which needs to be started/enabled.

Tips and tricks

To maximize the battery life, follow the general tips at power management.

Battery charge limit

Setting a limit to the battery charge can be useful to preserve its longevity when the laptop is used as a static workstation for long period of times. Set your preferred limit (in percent, from 20 to 100) using:

# asusctl -c 60

60% is usually considered a stable charge state for lithium-based batteries.

Power profile

The power profile controls three settings: CPU scaling (only on Intel CPUs), Boost mode and fans speed. By default, three profiles are provided: quiet, balanced and performance. Custom profiles can be defined.

Fn+F5 is automatically bound to switch power profile. This will imitate the way the original ASUS service works on Windows. Notifications should be enabled in order to know which profile is selected each time the shortcut is pressed. A specific profile can be manually selected using:

# asusctl profile -P quiet

Disabling turbo boost

While not necessarily saving power, some user prefer to disable turbo boost for smoother power delivery and less heat. To temporarily disable boost, execute the following:

# echo 0 > /sys/devices/system/cpu/cpufreq/boost

Or use the power profiles from asusctl to handle this automatically, as explained in #Power profile.

Function Keys

These is the list of functions keys and how they are handled by the system. Some of them like Fn+F2 are not visible to libinput debug-events meaning they are hardwired or lack of additional implementation to better handle them since they behave differently on Windows.

The first four keys on the following table are the dedicate buttons located right above F1 to F4 and since they are dedicated multimedia keys, Fn combination isn't needed.

Key Visible? Marked? Effect
Volume Down Yes Yes XF86AudioLowerVolume.
Volume Up Yes Yes XF86AudioRaiseVolume.
Mic Mute Yes Yes F20 Function key.
Asus Key Yes No KEY_PROG3 code 202. This key has a generic stamp on it which is bound to Asus internal design.
Fn+F1 Yes Yes XF86AudioMute.
Fn+F2 No Yes Lower keyboard brightness directly through hardware.
Fn+F3 No Yes Raise keyboard brightness directly through hardware. These two keyboard brightness behave differently on Windows, changing also led style/patterns.
Fn+F4 Yes No KEY_PROG4 code 203. Function named "Aura" which does not explain it's meaning
Fn+F5 No No A key with a Fan icon on it, which on Windows is used to change fan profiles. Does not work however, a merge request to fix that is already in place
Fn+F6 Yes Yes Shortcut to WinKey + Shift + s, which is the screenshot crop hotkey for Windows. Keycap logo makes sense in some way.
Fn+F7 Yes Yes XF86MonBrightnessDown.
Fn+F8 Yes Yes XF86MonBrightnessUp.
Fn+F9 Yes Yes Shortcut to WinKey + p, which is the external monitor tool for Windows. Keycap logo makes sense.
Fn+F10 Yes No Key maps to F20 (press and release) and after that a sequence of AltGr + KEY_ZENKAKUHANKAKU code 85 keystroke. Logo seems to be a crossed touchpad but prints out this unusual sequence.
Fn+F11 Yes Yes KEY_SLEEP code 142. Little Zzz on key makes it meaningful.
Fn+F12 No No Key should be Airplane mode but does not show on libinput, neither disables network interfaces.
Fn+Arrow Down Yes Yes KEY_PAGEDOWN code 109.
Fn+Arrow Up Yes Yes KEY_PAGEUP code 104.
Fn+Arrow Left Yes Yes KEY_HOME code 102. This laptop has a dedicated Home key at the top of the numpad, and this key combination for it as well.
Fn+Arrow Right Yes Yes KEY_END code 107.
Fn+Dell Yes Yes KEY_INSERT code 110. This laptop has these dual keys around the numpad, some of them repeating keys that are elsewhere.
Fn+Pause Yes Yes No effect so all. Pressing Fn+Pause or Pause it will issue KEY_PAUSE code 119 on both cases
Fn+PrtSc Yes Yes It will send BOTH keys, PrtSc and SysRq in that sequence, no matter if using Fn+PrtSc or PrtSc. Really weird.
Fn+Home Yes Yes KEY_END code 107.
Fn+Numpad Enter Yes Yes XF86Calculator.
Fn+Right Ctrl Yes Yes KEY_COMPOSE code 127.
Fn+Winkey Yes No Issuing this key combination will lock Winkey into sending KEY_UNKNOWN code 240, until you issue Fn+Winkey again to change this behavior.

See also