vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / system / boot / uvesafb.nix
blob8da86466a5be88345a693d386fd14f3bba66af04
1 { config, lib, pkgs, ... }:
2 let
3   cfg = config.boot.uvesafb;
4   inherit (lib) mkIf mkEnableOption mkOption types;
5 in {
6   options = {
7     boot.uvesafb = {
8       enable = mkEnableOption "uvesafb";
10       gfx-mode = mkOption {
11         type = types.str;
12         default = "1024x768-32";
13         description = "Screen resolution in modedb format. See [uvesafb](https://docs.kernel.org/fb/uvesafb.html) and [modedb](https://docs.kernel.org/fb/modedb.html) documentation for more details. The default value is a sensible default but may be not ideal for all setups.";
14       };
16       v86d.package = mkOption {
17         type = types.package;
18         description = "Which v86d package to use with uvesafb";
19         defaultText = ''config.boot.kernelPackages.v86d.overrideAttrs (old: {
20           hardeningDisable = [ "all" ];
21         })'';
22         default = config.boot.kernelPackages.v86d.overrideAttrs (old: {
23           hardeningDisable = [ "all" ];
24         });
25       };
26     };
27   };
28   config = mkIf cfg.enable {
29     boot.initrd = {
30       kernelModules = [ "uvesafb" ];
31       extraFiles."/usr/v86d".source = cfg.v86d.package;
32     };
34     boot.kernelParams = [
35       "video=uvesafb:mode:${cfg.gfx-mode},mtrr:3,ywrap"
36       ''uvesafb.v86d="${cfg.v86d.package}/bin/v86d"''
37     ];
38   };