refacto, début tests nvidia

This commit is contained in:
2025-04-12 15:23:28 +02:00
parent 48bdec997d
commit b0cdbc64bc
12 changed files with 841 additions and 61 deletions

153
kernel.sh
View File

@ -1,21 +1,22 @@
#!/bin/bash
UPDATED="2025-04-11"
UPDATED="2025-04-12"
DISABLE=1 # disable some options
ENABLE=1 # enable some options
SECURED=1 # enable/disable security
PATCHES=1 # enable/disable patch apply
UARCH=0 # apply more uarch patch
CLANG=0 # use Clang compiler (if not, use GCC)
O3=1 # use -O3 vs -O2 (optimisation)
ARCH="native" # target architecture (uarch patch)
CONFIGCLOUD=1 # enable cloud 'from' config
CONFIGOLD=1 # enable old def config
CONFIGMOD=0 # enable all mod config
SCRATCH=0 # perform from scratch (remove preexisting content)
UNCOMPRESS=1 # perform uncompress if already exist
CLEANUP=1 # perform folder cleanup
TESTING=0 # add testing options
DISABLE=1 # disable some options
ENABLE=1 # enable some options
SECURED=1 # enable/disable security
PATCHES=1 # enable/disable patch apply
UARCH=0 # apply more uarch patch
CLANG=0 # use Clang compiler (if not, use GCC)
O3=1 # use -O3 vs -O2 (optimisation)
ARCH="native" # target architecture (uarch patch)
CONFIGCLOUD=1 # enable cloud 'from' config
CONFIGOLD=1 # enable old def config
CONFIGMOD=0 # enable all mod config
SCRATCH=0 # perform from scratch (remove preexisting content)
UNCOMPRESS=1 # perform uncompress if already exist
CLEANUP=1 # perform folder cleanup
TESTING=0 # add testing options
NVIDIA=1 # add support for nvidia
#
# Sources:
@ -71,12 +72,12 @@ doBuildSystem() {
# Get target distribution name
doTargetName() {
case ${TARGET} in
debian)
TARGETNAME="Debian"
;;
ubuntu)
TARGETNAME="Ubuntu"
;;
debian)
TARGETNAME="Debian"
;;
ubuntu)
TARGETNAME="Ubuntu"
;;
esac
}
@ -137,18 +138,17 @@ cd $CURRENT
# Perform specific distribution adjustments
doTarget() {
case ${TARGET} in
ubuntu)
DISABLE=0
PATCHES=0
UARCH=0
ARCH="native"
CONFIGCLOUD=0
CONFIGMOD=0
CONFIGOLD=1
SCRATCH=0
;;
*)
;;
ubuntu)
DISABLE=0
PATCHES=0
UARCH=0
ARCH="native"
CONFIGCLOUD=0
CONFIGMOD=0
CONFIGOLD=1
SCRATCH=0
;;
*) ;;
esac
}
@ -158,23 +158,22 @@ doTargetAdapt() {
doTargetName
case ${TARGET} in
ubuntu)
doEchoStep "Adaptation for: ${TARGETNAME}"
doEchoStep " - Certificates generation"
openssl req -x509 -newkey rsa:4096 -keyout certs/zogg.pem -out certs/zogg.pem -nodes -days 3650 -config $CERTS/zogg.cnf
doEchoStep " - Options override"
./scripts/config --set-str CONFIG_MODULE_SIG_KEY "certs/zogg.pem"
./scripts/config --enable CONFIG_SYSTEM_TRUSTED_KEYRING
./scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS "certs/zogg.pem"
./scripts/config --enable CONFIG_SYSTEM_EXTRA_CERTIFICATE
./scripts/config --set-val CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE 4096
./scripts/config --enable CONFIG_SECONDARY_TRUSTED_KEYRING
./scripts/config --enable CONFIG_SYSTEM_BLACKLIST_KEYRING
./scripts/config --set-str CONFIG_SYSTEM_BLACKLIST_HASH_LIST ""
export CC="x86_64-pc-linux-gnu"
;;
*)
;;
ubuntu)
doEchoStep "Adaptation for: ${TARGETNAME}"
doEchoStep " - Certificates generation"
openssl req -x509 -newkey rsa:4096 -keyout certs/zogg.pem -out certs/zogg.pem -nodes -days 3650 -config $CERTS/zogg.cnf
doEchoStep " - Options override"
./scripts/config --set-str CONFIG_MODULE_SIG_KEY "certs/zogg.pem"
./scripts/config --enable CONFIG_SYSTEM_TRUSTED_KEYRING
./scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS "certs/zogg.pem"
./scripts/config --enable CONFIG_SYSTEM_EXTRA_CERTIFICATE
./scripts/config --set-val CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE 4096
./scripts/config --enable CONFIG_SECONDARY_TRUSTED_KEYRING
./scripts/config --enable CONFIG_SYSTEM_BLACKLIST_KEYRING
./scripts/config --set-str CONFIG_SYSTEM_BLACKLIST_HASH_LIST ""
export CC="x86_64-pc-linux-gnu"
;;
*) ;;
esac
}
@ -458,11 +457,18 @@ doScriptsConfigFile() {
FILE=$2
while read -r option; do
./scripts/config --${SWITCH} $option
if [[
(-n $option) &&
(${option:0:1} != ';') ]]; then
# if not null
# skip when starting with ';' (comment)
./scripts/config --${SWITCH} $option
fi
done <"$FILE"
}
# Generate defaults options for this kernel
# Generate defaults 'disabled' options for this kernel
doDefaultsDisable() {
if [ $DISABLE == 1 ]; then
doEchoStep "Options: disable"
@ -470,11 +476,13 @@ doDefaultsDisable() {
if [ -f .config ]; then
cp .config .config.disable.before
fi
doScriptsConfigFile disable $OPTIONS/disable.txt
doScriptsConfigFile disable $OPTIONS/disable/disable.txt
cp .config .config.disable.after
fi
}
# Generate defaults 'enabled' options for this kernel
doDefaultsEnable() {
if [ $ENABLE == 1 ]; then
doEchoStep "Options: enable"
@ -483,9 +491,9 @@ doDefaultsEnable() {
cp .config .config.enable.before
fi
if [ "$CLANG" == "1" ]; then
doScriptsConfigFile enable $OPTIONS/clang.txt
doScriptsConfigFile enable $OPTIONS/enable/clang.txt
fi
doScriptsConfigFile enable $OPTIONS/enable.txt
doScriptsConfigFile enable $OPTIONS/enable/enable.txt
case ${ARCH} in
"x86-64-v2")
@ -502,6 +510,8 @@ doDefaultsEnable() {
cp .config .config.enable.after
fi
}
# Generate defaults 'mitigations' options for this kernel
doDefaultMitigations() {
if [ -f .config ]; then
cp .config .config.mitigations.before
@ -509,14 +519,16 @@ doDefaultMitigations() {
if [ $SECURED == 0 ]; then
doEchoStep "Options: secured OFF"
doScriptsConfigFile disable $OPTIONS/unsecured.txt
doScriptsConfigFile disable $OPTIONS/disable/unsecure.txt
else
doEchoStep "Options: secured ON"
doScriptsConfigFile enable $OPTIONS/secured.txt
doScriptsConfigFile enable $OPTIONS/enable/secure.txt
fi
cp .config .config.mitigations.after
}
# Generate defaults 'testing' options for this kernel
doDefaultsTesting() {
if [ $TESTING == 1 ]; then
doEchoStep "Options: testings activated..."
@ -529,6 +541,24 @@ doDefaultsTesting() {
cp .config .config.testing.after
fi
}
# Generate defaults 'NVIDIA' options for this kernel
doDefaultsNvidia() {
if [ $NVIDIA == 1 ]; then
doEchoStep "Options: NVIDIA activated..."
if [ -f .config ]; then
cp .config .config.nvidia.before
fi
doEchoStep "Options: NVIDIA disable"
doScriptsConfigFile disable $OPTIONS/disable/nvidia.txt
cp .config .config.nvidia.after
fi
}
# Generate defaults options for this kernel
doDefaults() {
cd $WORKDIR
@ -553,6 +583,7 @@ doDefaults() {
doDefaultsDisable
doDefaultsEnable
doDefaultMitigations
doDefaultsNvidia
doDefaultsTesting
cp .config .config.default.after
@ -660,10 +691,10 @@ doCompile() {
cd $WORKDIR
if [ -f ../revision.log ]; then
REVISION="`head -1 ../revision.log`"
REVISION=$((REVISION+1))
REVISION="$(head -1 ../revision.log)"
REVISION=$((REVISION + 1))
fi
echo $REVISION > ../revision.log
echo $REVISION >../revision.log
doStripSig
doStripDebug