1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 inherit (lib)
10 mkEnableOption
11 mkIf
12 mkMerge
13 ;
14
15 cfg = config.hardware.coral;
16in
17
18{
19 options.hardware.coral = {
20 usb.enable = mkEnableOption "Coral USB support";
21 pcie.enable = mkEnableOption "Coral PCIe support";
22 };
23
24 config = mkMerge [
25 (mkIf (cfg.usb.enable || cfg.pcie.enable) {
26 users.groups.coral = { };
27 })
28 (mkIf cfg.usb.enable {
29 services.udev.packages = with pkgs; [ libedgetpu ];
30 })
31 (mkIf cfg.pcie.enable {
32 boot.extraModulePackages = with config.boot.kernelPackages; [ gasket ];
33 services.udev.extraRules = ''
34 SUBSYSTEM=="apex",MODE="0660",GROUP="coral"
35 '';
36 })
37 ];
38}