
The LTS kernel (6.1) is handling the ITE8353 touchpad much better. Removing blacklisted modules to see if the proper drivers can now work correctly with the improved kernel support.
161 lines
4.6 KiB
Nix
161 lines
4.6 KiB
Nix
# Hardware Configuration for Little Rascal
|
|
# Lenovo Yoga Slim 7 14ARE05 - AMD Ryzen 7 4700U
|
|
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
modulesPath,
|
|
...
|
|
}: {
|
|
imports = [
|
|
(modulesPath + "/installer/scan/not-detected.nix")
|
|
];
|
|
|
|
# Boot configuration for AMD Ryzen 7 4700U
|
|
boot = {
|
|
initrd = {
|
|
availableKernelModules = [
|
|
"nvme"
|
|
"xhci_pci"
|
|
"usb_storage"
|
|
"sd_mod"
|
|
"sdhci_pci"
|
|
# I2C modules for touchpad support
|
|
"i2c_hid"
|
|
"i2c_hid_acpi"
|
|
"i2c_piix4"
|
|
];
|
|
kernelModules = [];
|
|
};
|
|
|
|
kernelModules = [
|
|
"kvm-amd" # AMD Ryzen system
|
|
# HID and input modules for touchpad
|
|
"hid_generic"
|
|
"hid_multitouch"
|
|
"i2c_hid"
|
|
"i2c_hid_acpi"
|
|
# Additional HID drivers that might help
|
|
"hid_input"
|
|
"evdev"
|
|
];
|
|
|
|
# Use LTS kernel for better hardware compatibility
|
|
kernelPackages = pkgs.linuxPackages_6_1;
|
|
|
|
extraModulePackages = [];
|
|
};
|
|
|
|
# Filesystem configuration - TEMPLATE
|
|
# Update these paths and UUIDs after running nixos-generate-config
|
|
fileSystems = {
|
|
"/" = {
|
|
device = "/dev/disk/by-label/nixos";
|
|
fsType = "ext4";
|
|
};
|
|
|
|
"/boot" = {
|
|
device = "/dev/disk/by-label/BOOT";
|
|
fsType = "vfat";
|
|
options = ["fmask=0022" "dmask=0022"];
|
|
};
|
|
};
|
|
|
|
# Swap configuration - TEMPLATE
|
|
# Uncomment and update if using swap partition
|
|
# swapDevices = [
|
|
# { device = "/dev/disk/by-uuid/REPLACE-WITH-SWAP-UUID"; }
|
|
# ];
|
|
|
|
# Hardware-specific configuration for Lenovo Yoga Slim 7 14ARE05
|
|
hardware = {
|
|
# CPU configuration - AMD Ryzen 7 4700U
|
|
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
|
|
# Enable firmware updates
|
|
enableRedistributableFirmware = true;
|
|
|
|
# Graphics configuration - AMD Radeon Vega (integrated)
|
|
# Using open source driver without ROCm and 32-bit support
|
|
graphics = {
|
|
enable = true;
|
|
enable32Bit = false; # Disabled 32-bit support
|
|
|
|
# AMD open source graphics drivers only
|
|
extraPackages = with pkgs; [
|
|
amdvlk # AMD Vulkan driver
|
|
# Removed ROCm packages for simpler configuration
|
|
];
|
|
|
|
# No 32-bit support packages needed
|
|
};
|
|
|
|
# Bluetooth support for Intel AX200
|
|
bluetooth = {
|
|
enable = true;
|
|
powerOnBoot = true;
|
|
};
|
|
};
|
|
|
|
# Additional services for touchpad support
|
|
services.udev.extraRules = ''
|
|
# ITE8353 touchpad support - try to force proper driver binding
|
|
SUBSYSTEM=="i2c", KERNEL=="i2c-ITE8353:00", MODE="0664", GROUP="input"
|
|
SUBSYSTEM=="input", ATTRS{name}=="ITE8353:00*", MODE="0664", GROUP="input"
|
|
# Additional HID rules for touchpads
|
|
KERNEL=="hidraw*", ATTRS{idVendor}=="048d", ATTRS{idProduct}=="8353", MODE="0664", GROUP="input"
|
|
# Force unbind from hid_sensor_hub and rebind to hid_multitouch for ITE8353
|
|
ACTION=="add", SUBSYSTEM=="hid", ATTRS{idVendor}=="048d", ATTRS{idProduct}=="8353", ATTR{bInterfaceClass}=="03", ATTR{bInterfaceSubClass}=="01", ATTR{bInterfaceProtocol}=="02", RUN+="/bin/sh -c 'echo $kernel > /sys/bus/hid/drivers/hid-sensor-hub/unbind; echo $kernel > /sys/bus/hid/drivers/hid-multitouch/bind'"
|
|
'';
|
|
|
|
# Power management for AMD Ryzen 7 4700U
|
|
powerManagement = {
|
|
enable = true;
|
|
powertop.enable = true; # Power optimization
|
|
cpuFreqGovernor = "powersave"; # Better battery life
|
|
};
|
|
|
|
# Network hardware - Intel Wi-Fi 6 AX200
|
|
networking = {
|
|
# Enable NetworkManager for WiFi management
|
|
networkmanager.enable = true;
|
|
|
|
# Disable wpa_supplicant (using NetworkManager)
|
|
wireless.enable = false;
|
|
};
|
|
|
|
# Firmware for Intel WiFi and Bluetooth
|
|
hardware.firmware = with pkgs; [
|
|
linux-firmware
|
|
];
|
|
|
|
# AMD-specific optimizations
|
|
boot.kernelParams = [
|
|
# Enable AMD graphics performance
|
|
"amdgpu.ppfeaturemask=0xffffffff"
|
|
# I2C HID touchpad parameters
|
|
"i2c_hid.debug=1"
|
|
# Ensure ACPI devices are properly detected
|
|
"acpi_enforce_resources=lax"
|
|
# Force ITE touchpad to be recognized as input device
|
|
"i2c_hid_acpi.probe_defer=1"
|
|
];
|
|
|
|
# TLP for better power management (alternative to power-profiles-daemon)
|
|
services.tlp = {
|
|
enable = false; # Using power-profiles-daemon instead
|
|
settings = {
|
|
# Would be configured here if enabled
|
|
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
|
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
|
};
|
|
};
|
|
|
|
# Notes for this specific hardware:
|
|
# - Lenovo Yoga Slim 7 14ARE05
|
|
# - AMD Ryzen 7 4700U with Radeon Vega Graphics
|
|
# - 16GB LPDDR4 RAM (soldered, not upgradeable)
|
|
# - Intel Wi-Fi 6 AX200 + Bluetooth
|
|
# - 128GB SSD storage
|
|
# - Currently running btrfs filesystem
|
|
}
|