nixos-hardware/framework/default.nix
dasNessie bf212c4ef5 Add Ethernet Support on Framework
Add Ethernet Expansion Card support for the framework laptop.
Due to automatic USB device suspension,
the Ethernet Expansion Card was not working.
Adding a udev rule to only suspend the card after 20 seconds
fixes the problem.
The framework support confirmed via email
that all current Ethernet Expansion Cards share the same Product ID.
2022-11-19 14:33:56 +01:00

54 lines
1.9 KiB
Nix

{ lib, pkgs, ... }: {
imports = [
../common/cpu/intel
../common/pc/laptop
../common/pc/laptop/ssd
];
boot.kernelParams = [
# For Power consumption
# https://kvark.github.io/linux/framework/2021/10/17/framework-nixos.html
"mem_sleep_default=deep"
# For Power consumption
# https://community.frame.work/t/linux-battery-life-tuning/6665/156
"nvme.noacpi=1"
];
# Requires at least 5.16 for working wi-fi and bluetooth.
# https://community.frame.work/t/using-the-ax210-with-linux-on-the-framework-laptop/1844/89
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "5.16") (lib.mkDefault pkgs.linuxPackages_latest);
# Fix TRRS headphones missing a mic
# https://community.frame.work/t/headset-microphone-on-linux/12387/3
boot.extraModprobeConfig = ''
options snd-hda-intel model=dell-headset-multi
'';
# For fingerprint support
services.fprintd.enable = lib.mkDefault true;
# Custom udev rules
services.udev.extraRules = ''
# Fix headphone noise when on powersave
# https://community.frame.work/t/headphone-jack-intermittent-noise/5246/55
SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{device}=="0xa0e0", ATTR{power/control}="on"
# Ethernet expansion card support
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20"
'';
# Mis-detected by nixos-generate-config
# https://github.com/NixOS/nixpkgs/issues/171093
# https://wiki.archlinux.org/title/Framework_Laptop#Changing_the_brightness_of_the_monitor_does_not_work
hardware.acpilight.enable = lib.mkDefault true;
# Needed for desktop environments to detect/manage display brightness
hardware.sensor.iio.enable = lib.mkDefault true;
# HiDPI
# Leaving here for documentation
# hardware.video.hidpi.enable = lib.mkDefault true;
# Fix font sizes in X
# services.xserver.dpi = 200;
}