Per the discussion https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4087, zstd is going to become the default compression algorithm for the initramfs, with only devices using kernels older than 5.1.0 expected to use gzip. Because of this, adding this config to the default category early ensures that the eventual migration requires less changes. Signed-off-by: Aster Boese <asterboese@mailbox.org> Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9009>
727 lines
21 KiB
TOML
727 lines
21 KiB
TOML
# pmaports CI and "pmbootstrap kconfig check" use this file to ensure our
|
|
# kernels have certain kernel config options set. Which categories are checked
|
|
# depends on options="pmb:kconfigcheck-…" in the linux APKBUILD. If no such
|
|
# option is set, see the default in ["category:default".">=0.0.0"."all"] below.
|
|
|
|
[aliases]
|
|
# Devices with options="pmb:kconfigcheck-community" in the device APKBUILD will
|
|
# check for the following categories. A CI check ensures that all devices in
|
|
# device/main and device/community dirs have this option. Devices in testing
|
|
# may also have "pmb:kconfigcheck-community", but it may be removed when
|
|
# modifying the required options and adjusting the devices in testing is too
|
|
# much effort. Device maintainers may fix it up afterwards and add it back.
|
|
community = [
|
|
"category:default",
|
|
"category:accessibility",
|
|
"category:community_various",
|
|
"category:containers",
|
|
"category:debug",
|
|
"category:filesystems",
|
|
"category:hardening",
|
|
"category:immutable",
|
|
"category:input",
|
|
"category:iwd",
|
|
"category:netboot",
|
|
"category:netmount",
|
|
"category:nftables",
|
|
"category:usb",
|
|
"category:usb_gadgets",
|
|
"category:waydroid",
|
|
"category:wine",
|
|
"category:wireguard",
|
|
"category:zram",
|
|
]
|
|
|
|
# Format for rule sections:
|
|
# ["category:<NAME>"."<KERNEL_VERSION>"."<ARCHITECTURES>"]
|
|
# Implemented value types:
|
|
# - tristate (e.g. 'ANDROID_PARANOID_NETWORK = n'):
|
|
# - y: built-in, preferred but module is OK
|
|
# - m: module, preferred but built-in is OK
|
|
# - n: disabled
|
|
# - list (e.g. 'ANDROID_BINDER_DEVICES = ["binder", "hwbinder"]'):
|
|
# - each element of the array must be contained in the kernel config string,
|
|
# in any order. The example above would accept the following in the config:
|
|
# CONFIG_ANDROID_BINDER_DEVICES="hwbinder,vndbinder,binder"
|
|
# - string (e.g. 'LSM = "lockdown,yama,loadpin,safesetid,integrity"'):
|
|
# - the value in the kernel config must be the same as the given string. Use
|
|
# this e.g. if the order of the elements is important.
|
|
|
|
# default: all devices must satisfy these
|
|
["category:default".">=0.0.0"."all"]
|
|
ANDROID_PARANOID_NETWORK = "n"
|
|
BINFMT_ELF = "y"
|
|
BLK_DEV_INITRD = "y"
|
|
CGROUPS = "y" # also required for: containers
|
|
CRYPTO_CBC = "y"
|
|
CRYPTO_AES = "y"
|
|
CRYPTO_XTS = "y"
|
|
DEVTMPFS = "y"
|
|
DM_CRYPT = "y"
|
|
FB = "y"
|
|
INPUT_EVDEV = "m"
|
|
KINETO_GAN = "n"
|
|
NLS_ASCII = "y" # required to mount FAT32
|
|
PFT = "n"
|
|
SEC_RESTRICT_ROOTING = "n"
|
|
SYN_COOKIES = "y"
|
|
SYSVIPC = "y"
|
|
TMPFS_POSIX_ACL = "y"
|
|
USE_VFB = "n"
|
|
VFAT_FS = "y"
|
|
VT = "y"
|
|
["category:default".">=4.3.0"."all"]
|
|
DRM_FBDEV_EMULATION = "y"
|
|
["category:default".">=3.10.0"."all"]
|
|
# Note: MUST be =y else we're unable to run our initramfs's init script
|
|
BINFMT_SCRIPT = "y"
|
|
["category:default".">=4.0.0"."all"]
|
|
UEVENT_HELPER = "y"
|
|
USER_NS = "y" # also required for: containers
|
|
["category:default"."<4.7.0"."all"]
|
|
DEVPTS_MULTIPLE_INSTANCES = "y"
|
|
["category:default"."<4.14.0"."all"]
|
|
SAMSUNG_TUI = "n"
|
|
TZDEV = "n"
|
|
["category:default".">=5.1.0"."all"]
|
|
RD_ZSTD = "y"
|
|
DECOMPRESS_ZSTD = "y" # Different from MODULE_DECOMPRESS
|
|
["category:default"."<5.2.0"."armhf armv7 x86"]
|
|
LBDAF = "y"
|
|
["category:default".">=5.2.0"."all"]
|
|
# Provide a proper dummy null console to improve compatibility
|
|
# on devices that like to coerce console=null
|
|
NULL_TTY = "m"
|
|
# MODULE_COMPRESS was added after the individual compression algorithm options
|
|
["category:default".">=6.12.0"."all"]
|
|
MODULE_COMPRESS = "y"
|
|
["category:default".">=6.2.0"."all"]
|
|
# MODULE_COMPRESS_ZSTD exists since 5.13, but since kernels prior to 6.2 cannot
|
|
# decompress it, we would break devices with split initramfs which use busybox
|
|
# modprobe, so we only enforce it on 6.2 or newer
|
|
MODULE_COMPRESS_ZSTD = "y"
|
|
# MODULE_DECOMPRESS exists since 5.17, but can only decompress zstd since 6.2
|
|
MODULE_DECOMPRESS = "y"
|
|
["category:default".">=5.19.0"."all"]
|
|
FW_LOADER_COMPRESS = "y"
|
|
FW_LOADER_COMPRESS_ZSTD = "y"
|
|
["category:default".">=4.20.0"."all"]
|
|
# required for systemd-oomd
|
|
PSI = "y"
|
|
PSI_DEFAULT_DISABLED = "n"
|
|
UDMABUF = "y"
|
|
["category:default".">=5.14.0"."all"]
|
|
# systemd (kernel version is "recommended baseline")
|
|
BPF = "y"
|
|
BPF_JIT = "y"
|
|
BPF_LSM = "y"
|
|
IPC_NS = "y"
|
|
KPROBES = "y"
|
|
KPROBE_EVENTS = "y"
|
|
NET_NS = "y"
|
|
PID_NS = "y"
|
|
SECURITY = "y"
|
|
SECURITYFS = "y"
|
|
SECURITY_PATH = "y"
|
|
USER_NS = "y"
|
|
UTS_NS = "y"
|
|
DEBUG_INFO_BTF = "y"
|
|
DEBUG_INFO_BTF_MODULES = "y"
|
|
DEBUG_INFO_DWARF5 = "y"
|
|
DEBUG_INFO_REDUCED = "n"
|
|
["category:default".">=5.14.0"."loongarch64 ppc64le x86 x86_64"]
|
|
# ARM and riscv64 lack CFI+dynamic ftrace support, see:
|
|
# https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4411#note_544158
|
|
DYNAMIC_FTRACE_WITH_DIRECT_CALLS = "y"
|
|
|
|
["category:netmount".">=0.0.0"."all"]
|
|
CACHEFILES = "m"
|
|
CRYPTO_CAMELLIA = "m"
|
|
CRYPTO_CMAC = "m"
|
|
CRYPTO_CTS = "y"
|
|
CRYPTO_HMAC = "y"
|
|
CRYPTO_SHA256 = "y"
|
|
CRYPTO_SHA512 = "y"
|
|
FSCACHE = "y"
|
|
NFS_FS = "m"
|
|
NFS_FSCACHE = "y"
|
|
NFS_V3 = "m"
|
|
NFS_V4 = "m"
|
|
NFS_V4_2 = "y"
|
|
NFSD = "m"
|
|
NFSD_V3_ACL = "y"
|
|
NFSD_V4 = "y"
|
|
NFSD_PNFS = "y"
|
|
NFSD_BLOCKLAYOUT = "y"
|
|
NFSD_SCSILAYOUT = "y"
|
|
NFSD_V4_2_INTER_SSC = "y"
|
|
RPCSEC_GSS_KRB5 = "m"
|
|
["category:netmount".">=6.15.0"."all"]
|
|
CRYPTO_KRB5 = "m"
|
|
["category:netmount"."<7.2_rc1"."all"]
|
|
RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1 = "y"
|
|
RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2 = "y"
|
|
RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA = "y"
|
|
["category:netmount"."<7.0"."all"]
|
|
CRYPTO_AES_TI = "m"
|
|
NFS_V4_1 = "y"
|
|
["category:netmount".">=0.0.0"."aarch64"]
|
|
CRYPTO_AES_ARM64_CE_BLK = "y"
|
|
|
|
# accessibility: kernel interfaces and accessibility device drivers
|
|
["category:accessibility".">=0.0.0"."all"]
|
|
ACCESSIBILITY = "y"
|
|
A11Y_BRAILLE_CONSOLE = "y"
|
|
SPEAKUP = "m"
|
|
SPEAKUP_SYNTH_ACNTSA = "m"
|
|
SPEAKUP_SYNTH_APOLLO = "m"
|
|
SPEAKUP_SYNTH_AUDPTR = "m"
|
|
SPEAKUP_SYNTH_BNS = "m"
|
|
SPEAKUP_SYNTH_DECTLK = "m"
|
|
SPEAKUP_SYNTH_DECEXT = "m"
|
|
SPEAKUP_SYNTH_LTLK = "m"
|
|
SPEAKUP_SYNTH_SOFT = "m"
|
|
SPEAKUP_SYNTH_SPKOUT = "m"
|
|
SPEAKUP_SYNTH_TXPRT = "m"
|
|
|
|
# waydroid: android compatibility layer
|
|
["category:waydroid".">=0.0.0"."all"]
|
|
ANDROID_BINDERFS = "n"
|
|
ANDROID_BINDER_DEVICES = ["binder", "hwbinder", "vndbinder"]
|
|
ANDROID_BINDER_IPC = "y"
|
|
ANDROID_BINDER_IPC_SELFTEST = "n"
|
|
BLK_DEV_LOOP = "y"
|
|
BPF_SYSCALL = "y"
|
|
BRIDGE = "m"
|
|
BRIDGE_VLAN_FILTERING = "y"
|
|
CGROUP_BPF = "y"
|
|
CROSS_MEMORY_ATTACH = "y"
|
|
FUSE_FS = "m"
|
|
IP_NF_MANGLE = "m"
|
|
NETFILTER_XTABLES = "m"
|
|
NETFILTER_XT_MATCH_COMMENT = "m"
|
|
SQUASHFS = "m"
|
|
SQUASHFS_XATTR = "y"
|
|
SQUASHFS_XZ = "y"
|
|
TMPFS_XATTR = "y"
|
|
TUN = "m"
|
|
VETH = "m"
|
|
VLAN_8021Q = "m" # prerequisite for bridge
|
|
["category:waydroid".">=6.9"."all"]
|
|
IP_NF_IPTABLES_LEGACY = "m"
|
|
["category:waydroid".">=6.17"."all"]
|
|
NETFILTER_XTABLES_LEGACY = "y"
|
|
|
|
# iwd: modern inet wireless daemon
|
|
# Obtained from 'grep ADD_MISSING src/main.c' in iwd.git
|
|
["category:iwd".">=0.0.0"."all"]
|
|
ASYMMETRIC_KEY_TYPE = "y"
|
|
ASYMMETRIC_PUBLIC_KEY_SUBTYPE = "y"
|
|
CRYPTO_CMAC = "m"
|
|
CRYPTO_DES = "m"
|
|
CRYPTO_ECB = "y"
|
|
CRYPTO_HMAC = "y"
|
|
CRYPTO_MD4 = "m" # Needed for EAP MSCHAPV2 authentication
|
|
CRYPTO_MD5 = "y"
|
|
CRYPTO_SHA1 = "y"
|
|
CRYPTO_SHA256 = "y"
|
|
CRYPTO_SHA512 = "y"
|
|
CRYPTO_USER_API_HASH = "m"
|
|
CRYPTO_USER_API_SKCIPHER = "m"
|
|
KEYS = "y"
|
|
KEY_DH_OPERATIONS = "y"
|
|
PKCS7_MESSAGE_PARSER = "y"
|
|
PKCS8_PRIVATE_KEY_PARSER = "m"
|
|
X509_CERTIFICATE_PARSER = "y"
|
|
RFKILL = "m"
|
|
|
|
# nftables: firewall, not related to nft scams
|
|
["category:nftables".">=0.0.0"."all"]
|
|
NETFILTER = "y"
|
|
NF_CONNTRACK = "m"
|
|
NF_TABLES = "m"
|
|
NF_TABLES_INET = "y"
|
|
NFT_CT = "m"
|
|
NFT_LOG = "m"
|
|
NFT_LIMIT = "m"
|
|
NFT_MASQ = "m"
|
|
NFT_NAT = "m"
|
|
NFT_REJECT = "m"
|
|
NF_TABLES_IPV4 = "y"
|
|
NF_REJECT_IPV4 = "m"
|
|
IP_NF_IPTABLES = "m"
|
|
IP_NF_FILTER = "m"
|
|
IP_NF_TARGET_REJECT = "m"
|
|
IP_NF_NAT = "m"
|
|
NF_TABLES_IPV6 = "y"
|
|
NF_REJECT_IPV6 = "m"
|
|
IP6_NF_IPTABLES = "m"
|
|
IP6_NF_FILTER = "m"
|
|
IP6_NF_TARGET_REJECT = "m"
|
|
IP6_NF_NAT = "m"
|
|
["category:nftables".">=6.9"."all"]
|
|
IP_NF_IPTABLES_LEGACY = "m"
|
|
IP6_NF_IPTABLES_LEGACY = "m"
|
|
["category:nftables".">=6.17"."all"]
|
|
NETFILTER_XTABLES_LEGACY = "y"
|
|
|
|
# containers: lxc, docker, etc.
|
|
["category:containers".">=0.0.0"."all"]
|
|
NAMESPACES = "y"
|
|
NET_NS = "y"
|
|
PID_NS = "y"
|
|
IPC_NS = "y"
|
|
UTS_NS = "y"
|
|
CGROUP_CPUACCT = "y"
|
|
CGROUP_DEVICE = "y"
|
|
CGROUP_FREEZER = "y"
|
|
CGROUP_SCHED = "y"
|
|
CPUSETS = "y"
|
|
KEYS = "y"
|
|
VETH = "m"
|
|
BRIDGE = "m" # (also needed for waydroid)
|
|
BRIDGE_NETFILTER = "m"
|
|
IP_NF_FILTER = "m"
|
|
IP_NF_MANGLE = "m" # Needed for docker
|
|
IP_NF_TARGET_MASQUERADE = "m"
|
|
IP6_NF_MANGLE = "m" # Needed for docker
|
|
NETFILTER_XT_MATCH_ADDRTYPE = "m"
|
|
NETFILTER_XT_MATCH_CONNTRACK = "m"
|
|
NETFILTER_XT_MATCH_IPVS = "m"
|
|
NETFILTER_XT_MARK = "m"
|
|
NETFILTER_XT_TARGET_CHECKSUM = "m" # Needed for lxc
|
|
IP_NF_RAW = "m" # Needed for docker
|
|
IP_NF_NAT = "m"
|
|
IP6_NF_RAW = "m" # Needed for docker
|
|
NF_NAT = "m"
|
|
POSIX_MQUEUE = "y"
|
|
MD = "y" # Required for BLK_DEV_DM
|
|
BLK_DEV_DM = "y" # Storage Drivers
|
|
DUMMY = "m" # Network Drivers
|
|
BLK_CGROUP = "y" # Optional section
|
|
BLK_DEV_THROTTLING = "y" # Optional section
|
|
CGROUP_PERF = "y" # Optional section
|
|
NET_SCHED = "y" # Required by NET_CLS_CGROUP
|
|
NET_CLS_CGROUP = "m" # Optional section
|
|
FAIR_GROUP_SCHED = "y" # Optional section
|
|
IP_NF_TARGET_REDIRECT = "m" # Optional section
|
|
IP_VS = "m" # Optional section
|
|
IP_VS_NFCT = "y" # Optional section
|
|
IP_VS_PROTO_TCP = "y" # Optional section
|
|
IP_VS_PROTO_UDP = "y" # Optional section
|
|
IP_VS_RR = "m" # Optional section
|
|
EXT4_FS_POSIX_ACL = "y" # Optional section
|
|
EXT4_FS_SECURITY = "y" # Optional section
|
|
CFS_BANDWIDTH = "y" # Optional section
|
|
CHECKPOINT_RESTORE = "y" # Needed for lxc
|
|
MEMCG = "y"
|
|
DM_THIN_PROVISIONING = "m" # Storage Drivers
|
|
SWAP = "y"
|
|
VXLAN = "m" # Network Drivers
|
|
IP6_NF_TARGET_MASQUERADE = "m" # Needed for lxc and docker
|
|
BRIDGE_VLAN_FILTERING = "y" # Network Drivers (also for waydroid)
|
|
MACVLAN = "m" # Network Drivers
|
|
NFT_COMPAT = "m"
|
|
NFT_CT = "m" # Docker (optional)
|
|
NFT_NAT = "m" # Docker (optional)
|
|
NF_TABLES = "m" # Docker (optional)
|
|
CGROUP_NET_PRIO = "y" # Optional section
|
|
IP6_NF_NAT = "m" # Needed for docker
|
|
OVERLAY_FS = "m" # Storage Drivers
|
|
NFT_MASQ = "m" # Docker (optional)
|
|
IPVLAN = "m" # Network Drivers
|
|
SECCOMP = "y" # Optional section
|
|
CGROUP_PIDS = "y" # Optional section
|
|
CGROUP_BPF = "y" # Needed for docker
|
|
NFT_FIB_IPV4 = "m" # Docker (optional)
|
|
NFT_FIB_IPV6 = "m" # Docker, optional
|
|
NFT_FIB = "m" # Docker (optional)
|
|
["category:containers".">=0.0.0"."x86 x86_64"]
|
|
HUGETLB_PAGE = "y"
|
|
CGROUP_HUGETLB = "y" # Optional section
|
|
["category:containers"."<6.1_rc1"."all"]
|
|
MEMCG_SWAP = "y"
|
|
["category:containers".">=6.9"."all"]
|
|
IP6_NF_FILTER = "m" # Needed for docker
|
|
|
|
# zram: RAM disk with on-the-fly compression
|
|
["category:zram".">=0.0.0"."all"]
|
|
ZRAM = "y"
|
|
ZSMALLOC = "y"
|
|
SWAP = "y"
|
|
|
|
["category:zram"."<6.12"."all"]
|
|
CRYPTO_ZSTD = "y"
|
|
|
|
["category:zram".">=6.12"."all"]
|
|
ZRAM_BACKEND_842 = "y"
|
|
ZRAM_BACKEND_DEFLATE = "y"
|
|
ZRAM_BACKEND_LZ4 = "y"
|
|
ZRAM_BACKEND_LZ4HC = "y"
|
|
ZRAM_BACKEND_LZO = "y"
|
|
ZRAM_BACKEND_ZSTD = "y"
|
|
|
|
# netboot: https://postmarketos.org/netboot
|
|
["category:netboot".">=0.0.0"."all"]
|
|
BLK_DEV_NBD = "m"
|
|
["category:netboot".">=6.0"."all"]
|
|
BLK_DEV_UBLK = "m"
|
|
|
|
# wireguard: VPN software, also includes options for wg-quick
|
|
["category:wireguard".">=0.0.0"."all"]
|
|
WIREGUARD = "m"
|
|
IP_ADVANCED_ROUTER = "y"
|
|
IP_MULTIPLE_TABLES = "y"
|
|
IPV6_MULTIPLE_TABLES = "y"
|
|
NF_TABLES = "m"
|
|
NF_TABLES_IPV4 = "y"
|
|
NF_TABLES_IPV6 = "y"
|
|
NFT_CT = "m"
|
|
NFT_FIB = "m"
|
|
NFT_FIB_IPV4 = "m"
|
|
NFT_FIB_IPV6 = "m"
|
|
NF_CONNTRACK_MARK = "y"
|
|
|
|
# filesystems
|
|
["category:filesystems".">=0.0.0"."all"]
|
|
# Note: EXT4 is builtin, not a module, because it reduces the overall
|
|
# vmlinuz+initramfs size for devices with small boot partitions.
|
|
# See: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7136#note_505237
|
|
BTRFS_FS = "m"
|
|
BTRFS_FS_POSIX_ACL = "y"
|
|
EXFAT_FS = "m"
|
|
EXT4_FS = "y"
|
|
F2FS_FS = "m"
|
|
UDF_FS = "m"
|
|
XFS_FS = "m"
|
|
EROFS_FS = "m"
|
|
EROFS_FS_ZIP = "y"
|
|
EROFS_FS_ZIP_LZMA = "y"
|
|
["category:filesystems".">=6.6"."all"]
|
|
EROFS_FS_ZIP_DEFLATE = "y"
|
|
["category:filesystems".">=6.10"."all"]
|
|
EROFS_FS_ZIP_ZSTD = "y"
|
|
|
|
# usb_gadgets
|
|
["category:usb_gadgets".">=0.0.0"."all"]
|
|
# disable legacy gadgets
|
|
USB_ETH = "n"
|
|
USB_FUNCTIONFS = "n"
|
|
USB_MASS_STORAGE = "n"
|
|
USB_G_SERIAL = "n"
|
|
# enable configfs gadgets
|
|
USB_GADGET = "y" # Required by USB_CONFIGFS_*
|
|
USB_CONFIGFS = "m" # Required by USB_CONFIGFS_*
|
|
USB_F_FS = "m" # FunctionFS USB support
|
|
USB_CONFIGFS_ACM = "y" # Serial gadget for debug-shell
|
|
USB_CONFIGFS_MASS_STORAGE = "y" # Mass storage gadget for debug-shell
|
|
USB_CONFIGFS_NCM = "y" # USB networking via NCM
|
|
USB_CONFIGFS_RNDIS = "y" # USB networking via RNDIS (legacy)
|
|
USB_CONFIGFS_F_FS = "y" # FunctionFS support in ConfigFS
|
|
|
|
# community_various: Various options that were not categorized properly due to
|
|
# inflexibility of previous kconfigcheck related code. We should move these to
|
|
# proper categories above and/or invent new categories with meaningful names.
|
|
# >> Do not add more here!! <<
|
|
["category:community_various".">=0.0.0"."all"]
|
|
BINFMT_MISC = "m" # register binary formats
|
|
NETWORK_FILESYSTEMS = "y" # Required by CIFS
|
|
CIFS = "m" # mount SMB shares
|
|
LEDS_TRIGGER_PATTERN = "m" # feedbackd
|
|
LEDS_TRIGGER_TIMER = "m" # hfd-service
|
|
NETFILTER_ADVANCED = "y" # Required by NETFILTER_XT_MATCH_MARK
|
|
NETFILTER_XT_MATCH_MARK = "m" # e.g. HashiCorp Nomad
|
|
NETFILTER_XT_MATCH_MULTIPORT = "m" # e.g. HashiCorp Nomad
|
|
NETFILTER_XT_MATCH_STATISTIC = "m" # kube-proxy
|
|
NETFILTER_XT_MATCH_TCPMSS = "m" # change MTU e.g. for Wireguard
|
|
NETFILTER_XT_TARGET_TCPMSS = "m" # change MTU e.g. for Wireguard
|
|
# TODO = Depends on SUSPEND which is not enabled for some devices
|
|
# PM_WAKELOCKS = "y" # Sxmo
|
|
CPU_FREQ = "y"
|
|
CPU_FREQ_GOV_SCHEDUTIL = "y" # Required by UCLAMP_TASK
|
|
UCLAMP_TASK = "y" # Scheduler hints
|
|
UCLAMP_TASK_GROUP = "y" # Scheduler hints
|
|
RT_GROUP_SCHED = "n" # https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/2652
|
|
DM_INTEGRITY = "m" # Device-mapper integrity target
|
|
|
|
# uefi: proper modern booting
|
|
["category:uefi".">=0.0.0"."aarch64 armv7 armhf loongarch64 riscv64 x86 x86_64"]
|
|
EFI_STUB = "y"
|
|
EFI = "y"
|
|
DMI = "y"
|
|
PSTORE = "y"
|
|
EFI_ESRT = "y"
|
|
EFI_VARS_PSTORE = "y"
|
|
EFI_RUNTIME_WRAPPERS = "y"
|
|
["category:uefi".">=0.0.0"."x86_64"]
|
|
EFI_MIXED = "y"
|
|
["category:uefi".">=0.0.0"."aarch64 armv7"]
|
|
EFI_GENERIC_STUB = "y"
|
|
EFI_PARAMS_FROM_FDT = "y"
|
|
["category:uefi".">=6.1.0"."aarch64 riscv64"]
|
|
# Required EFI booting compressed kernels on this arch
|
|
EFI_ZBOOT = "y"
|
|
# Devices that used to run windows may still want to access
|
|
# the windows partition (e.g. to retrieve firmware on WoA)
|
|
["category:uefi"."<7.1_rc1"."aarch64 x86_64"]
|
|
NTFS3_FS = "m"
|
|
# The improved NTFS driver that is faster and more correct
|
|
# than NTFS3 is only available since 7.1-rc1
|
|
["category:uefi".">=7.1_rc1"."aarch64 x86_64"]
|
|
NTFS_FS = "m"
|
|
|
|
["category:input".">=0.0.0"."all"]
|
|
BT = "m" # Required by BT_HIDP
|
|
BT_HIDP = "m" # Bluetooth HID
|
|
GPIOLIB = "y" # Required by a couple of HID configs
|
|
HIDRAW = "y" # /dev/hidraw* support
|
|
INPUT_MISC = "y" # Required by INPUT_UINPUT
|
|
INPUT_UINPUT = "y" # buffyboard
|
|
INPUT_JOYSTICK = "y" # Required by CONFIG_JOYSTICK_XPAD_FF
|
|
JOYSTICK_XPAD = "m" # Xbox controller
|
|
JOYSTICK_XPAD_FF = "y" # Xbox controller force-feedback
|
|
JOYSTICK_XPAD_LEDS = "y" # Xbox controller LEDs
|
|
UHID = "m" # User-space HID, e.g. Bluetooth
|
|
USB_ANNOUNCE_NEW_DEVICES = "y" # dmesg messages when connecting device
|
|
USB_HIDDEV = "y" # /dev/usb/hiddevX support
|
|
USB_PRINTER = "m" # printers
|
|
# All the special HID drivers that Fedora kernel enables
|
|
HID_A4TECH = "m"
|
|
HID_ACCUTOUCH = "m"
|
|
HID_ACRUX_FF = "y"
|
|
HID_ACRUX = "m"
|
|
HID_ALPS = "m"
|
|
HID_APPLEIR = "m"
|
|
HID_APPLE = "m"
|
|
HID_AUREAL = "m"
|
|
HID_BATTERY_STRENGTH = "y"
|
|
HID_BELKIN = "m"
|
|
HID_BETOP_FF = "m"
|
|
HID_BIGBEN_FF = "m"
|
|
HID_CHERRY = "m"
|
|
HID_CHICONY = "m"
|
|
HID_CMEDIA = "m"
|
|
HID_CORSAIR = "m"
|
|
HID_COUGAR = "m"
|
|
HID_CP2112 = "m"
|
|
HID_CREATIVE_SB0540 = "m"
|
|
HID_CYPRESS = "m"
|
|
HID_DRAGONRISE = "m"
|
|
HID_ELAN = "m"
|
|
HID_ELECOM = "m"
|
|
HID_ELO = "m"
|
|
HID_EMS_FF = "m"
|
|
HID_EZKEY = "m"
|
|
HID_FT260 = "m"
|
|
HID_GEMBIRD = "m"
|
|
HID_GENERIC = "m"
|
|
HID_GFRM = "m"
|
|
HID_GLORIOUS = "m"
|
|
HID_GREENASIA = "m"
|
|
HID_GT683R = "m"
|
|
HID_GYRATION = "m"
|
|
HID_HOLTEK = "m"
|
|
HID_ICADE = "m"
|
|
HID_ITE = "m"
|
|
HID_JABRA = "m"
|
|
HID_KENSINGTON = "m"
|
|
HID_KEYTOUCH = "m"
|
|
HID_KYE = "m"
|
|
HID_LCPOWER = "m"
|
|
HID_LED = "m"
|
|
HID_LETSKETCH = "m"
|
|
LEDS_CLASS_MULTICOLOR = "m" # Required by HID_LOGITECH
|
|
HID_LOGITECH_DJ = "m"
|
|
HID_LOGITECH_HIDPP = "m"
|
|
HID_LOGITECH = "m"
|
|
HID_MACALLY = "m"
|
|
HID_MAGICMOUSE = "m"
|
|
HID_MALTRON = "m"
|
|
HID_MAYFLASH = "m"
|
|
HID_MCP2221 = "m"
|
|
HID_MEGAWORLD_FF = "m"
|
|
HID_MICROSOFT = "m"
|
|
HID_MONTEREY = "m"
|
|
HID_MULTITOUCH = "m"
|
|
HID_NINTENDO = "m"
|
|
HID_NTI = "m"
|
|
HID_NTRIG = "m"
|
|
HID_ORTEK = "m"
|
|
HID_PANTHERLORD = "m"
|
|
HID_PENMOUNT = "m"
|
|
HID_PETALYNX = "m"
|
|
HID_PICOLCD_BACKLIGHT = "y"
|
|
LCD_CLASS_DEVICE = "m" # Required by HID_PICOLCD_LCD
|
|
HID_PICOLCD_LCD = "y"
|
|
HID_PICOLCD_LEDS = "y"
|
|
HID_PICOLCD = "m"
|
|
HID_PID = "y"
|
|
HID_PLANTRONICS = "m"
|
|
HID_PLAYSTATION = "m"
|
|
HID_PRIMAX = "m"
|
|
HID_PRODIKEYS = "m"
|
|
HID_PXRC = "m"
|
|
HID_RAZER = "m"
|
|
HID_RETRODE = "m"
|
|
HID_RMI = "m"
|
|
HID_ROCCAT = "m"
|
|
HID_SAITEK = "m"
|
|
HID_SAMSUNG = "m"
|
|
HID_SEMITEK = "m"
|
|
IIO = "y" # Required by HID_SENSOR_*
|
|
HID_SENSOR_ACCEL_3D = "m"
|
|
HID_SENSOR_ALS = "m"
|
|
HID_SENSOR_CUSTOM_INTEL_HINGE = "m"
|
|
HID_SENSOR_DEVICE_ROTATION = "m"
|
|
HID_SENSOR_GYRO_3D = "m"
|
|
HID_SENSOR_HUB = "m"
|
|
HID_SENSOR_HUMIDITY = "m"
|
|
HID_SENSOR_IIO_COMMON = "m"
|
|
HID_SENSOR_IIO_TRIGGER = "m"
|
|
HID_SENSOR_INCLINOMETER_3D = "m"
|
|
HID_SENSOR_MAGNETOMETER_3D = "m"
|
|
HID_SENSOR_TEMP = "m"
|
|
HID_SIGMAMICRO = "m"
|
|
HID_SMARTJOYPLUS = "m"
|
|
HID_SONY = "m"
|
|
HID_SPEEDLINK = "m"
|
|
HID_STEAM = "m"
|
|
HID_STEELSERIES = "m"
|
|
HID_SUNPLUS = "m"
|
|
HID_THINGM = "m"
|
|
HID_THRUSTMASTER = "m"
|
|
HID_TIVO = "m"
|
|
HID_TOPRE = "m"
|
|
HID_TOPSEED = "m"
|
|
HID_TWINHAN = "m"
|
|
HID_U2FZERO = "m"
|
|
HID_UCLOGIC = "m"
|
|
HID_UDRAW_PS3 = "m"
|
|
HID_VIEWSONIC = "m"
|
|
HID_VIVALDI = "m"
|
|
HID_WACOM = "m"
|
|
HID_WALTOP = "m"
|
|
HID_WIIMOTE = "m"
|
|
HID_XIAOMI = "m"
|
|
HID_XINMO = "m"
|
|
HID_ZEROPLUS = "m"
|
|
HID_ZYDACRON = "m"
|
|
["category:input".">=0.0.0"."x86 x86_64"]
|
|
HID_LENOVO = "m"
|
|
["category:input".">=6.3"."all"]
|
|
HID_EVISION = "m"
|
|
HID_SUPPORT = "y"
|
|
["category:input".">=6.5"."all"]
|
|
HID_NVIDIA_SHIELD = "m"
|
|
["category:input".">=6.6"."all"]
|
|
HID_GOOGLE_STADIA_FF = "m"
|
|
["category:input".">=6.10"."all"]
|
|
HID_WINWING = "m"
|
|
["category:input".">=6.12"."all"]
|
|
SPI = "y" # Required by HID_GOODIX_SPI
|
|
HID_GOODIX_SPI = "m"
|
|
|
|
["category:usb".">=0.0.0"."all"]
|
|
DRM = "y" # Dependency of DRM_UDL
|
|
DRM_UDL = "m" # DisplayLink - connecting displays via USB
|
|
SND_USB_AUDIO = "m" # USB audio devices
|
|
SND_USB_AUDIO_MIDI_V2 = "y" # USB MIDI devices
|
|
USB_SERIAL = "m" # USB serial consoles
|
|
USB_SERIAL_CP210X = "m" # USB serial console
|
|
USB_SERIAL_SIMPLE = "m" # USB serial console
|
|
USB_STORAGE = "m" # USB mass storage devices
|
|
USB_UAS = "m" # USB Attached SCSI (faster storage access)
|
|
USB_USBNET = "m" # USB Ethernet
|
|
USB_RTL8152 = "m" # USB Ethernet
|
|
USB_NET_RNDIS_HOST = "m" # USB Ethernet via RNDIS
|
|
|
|
["category:virt".">=0.0.0"."all"]
|
|
HW_RANDOM_VIRTIO = "m"
|
|
["category:virt".">=0.0.0"."aarch64 loongarch64 ppc64le riscv64 s390x x86 x86_64"]
|
|
KVM = "y"
|
|
VIRTUALIZATION = "y"
|
|
|
|
["category:debug".">=0.0.0"."all"]
|
|
FTRACE = "y" # Required by DEBUG_FTRACE
|
|
FUNCTION_TRACER = "y" # Required by DEBUG_FTRACE
|
|
DYNAMIC_DEBUG = "y" # Enable debug dynamically
|
|
DYNAMIC_FTRACE = "y" # Enable function tracing dynamically
|
|
|
|
# Device specific settings to prevent regressions
|
|
["category:pinephonepro".">=0.0.0"."aarch64"]
|
|
LEDS_GROUP_MULTICOLOR = "y" # pma!5991
|
|
|
|
# Required for immutable image booting
|
|
["category:immutable".">=0.0.0"."aarch64 armv7 armhf loongarch64 riscv64 x86 x86_64"]
|
|
EFIVAR_FS = "m"
|
|
["category:immutable".">=0.0.0"."all"]
|
|
DM_VERITY = "m"
|
|
|
|
["category:hardening".">=0.0.0"."all"]
|
|
# LSM can be enabled here, since if any of the listed LSMs are missing, they will be skipped
|
|
LSM = "landlock,lockdown,yama,loadpin,safesetid,selinux,smack,tomoyo,ipe,bpf"
|
|
SECURITY_DMESG_RESTRICT = "y"
|
|
SECURITY_LOCKDOWN_LSM = "y"
|
|
SECURITY_LOCKDOWN_LSM_EARLY = "y" # Ensure kernel lockdown starts early in boot
|
|
SECURITY_YAMA = "y"
|
|
|
|
# In 6.18+, CFI_CLANG is CFI
|
|
["category:hardening".">=6.18_rc1"."x86_64 aarch64 armv7 riscv64"]
|
|
CFI = "y"
|
|
CFI_PERMISSIVE = "n"
|
|
# All older versions use CFI_CLANG
|
|
["category:hardening".">=6.10.0 <6.18_rc1"."armv7"]
|
|
CFI_CLANG = "y"
|
|
CFI_PERMISSIVE = "n"
|
|
["category:hardening".">=6.6.0 <6.18_rc1"."riscv64"]
|
|
CFI_CLANG = "y"
|
|
CFI_PERMISSIVE = "n"
|
|
["category:hardening".">=6.1.0 <6.18_rc1"."x86_64"]
|
|
CFI_CLANG = "y"
|
|
CFI_PERMISSIVE = "n"
|
|
["category:hardening"."<6.18_rc1"."aarch64"]
|
|
CFI_CLANG = "y"
|
|
CFI_PERMISSIVE = "n"
|
|
["category:hardening"."<6.1_rc1"."aarch64"]
|
|
LTO_CLANG_THIN = "y" # Required for CFI pre-6.1
|
|
["category:hardening".">=6.12.0"."x86_64 aarch64 armv7 riscv64"]
|
|
CFI_ICALL_NORMALIZE_INTEGERS = "y" # Required for CFI with Rust
|
|
|
|
# Shadow Call Stack is currently only implemented on arm64 and riscv
|
|
["category:hardening".">=0.0.0"."aarch64"]
|
|
SHADOW_CALL_STACK = "y"
|
|
["category:hardening".">=6.7.0"."riscv64"]
|
|
SHADOW_CALL_STACK = "y"
|
|
|
|
# Arches come from https://docs.kernel.org/rust/arch-support.html
|
|
# riscv64 and armv7 do not set SanitizerSet::KCFI, so we cannot use them with
|
|
# our current CFI setup. loongarch64 is an exception because it doesn't have
|
|
# CFI support at all.
|
|
["category:rust".">=6.1.0"."x86_64"]
|
|
RUST = "y"
|
|
["category:rust".">=6.8.0"."loongarch64"]
|
|
RUST = "y"
|
|
["category:rust".">=6.9.0"."aarch64"]
|
|
RUST = "y"
|
|
["category:rust".">=0.0.0"."aarch64 loongarch64 x86_64"]
|
|
MODVERSIONS = "n"
|
|
|
|
# SELinux support, separate from hardening to keep it opt-in for now
|
|
["category:selinux".">=0.0.0"."all"]
|
|
DEFAULT_SECURITY_SELINUX = "y"
|
|
AUDIT = "y" # Required by SELinux
|
|
SECURITY_NETWORK = "y" # Required by SELinux
|
|
SECURITY_SELINUX = "y"
|
|
SECURITY_SELINUX_BOOTPARAM = "y"
|
|
|
|
# Enforce kernel lockdown, separate from hardening to keep it opt-in for now
|
|
["category:lockdown".">=0.0.0"."all"]
|
|
# NOTE: Enforcing integrity like this removes the ability to disable
|
|
# lockdown on the cmdline. This makes it harder for attackers to disable
|
|
# lockdown, but also makes it harder for users as well, since only a
|
|
# rebuild of the kernel can disable it.
|
|
LOCK_DOWN_KERNEL_FORCE_INTEGRITY = "y"
|
|
|
|
# Wine / Proton support
|
|
["category:wine".">=6.14.0"."all"]
|
|
NTSYNC = "m"
|