kernel/kernel.sh
2024-02-23 12:52:55 +01:00

1187 lines
46 KiB
Bash

#!/bin/bash
UPDATED="2024-02-23"
TESTING=0
CLANG=0
#
# Sources:
# https://github.com/sn99/Optimizing-linux#compiling-your-kernel
# https://wiki.gentoo.org/wiki/Kernel/Optimization
#
# config-cloud-amd64:
# https://packages.debian.org/source/sid/linux
# linux-image-6.6.9-cloud-amd64-unsigned
# Go down to download section, select amd64 and download deb.
# Open .deb with archiver, browse to boot folder and grab 'config-6.6.9-cloud-amd64'.
#
# more-uarches-for-kernel.patch:
# https://github.com/graysky2/kernel_compiler_patch
# more-uarches-for-kernel.patch : more-uarches-for-kernel-6.1.79-6.8-rc3.patch
#
#
# Prerequisites:
# sudo apt install build-essential fakeroot dpkg-dev perl libssl-dev bc gnupg dirmngr libncurses-dev libelf-dev flex bison lsb-release rsync dwarves clang llvm lld debhelper
#
doBuildSystem() {
echo "v$UPDATED"
}
# Display introduction
doIntro() {
echo
if [ $TESTING == 1 ]; then
echo "Debian Kernel Builder: $HOSTNAME [TEST]"
else
echo "Debian Kernel Builder: $HOSTNAME"
fi
doBuildSystem
echo
}
# Show date/time header
doHeader() {
NOW=$(date +"%Y/%m/%d %H:%M:%S")
echo "- $NOW"
echo ""
}
if [ "$(id -u)" != "0" ]; then
doIntro
doHeader
echo
echo "This script must be run as root" 1>&2
echo
exit 1
fi
KERNEL=/opt/kernel
WORK=/opt/work
BACKUPS=/opt/backups
LOGNAME=kernel
LOGEXT=log
LOGFILE=""
HOSTNAME=$(hostname)
SELF=$(realpath $0)
SCRIPT=$(basename $SELF)
CWD=$(dirname $SELF)
CURRENT=$CWD
BRANCH=$1
BRANCH="${BRANCH:=help}"
VERSION=$2
VERSION="${VERSION:=help}"
STEPS=$3
STEPS="${STEPS:=help}"
WORKDIR=""
cd $CURRENT
# Force sync & flush
doSync() {
sync
echo 3 >/proc/sys/vm/drop_caches
}
doHead() {
doIntro
doHeader
}
# Display help
doHelp() {
doIntro
doHeader
if [ $BRANCH != "help" ]; then
echo ">>> Unspecified, unknown or invalid option specified !"
echo
fi
echo "Usage: $SCRIPT 'branch' 'version'"
echo
echo "branch : Main branch (eg. 6.x)"
echo "version: Full version tag (eg. 6.6.1)"
echo
}
doEchoStep() {
NOW=$(date +"%Y/%m/%d %H:%M:%S")
echo "### $NOW - $1"
}
# Download
doDownload() {
if [ -d $WORKDIR ]; then
doEchoStep "$BRANCH/$VERSION already present (don't download)"
else
mkdir -p $WORKDIR
cd $WORKDIR
doEchoStep "Download branch '$BRANCH' version '$VERSION'"
wget --inet4-only https://cdn.kernel.org/pub/linux/kernel/v$BRANCH/linux-$VERSION.tar.sign
wget --inet4-only https://cdn.kernel.org/pub/linux/kernel/v$BRANCH/linux-$VERSION.tar.xz
doSync
result=$?
if [ ! result==0 ]; then
echo ">>> Error in download !"
exit 1
fi
fi
}
# Uncompress
doUncompress() {
cd $WORKDIR
doEchoStep "Uncompress"
rm -rf linux-$VERSION
tar -xaf linux-$VERSION.tar.xz
result=$?
if [ ! result==0 ]; then
echo ">>> Error in uncompress !"
exit 1
fi
doSync
}
# Clean folder
doCleanup() {
cd $WORKDIR
doEchoStep "Cleanup"
if [ "$CLANG" == "1" ]; then
make -j$(nproc) LLVM=1 CC="ccache clang" mrproper
else
make -j$(nproc) CC="ccache gcc" mrproper
fi
result=$?
if [ ! result==0 ]; then
echo ">>> Error in cleanup !"
exit 1
fi
}
# Copy .config from cloud kernel
doConfigCloud() {
cd $WORKDIR
doEchoStep "Copy cloud kernel .config"
cp $CURRENT/config-cloud-amd64 .config
result=$?
if [ ! result==0 ]; then
echo ">>> Error in cloud kernel .config copy!"
exit 1
fi
cp .config .config.1.cloudconfig
}
# Generate .config from old kernel
doOldOne() {
cd $WORKDIR
doEchoStep "Generate config from old kernel .config"
if [ "$CLANG" == "1" ]; then
make -j$(nproc) LLVM=1 CC="ccache clang" olddefconfig
else
make -j$(nproc) CC="ccache gcc" olddefconfig
fi
result=$?
if [ ! result==0 ]; then
echo ">>> Error in generate .config !"
exit 1
fi
cp .config .config.2.olddefconfig
}
# Define all modules not included in kernel
doAllMods() {
cd $WORKDIR
# doEchoStep "Set all modules to be 'module'"
# if [ "$CLANG" == "1" ]; then
# make -j$(nproc) LLVM=1 CC="ccache clang" allmodconfig
# else
# make -j$(nproc) CC="ccache gcc" allmodconfig
# fi
# result=$?
# if [ ! result==0 ]; then
# echo ">>> Error in set all modules not in kernel !"
# exit 1
# fi
# cp .config .config.3.allmodconfig
}
# Define permissions (user/group) to first user created (default 1000)
doPermissions() {
cd $WORKDIR
doEchoStep "Define user/group"
chown -R 1000:1000 $CURRENT/$BRANCH/$VERSION/.
result=$?
if [ ! result==0 ]; then
echo ">>> Error in chown !"
exit 1
fi
doSync
}
# Strip signature
doStripSig() {
cd $WORKDIR
doEchoStep "Remove signature/keys"
./scripts/config --disable MODULE_SIG_ALL
./scripts/config --set-str CONFIG_MODULE_SIG_KEY ""
./scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEY ""
./scripts/config --set-str CONFIG_SYSTEM_REVOCATION_KEYS ""
result=$?
if [ ! result==0 ]; then
echo ">>> Error in chown !"
exit 1
fi
cp .config .config.7.stripsigskeys
}
# Strip debug informations
doStripDebug() {
cd $WORKDIR
doEchoStep "Remove debug informations"
./scripts/config --disable DEBUG_INFO
./scripts/config --enable DEBUG_INFO_NONE
result=$?
if [ ! result==0 ]; then
echo ">>> Error in chown !"
exit 1
fi
cp .config .config.8.stripdebug
}
# Generate defaults options for this kernel
doDefaultsDisable() {
doEchoStep "Options: disable"
./scripts/config --disable CONFIG_ACCESSIBILITY
./scripts/config --disable CONFIG_ACORN_PARTITION
./scripts/config --disable CONFIG_ACPI_DEBUG
./scripts/config --disable CONFIG_ACPI_DEBUGGER
./scripts/config --disable CONFIG_ACPI_EC_DEBUGFS
./scripts/config --disable CONFIG_ACRN_GUEST
./scripts/config --disable CONFIG_AF_RXRPC
./scripts/config --disable CONFIG_AIX_PARTITION
./scripts/config --disable CONFIG_AMD_IOMMU
./scripts/config --disable CONFIG_AMIGA_PARTITION
./scripts/config --disable CONFIG_APPLE_DART
./scripts/config --disable CONFIG_APPLE_PROPERTIES
./scripts/config --disable CONFIG_ARCH_MEMORY_PROBE
./scripts/config --disable CONFIG_ARM_INTEGRATOR_LM
./scripts/config --disable CONFIG_ARM_SCMI_PROTOCOL
./scripts/config --disable CONFIG_ARM_SCPI_PROTOCOL
./scripts/config --disable CONFIG_ARM_SMMU
./scripts/config --disable CONFIG_ATA_OVER_ETH
./scripts/config --disable CONFIG_ATARI_PARTITION
./scripts/config --disable CONFIG_ATM_DRIVERS
./scripts/config --disable CONFIG_BFQ_CGROUP_DEBUG
./scripts/config --disable CONFIG_BLK_CGROUP_IOLATENCY
./scripts/config --disable CONFIG_BLK_DEBUG_FS
./scripts/config --disable CONFIG_BLK_DEV_BSGLIB
./scripts/config --disable CONFIG_BLK_DEV_INTEGRITY
./scripts/config --disable CONFIG_BLK_DEV_THROTTLING_LOW
./scripts/config --disable CONFIG_BLK_DEV_ZONED
./scripts/config --disable CONFIG_BSD_DISKLABEL
./scripts/config --disable CONFIG_BT
./scripts/config --disable CONFIG_BTRFS_ASSERT
./scripts/config --disable CONFIG_BTRFS_DEBUG
./scripts/config --disable CONFIG_BTRFS_FS
./scripts/config --disable CONFIG_BTRFS_FS_CHECK_INTEGRITY
./scripts/config --disable CONFIG_BTRFS_FS_REF_VERIFY
./scripts/config --disable CONFIG_BTRFS_FS_RUN_SANITY_TESTS
./scripts/config --disable CONFIG_CACHEFILES_DEBUG
./scripts/config --disable CONFIG_CACHEFILES_ONDEMAND
./scripts/config --disable CONFIG_CAIF
./scripts/config --disable CONFIG_CAN
./scripts/config --disable CONFIG_CDROM_PKTCDVD
./scripts/config --disable CONFIG_CEPH_LIB
./scripts/config --disable CONFIG_CFG80211
./scripts/config --disable CONFIG_CGROUP_DEBUG
./scripts/config --disable CONFIG_CIFS_DEBUG
./scripts/config --disable CONFIG_CMA
./scripts/config --disable CONFIG_CMA_DEBUG
./scripts/config --disable CONFIG_CMA_DEBUGFS
./scripts/config --disable CONFIG_CMA_SYSFS
./scripts/config --disable CONFIG_COMPAT_VDSO
./scripts/config --disable CONFIG_COMPILE_TEST
./scripts/config --disable CONFIG_CPA_DEBUG
./scripts/config --disable CONFIG_CPU_SRSO
./scripts/config --disable CONFIG_CPU_SUP_AMD
./scripts/config --disable CONFIG_CPU_SUP_CENTAUR
./scripts/config --disable CONFIG_CPU_SUP_HYGON
./scripts/config --disable CONFIG_CPU_SUP_ZHAOXIN
./scripts/config --disable CONFIG_CRASH_DUMP
./scripts/config --disable CONFIG_DAMON
./scripts/config --disable CONFIG_DEBUG_BOOT_PARAMS
./scripts/config --disable CONFIG_DEBUG_CGROUP_REF
./scripts/config --disable CONFIG_DEBUG_CREDENTIALS
./scripts/config --disable CONFIG_DEBUG_DEVRES
./scripts/config --disable CONFIG_DEBUG_DRIVER
./scripts/config --disable CONFIG_DEBUG_ENTRY
./scripts/config --disable CONFIG_DEBUG_KERNEL
./scripts/config --disable CONFIG_DEBUG_KOBJECT
./scripts/config --disable CONFIG_DEBUG_KOBJECT_RELEASE
./scripts/config --disable CONFIG_DEBUG_LIST
./scripts/config --disable CONFIG_DEBUG_MAPLE_TREE
./scripts/config --disable CONFIG_DEBUG_MISC
./scripts/config --disable CONFIG_DEBUG_NMI_SELFTEST
./scripts/config --disable CONFIG_DEBUG_NOTIFIERS
./scripts/config --disable CONFIG_DEBUG_PERF_USE_VMALLOC
./scripts/config --disable CONFIG_DEBUG_PLIST
./scripts/config --disable CONFIG_DEBUG_PREEMPT
./scripts/config --disable CONFIG_DEBUG_RSEQ
./scripts/config --disable CONFIG_DEBUG_SG
./scripts/config --disable CONFIG_DEBUG_SHIRQ
./scripts/config --disable CONFIG_DEBUG_TEST_DRIVER_REMOVE
./scripts/config --disable CONFIG_DEBUG_TIMEKEEPING
./scripts/config --disable CONFIG_DEBUG_TLBFLUSH
./scripts/config --disable CONFIG_DEBUG_WQ_FORCE_RR_CPU
./scripts/config --disable CONFIG_DRM_AMDGPU
./scripts/config --disable CONFIG_DRM_HDLCD
./scripts/config --disable CONFIG_DRM_KOMEDA
./scripts/config --disable CONFIG_DRM_LEGACY
./scripts/config --disable CONFIG_DRM_MALI_DISPLAY
./scripts/config --disable CONFIG_DRM_RADEON
./scripts/config --disable CONFIG_DVB_DUMMY_FE
./scripts/config --disable CONFIG_DVB_MMAP
./scripts/config --disable CONFIG_EARLY_PRINTK
./scripts/config --disable CONFIG_EDD
./scripts/config --disable CONFIG_EFI_FAKE_MEMMAP
./scripts/config --disable CONFIG_EFI_MIXED
./scripts/config --disable CONFIG_EFI_PGT_DUMP
./scripts/config --disable CONFIG_EISA
./scripts/config --disable CONFIG_EXT2_FS
./scripts/config --disable CONFIG_EXT3_FS
./scripts/config --disable CONFIG_EXT4_DEBUG
./scripts/config --disable CONFIG_EXT4_KUNIT_TESTS
./scripts/config --disable CONFIG_F2FS_FS
./scripts/config --disable CONFIG_FAT_KUNIT_TEST
./scripts/config --disable CONFIG_FAULT_INJECTION
./scripts/config --disable CONFIG_FDDI
./scripts/config --disable CONFIG_FIREWIRE
./scripts/config --disable CONFIG_FIREWIRE_NOSY
./scripts/config --disable CONFIG_FS_DAX
./scripts/config --disable CONFIG_FSCACHE_DEBUG
./scripts/config --disable CONFIG_FTRACE
./scripts/config --disable CONFIG_FUJITSU_ES
./scripts/config --disable CONFIG_FUNCTION_ERROR_INJECTION
./scripts/config --disable CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT
./scripts/config --disable CONFIG_GCOV_KERNEL
./scripts/config --disable CONFIG_GENERIC_IRQ_DEBUGFS
./scripts/config --disable CONFIG_GENERIC_IRQ_DEBUGFS
./scripts/config --disable CONFIG_GFS2_FS
./scripts/config --disable CONFIG_GNSS
./scripts/config --disable CONFIG_GOOGLE_FIRMWARE
./scripts/config --disable CONFIG_HAMRADIO
./scripts/config --disable CONFIG_HIBERNATION
./scripts/config --disable CONFIG_HIPPI
./scripts/config --disable CONFIG_HOTPLUG_PCI
./scripts/config --disable CONFIG_HYPERV_NET
./scripts/config --disable CONFIG_HYPERV_TESTING
./scripts/config --disable CONFIG_IOSF_MBI
./scripts/config --disable CONFIG_IOSF_MBI_DEBUG
./scripts/config --disable CONFIG_IRQ_TIME_ACCOUNTING
./scripts/config --disable CONFIG_ISA_BUS
./scripts/config --disable CONFIG_ISDN
./scripts/config --disable CONFIG_JBD2_DEBUG
./scripts/config --disable CONFIG_JFS_FS
./scripts/config --disable CONFIG_KARMA_PARTITION
./scripts/config --disable CONFIG_KCOV
./scripts/config --disable CONFIG_KEXEC_BZIMAGE_VERIFY_SIG
./scripts/config --disable CONFIG_KEXEC_SIG
./scripts/config --disable CONFIG_KEXEC_SIG_FORCE
./scripts/config --disable CONFIG_KVM_PROVE_MMU
./scripts/config --disable CONFIG_KVM_XEN
./scripts/config --disable CONFIG_LDM_PARTITION
./scripts/config --disable CONFIG_LIB80211_DEBUG
./scripts/config --disable CONFIG_LOCK_EVENT_COUNTS
./scripts/config --disable CONFIG_LRU_GEN_STATS
./scripts/config --disable CONFIG_MAC_PARTITION
./scripts/config --disable CONFIG_MAC80211
./scripts/config --disable CONFIG_MACINTOSH_DRIVERS
./scripts/config --disable CONFIG_MEDIA_CONTROLLER_DVB
./scripts/config --disable CONFIG_MEMORY_FAILURE
./scripts/config --disable CONFIG_MEMTEST
./scripts/config --disable CONFIG_MICROCODE_LATE_LOADING
./scripts/config --disable CONFIG_MINIX_SUBPARTITION
./scripts/config --disable CONFIG_MODIFY_LDT_SYSCALL
./scripts/config --disable CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
./scripts/config --disable CONFIG_MODULE_DEBUG
./scripts/config --disable CONFIG_MODULE_FORCE_LOAD
./scripts/config --disable CONFIG_MODULE_FORCE_UNLOAD
./scripts/config --disable CONFIG_MODULE_SIG
./scripts/config --disable CONFIG_MODULE_SRCVERSION_ALL
./scripts/config --disable CONFIG_MODULE_UNLOAD_TAINT_TRACKING
./scripts/config --disable CONFIG_MODVERSIONS
./scripts/config --disable CONFIG_NET_9P
./scripts/config --disable CONFIG_NET_SB1000
./scripts/config --disable CONFIG_NETDEVSIM
./scripts/config --disable CONFIG_NFC
./scripts/config --disable CONFIG_NILFS2_FS
./scripts/config --disable CONFIG_NO_HZ
./scripts/config --disable CONFIG_NTFS_DEBUG
./scripts/config --disable CONFIG_NTFS3_64BIT_CLUSTER
./scripts/config --disable CONFIG_OCFS2_FS
./scripts/config --disable CONFIG_OSF_PARTITION
./scripts/config --disable CONFIG_PAGE_POOL_STATS
./scripts/config --disable CONFIG_PARAVIRT_DEBUG
./scripts/config --disable CONFIG_PARAVIRT_TIME_ACCOUNTING
./scripts/config --disable CONFIG_PARPORT
./scripts/config --disable CONFIG_PCCARD
./scripts/config --disable CONFIG_PCI_CNB20LE_QUIRK
./scripts/config --disable CONFIG_PCI_DEBUG
./scripts/config --disable CONFIG_PCI_EPF_TEST
./scripts/config --disable CONFIG_PCI_P2PDMA
./scripts/config --disable CONFIG_PCI_PF_STUB
./scripts/config --disable CONFIG_PCI_STUB
./scripts/config --disable CONFIG_PCIE_ECRC
./scripts/config --disable CONFIG_PCIEAER_INJECT
./scripts/config --disable CONFIG_PERF_EVENTS_AMD_UNCORE
./scripts/config --disable CONFIG_PM_DEBUG
./scripts/config --disable CONFIG_PPS
./scripts/config --disable CONFIG_PROVE_RCU_LIST
./scripts/config --disable CONFIG_PROVIDE_OHCI1394_DMA_INIT
./scripts/config --disable CONFIG_PSE_CONTROLLER
./scripts/config --disable CONFIG_PUNIT_ATOM_DEBUG
./scripts/config --disable CONFIG_QCOM_IPA
./scripts/config --disable CONFIG_QFMT_V1
./scripts/config --disable CONFIG_QFMT_V2
./scripts/config --disable CONFIG_QUOTA_DEBUG
./scripts/config --disable CONFIG_RADIO_ADAPTERS
./scripts/config --disable CONFIG_RAPIDIO
./scripts/config --disable CONFIG_RCU_CPU_STALL_CPUTIME
./scripts/config --disable CONFIG_RCU_EQS_DEBUG
./scripts/config --disable CONFIG_RCU_STRICT_GRACE_PERIOD
./scripts/config --disable CONFIG_RCU_TRACE
./scripts/config --disable CONFIG_READ_ONLY_THP_FOR_FS
./scripts/config --disable CONFIG_REISERFS_FS
./scripts/config --disable CONFIG_RFKILL
./scripts/config --disable CONFIG_SAMPLES
./scripts/config --disable CONFIG_SECCOMP_CACHE_DEBUG
./scripts/config --disable CONFIG_SGI_PARTITION
./scripts/config --disable CONFIG_SMS_SIANO_DEBUGFS
./scripts/config --disable CONFIG_SOLARIS_X86_PARTITION
./scripts/config --disable CONFIG_STRICT_SIGALTSTACK_SIZE
./scripts/config --disable CONFIG_SUN_PARTITION
./scripts/config --disable CONFIG_SYSV68_PARTITION
./scripts/config --disable CONFIG_TEST_ASYNC_DRIVER_PROBE
./scripts/config --disable CONFIG_TIME_KUNIT_TEST
./scripts/config --disable CONFIG_TIME_KUNIT_TEST
./scripts/config --disable CONFIG_ULTRIX_PARTITION
./scripts/config --disable CONFIG_UNIXWARE_DISKLABEL
./scripts/config --disable CONFIG_USB4_NET
./scripts/config --disable CONFIG_USELIB
./scripts/config --disable CONFIG_VMXNET3
./scripts/config --disable CONFIG_WAN
./scripts/config --disable CONFIG_WARN_ABI_ERRORS
./scripts/config --disable CONFIG_WARN_ALL_UNSEEDED_RANDOM
./scripts/config --disable CONFIG_WARN_MISSING_DOCUMENTS
./scripts/config --disable CONFIG_WLAN
./scripts/config --disable CONFIG_WQ_POWER_EFFICIENT_DEFAULT
./scripts/config --disable CONFIG_WWAN
./scripts/config --disable CONFIG_X86_16BIT
./scripts/config --disable CONFIG_X86_5LEVEL
./scripts/config --disable CONFIG_X86_AMD_PLATFORM_DEVICE
./scripts/config --disable CONFIG_X86_AMD_PSTATE
./scripts/config --disable CONFIG_X86_AMD_PSTATE_UT
./scripts/config --disable CONFIG_X86_CHECK_BIOS_CORRUPTION
./scripts/config --disable CONFIG_X86_CPU_RESCTRL
./scripts/config --disable CONFIG_X86_DEBUG_FPU
./scripts/config --disable CONFIG_X86_EXTENDED_PLATFORM
./scripts/config --disable CONFIG_X86_GOLDFISH
./scripts/config --disable CONFIG_X86_INTEL_LPSS
./scripts/config --disable CONFIG_X86_INTEL_MID
./scripts/config --disable CONFIG_X86_IOPL_IOPERM
./scripts/config --disable CONFIG_X86_MCE_INJECT
./scripts/config --disable CONFIG_X86_MCELOG_LEGACY
./scripts/config --disable CONFIG_X86_MPPARSE
./scripts/config --disable CONFIG_X86_P4_CLOCKMOD
./scripts/config --disable CONFIG_X86_POWERNOW_K8
./scripts/config --disable CONFIG_X86_SPEEDSTEP_CENTRINO
./scripts/config --disable CONFIG_X86_VSYSCALL_EMULATION
./scripts/config --disable CONFIG_X86_X2APIC
./scripts/config --disable CONFIG_XEN
./scripts/config --disable CONFIG_XFS_ASSERT_FATAL
./scripts/config --disable CONFIG_XFS_DEBUG
./scripts/config --disable CONFIG_XFS_ONLINE_REPAIR
./scripts/config --disable CONFIG_XFS_ONLINE_SCRUB
./scripts/config --disable CONFIG_XFS_ONLINE_SCRUB_STATS
./scripts/config --disable CONFIG_XFS_QUOTA
./scripts/config --disable CONFIG_XFS_RT
./scripts/config --disable CONFIG_XFS_SUPPORT_ASCII_CI
./scripts/config --disable CONFIG_XFS_SUPPORT_V4
./scripts/config --disable USB_NET_DRIVER
./scripts/config --disable WIRELESS
./scripts/config --disable CONFIG_MODULE_SIG
./scripts/config --disable CONFIG_KERNEL_GZIP
./scripts/config --disable CONFIG_KERNEL_BZIP2
./scripts/config --disable CONFIG_KERNEL_LZMA
./scripts/config --disable CONFIG_KERNEL_LZO
./scripts/config --disable CONFIG_KERNEL_LZ4
./scripts/config --disable CONFIG_KERNEL_ZSTD
./scripts/config --disable CONFIG_NET_VENDOR_AMAZON
./scripts/config --disable CONFIG_NET_VENDOR_ASIX
./scripts/config --disable CONFIG_NET_VENDOR_CORTINA
./scripts/config --disable CONFIG_NET_VENDOR_DAVICOM
./scripts/config --disable CONFIG_NET_VENDOR_ENGLEDER
./scripts/config --disable CONFIG_NET_VENDOR_FUNGIBLE
./scripts/config --disable CONFIG_NET_VENDOR_GOOGLE
./scripts/config --disable CONFIG_GVE
./scripts/config --disable CONFIG_NET_VENDOR_LITEX
./scripts/config --disable CONFIG_NET_VENDOR_MELLANOX
./scripts/config --disable CONFIG_MLX4_EN
./scripts/config --disable CONFIG_MLX4_DEBUG
./scripts/config --disable CONFIG_MLX4_CORE_GEN2
./scripts/config --disable CONFIG_MLX5_CORE
./scripts/config --disable CONFIG_MLXFW
./scripts/config --disable CONFIG_NET_VENDOR_MICROSEMI
./scripts/config --disable CONFIG_NET_VENDOR_MICROSOFT
./scripts/config --disable CONFIG_MICROSOFT_MANA
./scripts/config --disable CONFIG_NET_VENDOR_NI
./scripts/config --disable CONFIG_NET_VENDOR_PENSANDO
./scripts/config --disable CONFIG_NET_VENDOR_SOCIONEXT
./scripts/config --disable CONFIG_NET_VENDOR_VERTEXCOM
./scripts/config --disable CONFIG_NET_VENDOR_WANGXUN
./scripts/config --disable CONFIG_NET_VENDOR_XILINX
./scripts/config --disable CONFIG_WLAN
./scripts/config --disable CONFIG_PPS
./scripts/config --disable CONFIG_INFINIBAND
./scripts/config --disable CONFIG_COMEDI
./scripts/config --disable CONFIG_SURFACE_PLATFORMS
./scripts/config --disable CONFIG_SOUNDWIRE
./scripts/config --disable CONFIG_DEBUG_KERNEL
./scripts/config --disable CONFIG_PREEMPT_VOLUNTARY
./scripts/config --disable CONFIG_HZ_250
./scripts/config --disable CONFIG_HZ_300
./scripts/config --disable CONFIG_HZ_1000
./scripts/config --disable CONFIG_CPU_IBRS_ENTRY
./scripts/config --disable CONFIG_GDS_FORCE_MITIGATION
./scripts/config --disable CONFIG_SPECULATION_MITIGATIONS
./scripts/config --disable CONFIG_VIRT_CPU_ACCOUNTING_GEN
./scripts/config --disable CONFIG_IRQ_TIME_ACCOUNTING
./scripts/config --disable CONFIG_TASKSTATS
./scripts/config --disable CONFIG_PSI
./scripts/config --disable CONFIG_RCU_NOCB_CPU
./scripts/config --disable CONFIG_KALLSYMS
./scripts/config --disable CONFIG_KALLSYMS_ALL
./scripts/config --disable CONFIG_SCHED_MC
./scripts/config --disable CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS
./scripts/config --disable CONFIG_SPECULATION_MITIGATIONS
./scripts/config --disable CONFIG_PAGE_TABLE_ISOLATION
./scripts/config --disable CONFIG_RETPOLINE
./scripts/config --disable CONFIG_CPU_IBRS_ENTRY
./scripts/config --disable CONFIG_GDS_FORCE_MITIGATION
./scripts/config --disable CONFIG_INIT_ON_ALLOC_DEFAULT_ON
./scripts/config --disable CONFIG_LIST_HARDENED
./scripts/config --disable CONFIG_BUG_ON_DATA_CORRUPTION
./scripts/config --disable CONFIG_CALL_THUNKS_DEBUG
./scripts/config --disable CONFIG_KPROBES
./scripts/config --disable CONFIG_IPV6
./scripts/config --disable WIRELESS
./scripts/config --disable CONFIG_SLUB_DEBUG
}
doDefaultsEnable() {
doEchoStep "Options: enable"
./scripts/config --enable CONFIG_ADDRESS_MASKING
./scripts/config --enable CONFIG_AF_KCM
./scripts/config --enable CONFIG_AF_KCM
./scripts/config --enable CONFIG_ARCH_CPUIDLE_HALTPOLL
./scripts/config --enable CONFIG_BINFMT_MISC
./scripts/config --enable CONFIG_BINFMT_SCRIPT
./scripts/config --enable CONFIG_BLK_CGROUP
./scripts/config --enable CONFIG_BLK_DEV
./scripts/config --enable CONFIG_BLK_DEV_INITRD
./scripts/config --enable CONFIG_BLK_WBT
./scripts/config --enable CONFIG_BOOT_CONFIG
./scripts/config --enable CONFIG_BPF_JIT
./scripts/config --enable CONFIG_BPF_SYSCALL
./scripts/config --enable CONFIG_BSD_PROCESS_ACCT
./scripts/config --enable CONFIG_CALL_DEPTH_TRACKING
./scripts/config --enable CONFIG_CGROUP_CPUACCT
./scripts/config --enable CONFIG_CGROUP_DEVICE
./scripts/config --enable CONFIG_CGROUP_MISC
./scripts/config --enable CONFIG_CGROUP_NET_CLASSID
./scripts/config --enable CONFIG_CGROUP_NET_PRIO
./scripts/config --enable CONFIG_CGROUP_PIDS
./scripts/config --enable CONFIG_CGROUP_RDMA
./scripts/config --enable CONFIG_CGROUP_SCHED
./scripts/config --enable CONFIG_CGROUPS
./scripts/config --enable CONFIG_CIFS
./scripts/config --enable CONFIG_CIFS_ALLOW_INSECURE_LEGACY
./scripts/config --enable CONFIG_CIFS_DFS_UPCALL
./scripts/config --enable CONFIG_CIFS_STATS2
./scripts/config --enable CONFIG_CIFS_SWN_UPCALL
./scripts/config --enable CONFIG_COMPAT_32BIT_TIME
./scripts/config --enable CONFIG_CONFIGFS_FS
./scripts/config --enable CONFIG_CPU_FREQ
./scripts/config --enable CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND
./scripts/config --enable CONFIG_CPU_FREQ_GOV_CONSERVATIVE
./scripts/config --enable CONFIG_CPU_FREQ_GOV_ONDEMAND
./scripts/config --enable CONFIG_CPU_FREQ_GOV_PERFORMANCE
./scripts/config --enable CONFIG_CPU_FREQ_GOV_POWERSAVE
./scripts/config --enable CONFIG_CPU_FREQ_GOV_USERSPACE
./scripts/config --enable CONFIG_CPU_IBPB_ENTRY
./scripts/config --enable CONFIG_CPU_IBRS_ENTRY
./scripts/config --enable CONFIG_CPU_UNRET_ENTRY
./scripts/config --enable CONFIG_DEVTMPFS
./scripts/config --enable CONFIG_DRM_VIRTIO_GPU
./scripts/config --enable CONFIG_DRM_VIRTIO_GPU_KMS
./scripts/config --enable CONFIG_EFI
./scripts/config --enable CONFIG_EFI_BOOTLOADER_CONTROL
./scripts/config --enable CONFIG_EFI_MIXED
./scripts/config --enable CONFIG_EFI_PARTITION
./scripts/config --enable CONFIG_EFI_VARS_PSTORE
./scripts/config --enable CONFIG_EFIVAR_FS
./scripts/config --enable CONFIG_ETHERNET
./scripts/config --enable CONFIG_ETHTOOL_NETLINK
./scripts/config --enable CONFIG_ETHTOOL_NETLINK
./scripts/config --enable CONFIG_EXT2_FS
./scripts/config --enable CONFIG_EXT4_FS
./scripts/config --enable CONFIG_EXT4_USE_FOR_EXT2
./scripts/config --enable CONFIG_FANOTIFY
./scripts/config --enable CONFIG_FORTIFY_SOURCE
./scripts/config --enable CONFIG_GDS_FORCE_MITIGATION
./scripts/config --enable CONFIG_HANGCHECK_TIMER
./scripts/config --enable CONFIG_HARDENED_USERCOPY
./scripts/config --enable CONFIG_HIGH_RES_TIMERS
./scripts/config --enable CONFIG_HYPERVISOR_GUEST
./scripts/config --enable CONFIG_IA32_EMULATION
./scripts/config --enable CONFIG_IKCONFIG
./scripts/config --enable CONFIG_IKCONFIG_PROC
./scripts/config --enable CONFIG_IKHEADERS
./scripts/config --enable CONFIG_INET
./scripts/config --enable CONFIG_INET_AH
./scripts/config --enable CONFIG_INET_ESP
./scripts/config --enable CONFIG_INET_IPCOMP
./scripts/config --enable CONFIG_INET_RAW_DIAG
./scripts/config --enable CONFIG_INET_UDP_DIAG
./scripts/config --enable CONFIG_INET6_AH
./scripts/config --enable CONFIG_INET6_ESP
./scripts/config --enable CONFIG_INET6_IPCOMP
./scripts/config --enable CONFIG_INTEL_HFI_THERMAL
./scripts/config --enable CONFIG_INTEL_IDLE
./scripts/config --enable CONFIG_INTEL_POWERCLAMP
./scripts/config --enable CONFIG_INTEL_RST
./scripts/config --enable CONFIG_IOMMU_SUPPORT
./scripts/config --enable CONFIG_IOSCHED_BFQ
./scripts/config --enable CONFIG_IP_NF_ARPTABLES
./scripts/config --enable CONFIG_IP_NF_IPTABLES
./scripts/config --enable CONFIG_IP6_NF_IPTABLES
./scripts/config --enable CONFIG_IPV6
./scripts/config --enable CONFIG_IPV6_VTI
./scripts/config --enable CONFIG_JUMP_LABEL
./scripts/config --enable CONFIG_KERNEL_XZ
./scripts/config --enable CONFIG_KVM
./scripts/config --enable CONFIG_KVM_INTEL
./scripts/config --enable CONFIG_LOCALVERSION_AUTO
./scripts/config --enable CONFIG_LRU_GEN
./scripts/config --enable CONFIG_LRU_GEN_ENABLED
./scripts/config --enable CONFIG_MEDIA_SUBDRV_AUTOSELECT
./scripts/config --enable CONFIG_MEDIA_SUPPORT
./scripts/config --enable CONFIG_MEDIA_SUPPORT_FILTER
./scripts/config --enable CONFIG_MEMCG
./scripts/config --enable CONFIG_MODULE_COMPRESS_NONE
./scripts/config --enable CONFIG_MODULE_FORCE_LOAD
./scripts/config --enable CONFIG_MODULE_UNLOAD
./scripts/config --enable CONFIG_MODULES
./scripts/config --enable CONFIG_MQ_IOSCHED_DEADLINE
./scripts/config --enable CONFIG_MQ_IOSCHED_KYBER
./scripts/config --enable CONFIG_MSDOS_PARTITION
./scripts/config --enable CONFIG_NET
./scripts/config --enable CONFIG_NET_CLS_BPF
./scripts/config --enable CONFIG_NET_CLS_CGROUP
./scripts/config --enable CONFIG_NET_CLS_FLOWER
./scripts/config --enable CONFIG_NET_CLS_FW
./scripts/config --enable CONFIG_NET_CLS_ROUTE4
./scripts/config --enable CONFIG_NET_CORE
./scripts/config --enable CONFIG_NET_FOU
./scripts/config --enable CONFIG_NET_FOU_IP_TUNNELS
./scripts/config --enable CONFIG_NET_IPVTI
./scripts/config --enable CONFIG_NET_SCH_CBS
./scripts/config --enable CONFIG_NET_SCH_ETF
./scripts/config --enable CONFIG_NET_SCH_GRED
./scripts/config --enable CONFIG_NET_SCH_HFSC
./scripts/config --enable CONFIG_NET_SCH_HHF
./scripts/config --enable CONFIG_NET_SCH_HTB
./scripts/config --enable CONFIG_NET_SCH_PRIO
./scripts/config --enable CONFIG_NET_SCH_RED
./scripts/config --enable CONFIG_NET_SCH_SFB
./scripts/config --enable CONFIG_NET_SCH_SFQ
./scripts/config --enable CONFIG_NET_SCH_TAPRIO
./scripts/config --enable CONFIG_NET_SCH_TBF
./scripts/config --enable CONFIG_NET_SCH_TEQL
./scripts/config --enable CONFIG_NET_SCHED
./scripts/config --enable CONFIG_NETDEVICES
./scripts/config --enable CONFIG_NETFILTER
./scripts/config --enable CONFIG_NETFILTER_XTABLES
./scripts/config --enable CONFIG_NETLINK_DIAG
./scripts/config --enable CONFIG_NETWORK_FILESYSTEMS
./scripts/config --enable CONFIG_NF_SOCKET_IPV4
./scripts/config --enable CONFIG_NF_SOCKET_IPV6
./scripts/config --enable CONFIG_NF_TABLES
./scripts/config --enable CONFIG_PACKET
./scripts/config --enable CONFIG_PACKET_DIAG
./scripts/config --enable CONFIG_PAGE_REPORTING
./scripts/config --enable CONFIG_PAGE_TABLE_ISOLATION
./scripts/config --enable CONFIG_PARAVIRT
./scripts/config --enable CONFIG_PARTITION_ADVANCED
./scripts/config --enable CONFIG_PCI
./scripts/config --enable CONFIG_PCI_IOV
./scripts/config --enable CONFIG_PCI_PASID
./scripts/config --enable CONFIG_PCI_PRI
./scripts/config --enable CONFIG_PCIE_BUS_PERFORMANCE
./scripts/config --enable CONFIG_PCIEASPM
./scripts/config --enable CONFIG_PM_AUTOSLEEP
./scripts/config --enable CONFIG_PNP
./scripts/config --enable CONFIG_PROC_KCORE
./scripts/config --enable CONFIG_PSAMPLE
./scripts/config --enable CONFIG_PVH
./scripts/config --enable CONFIG_PVPANIC
./scripts/config --enable CONFIG_RCU_BOOST
./scripts/config --enable CONFIG_RCU_EXPERT
./scripts/config --enable CONFIG_RETHUNK
./scripts/config --enable CONFIG_RETPOLINE
./scripts/config --enable CONFIG_SCHED_AUTOGROUP
./scripts/config --enable CONFIG_SHUFFLE_PAGE_ALLOCATOR
./scripts/config --enable CONFIG_SLS
./scripts/config --enable CONFIG_SMB_SERVER
./scripts/config --enable CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN
./scripts/config --enable CONFIG_SPECULATION_MITIGATIONS
./scripts/config --enable CONFIG_SYN_COOKIES
./scripts/config --enable CONFIG_SYSFB_SIMPLEFB
./scripts/config --enable CONFIG_SYSVIPC
./scripts/config --enable CONFIG_TCP_CONG_ADVANCED
./scripts/config --enable CONFIG_TCP_CONG_BBR
./scripts/config --enable CONFIG_TMPFS
./scripts/config --enable CONFIG_TRANSPARENT_HUGEPAGE
./scripts/config --enable CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS
./scripts/config --enable CONFIG_UNIX
./scripts/config --enable CONFIG_VGA_ARB
./scripts/config --enable CONFIG_VHOST_NET
./scripts/config --enable CONFIG_VIRT_DRIVERS
./scripts/config --enable CONFIG_VIRTIO_BLK
./scripts/config --enable CONFIG_VIRTIO_CONSOLE
./scripts/config --enable CONFIG_VIRTIO_IOMMU
./scripts/config --enable CONFIG_VIRTUALIZATION
./scripts/config --enable CONFIG_VMGENID
./scripts/config --enable CONFIG_WATCH_QUEUE
./scripts/config --enable CONFIG_WLAN
./scripts/config --enable CONFIG_X86_ACPI_CPUFREQ
./scripts/config --enable CONFIG_X86_CPUID
./scripts/config --enable CONFIG_X86_INTEL_PSTATE
./scripts/config --enable CONFIG_X86_INTEL_TSX_MODE_AUTO
./scripts/config --enable CONFIG_X86_MSR
./scripts/config --enable CONFIG_X86_PKG_TEMP_THERMAL
./scripts/config --enable CONFIG_X86_PLATFORM_DEVICES
./scripts/config --enable CONFIG_X86_PMEM_LEGACY
./scripts/config --enable CONFIG_X86_X32_ABI
./scripts/config --enable CONFIG_ZRAM
./scripts/config --enable DEFAULT_BBR
./scripts/config --enable FAIR_GROUP_SCHED
./scripts/config --enable VIRTIO_MENU
./scripts/config --enable ZRAM_DEF_COMP_ZSTD
./scripts/config --enable CONFIG_WERROR
./scripts/config --enable CONFIG_KERNEL_XZ
./scripts/config --enable CONFIG_EXT4_FS
./scripts/config --enable CONFIG_ATA
./scripts/config --enable CONFIG_ATA_SFF
./scripts/config --enable CONFIG_ATA_BMDMA
./scripts/config --enable CONFIG_ATA_ACPI
./scripts/config --enable CONFIG_SATA_AHCI
./scripts/config --enable CONFIG_SCSI
./scripts/config --enable CONFIG_SCSI_PROC_FS
./scripts/config --enable CONFIG_BLK_DEV_SD
./scripts/config --enable CONFIG_CHR_DEV_SG
./scripts/config --enable CONFIG_SCSI_SAS_ATA
./scripts/config --enable CONFIG_SCSI_VIRTIO
./scripts/config --enable CONFIG_VFIO_VIRQFD
./scripts/config --enable CONFIG_VIRTIO_PCI
./scripts/config --enable CONFIG_VIRTIO_PCI_LEGACY
./scripts/config --enable CONFIG_VIRTIO_PMEM
./scripts/config --enable CONFIG_VIRTIO_BALLOON
./scripts/config --enable CONFIG_VIRTIO_MEM
./scripts/config --enable CONFIG_VIRTIO_INPUT
./scripts/config --enable CONFIG_VIRTIO_MMIO
./scripts/config --enable CONFIG_IOMMU_SUPPORT
./scripts/config --enable CONFIG_INTEL_IOMMU
./scripts/config --enable CONFIG_INTEL_IOMMU_SVM
./scripts/config --enable CONFIG_INTEL_IOMMU_DEFAULT_ON
./scripts/config --enable CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
./scripts/config --enable CONFIG_IRQ_REMAP
./scripts/config --enable CONFIG_HYPERV_IOMMU
./scripts/config --enable CONFIG_VIRTIO_IOMMU
./scripts/config --enable CONFIG_COMPILE_TEST
./scripts/config --enable CONFIG_BPF_JIT_ALWAYS_ON
./scripts/config --enable CONFIG_SCHED_CORE
./scripts/config --enable CONFIG_X86_X2APIC
./scripts/config --enable CONFIG_X86_CPU_RESCTRL
./scripts/config --enable CONFIG_PARAVIRT_SPINLOCKS
./scripts/config --enable CONFIG_PVH
./scripts/config --enable CONFIG_PROCESSOR_SELECT
./scripts/config --enable CONFIG_CPU_SUP_INTEL
./scripts/config --enable CONFIG_X86_5LEVEL
./scripts/config --enable CONFIG_X86_KERNEL_IBT
./scripts/config --enable CONFIG_KVM_PROVE_MMU
./scripts/config --enable CONFIG_TRIM_UNUSED_KSYMS
./scripts/config --enable CONFIG_IXGBEVF
./scripts/config --enable CONFIG_VFIO
./scripts/config --enable CONFIG_CRYPTO_PCRYPT
./scripts/config --enable CONFIG_CRYPTO_CRYPTD
./scripts/config --enable CONFIG_CRYPTO_LZO
./scripts/config --enable CONFIG_CRYPTO_LZ4
./scripts/config --enable CONFIG_CRYPTO_ZSTD
./scripts/config --enable CONFIG_HZ_100
./scripts/config --enable CONFIG_PREEMPT_NONE
./scripts/config --enable CONFIG_INTEL_TDX_HOST
./scripts/config --enable CONFIG_MODULE_COMPRESS_NONE
./scripts/config --enable CONFIG_ZSWAP
./scripts/config --enable CONFIG_ZSWAP_DEFAULT_ON
./scripts/config --enable CONFIG_TRANSPARENT_HUGEPAGE_MADVISE
./scripts/config --enable CONFIG_BTRFS_FS_POSIX_ACL
./scripts/config --enable CONFIG_XFS_POSIX_ACL
./scripts/config --enable CONFIG_CEPH_FS_POSIX_ACL
./scripts/config --enable CONFIG_EROFS_FS_POSIX_ACL
./scripts/config --enable CONFIG_NFS_V3_ACL
./scripts/config --enable CONFIG_NFSD_V3_ACL
./scripts/config --enable CONFIG_NTFS3_FS_POSIX_ACL
./scripts/config --enable CONFIG_TMPFS_POSIX_ACL
./scripts/config --enable CONFIG_EXT4_FS_POSIX_ACL
./scripts/config --enable CONFIG_FS_POSIX_ACL
./scripts/config --enable CONFIG_EXT2_FS_POSIX_ACL
./scripts/config --enable CONFIG_REISERFS_FS_POSIX_ACL
./scripts/config --enable CONFIG_JFS_POSIX_ACL
./scripts/config --enable CONFIG_F2FS_FS_POSIX_ACL
./scripts/config --enable CONFIG_JFFS2_FS_POSIX_ACL
./scripts/config --enable CONFIG_NFSD_V2_ACL
./scripts/config --enable CONFIG_9P_FS_POSIX_ACL
./scripts/config --enable CONFIG_EROFS_FS_XATTR
./scripts/config --enable CONFIG_EVM_ADD_XATTRS
./scripts/config --enable CONFIG_SQUASHFS_XATTR
./scripts/config --enable CONFIG_CIFS_XATTR
./scripts/config --enable CONFIG_TMPFS_XATTR
./scripts/config --enable CONFIG_EXT2_FS_XATTR
./scripts/config --enable CONFIG_EXT4_FS_XATTR
./scripts/config --enable CONFIG_REISERFS_FS_XATTR
./scripts/config --enable CONFIG_F2FS_FS_XATTR
./scripts/config --enable CONFIG_JFFS2_FS_XATTR
./scripts/config --enable CONFIG_UBIFS_FS_XATTR
./scripts/config --enable CONFIG_EXT4_FS_SECURITY
./scripts/config --enable CONFIG_EXT2_FS_SECURITY
./scripts/config --enable CONFIG_REISERFS_FS_SECURITY
./scripts/config --enable CONFIG_JFS_SECURITY
./scripts/config --enable CONFIG_F2FS_FS_SECURITY
./scripts/config --enable CONFIG_JFFS2_FS_SECURITY
./scripts/config --enable CONFIG_UBIFS_FS_SECURITY
./scripts/config --enable CONFIG_EROFS_FS_SECURITY
./scripts/config --enable CONFIG_SECURITYFS
./scripts/config --enable CONFIG_KEYS_REQUEST_CACHE
./scripts/config --enable CONFIG_IMA_READ_POLICY
./scripts/config --enable CONFIG_CRYPTO_ECDH
./scripts/config --enable CONFIG_CRYPTO_ECRDSA
./scripts/config --enable CONFIG_CRYPTO_SM2
./scripts/config --enable CONFIG_CRYPTO_CURVE25519
./scripts/config --enable CONFIG_CRYPTO_AES_TI
./scripts/config --enable CONFIG_CRYPTO_ARIA
./scripts/config --enable CONFIG_CRYPTO_BLOWFISH
./scripts/config --enable CONFIG_CRYPTO_CAMELLIA
./scripts/config --enable CONFIG_CRYPTO_CAST5
./scripts/config --enable CONFIG_CRYPTO_CAST6
./scripts/config --enable CONFIG_CRYPTO_DES
./scripts/config --enable CONFIG_CRYPTO_FCRYPT
./scripts/config --enable CONFIG_CRYPTO_SERPENT
./scripts/config --enable CONFIG_CRYPTO_SM4_GENERIC
./scripts/config --enable CONFIG_CRYPTO_TWOFISH
./scripts/config --enable CONFIG_CRYPTO_ADIANTUM
./scripts/config --enable CONFIG_CRYPTO_CHACHA20
./scripts/config --enable CONFIG_CRYPTO_CFB
./scripts/config --enable CONFIG_CRYPTO_CTS
./scripts/config --enable CONFIG_CRYPTO_HCTR2
./scripts/config --enable CONFIG_CRYPTO_KEYWRAP
./scripts/config --enable CONFIG_CRYPTO_LRW
./scripts/config --enable CONFIG_CRYPTO_OFB
./scripts/config --enable CONFIG_CRYPTO_PCBC
./scripts/config --enable CONFIG_CRYPTO_XTS
./scripts/config --enable CONFIG_CRYPTO_AEGIS128
./scripts/config --enable CONFIG_CRYPTO_CHACHA20POLY1305
./scripts/config --enable CONFIG_CRYPTO_ESSIV
./scripts/config --enable CONFIG_CRYPTO_BLAKE2B
./scripts/config --enable CONFIG_CRYPTO_MD4
./scripts/config --enable CONFIG_CRYPTO_MICHAEL_MIC
./scripts/config --enable CONFIG_CRYPTO_POLY1305
./scripts/config --enable CONFIG_CRYPTO_RMD160
./scripts/config --enable CONFIG_CRYPTO_SM3_GENERIC
./scripts/config --enable CONFIG_CRYPTO_STREEBOG
./scripts/config --enable CONFIG_CRYPTO_VMAC
./scripts/config --enable CONFIG_CRYPTO_WP512
./scripts/config --enable CONFIG_CRYPTO_XCBC
./scripts/config --enable CONFIG_CRYPTO_XXHASH
./scripts/config --enable CONFIG_CRYPTO_CRC32
./scripts/config --enable CONFIG_CRYPTO_LZ4HC
./scripts/config --enable CONFIG_CRYPTO_ANSI_CPRNG
./scripts/config --enable CONFIG_CRYPTO_USER_API_HASH
./scripts/config --enable CONFIG_CRYPTO_USER_API_SKCIPHER
./scripts/config --enable CONFIG_CRYPTO_USER_API_RNG
./scripts/config --enable CONFIG_CRYPTO_USER_API_AEAD
./scripts/config --enable CONFIG_CRYPTO_AES_NI_INTEL
./scripts/config --enable CONFIG_CRYPTO_SHA1_SSSE3
./scripts/config --enable CONFIG_CRYPTO_SHA256_SSSE3
./scripts/config --enable CONFIG_CRYPTO_SHA512_SSSE3
./scripts/config --enable CONFIG_CRYPTO_CRC32C_INTEL
./scripts/config --enable CONFIG_CRYPTO_CRC32_PCLMUL
./scripts/config --enable CONFIG_CRYPTO_LIB_CHACHA
./scripts/config --enable CONFIG_CRYPTO_LIB_CURVE25519
./scripts/config --enable CONFIG_CRYPTO_LIB_POLY1305
./scripts/config --enable CRYPTO_LIB_CHACHA20POLY1305
./scripts/config --enable CONFIG_CRC4
./scripts/config --enable CONFIG_NO_HZ_IDLE
./scripts/config --enable CONFIG_PSI
./scripts/config --enable CONFIG_PARAVIRT_SPINLOCKS
./scripts/config --enable CONFIG_PERF_EVENTS_INTEL_UNCORE
./scripts/config --enable CONFIG_PERF_EVENTS_INTEL_RAPL
./scripts/config --enable CONFIG_PERF_EVENTS_INTEL_CSTATE
./scripts/config --enable CONFIG_X86_CPA_STATISTICS
./scripts/config --enable CONFIG_X86_USER_SHADOW_STACK
./scripts/config --enable CONFIG_LEGACY_VSYSCALL_XONLY
./scripts/config --enable CONFIG_ACPI_FPDT
./scripts/config --enable CONFIG_ACPI_BGRT
./scripts/config --enable CONFIG_ACPI_NFIT
./scripts/config --enable CONFIG_ACPI_DPTF
./scripts/config --enable CONFIG_ACPI_FFH
./scripts/config --enable CONFIG_ACPI_PFRUT
./scripts/config --enable CONFIG_DEVTMPFS_MOUNT
./scripts/config --enable CONFIG_FW_LOADER_COMPRESS_ZSTD
./scripts/config --enable CONFIG_FW_CFG_SYSFS
./scripts/config --enable CONFIG_EFI_COCO_SECRET
./scripts/config --enable CONFIG_VIRTIO_NET
./scripts/config --enable CONFIG_MEDIA_PLATFORM_SUPPORT
./scripts/config --enable CONFIG_FB_VESA
./scripts/config --enable CONFIG_FB_NVIDIA
./scripts/config --enable CONFIG_FB_RIVA
./scripts/config --enable CONFIG_FB_SIMPLE
./scripts/config --enable CONFIG_DMADEVICES
./scripts/config --enable CONFIG_INTEL_IDMA64
./scripts/config --enable CONFIG_INTEL_IDXD
./scripts/config --enable CONFIG_INTEL_IOATDMA
./scripts/config --enable CONFIG_VFIO_PCI_VGA
./scripts/config --enable CONFIG_NFS_FS
./scripts/config --enable CONFIG_GENERIC_CPU4
}
doDefaultsTesting() {
doEchoStep "Options: testings activated..."
./scripts/config --set-str CONFIG_LOCALVERSION '-zogg-test'
}
doDefaults() {
cd $WORKDIR
doEchoStep "Apply 'uarches' patch"
patch -p1 <../../../more-uarches-for-kernel.patch
doEchoStep "Define options"
./scripts/config --set-str CONFIG_LOCALVERSION '-zogg'
doDefaultsDisable
doDefaultsEnable
if [ $TESTING == 1 ]; then
doDefaultsTesting
fi
cp .config .config.5.defaulted
}
# Edit .config
doEditSettings() {
cd $WORKDIR
doEchoStep "Settings tuning !"
if [ "$CLANG" == "1" ]; then
make -j$(nproc) LLVM=1 CC="ccache clang" menuconfig
else
make -j$(nproc) CC="ccache gcc" menuconfig
fi
result=$?
if [ ! result==0 ]; then
echo ">>> Error in settings edit !"
exit 1
fi
cp .config .config.6.menuconfig
}
# Generate uninstall script
doGenerateUninstall() {
# remove old files
READY=$CURRENT/$BRANCH/$VERSION/ready
mkdir -p $READY
rm -rf $READY/*.*
if ls $WORKDIR/../*.deb 1>/dev/null 2>&1; then
# find .deb packages and generate
# uninstall commands
# package name
PACKAGES=
TAG="_$VERSION-1_amd64.deb"
search_dir=$WORKDIR/../
for entry in "$search_dir"/*.deb; do
name="${entry##*/}"
pname=${name//$TAG/}
if [ ! "$pname" == "linux-libc-dev" ]; then
PACKAGES="$PACKAGES $pname"
fi
echo "$name" >>$READY/packages.log
done
# move files to destination folder
mv -f $WORKDIR/../*.deb $READY/
# prepare uninstall script
cat <<EOF >$READY/uninstall.sh
#!/bin/bash
# ${UPDATED}
apt remove --purge ${PACKAGES}
sudo sync
exit 0
EOF
# generate install script
cat <<EOF >$READY/install.sh
#!/bin/bash
# ${UPDATED}
echo 'blacklist pcspkr' > /etc/modprobe.d/pcspkr.conf
sudo dpkg -i *.deb
sudo sync
exit 0
EOF
chmod +x $READY/*.sh
else
echo ">>> No packages have been created!"
exit 1
fi
# setup execution rights on packages
chown -R root:root $READY/.
}
# Print compilation end informations
doEnding() {
clear
doHead
doEchoStep "Generated packages :"
echo
cat $CURRENT/$BRANCH/$VERSION/ready/packages.log
echo
echo "In folder: $CURRENT/$BRANCH/$VERSION/ready"
doSync
}
# Perform effective compilation
doCompile() {
cd $WORKDIR
doStripSig
doStripDebug
doEchoStep "Compilation time... Be patient!"
NB_CORES=$(grep -c '^processor' /proc/cpuinfo)
export MAKEFLAGS="-j$((NB_CORES + 1)) -l${NB_CORES} -Werror=maybe-uninitialized -Werror=nonnull -Wno-maybe-uninitialized -Wno-uninitialized -Wno-free-nonheap-object -Wno-nonnull"
export CFLAGS='-march=x86-64-v4 -O2 -flto -pipe'
export CXXFLAGS='-march=x86-64-v4 -O2 -flto -pipe'
export KCFLAGS=' -march=x86-64-v4 -O2'
export KCPPFLAGS=' -march=x86-64-v4 -O2'
set CONFIG_SITE=/etc/dpkg-cross/cross-config.amd64
set DEB_BUILD_OPTIONS=nocheck
doEchoStep "make bindeb-pkg"
if [ "$CLANG" == "1" ]; then
make \
-j$(nproc) \
LLVM=1 \
CC='ccache clang' \
bindeb-pkg \
LOCALVERSION=-"$(dpkg --print-architecture)" \
KDEB_PKGVERSION="$(make kernelversion)-1"
else
make \
-j$(nproc) \
CC='ccache gcc' \
bindeb-pkg \
LOCALVERSION=-"$(dpkg --print-architecture)" \
KDEB_PKGVERSION="$(make kernelversion)-1"
fi
result=$?
doEchoStep "make bindeb-pkg: $result"
if [ ! result==0 ]; then
echo ">>> Error in 'make bindeb-pkg' !"
exit 1
fi
doSync
doGenerateUninstall
doEnding
}
# Proceed for Kernel build
doKernel() {
WORKDIR=$CURRENT/$BRANCH/$VERSION
LOGFILE=$WORKDIR/$LOGNAME.$LOGEXT
rm -rf $LOGFILE
touch $LOGFILE
if [ "$STEPS" != "compile" ]; then
doDownload > >(tee -a $LOGFILE) 2>&1
doUncompress > >(tee -a $LOGFILE) 2>&1
fi
WORKDIR=$WORKDIR/linux-$VERSION
doCleanup > >(tee -a $LOGFILE) 2>&1
doConfigCloud > >(tee -a $LOGFILE) 2>&1
doOldOne > >(tee -a $LOGFILE) 2>&1
# doAllMods > >(tee -a $LOGFILE) 2>&1
doDefaults > >(tee -a $LOGFILE) 2>&1
doPermissions > >(tee -a $LOGFILE) 2>&1
doEditSettings
while true; do
read -p "Do you wish to run compile? " yn
case $yn in
[Yy]*)
doCompile > >(tee -a $LOGFILE) 2>&1
break
;;
[Nn]*) exit ;;
*) echo "Please answer yes or no." ;;
esac
done
}
# Entrypoint of operations
if [[ -z $BRANCH || "$BRANCH" == "help" || -z $VERSION || "$VERSION" == "help" ]]; then
doHelp
exit 1
else
clear
doHead
doKernel
fi
exit 0