ASUS ROG GX650P

From ArchWiki
Hardware PCI/USB ID Working?
Bluetooth 14c3:0616 Yes
WiFi 14c3:0616 Yes
Ethernet 10ec:8125 Yes
GPU (NVIDIA) 10de:2820 Yes
GPU (AMD) 1002:164e Yes
Speakers 1043:1433 Yes

This article or section does not follow the Laptop page guidelines.

Reason: Needs an accessibility section and a function keys section. (Discuss in Talk:ASUS ROG GX650P)

Installation

Press the Esc key when the ROG logo appears to enter the laptop's UEFI. To boot into the installation medium, disable Secure Boot in the UEFI interface by deleting all related keys after backing up your keys. It is recommended to use a wired network during installation because wireless network connections can be non-trivial to deal with for now (see #Bluetooth and WiFi).

Bluetooth and WiFi

Both the Bluetooth and WiFi on this device are supported by MediaTek mt7922, which is driven by mt7921e. As of kernel 6.4.2 in July 2023, two kernel patches and firmware updates are still required. First check you device with:

$ lspci -k | grep --after-context=2 MT7922
04:00.0 Network controller: MEDIATEK Corp. MT7922 802.11ax PCI Express Wireless Network Adapter
	Subsystem: Foxconn International, Inc. MT7922 802.11ax PCI Express Wireless Network Adapter
	Kernel driver in use: mt7921e
	Kernel modules: mt7921e

It is likely that one will lack the line Kernel modules: mt7921e without further setup since the kernel module is not properly loaded.

Start with a fresh boot, i.e. completely shutdown your device and boot your device; one might encounter an error log similar to this in the journal:

[59007.600714] mt7921e 0000:02:00.0: ASIC revision: 79220010
[59010.889773] mt7921e 0000:02:00.0: Message 00000010 (seq 1) timeout
[59010.889786] mt7921e 0000:02:00.0: Failed to get patch semaphore
[59014.217839] mt7921e 0000:02:00.0: Message 00000010 (seq 2) timeout

It is recommended to patch to fix device init failed so that WiFi can work. Further, to support Bluetooth, another kernel patch should be applied.

Tip: One can refer to Kernel/Arch build system for instructions on how to apply kernel patches

Speaker

Due to the insufficient amplifier setup (Cirrus Logic CS35L41) on Linux, the sound turned out to be tiny. Follow the guide on asus-linux and add quick with this kernel patch (for 6.4.2) to fix the issue. In general, one might need to

  1. Dump ACPI table and patch SSDT
  2. Install and load the SSDT patch with the corresponding boot-loader
  3. Apply the aforementioned kernel patch

When all the problems have been solved, the log might look like this,

# dmesg | grep cs35l41
[    5.669095] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Cirrus Logic CS35L41 (35a40), Revision: B2
[    5.669886] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Reset line busy, assuming shared reset
[    5.721313] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Cirrus Logic CS35L41 (35a40), Revision: B2
[    5.741694] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: Firmware version: 3
[    5.741697] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot-10431433.wmfw: Fri 27 Aug 2021 14:58:19 W. Europe Daylight Time
[    6.208691] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: Firmware: 400a4 vendor: 0x2 v0.43.1, 2 algorithms
[    6.209774] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: 0: ID cd v29.63.1 XM@94 YM@e
[    6.209777] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: 1: ID f20b v0.1.0 XM@176 YM@0
[    6.209779] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: spk-prot: C:\[masked]\10431433_221125_V01_A0.bin

If there is a lack of some line, e.g. the firmware is not successfully loaded, one should check if the kernel patch is patched successfully.

Tip: One can find the patched and verified SSDT at ssdt_csc3551.dsl and follow the instruction to install.

Recommendations

ASUS Linux

ASUS Linux is a project that enhances ASUS laptops' user experience with a series of utils, including:

asusctl
enables platform profile control, GPU mode switch, and BIOS control, etc.
supergfxctl
enhances GPU mode switch
Note: More information can be find on ASUS Linux. It is recommended to read this page for novice.

amd-pstate CPU performance scaling driver

Since amd-pstate driver is not enabled by default, instead, the legacy acpi_cpufreq driver is used. It is recommended to enable the new amd-pstate-epp driver since Linux 6.3 by adding kernel parameters amd_pstate=active. For more information to make maximum use of your CPU, refer to CPU frequency scaling.

Known issues

  • mini-led is not enabled if amdgpu is used even after this kernel patch, while booting with AsusMuxDgpu in supergfxctl works well.
  • Booting with discrete GPU results in a black second display.
  • The refresh rate under KDE with the Xorg backend is significantly low. Wayland is recommended for two screens, with DPI scales of 1.0 and 1.5, correspondingly.
  • S0ix mode (see Power management/Suspend and hibernate) is not working.
  • After upgrading to BIOS version 306 (released in 2023/07/19), the screen turns white in KDE and flash under Wayland. The solution is to add amdgpu.sg_display=0 to kernel parameters.

See also