From a3b873924b22f75eda45afd4ae63a44a6a7541a3 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 20 Oct 2014 13:13:10 +0200 Subject: [PATCH] Let the kernel load firmware directly Loading firmware via udevd is obsolete. Fixes #4552. --- nixos/modules/services/hardware/udev.nix | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/nixos/modules/services/hardware/udev.nix b/nixos/modules/services/hardware/udev.nix index 068d14217a2c..095a97338d52 100644 --- a/nixos/modules/services/hardware/udev.nix +++ b/nixos/modules/services/hardware/udev.nix @@ -168,7 +168,6 @@ in hardware.firmware = mkOption { type = types.listOf types.path; default = []; - example = [ "/root/my-firmware" ]; description = '' List of directories containing firmware files. Such files will be loaded automatically if the kernel asks for them @@ -177,10 +176,10 @@ in firmware file with the same name, the first path in the list takes precedence. Note that you must rebuild your system if you add files to any of these directories. For quick testing, - put firmware files in /root/test-firmware and add that - directory to the list. - Note that you can also add firmware packages to this - list as these are directories in the nix store. + put firmware files in /root/test-firmware + and add that directory to the list. Note that you can also + add firmware packages to this list as these are directories in + the nix store. ''; apply = list: pkgs.buildEnv { name = "firmware"; @@ -244,6 +243,11 @@ in echo "regenerating udev hardware database..." ${config.systemd.package}/bin/udevadm hwdb --update && ln -sfn ${config.systemd.package} /var/lib/udev/prev-systemd fi + + # Allow the kernel to find our firmware. + if [ -e /sys/module/firmware_class/parameters/path ]; then + echo -n "${config.hardware.firmware}" > /sys/module/firmware_class/parameters/path + fi ''; systemd.services.systemd-udevd =