Adding the razer blade 14 2025
This commit is contained in:
parent
c5db9569ac
commit
64e8049770
6 changed files with 244 additions and 0 deletions
|
|
@ -421,6 +421,7 @@ See code for all available configurations.
|
||||||
| [Radxa ROCK 5 Model B](radxa/rock-5b) | `<nixos-hardware/radxa/rock-5b>` | `rock-5b` |
|
| [Radxa ROCK 5 Model B](radxa/rock-5b) | `<nixos-hardware/radxa/rock-5b>` | `rock-5b` |
|
||||||
| [Radxa ROCK Pi 4](radxa/rock-pi-4) | `<nixos-hardware/radxa/rock-pi-4>` | `rock-pi-4` |
|
| [Radxa ROCK Pi 4](radxa/rock-pi-4) | `<nixos-hardware/radxa/rock-pi-4>` | `rock-pi-4` |
|
||||||
| [Radxa ROCK Pi E](radxa/rock-pi-e) | `<nixos-hardware/radxa/rock-pi-e>` | `rock-pi-e` |
|
| [Radxa ROCK Pi E](radxa/rock-pi-e) | `<nixos-hardware/radxa/rock-pi-e>` | `rock-pi-e` |
|
||||||
|
| [Razer Blade 14 (RZ09-0530)](razer/blade/14/RZ09-0530) | `<nixos-hardware/razer/blade/14/RZ09-0530>` | `razer-blade-14-RZ09-0530` |
|
||||||
| [Raspberry Pi 2](raspberry-pi/2) | `<nixos-hardware/raspberry-pi/2>` | `raspberry-pi-2` |
|
| [Raspberry Pi 2](raspberry-pi/2) | `<nixos-hardware/raspberry-pi/2>` | `raspberry-pi-2` |
|
||||||
| [Raspberry Pi 3](raspberry-pi/3) | `<nixos-hardware/raspberry-pi/3>` | `raspberry-pi-3` |
|
| [Raspberry Pi 3](raspberry-pi/3) | `<nixos-hardware/raspberry-pi/3>` | `raspberry-pi-3` |
|
||||||
| [Raspberry Pi 4](raspberry-pi/4) | `<nixos-hardware/raspberry-pi/4>` | `raspberry-pi-4` |
|
| [Raspberry Pi 4](raspberry-pi/4) | `<nixos-hardware/raspberry-pi/4>` | `raspberry-pi-4` |
|
||||||
|
|
|
||||||
80
common/wifi/mediatek/mt7925/default.nix
Normal file
80
common/wifi/mediatek/mt7925/default.nix
Normal file
|
|
@ -0,0 +1,80 @@
|
||||||
|
# MediaTek MT7925 WiFi 7 / Bluetooth support
|
||||||
|
#
|
||||||
|
# The MT7925 is a WiFi 7 (802.11be) + Bluetooth combo chip found in many
|
||||||
|
# 2024-2025 laptops. It requires specific workarounds for stable operation.
|
||||||
|
#
|
||||||
|
# Known issues:
|
||||||
|
# - Power management causes random disconnections
|
||||||
|
# - ASPM (Active State Power Management) causes hangs
|
||||||
|
# - CLC (Country Location Code) causes 6GHz band instability
|
||||||
|
# - WiFi often fails to reconnect after suspend/resume
|
||||||
|
# - wpa_supplicant has issues; iwd is recommended
|
||||||
|
#
|
||||||
|
# Devices using MT7925:
|
||||||
|
# - Razer Blade 14 (RZ09-0530) 2025
|
||||||
|
# - ThinkPad P16s Gen 4
|
||||||
|
# - Other 2024-2025 laptops with WiFi 7
|
||||||
|
#
|
||||||
|
# References:
|
||||||
|
# - https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2118755
|
||||||
|
# - https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2133863
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
# ===========================================================================
|
||||||
|
# Kernel Recommendation
|
||||||
|
# ===========================================================================
|
||||||
|
# Kernel 6.18+ is recommended for stable MT7925 operation.
|
||||||
|
# Earlier kernels may have driver bugs causing disconnections or hangs.
|
||||||
|
# Set: boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
# ===========================================================================
|
||||||
|
# Kernel Module Parameters
|
||||||
|
# ===========================================================================
|
||||||
|
# Disable power management at driver level during module load
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
# MT7925 WiFi - disable all power management for stability
|
||||||
|
options mt7925e disable_aspm=1
|
||||||
|
options mt7925e power_save=0
|
||||||
|
|
||||||
|
# Disable CLC (Country Location Code) - fixes 6GHz band stability
|
||||||
|
options mt7925-common disable_clc=1
|
||||||
|
'';
|
||||||
|
|
||||||
|
# ===========================================================================
|
||||||
|
# NetworkManager Configuration
|
||||||
|
# ===========================================================================
|
||||||
|
networking.networkmanager.wifi = {
|
||||||
|
# Disable WiFi power saving (causes disconnections)
|
||||||
|
powersave = lib.mkDefault false;
|
||||||
|
|
||||||
|
# Consistent MAC during scans (randomization causes issues)
|
||||||
|
scanRandMacAddress = lib.mkDefault false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# ===========================================================================
|
||||||
|
# Suspend/Resume Fix
|
||||||
|
# ===========================================================================
|
||||||
|
# Restart NetworkManager after suspend to clear stale driver state
|
||||||
|
systemd.services.mediatek-wifi-resume = {
|
||||||
|
description = "Restart NetworkManager after suspend to fix MediaTek WiFi";
|
||||||
|
wantedBy = [
|
||||||
|
"suspend.target"
|
||||||
|
"hibernate.target"
|
||||||
|
"hybrid-sleep.target"
|
||||||
|
];
|
||||||
|
after = [
|
||||||
|
"suspend.target"
|
||||||
|
"hibernate.target"
|
||||||
|
"hybrid-sleep.target"
|
||||||
|
];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${pkgs.systemd}/bin/systemctl restart NetworkManager.service";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
34
common/wifi/mediatek/mt7925/iwd.nix
Normal file
34
common/wifi/mediatek/mt7925/iwd.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
# MediaTek MT7925 - iwd backend configuration
|
||||||
|
#
|
||||||
|
# Use iwd instead of wpa_supplicant for MT7925. iwd provides better
|
||||||
|
# stability and faster roaming for WiFi 7 chips.
|
||||||
|
#
|
||||||
|
# Import this alongside default.nix:
|
||||||
|
# imports = [
|
||||||
|
# ../common/wifi/mediatek/mt7925
|
||||||
|
# ../common/wifi/mediatek/mt7925/iwd.nix
|
||||||
|
# ];
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Required for iwd to work with MT7925 - includes non-redistributable firmware
|
||||||
|
hardware.enableAllFirmware = lib.mkDefault true;
|
||||||
|
|
||||||
|
# Use iwd backend instead of wpa_supplicant
|
||||||
|
networking.networkmanager.wifi.backend = lib.mkDefault "iwd";
|
||||||
|
|
||||||
|
# iwd configuration for MT7925 stability
|
||||||
|
networking.wireless.iwd.settings = {
|
||||||
|
General = {
|
||||||
|
# Consistent MAC per network (fixes WPA3 handshake issues)
|
||||||
|
AddressRandomization = "network";
|
||||||
|
|
||||||
|
# Let NetworkManager handle IP configuration, not iwd
|
||||||
|
# (prevents conflicts between iwd and NetworkManager)
|
||||||
|
EnableNetworkConfiguration = false;
|
||||||
|
};
|
||||||
|
Settings = {
|
||||||
|
AutoConnect = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -389,6 +389,7 @@
|
||||||
purism-librem-13v3 = import ./purism/librem/13v3;
|
purism-librem-13v3 = import ./purism/librem/13v3;
|
||||||
purism-librem-15v3 = import ./purism/librem/15v3;
|
purism-librem-15v3 = import ./purism/librem/15v3;
|
||||||
purism-librem-5r4 = import ./purism/librem/5r4;
|
purism-librem-5r4 = import ./purism/librem/5r4;
|
||||||
|
razer-blade-14-RZ09-0530 = import ./razer/blade/14/RZ09-0530;
|
||||||
raspberry-pi-2 = import ./raspberry-pi/2;
|
raspberry-pi-2 = import ./raspberry-pi/2;
|
||||||
raspberry-pi-3 = import ./raspberry-pi/3;
|
raspberry-pi-3 = import ./raspberry-pi/3;
|
||||||
raspberry-pi-4 = import ./raspberry-pi/4;
|
raspberry-pi-4 = import ./raspberry-pi/4;
|
||||||
|
|
|
||||||
68
razer/blade/14/RZ09-0530/README.md
Normal file
68
razer/blade/14/RZ09-0530/README.md
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
# Razer Blade 14 (RZ09-0530)
|
||||||
|
|
||||||
|
Model year: 2025
|
||||||
|
|
||||||
|
## Hardware Specifications
|
||||||
|
|
||||||
|
- **Model:** RZ09-0530
|
||||||
|
- **CPU:** AMD Ryzen AI 9 HX 370 (Strix Point)
|
||||||
|
- **iGPU:** AMD Radeon 880M / 890M
|
||||||
|
- **dGPU:** NVIDIA GeForce RTX 5060 Max-Q (Blackwell)
|
||||||
|
- **Display:** 14" 2560x1600 OLED, 240Hz
|
||||||
|
|
||||||
|
## Identifying Your Model
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nix-shell -p dmidecode --run "sudo dmidecode -s system-product-name"
|
||||||
|
# Should output: Blade 14 - RZ09-0530
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.nixos-hardware.nixosModules.razer-blade-14-RZ09-0530
|
||||||
|
];
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
This profile configures:
|
||||||
|
|
||||||
|
- AMD CPU with microcode updates
|
||||||
|
- NVIDIA Prime offload (use `nvidia-offload` command for GPU-intensive applications)
|
||||||
|
- AMD iGPU for early KMS
|
||||||
|
- Power management for hybrid graphics
|
||||||
|
- Proper PCI bus IDs for the hybrid GPU setup
|
||||||
|
|
||||||
|
## Optional: OpenRazer for RGB Control
|
||||||
|
|
||||||
|
If you want to control the Razer RGB keyboard lighting, you can enable OpenRazer:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
hardware.openrazer = {
|
||||||
|
enable = true;
|
||||||
|
# Disable keyStatistics if using a keyboard remapper like kanata
|
||||||
|
keyStatistics = false;
|
||||||
|
users = [ "your-username" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Optional: Polychromatic GUI for RGB control
|
||||||
|
environment.systemPackages = [ pkgs.polychromatic ];
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Known Issues
|
||||||
|
|
||||||
|
- None reported yet
|
||||||
|
|
||||||
|
## Additional Notes
|
||||||
|
|
||||||
|
- The NVIDIA RTX 5060 Max-Q uses the Blackwell architecture and works with the open kernel modules (`hardware.nvidia.open = true`)
|
||||||
|
- Fine-grained power management is enabled by default for better battery life
|
||||||
|
- Use `nvidia-offload <command>` to run applications on the discrete GPU
|
||||||
|
|
||||||
|
|
||||||
60
razer/blade/14/RZ09-0530/default.nix
Normal file
60
razer/blade/14/RZ09-0530/default.nix
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (lib) mkDefault;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../../../../common/cpu/amd
|
||||||
|
../../../../common/gpu/amd
|
||||||
|
../../../../common/gpu/nvidia/prime.nix
|
||||||
|
../../../../common/pc/laptop
|
||||||
|
../../../../common/pc/ssd
|
||||||
|
../../../../common/wifi/mediatek/mt7925
|
||||||
|
../../../../common/wifi/mediatek/mt7925/iwd.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# Razer Blade 14 (RZ09-0530 / 2025) - AMD Ryzen AI 9 HX 370 + NVIDIA RTX 5060 Max-Q
|
||||||
|
|
||||||
|
# Enable AMD iGPU and NVIDIA dGPU drivers
|
||||||
|
services.xserver.videoDrivers = mkDefault [
|
||||||
|
"amdgpu"
|
||||||
|
"nvidia"
|
||||||
|
];
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
# Firmware for AMD CPU/GPU, WiFi, Bluetooth
|
||||||
|
enableRedistributableFirmware = mkDefault true;
|
||||||
|
|
||||||
|
# Enable AMD iGPU in initrd for early KMS
|
||||||
|
amdgpu.initrd.enable = mkDefault true;
|
||||||
|
|
||||||
|
nvidia = {
|
||||||
|
modesetting.enable = mkDefault true;
|
||||||
|
nvidiaSettings = mkDefault true;
|
||||||
|
|
||||||
|
# Open kernel modules work on Blackwell (RTX 50 series)
|
||||||
|
open = mkDefault true;
|
||||||
|
|
||||||
|
prime = {
|
||||||
|
offload = {
|
||||||
|
enable = mkDefault true;
|
||||||
|
enableOffloadCmd = mkDefault true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Bus IDs for Razer Blade 14 2025
|
||||||
|
# Obtained via: nix shell nixpkgs#pciutils -c lspci -d ::03xx
|
||||||
|
# c4:00.0 (196:0:0) - NVIDIA GeForce RTX 5060 Max-Q
|
||||||
|
# c5:00.0 (197:0:0) - AMD Radeon 880M / 890M
|
||||||
|
amdgpuBusId = "PCI:197:0:0";
|
||||||
|
nvidiaBusId = "PCI:196:0:0";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Power management for hybrid graphics
|
||||||
|
powerManagement = {
|
||||||
|
enable = mkDefault true;
|
||||||
|
finegrained = mkDefault true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue