-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcustomize_config.sh
More file actions
executable file
·216 lines (177 loc) · 5.14 KB
/
Copy pathcustomize_config.sh
File metadata and controls
executable file
·216 lines (177 loc) · 5.14 KB
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2026 GrandBIRDLizard
#
# bitmap-basilisk kernel config policy
# Applied after patching and before final olddefconfig/build.
# Root-level intentionally during pre-AUR development.
set -euo pipefail
set -euo pipefail
cfg() {
./scripts/config "$@"
}
try_enable() {
local sym="$1"
echo " [+] Trying to enable $sym"
cfg --enable "$sym" || echo " [!] Could not enable $sym"
}
try_disable() {
local sym="$1"
echo " [-] Trying to disable $sym"
cfg --disable "$sym" || echo " [!] Could not disable $sym"
}
try_module() {
local sym="$1"
echo " [m] Trying to set module $sym"
cfg --module "$sym" || echo " [!] Could not set module $sym"
}
require_set() {
local sym="$1"
local want="$2"
local cfgline="CONFIG_${sym}"
case "$want" in
y)
if grep -q "^${cfgline}=y$" .config; then
echo " [ok] ${cfgline}=y"
else
echo " [ERR] Expected ${cfgline}=y"
exit 1
fi
;;
m)
if grep -q "^${cfgline}=m$" .config; then
echo " [ok] ${cfgline}=m"
else
echo " [ERR] Expected ${cfgline}=m"
exit 1
fi
;;
n)
if grep -q "^# ${cfgline} is not set$" .config; then
echo " [ok] ${cfgline} is not set"
else
echo " [ERR] Expected ${cfgline} to be disabled"
exit 1
fi
;;
*)
echo " [ERR] Unknown require_set state: $want"
exit 1
;;
esac
}
warn_if_not() {
local sym="$1"
local want="$2"
local cfgline="CONFIG_${sym}"
case "$want" in
y)
grep -q "^${cfgline}=y$" .config \
&& echo " [ok] ${cfgline}=y" \
|| echo " [WARN] ${cfgline} not y (tree/deps may differ)"
;;
m)
grep -q "^${cfgline}=m$" .config \
&& echo " [ok] ${cfgline}=m" \
|| echo " [WARN] ${cfgline} not m (tree/deps may differ)"
;;
n)
grep -q "^# ${cfgline} is not set$" .config \
&& echo " [ok] ${cfgline} is not set" \
|| echo " [WARN] ${cfgline} not disabled (tree/deps may differ)"
;;
esac
}
echo "[*] Applying Bitmap-Basilisk X3D Policy (Liquorix-safe, 6.19+)..."
# ------------------------------------------------------------
# Advanced scheduler / BPF / BMQ infrastructure
try_enable DEBUG_INFO
try_enable DEBUG_INFO_BTF
try_enable BPF
try_enable BPF_SYSCALL
try_enable BPF_JIT
try_enable BPF_EVENTS
# sched-ext if present in this tree
try_enable SCHED_CLASS_EXT
# Alternate scheduler baseline: BMQ only
try_enable SCHED_ALT
try_enable SCHED_BMQ
try_disable SCHED_PDS
# ------------------------------------------------------------
# X3D / AMD topology-friendly settings
try_enable AMD_3D_VCACHE
try_enable X86_AMD_PSTATE
try_enable ACPI_CPPC_LIB
try_enable X86_MSR
# Optional / tree-dependent
try_enable X86_AMD_PSTATE_DEFAULT_MODE_EPP
try_enable SCHED_MC_PRIO
# ------------------------------------------------------------
# Latency / tick / jitter tuning
try_enable HZ_1000
try_disable HZ_300
try_disable HZ_250
try_disable HZ_100
try_enable HIGH_RES_TIMERS
try_enable NO_HZ_IDLE
# Optional advanced isolation-capable path
try_enable NO_HZ_FULL
try_disable NO_HZ_FULL_ALL
try_enable CONTEXT_TRACKING
try_enable VIRT_CPU_ACCOUNTING_GEN
try_enable RCU_NOCB_CPU
# ------------------------------------------------------------
# Hardware / debug / introspection
try_module DRM_AMDGPU
try_enable IKCONFIG
try_enable IKCONFIG_PROC
try_enable SCHED_DEBUG
# Console fonts if present
try_disable FONTS
try_enable FONT_8x8
try_enable FONT_8x16
echo "[*] Resolving dependencies with olddefconfig..."
make olddefconfig
echo "[*] Validating Bitmap-Basilisk baseline..."
# ------------------------------------------------------------
# Preferred scheduler baseline (best-effort for now)
warn_if_not SCHED_CLASS_EXT y
warn_if_not SCHED_ALT y
warn_if_not SCHED_BMQ y
warn_if_not SCHED_PDS n
# ------------------------------------------------------------
# Strongly desired core latency baseline (hard fail)
require_set HZ_1000 y
require_set HIGH_RES_TIMERS y
require_set NO_HZ_IDLE y
# ------------------------------------------------------------
# Best-effort / tree-dependent features (warn only)
warn_if_not DEBUG_INFO y
warn_if_not DEBUG_INFO_BTF y
warn_if_not BPF y
warn_if_not BPF_SYSCALL y
warn_if_not BPF_JIT y
warn_if_not BPF_EVENTS y
warn_if_not AMD_3D_VCACHE y
warn_if_not X86_AMD_PSTATE y
warn_if_not ACPI_CPPC_LIB y
warn_if_not X86_MSR y
warn_if_not X86_AMD_PSTATE_DEFAULT_MODE_EPP y
warn_if_not SCHED_MC_PRIO y
warn_if_not NO_HZ_FULL y
warn_if_not NO_HZ_FULL_ALL n
warn_if_not CONTEXT_TRACKING y
warn_if_not VIRT_CPU_ACCOUNTING_GEN y
warn_if_not RCU_NOCB_CPU y
warn_if_not DRM_AMDGPU m
warn_if_not IKCONFIG y
warn_if_not IKCONFIG_PROC y
warn_if_not SCHED_DEBUG y
warn_if_not FONTS n
warn_if_not FONT_8x8 y
warn_if_not FONT_8x16 y
echo
echo "[*] Bitmap-Basilisk config policy complete."
echo "[*] Final selected config summary:"
grep -E '^(CONFIG_(SCHED_ALT|SCHED_BMQ|SCHED_PDS|SCHED_CLASS_EXT|BPF|BPF_SYSCALL|BPF_JIT|BPF_EVENTS|DEBUG_INFO|DEBUG_INFO_BTF|X86_AMD_PSTATE|ACPI_CPPC_LIB|X86_MSR|IKCONFIG|IKCONFIG_PROC|HZ_1000|NO_HZ_FULL|NO_HZ_IDLE)=|# CONFIG_SCHED_PDS is not set)' .config || true