nixpkgs/nixos/modules/services/hardware
Alyssa Ross 8aa8e0ce7f
nixos/udev: compress all firmware if supported
This should be a significant disk space saving for most NixOS
installations.  This method is a bit more complicated than doing it in
the postInstall for the firmware derivations, but this way it's
automatic, so each firmware package doesn't have to separately
implement its compression.

Currently, only xz compression is supported, but it's likely that
future versions of Linux will additionally support zstd, so I've
written the code in such a way that it would be very easy to implement
zstd compression for those kernels when they arrive, falling back to
xz for older (current) kernels.

I chose the highest possible level of compression (xz -9) because even
at this level, decompression time is negligible.  Here's how long it took
to decompress every firmware file my laptop uses:

	i915/kbl_dmc_ver1_04.bin                  	2ms
	regulatory.db                             	4ms
	regulatory.db.p7s                         	3ms
	iwlwifi-7265D-29.ucode                    	62ms
	9d71-GOOGLE-EVEMAX-0-tplg.bin             	22ms
	intel/dsp_fw_kbl.bin                      	65ms
	dsp_lib_dsm_core_spt_release.bin          	6ms
	intel/ibt-hw-37.8.10-fw-22.50.19.14.f.bseq	7ms

And since booting NixOS is a parallel process, it's unlikely (but
difficult to measure) that the time to user interaction was held up at
all by most of these.

Fixes (partially?) #148197
2022-05-13 14:36:34 +00:00
..
sane_extra_backends nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
acpid.nix nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
actkbd.nix nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
auto-cpufreq.nix nixos/auto-cpufreq: fix service wantedBy 2021-06-14 20:01:26 -04:00
bluetooth.nix nixos/bluetooth: fix bluetooth warnings 2021-11-23 10:54:26 +01:00
bolt.nix nixos/bolt: init at 0.7 2019-02-19 20:54:38 +00:00
brltty.nix nixos/brltty: use upstream units 2021-04-11 10:35:16 +02:00
ddccontrol.nix nixos/ddccontrol: Ensure that i2c_dev module is loaded 2022-02-02 11:52:57 +10:00
fancontrol.nix nixos/fancontrol: restart on-failure 2021-11-02 09:24:31 +01:00
freefall.nix nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
fwupd.nix nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
illum.nix illum: Restart service on failure 2022-05-05 22:31:56 +02:00
interception-tools.nix nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
irqbalance.nix nixos/irqbalance: re-add multi-user.target 2020-02-04 14:20:12 +00:00
joycond.nix joycond: don't use dkms hid-nintendo on kernel 5.16 or newer 2022-03-19 16:38:09 +01:00
lcd.nix nixos/modules: fix systemd start rate-limits 2020-10-31 01:35:56 -07:00
lirc.nix lirc: Set a writable lockdir 2021-09-29 05:36:56 +02:00
nvidia-optimus.nix
pcscd.nix nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
pommed.nix
power-profiles-daemon.nix power-profiles-daemon: 0.8.1 → 0.10.1 2021-10-29 09:17:27 +02:00
rasdaemon.nix nixos/rasdaemon: remove syslog.target dependency 2021-12-10 08:18:05 +01:00
ratbagd.nix treewide: add bool type to enable options, or make use of mkEnableOption 2020-04-21 08:55:36 +02:00
sane.nix nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
spacenavd.nix nixos/spacenavd: remove syslog.target 2021-12-18 00:59:48 +01:00
tcsd.nix treewide: add defaultText for options with simple interpolation defaults 2021-12-09 01:13:48 +01:00
thermald.nix thermald: disable network access 2022-01-15 19:33:06 +01:00
thinkfan.nix thinkfan: fix typo in level 2021-12-22 04:00:19 +08:00
throttled.nix nixos/throttled: disable kernel msr warning 2020-10-29 15:04:18 -07:00
tlp.nix nixos/tlp: Fix deprecation hint 2020-10-31 16:33:45 +01:00
trezord.nix trezord: don't trigger systemd-udev-settle 2021-02-27 12:35:04 +01:00
trezord.xml Revert "nixos/doc: re-format" 2019-09-19 19:17:30 +02:00
triggerhappy.nix nixos/modules/services/hardware/triggerhappy.nix: mpc_cli -> mpc-cli 2022-01-24 23:24:06 -03:00
udev.nix nixos/udev: compress all firmware if supported 2022-05-13 14:36:34 +00:00
udisks2.nix nixos/udisks2: add freeform settings 2022-04-03 09:40:53 +03:00
undervolt.nix nixos/undervolt: respect services.undervolt.package 2022-02-11 03:57:02 +08:00
upower.nix Merge pull request #136521 from pacien/nixos-upower-config-time-unit 2022-02-07 01:29:46 +01:00
usbmuxd.nix nixos/usbmuxd: Fix users.groups assignment 2020-01-12 16:53:27 +01:00
usbrelayd.nix nixos/usbrelayd: set myself as module maintainer 2022-05-08 21:44:50 +02:00
vdr.nix nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
xow.nix xow: fix service 2021-02-03 16:18:29 +02:00