#nixos
Вопрос:
Я хочу внести unfreeRedistributableFirmware
лицензию в черный список, потому что, несмотря на то, что она несвободна, NixOS в настоящее время не рассматривает ее как таковую. Поэтому я добавляю это к своему configuration.nix
.
boot = {
kernelPackages = pkgs.linuxPackages_latest-libre;
...
}
nixpkgs.config = {
allowBroken = true;
blacklistedLicenses = with lib.licenses; [
unfreeRedistributableFirmware
];
...
};
Тем не менее, я продолжаю получать firmware-linux-nonfree
ошибки после запуска nixox-rebuild
, даже несмотря на то, что я объявляю ядро Linux-libre.
error: Package ‘firmware-linux-nonfree-2021-07-16’ in /nix/store/c84snp1irc764vsr81dcv61qrq78wdnv-nixos-21.05.2734.74d017edb67/nixos/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix:23 has a blocklisted license (‘unfreeRedistributableFirmware’), refusing to evaluate.
Любые советы или обходные пути будут оценены по достоинству.
Комментарии:
1. Если вы передадите
--show-trace
команду nix, которую вы выполняете (nixos-rebuild
предположительно), вы получите трассировку вызова, которая может дать подсказку. Вы установили какие -либо параметры, связанные с прошивкой ?2. @Robertensing Я не устанавливал эту опцию.
--show-trace
Вывод выглядит для меня очень загадочным: ссылка .3. Реализация модульной системы вызывает больше строк, чем можно было бы надеяться увидеть, но она также обеспечивает дополнительный контекст, также прямо в трассировке стека. Похоже, что
udev
модуль отвечает за оценку заблокированного пакета (несколько ближе к концу,while evaluating definitions from `/nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/services/hardware/udev.nix':
)
Ответ №1:
Виновником является этот импортированный модуль в /etc/nixos/конфигурация оборудования.nix
imports = [ (modulesPath "/installer/scan/not-detected.nix") ];
Этот модуль содержит hardware.enableRedistributableFirmware = lib.mkDefault true;
. Я просто прокомментирую это, и все несвободные прошивки исчезнут.
Но этот файл может быть перезаписан, nixos-generate-config
поэтому вместо этого лучше объявить hardware.enableRedistributableFirmware = false;
в. configuration.nix