]> git.ipfire.org Git - thirdparty/dracut.git/blob - modules.d/91tpm2-tss/module-setup.sh
feat(tpm2-tss): introducing the tpm2-tss module
[thirdparty/dracut.git] / modules.d / 91tpm2-tss / module-setup.sh
1 #!/bin/bash
2 # This file is part of dracut.
3 # SPDX-License-Identifier: GPL-2.0-or-later
4
5 # Prerequisite check(s) for module.
6 check() {
7
8 # Return 255 to only include the module, if another module requires it.
9 return 255
10
11 }
12
13 # Module dependency requirements.
14 depends() {
15
16 # This module has external dependency on other module(s).
17 echo systemd-sysusers systemd-udev
18 # Return 0 to include the dependent module(s) in the initramfs.
19 return 0
20
21 }
22
23 # Install kernel module(s).
24 installkernel() {
25 instmods '=drivers/char/tpm'
26 }
27
28 # Install the required file(s) and directories for the module in the initramfs.
29 install() {
30
31 inst_multiple -o \
32 "$sysusers"/tpm2-tss.conf \
33 "$tmpfilesdir"/tpm2-tss-fapi.conf \
34 "$udevrulesdir"/60-tpm-udev.rules \
35 tpm2_pcrread tpm2_pcrextend tpm2_createprimary tpm2_createpolicy \
36 tpm2_create tpm2_load tpm2_unseal tpm2
37
38 # Install library file(s)
39 _arch=${DRACUT_ARCH:-$(uname -m)}
40 inst_libdir_file \
41 {"tls/$_arch/",tls/,"$_arch/",}"libtss2-esys.so.*" \
42 {"tls/$_arch/",tls/,"$_arch/",}"libtss2-fapi.so.*" \
43 {"tls/$_arch/",tls/,"$_arch/",}"libtss2-mu.so.*" \
44 {"tls/$_arch/",tls/,"$_arch/",}"libtss2-rc.so.*" \
45 {"tls/$_arch/",tls/,"$_arch/",}"libtss2-sys.so.*" \
46 {"tls/$_arch/",tls/,"$_arch/",}"libtss2-tcti-cmd.so.*" \
47 {"tls/$_arch/",tls/,"$_arch/",}"libtss2-tcti-device.so.*" \
48 {"tls/$_arch/",tls/,"$_arch/",}"libtss2-tcti-mssim.so.*" \
49 {"tls/$_arch/",tls/,"$_arch/",}"libtss2-tcti-swtpm.so.*" \
50 {"tls/$_arch/",tls/,"$_arch/",}"libtss2-tctildr.so.*" \
51 {"tls/$_arch/",tls/,"$_arch/",}"libcryptsetup.so.*" \
52 {"tls/$_arch/",tls/,"$_arch/",}"libcurl.so.*" \
53 {"tls/$_arch/",tls/,"$_arch/",}"libjson-c.so.*"
54
55 # Install the hosts local user configurations if enabled.
56 if [[ $hostonly ]]; then
57 inst_multiple -H -o \
58 "$udevrulesdir"/60-tpm-udev.rules \
59 /etc/tpm2-tss/fapi-config.json \
60 "/etc/tpm2-tss/fapi-profiles/*.json"
61 fi
62
63 }