mirror of
https://github.com/NixOS/nixos-hardware.git
synced 2025-11-05 09:38:07 +08:00
Add a config for Asus Zephyrus GA402X* (2023) series
- Disable power-saving for the keyboard on the Asus Zephyrus GA402X series (2023) - Add more-aggressive roaming rules for Asus Mediatek cards when using IWD - Add note about potentially needing more-aggressive roaming rules for Asus Mediatek cards when using WPA-Supplicant - Make enabling the higher scanning optional - Split-up the AMD-GPU and Nvidia configs - Add switch for AMD-GPU recovery mode - Add switch for AMD-GPU sg_display (Scatter/Gather) mode - Add switch for AMD-GPU PSR support
This commit is contained in:
76
asus/zephyrus/ga402x/shared.nix
Normal file
76
asus/zephyrus/ga402x/shared.nix
Normal file
@@ -0,0 +1,76 @@
|
||||
{ config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib) mkDefault mkIf mkMerge version versionOlder;
|
||||
in {
|
||||
|
||||
imports = [
|
||||
../../../common/cpu/amd
|
||||
# Better power-savings from AMD PState:
|
||||
../../../common/cpu/amd/pstate.nix
|
||||
../../../common/gpu/amd
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/acpi_call.nix
|
||||
../../../common/pc/ssd
|
||||
];
|
||||
|
||||
config = mkMerge [
|
||||
{
|
||||
# Configure basic system settings:
|
||||
boot = {
|
||||
kernelModules = [ "kvm-amd" ];
|
||||
kernelParams = [
|
||||
"mem_sleep_default=deep"
|
||||
"pcie_aspm.policy=powersupersave"
|
||||
];
|
||||
};
|
||||
|
||||
services = {
|
||||
asusd = {
|
||||
enable = mkDefault true;
|
||||
enableUserService = mkDefault true;
|
||||
};
|
||||
|
||||
supergfxd.enable = true;
|
||||
|
||||
udev = {
|
||||
extraHwdb = ''
|
||||
# Fixes mic mute button
|
||||
evdev:name:*:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
|
||||
KEYBOARD_KEY_ff31007c=f20
|
||||
'';
|
||||
extraRules = ''
|
||||
# Disable auto-suspend for the ASUS N-KEY Device, i.e. USB Keyboard
|
||||
# Otherwise, it will tend to take 1-2 key-presses to wake-up after suspending
|
||||
ACTION=="add", SUBSYSTEM=="usb", TEST=="power/autosuspend", ATTR{idVendor}=="0b05", ATTR{idProduct}=="19b6", ATTR{power/autosuspend}="-1"
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
(mkIf (versionOlder version "23.11") {
|
||||
# See https://asus-linux.org/wiki/nixos/ for info about some problems
|
||||
# detecting the dGPU:
|
||||
systemd.services.supergfxd.path = [ pkgs.pciutils ];
|
||||
})
|
||||
|
||||
(mkIf (config.networking.wireless.iwd.enable && config.networking.wireless.scanOnLowSignal) {
|
||||
# Meditek doesn't seem to be quite sensitive enough on the default roaming settings:
|
||||
# https://wiki.archlinux.org/title/Wpa_supplicant#Roaming
|
||||
# https://wiki.archlinux.org/title/Iwd#iwd_keeps_roaming
|
||||
#
|
||||
# But NixOS doesn't have the tweaks for IWD, yet.
|
||||
networking.wireless.iwd.settings = {
|
||||
General = {
|
||||
RoamThreshold = -75;
|
||||
RoamThreshold5G = -80;
|
||||
RoamRetryInterval = 20;
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user