main
1{
2 lib,
3 hardwareType,
4 pkgs,
5 system,
6 ...
7}:
8let
9 # Systems without TPM hardware
10 # - rpi4: Raspberry Pi 4
11 # - Most aarch64 SBCs (Radxa CM3588, etc.) don't have TPM chips
12 # For aarch64, only enable TPM if explicitly set via hardwareType
13 hasNoTPM = hardwareType == "rpi4" || (system == "aarch64-linux" && hardwareType == "");
14in
15{
16 environment.systemPackages =
17 if hasNoTPM then
18 [ ]
19 else
20 with pkgs;
21 [
22 tpm2-tss
23 ];
24 security = lib.mkIf (!hasNoTPM) {
25 tpm2 = {
26 enable = true;
27 pkcs11.enable = true;
28 abrmd.enable = true;
29 };
30 };
31}