sigil/nixos-modules/hardware/framebuffer.nix
Emery Hemingway 2afd2d08cc nixos: add genode.init.children.<…>.binary option
Require that all init children declared by Nix be declared with
an absolute path to the program binary.
2021-02-16 15:46:14 +01:00

50 lines
1.3 KiB
Nix

{ config, pkgs, lib, ... }:
with lib;
{
options.hardware.genode.framebuffer = {
enable = lib.mkEnableOption "framebuffer driver";
driver = mkOption {
type = types.enum [ "boot" "vesa" ];
default = "vesa";
};
};
config = {
genode.core.children.fb_drv =
mkIf config.hardware.genode.framebuffer.enable {
binary = with pkgs.genodePackages;
{
boot = boot_fb_drv;
vesa = vesa_drv;
}.${config.hardware.genode.framebuffer.driver};
configFile = let
binary = with pkgs.genodePackages;
{
boot = "${boot_fb_drv}/bin/boot_fb_drv";
vesa = "${vesa_drv}/bin/vesa_fb_drv";
}.${config.hardware.genode.framebuffer.driver};
in builtins.toFile "fb_drv.dhall" ''
let Genode = env:DHALL_GENODE
let Init = Genode.Init
in λ(binary : Text)
Init.Child.flat
Init.Child.Attributes::{
, binary
, resources = Init.Resources::{ caps = 256, ram = Genode.units.MiB 32 }
, routes =
[ Init.ServiceRoute.parent "IO_MEM"
, Init.ServiceRoute.parent "IO_PORT"
]
}
'';
};
};
}