kernel-config/configure.sh

336 lines
15 KiB
Bash
Executable File

#config as per https://github.com/gg7/gentoo-kernel-guide/issues/1
# per-machine hardware config
hw_file="$(dirname "$0")/hardware/$(hostname).sh"
if [ -f ${hw_file} ]; then
echo ${hw_file};
${hw_file};
fi
cd /usr/src/linux;
# /proc/config.gz
./scripts/config --enable IKCONFIG # tristate
./scripts/config --enable IKCONFIG_PROC # boolean
# gentoo-sources ( https://gitweb.gentoo.org/proj/linux-patches.git/tree/4567_distro-Gentoo-Kconfig.patch ):
./scripts/config --enable DEVTMPFS # boolean
./scripts/config --enable TMPFS # boolean
./scripts/config --enable UNIX # tristate
./scripts/config --enable SHMEM # boolean
# gentoo/portage:
./scripts/config --enable CGROUPS # boolean
./scripts/config --enable NAMESPACES # boolean
./scripts/config --enable IPC_NS # boolean
./scripts/config --enable NET_NS # boolean
./scripts/config --enable SYSVIPC # boolean
# openrc/runit support
./scripts/config --enable BINFMT_SCRIPT # tristate
# Recommended by the Gentoo Handbook: "Also select Maintain a devtmpfs file
# system to mount at /dev so that critical device files are already available
# early in the boot process (CONFIG_DEVTMPFS and DEVTMPFS_MOUNT)":
./scripts/config --enable DEVTMPFS # boolean
./scripts/config --enable DEVTMPFS_MOUNT # boolean
# required for CHECKPOINT_RESTORE
./scripts/config --enable EXPERT # boolean
# systemd -- gentoo ebuild:
./scripts/config --enable AUTOFS4_FS # tristate
./scripts/config --enable BLK_DEV_BSG # boolean
./scripts/config --enable CGROUPS # boolean
./scripts/config --enable CONFIG_CGROUP_BPF
./scripts/config --enable CHECKPOINT_RESTORE # boolean
./scripts/config --enable CRYPTO_HMAC # tristate
./scripts/config --enable CRYPTO_SHA256 # tristate
./scripts/config --enable CRYPTO_USER_API_HASH # tristate
# ./scripts/config --enable DEVPTS_MULTIPLE_INSTANCES # removed -- https://github.com/torvalds/linux/commit/eedf265aa003
./scripts/config --enable DMIID # boolean
./scripts/config --enable EPOLL # boolean
./scripts/config --enable FANOTIFY # boolean
./scripts/config --enable FHANDLE # boolean
./scripts/config --enable INOTIFY_USER # boolean
./scripts/config --enable IPV6 # tristate
./scripts/config --enable NET # boolean
./scripts/config --enable NET_NS # boolean
./scripts/config --enable PROC_FS # boolean
./scripts/config --enable SECCOMP # boolean
./scripts/config --enable SECCOMP_FILTER # boolean
./scripts/config --enable SIGNALFD # boolean
./scripts/config --enable SYSFS # boolean
./scripts/config --enable TIMERFD # boolean
./scripts/config --enable TMPFS_POSIX_ACL # boolean
./scripts/config --enable TMPFS_XATTR # boolean
./scripts/config --enable ANON_INODES # boolean
./scripts/config --enable BLOCK # boolean
./scripts/config --enable EVENTFD # boolean
./scripts/config --enable FSNOTIFY # boolean
./scripts/config --enable INET # boolean
./scripts/config --enable NLATTR # boolean
# systemd -- extra things from https://cgit.freedesktop.org/systemd/systemd/tree/README
./scripts/config --enable DEVTMPFS # boolean
./scripts/config --disable SYSFS_DEPRECATED # boolean
./scripts/config --set-str UEVENT_HELPER_PATH ""
./scripts/config --disable FW_LOADER_USER_HELPER # boolean
./scripts/config --enable EXT4_FS_POSIX_ACL # boolean
./scripts/config --enable BTRFS_FS_POSIX_ACL # boolean
./scripts/config --enable CGROUP_SCHED # boolean
./scripts/config --enable FAIR_GROUP_SCHED # boolean
./scripts/config --enable CFS_BANDWIDTH # boolean
./scripts/config --enable SCHEDSTATS # boolean
./scripts/config --enable SCHED_DEBUG # boolean
./scripts/config --enable EFIVAR_FS # tristate
./scripts/config --enable EFI_PARTITION # boolean
# ./scripts/config --disable RT_GROUP_SCHED # boolean, docker wants this
# ./scripts/config --disable AUDIT # boolean, conflicts with consolekit
# chromium
./scripts/config --enable PID_NS # boolean
./scripts/config --enable NET_NS # boolean
./scripts/config --enable SECCOMP_FILTER # boolean
./scripts/config --enable USER_NS # boolean
./scripts/config --enable ADVISE_SYSCALLS # boolean
./scripts/config --disable COMPAT_VDSO # boolean
# qemu for kernel dev
./scripts/config --module VIRTIO_PCI # tristate
./scripts/config --module VIRTIO_BLK # tristate
./scripts/config --module VIRTIO_NET # tristate
./scripts/config --module 9P_FS # tristate
./scripts/config --module NET_9P # tristate
./scripts/config --module NET_9P_VIRTIO # tristate
# lm_sensors
./scripts/config --enable I2C_CHARDEV # tristate
# cryptsetup, luks (according to gentoo wiki page)
./scripts/config --enable BLK_DEV_DM # tristate
./scripts/config --enable DM_CRYPT # tristate
./scripts/config --enable CRYPTO_AES_X86_64 # tristate
./scripts/config --enable CRYPTO_XTS # tristate
./scripts/config --enable CRYPTO_SHA256 # tristate
./scripts/config --enable CRYPTO_USER_API_SKCIPHER # tristate
# openvpn
./scripts/config --module TUN # tristate
# cups
./scripts/config --module USB_PRINTER # tristate
# pulseaudio
./scripts/config --set-val SND_HDA_PREALLOC_SIZE 2048
# Docker (useful: contrib/check-config.sh)
# "Generally Necessary"
./scripts/config --enable NAMESPACES # boolean
./scripts/config --enable NET_NS # boolean
./scripts/config --enable PID_NS # boolean
./scripts/config --enable IPC_NS # boolean
./scripts/config --enable UTS_NS # boolean
./scripts/config --enable CGROUPS # boolean
./scripts/config --enable CGROUP_CPUACCT # boolean
./scripts/config --enable CGROUP_DEVICE # boolean
./scripts/config --enable CGROUP_FREEZER # boolean
./scripts/config --enable CGROUP_SCHED # boolean
./scripts/config --enable CPUSETS # boolean
./scripts/config --enable MEMCG # boolean
./scripts/config --enable KEYS # boolean
./scripts/config --module VETH # tristate
./scripts/config --module BRIDGE # tristate
./scripts/config --enable NETFILTER_ADVANCED # boolean, implicit requirement for BRIDGE_NETFILTER
./scripts/config --module BRIDGE_NETFILTER # tristate
./scripts/config --module NF_NAT_IPV4 # tristate
./scripts/config --module IP_NF_FILTER # tristate
./scripts/config --module IP_NF_TARGET_MASQUERADE # tristate
./scripts/config --module NETFILTER_XT_MATCH_ADDRTYPE # tristate
./scripts/config --module NETFILTER_XT_MATCH_CONNTRACK # tristate
./scripts/config --module NETFILTER_XT_MATCH_IPVS # tristate
./scripts/config --module IP_NF_NAT # tristate
./scripts/config --module NF_NAT # tristate
./scripts/config --enable NF_NAT_NEEDED # boolean
./scripts/config --enable POSIX_MQUEUE # boolean
./scripts/config --enable CONFIG_MEMCG_SWAP_ENABLED
# "Optional Features"
./scripts/config --enable USER_NS # boolean
./scripts/config --enable SECCOMP # boolean
./scripts/config --enable CGROUP_PIDS # boolean
./scripts/config --enable MEMCG_SWAP # boolean
./scripts/config --enable MEMCG_SWAP_ENABLED # boolean
./scripts/config --enable LEGACY_VSYSCALL_EMULATE # boolean
./scripts/config --enable BLK_CGROUP # boolean
./scripts/config --enable BLK_DEV_THROTTLING # boolean
./scripts/config --module IOSCHED_CFQ # tristate
./scripts/config --enable CFQ_GROUP_IOSCHED # boolean
./scripts/config --enable CGROUP_PERF # boolean
./scripts/config --enable CGROUP_HUGETLB # boolean
./scripts/config --module NET_CLS_CGROUP # tristate
./scripts/config --enable CGROUP_NET_PRIO # boolean
./scripts/config --enable CFS_BANDWIDTH # boolean
./scripts/config --enable FAIR_GROUP_SCHED # boolean
./scripts/config --enable RT_GROUP_SCHED # boolean
./scripts/config --module IP_VS # tristate
./scripts/config --enable IP_VS_NFCT # boolean
./scripts/config --module IP_VS_RR # tristate
./scripts/config --enable EXT4_FS # tristate
./scripts/config --enable EXT4_FS_POSIX_ACL # boolean
./scripts/config --enable EXT4_FS_SECURITY # boolean
# "Network Drivers/overlay"
./scripts/config --module VXLAN # tristate
# "Network Drivers/overlay/Optional (for encrypted networks)":
./scripts/config --enable CRYPTO # tristate
./scripts/config --enable CRYPTO_AEAD # tristate
./scripts/config --enable CRYPTO_GCM # tristate
./scripts/config --enable CRYPTO_SEQIV # tristate
./scripts/config --enable CRYPTO_GHASH # tristate
./scripts/config --enable XFRM # boolean
./scripts/config --enable XFRM_USER # tristate
./scripts/config --enable XFRM_ALGO # tristate
./scripts/config --module INET_ESP # tristate
./scripts/config --enable INET_XFRM_MODE_TRANSPORT # tristate
# "Network Drivers/ipvlan"
./scripts/config --enable NET_L3_MASTER_DEV # boolean, required for IPVLAN
./scripts/config --module IPVLAN # tristate
# macvlan
./scripts/config --module MACVLAN # tristate
./scripts/config --module DUMMY # tristate
# "ftp,tftp client in container"
# ./scripts/config --module NF_NAT_FTP # tristate
# ./scripts/config --module NF_CONNTRACK_FTP # tristate
# ./scripts/config --module NF_NAT_TFTP # tristate
# ./scripts/config --module NF_CONNTRACK_TFTP # tristate
# "Storage Drivers"
./scripts/config --enable BTRFS_FS # tristate
./scripts/config --enable BTRFS_FS_POSIX_ACL # boolean
./scripts/config --enable BLK_DEV_DM # tristate
./scripts/config --enable DM_THIN_PROVISIONING # tristate
./scripts/config --module OVERLAY_FS # tristate
# From the gentoo ebuild
./scripts/config --enable SYSVIPC # boolean
./scripts/config --enable IP_VS_PROTO_TCP # boolean
./scripts/config --enable IP_VS_PROTO_UDP # boolean
# libvirt
./scripts/config --module MACVTAP # tristate
# sys-auth/consolekit-1.1.2
./scripts/config --enable AUDIT # boolean, required for AUDITSYSCALL
./scripts/config --enable AUDITSYSCALL # boolean
# SCSI disk support
./scripts/config --enable BLK_DEV_SD # tristate
./scripts/config --enable EXT2_FS # tristate
./scripts/config --disable EXT3_FS # tristate, "This config option is here only for backward compatibility. ext3 filesystem is now handled by the ext4 driver"
./scripts/config --enable EXT4_FS # tristate
./scripts/config --enable VFAT_FS # tristate
./scripts/config --module REISERFS_FS # tristate
./scripts/config --enable XFS_FS # tristate
./scripts/config --enable BTRFS_FS # tristate
./scripts/config --enable FUSE_FS # tristate
./scripts/config --enable ISO9660_FS # tristate
./scripts/config --enable PROC_FS # boolean
./scripts/config --enable TMPFS # boolean
./scripts/config --enable UDF_FS
#Network FS
./scripts/config --enable NFSD
./scripts/config --enable CIFS
# USB input devices
./scripts/config --enable HID_GENERIC # tristate
./scripts/config --enable USB_HID # tristate
./scripts/config --enable USB_SUPPORT # boolean
./scripts/config --enable USB_XHCI_HCD # tristate
./scripts/config --enable USB_EHCI_HCD # tristate
./scripts/config --enable USB_OHCI_HCD # tristate
./scripts/config --enable USB_UAS # tristate, "USB attached SCSI"
# support 32-bit executables
./scripts/config --enable IA32_EMULATION # boolean
# GPT, EFI, UEFI
./scripts/config --enable PARTITION_ADVANCED # boolean
./scripts/config --enable EFI_PARTITION # boolean
./scripts/config --enable EFI # boolean
./scripts/config --enable EFI_STUB # boolean
./scripts/config --enable EFI_MIXED # boolean
./scripts/config --enable EFI_VARS # tristate
./scripts/config --disable OSF_PARTITION # boolean, Alpha servers
./scripts/config --disable AMIGA_PARTITION # boolean
./scripts/config --disable SGI_PARTITION # boolean
./scripts/config --disable SUN_PARTITION # boolean
./scripts/config --disable KARMA_PARTITION # boolean
./scripts/config --enable MAC_PARTITION # boolean
./scripts/config --enable MAGIC_SYSRQ # boolean
# app-emulation/qemu
./scripts/config --module KVM # tristate
./scripts/config --module VHOST_NET # tristate
# https://lwn.net/Articles/680989/
# https://lwn.net/Articles/681763/
./scripts/config --enable BLK_WBT # boolean
./scripts/config --enable BLK_WBT_SQ # boolean
./scripts/config --enable BLK_WBT_MQ # boolean
# http://algo.ing.unimo.it/people/paolo/disk_sched/
./scripts/config --module IOSCHED_BFQ # tristate
# https://www.youtube.com/watch?v=y5KPryOHwk8
# https://en.wikipedia.org/wiki/Active_queue_management
# https://lwn.net/Articles/616241/
./scripts/config --module NET_SCH_FQ # tristate
./scripts/config --module NET_SCH_FQ_CODEL # tristate
./scripts/config --module NET_SCH_SFB # tristate
# https://news.ycombinator.com/item?id=14813723
./scripts/config --module TCP_CONG_BBR # tristate
# IP ECMP
./scripts/config --enable IP_ROUTE_MULTIPATH # boolean
# source-based IP routing
./scripts/config --enable IP_MULTIPLE_TABLES # boolean
# bridging
./scripts/config --module BRIDGE # tristate
# multicast
./scripts/config --enable BRIDGE_IGMP_SNOOPING # boolean
# speed up tcpdump
./scripts/config --enable BPF_JIT # boolean
# timing packets / ptp (Precision Time Protocol)
./scripts/config --enable NETWORK_PHY_TIMESTAMPING # boolean
./scripts/config --module IP_VS # tristate
./scripts/config --module BONDING # tristate
# boot_delay=X support
./scripts/config --enable BOOT_PRINTK_DELAY # boolean
# bcc
./scripts/config --enable BPF_SYSCALL # boolean
./scripts/config --module NET_CLS_BPF # tristate
./scripts/config --module NET_ACT_BPF # tristate
./scripts/config --enable BPF_EVENTS # boolean
# https://www.phoronix.com/scan.php?page=article&item=linux_2637_video&num=1
./scripts/config --enable SCHED_AUTOGROUP # boolean
# * CONFIG_RT_GROUP_SCHED is enabled. rtkit-daemon (or any other real-time task) will not work unless run as root. Please consider unsetting this option.
./scripts/config --disable CONFIG_RT_GROUP_SCHED
# and so on
#emerge sys-fs/multipath-tools
./scripts/config --enable CONFIG_DM_MULTIPATH
#FOR MOUNTING VIRTUAL HARD DRIVES
#https://bethesignal.org/blog/2011/01/05/how-to-mount-virtualbox-vdi-image/
./scripts/config --enable BLK_DEV_NBD