Adding the razer blade 14 2025

This commit is contained in:
Adriel Velazquez 2025-12-24 17:33:46 -05:00 committed by Jörg Thalheim
parent c5db9569ac
commit 64e8049770
6 changed files with 244 additions and 0 deletions

View file

@ -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` |

View 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";
};
};
}

View 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;
};
};
}

View file

@ -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;

View 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

View 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;
};
};
};
}