refacto, début tests nvidia
This commit is contained in:
153
kernel.sh
153
kernel.sh
@ -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
|
||||
|
Reference in New Issue
Block a user