blob: f9a239e0a4b6c6a59a8f33f69ff6d2266f717c78 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
#!/usr/bin/env bash
declare -rg openssl_tpm2_engine_url="https://git.kernel.org/pub/scm/linux/kernel/git/jejb/openssl_tpm2_engine.git/snapshot"
declare -rg openssl_tpm2_engine_target="openssl_tpm2_engine-1.2.1"
declare -rg ibm_tss_target="ibmtss1234.tar.gz"
declare -rg ibm_tss_url="https://sourceforge.net/projects/ibmtpm20tss/files/$ibm_tss_target/download"
# TODO download in "$moddir/src"
check() {
if ! hash help2man 2>&1 /dev/null; then
echo "Missing help2man, please install it..."
return 1
fi
mkdir -p "$moddir/build"
if [ ! -d "$moddir/build/${openssl_tpm2_engine_target}" ]; then
compile_openssl_tpm2_engine || return 1
fi
return 255
}
depends() {
:
}
compile_ibm_tss() {
(
set -o errexit
wget -O "$ibm_tss_target" "$ibm_tss_url"
local build_dir="$moddir/build/${ibm_tss_target%%.*}"
mkdir -p "$build_dir"
tar xvf "$ibm_tss_target" -C "$build_dir"
cd "$build_dir/utils"
make
)
local ret=$?
if [ $ret -ne 0 ]; then
echo "Failed to compile IBM TSS"
rm -rf "$moddir/build/${ibm_tss_target%%.*}"
fi
return $ret
}
compile_openssl_tpm2_engine() {
if [ -d "$moddir/build/${ibm_tss_target%%.*}" ]; then
compile_ibm_tss || return 1
fi
install_ibm_tss "/"
(
set -o errexit
wget -O "$openssl_tpm2_engine_target.tar.gz" "$openssl_tpm2_engine_url/$openssl_tpm2_engine_target.tar.gz"
tar xvf "$openssl_tpm2_engine_target.tar.gz" -C "$moddir/build"
cd "$moddir/build/$openssl_tpm2_engine_target"
bash bootstrap.sh
CFLAGS="-I$moddir/build/${ibm_tss_target%%.*}/utils -Wno-pointer-sign" ./configure
# cause help2man suck...
sed -i '/^HELP2MAN/ s/$/ --no-discard-stderr/' Makefile
make
)
}
install_ibm_tss() {
if [ "$#" -ne 1 ]; then
echo "Failed: Needs one arg."
return 1
fi
if [ ! -d "$moddir/build/${ibm_tss_target%%.*}" ]; then
compile_ibm_tss || return 1
fi
cd "$moddir/build/${ibm_tss_target%%.*}/utils"
mkdir -p "$1/usr/local/bin"
# this is hacky, TODO better with /etc/ld.cache.conf.d ?
cp -a *.so* "$1/usr/lib"
mkdir -p "$1/usr/local/bin"
find . -perm /a+x -type f -exec cp {} "$1/usr/local/bin/" \;
# only needed to compile some tpm binary (not needed in initramfs)
# tar cvf - tss2 | tar xvf - -C "$1/usr/local/include"
cd -
}
install_openssl_tpm2_engine() {
if [ ! -d "$moddir/build/${openssl_tpm2_engine_target}" ]; then
echo "no build of openssl tpm2 engine"
return 1
fi
cd "$moddir/build/${openssl_tpm2_engine_target}"
make DESTDIR="$initdir" install
mkdir -p "$initdir/usr/lib/x86_64-linux-gnu/"
cp -r /usr/lib/x86_64-linux-gnu/engines-1.1 "$initdir/usr/lib/x86_64-linux-gnu/"
ln -s "libtpm2.so" "$initdir/usr/lib/x86_64-linux-gnu/engines-1.1/tpm2.so"
}
install() {
install_openssl_tpm2_engine
install_ibm_tss "$initdir"
inst_multiple openssl
return 0
}
installkernel() {
instmods =drivers/char/tpm
}
|