aboutsummarylogtreecommitdiffstats
path: root/xanmod-rog-config
blob: c30094e33fdb53ace2ac9908c999dc53af77b38f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/bin/bash

#
# Xanmod-ROG configuration script; this script is called during package creation and tunes kernel configuration
#            where we want to differ from upstream Xanmod

# Any user customization should be done in $PKGDIR/myconfig or $HOME/.config/linux-xanmod-rog/myconfig; if either
# of these scripts exists they'll be called during package build after this script finishes

#
# WARNING: DO NOT EDIT THIS FILE, it will be over-written by future updates -- use myconfig instead
#

# XXX: As this kernel package is primarily targeted at ASUS laptops we default to schedutil so the machine properly
# XXX: clocks down. Consider using 'ondemand' to trade efficiency for performance when needed

scripts/config  --disable CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE \
                --enable CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL

# asusctl/supergfxctl VFIO compatibility
scripts/config  --module CONFIG_VFIO \
                --module CONFIG_VFIO_VIRQFD \
                --disable CONFIG_VFIO_NOIOMMU \
                --module CONFIG_VFIO_PCI

# package throws a warning re: lack of binutils support if this is left on
scripts/config  --disable CONFIG_X86_X32

# sync default hostname with Arch
scripts/config  --set-str CONFIG_DEFAULT_HOSTNAME archlinux

# sync up some BPF defaults with mainline
scripts/config  --enable CONFIG_DEBUG_INFO \
                --enable CONFIG_DEBUG_INFO_DWARF4 \
                --enable CONFIG_DEBUG_INFO_BTF \
                --enable CONFIG_DEBUG_INFO_BTF_MODULES

# FIXME: BPF preloading is still causing boot-time errors for people, disable for now
#scripts/config  --enable CONFIG_BPF_PRELOAD \
#                --module CONFIG_BPF_PRELOAD_UMD \
#                --enable CONFIG_BPF_LSM

scripts/config  --enable CONFIG_BPF_LSM

# sync some settings with Arch:
scripts/config  --enable CONFIG_TASKS_RUDE_RCU \
                --disable CONFIG_X86_MCELOG_LEGACY \
                --enable CONFIG_X86_CPA_STATISTICS \
                --module CONFIG_X86_PMEM_LEGACY \
                --enable CONFIG_KPROBES_ON_FTRACE \
                --enable CONFIG_UPROBES \
                --enable CONFIG_LOCK_EVENT_COUNTS \
                --enable CONFIG_MODULE_FORCE_LOAD \
                --enable CONFIG_MODULE_FORCE_UNLOAD \
                --enable CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS \
                --enable CONFIG_BLK_DEV_THROTTLING_LOW \
                --enable CONFIG_BLK_CGROUP_IOCOST \
                --enable CONFIG_CMA \
                --enable CONFIG_CMA_DEBUGFS \
                --enable CONFIG_CMA_SYSFS \
                --set-val CONFIG_CMA_AREAS 7 \
                --enable CONFIG_READ_ONLY_THP_FOR_FS \
                --enable CONFIG_XFRM_SUB_POLICY \
                --enable CONFIG_XFRM_MIGRATE \
                --enable CONFIG_NET_KEY_MIGRATE \
                --enable CONFIG_IPV6_OPTIMISTIC_DAD \
                --enable CONFIG_IPV6_RPL_LWTUNNEL \
                --enable CONFIG_NF_CONNTRACK_PROCFS \
                --module CONFIG_NETFILTER_XT_TARGET_NOTRACK \
                --disable CONFIG_DECNET \
                --module CONFIG_IPDDP \
                --enable CONFIG_IPDDP_ENCAP \
                --disable CONFIG_X25 \
                --disable CONFIG_LAPB

scripts/config  --enable CONFIG_TRACEPOINTS \
                --disable CONFIG_IOSF_MBI_DEBUG \
                --enable CONFIG_KVM_MMU_AUDIT \
                --disable CONFIG_BLK_CMDLINE_PARSER \
                --module CONFIG_PCIEAER_INJECT \
                --enable CONFIG_PCIE_ECRC \
                --enable CONFIG_PCI_P2PDMA

# XXX: I'm going to make an opinionated decision here and save everyone some compilation time
# XXX: on drivers almost no-one is going to use; if you need any of theese turn them on in myconfig
scripts/config  --disable CONFIG_INFINIBAND \
                --disable CONFIG_DRM_NOUVEAU \
                --disable CONFIG_PCMCIA_WL3501 \
                --disable CONFIG_PCMCIA_RAYCS \
                --disable CONFIG_IWL3945 \
                --disable CONFIG_IWL4965 \
                --disable CONFIG_IPW2200 \
                --disable CONFIG_IPW2100

# select slightly more sane block device driver options; NVMe really should be built in 
scripts/config  --disable CONFIG_RAPIDIO \
                --module CONFIG_CDROM \
                --disable CONFIG_PARIDE \
                --enable CONFIG_NVME_CORE \
                --enable CONFIG_BLK_DEV_NVME \
                --module CONFIG_FDDI \
                --module CONFIG_PPP \
                --module CONFIG_SLHC

# larger kernel log buffer (256KB)
scripts/config  --set-val CONFIG_LOG_BUF_SHIFT 18

# MSR as a module
scripts/config  --module CONFIG_X86_MSR

# enable EFI var access
scripts/config  --module CONFIG_EFI_VARS

# disable user event hooks
scripts/config  --disable CONFIG_UEVENT_HELPER
scripts/config  --disable CONFIG_FW_LOADER_USER_HELPER

# Xanmod: enable scheduler autogrouping
scripts/config --enable CONFIG_SCHED_AUTOGROUP_DEFAULT_ENABLED

# feature: enable multigen LRU by default
scripts/config  --enable CONFIG_LRU_GEN \
                --enable CONFIG_LRU_GEN_ENABLED

# bake in s0ix debugging parameters so we get useful problem reports re: suspend
scripts/config  --enable CONFIG_CMDLINE_BOOL \
                --set-str CONFIG_CMDLINE "makepkgplaceholderyolo" \
                --disable CMDLINE_OVERRIDE

# HACK: forcibly fixup CONFIG_CMDLINE here as using scripts/config mangles escaped quotes
sed -i 's#makepkgplaceholderyolo#pm_debug_messages amd_pmc.enable_stb=1 amd_pmc.dyndbg=\\"+p\\" acpi.dyndbg=\\"file drivers/acpi/x86/s2idle.c +p\\"#' .config

# Note the double escaped quotes above, sed strips one; the final result in .config needs to contain single slash
# escaped quotes (eg: `CONFIG_CMDLINE="foo.dyndbg=\"+p\""`) to avoid dyndbg parse errors at boot. This is impossible
# with the current kernel config script.