-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKconfig
More file actions
executable file
·311 lines (265 loc) · 9.55 KB
/
Copy pathKconfig
File metadata and controls
executable file
·311 lines (265 loc) · 9.55 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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
mainmenu "EdgeOS Kernel Configuration"
menu "General setup"
choice
prompt "Target architecture"
default ARCH_X86_64
config ARCH_X86_64
bool "x86_64"
config ARCH_ARM64
bool "ARM64"
endchoice
config KERNEL_VERSION
string "EdgeOS kernel version"
default "2.0.8"
help
Product release used by the EdgeOS boot banner and build metadata.
config KERNEL_VERSION_APPEND
string "Local version - append to kernel release"
default "+arm64" if ARCH_ARM64
default "+86_64"
help
Architecture suffix appended to the EdgeOS product release.
config LINUX_ABI_RELEASE
string "Linux ABI release"
default "6.12.0-edgeos"
help
Release reported by Linux ABI interfaces such as uname and procfs.
Keep this architecture-neutral so Linux userspace selects the same
feature set on every supported architecture.
config SYSFS_SYSCALL
bool "Legacy Linux sysfs system call"
default y
help
Enable the obsolete sysfs system call used to enumerate registered
filesystem types. Disable it to expose the same ENOSYS behavior as a
Linux kernel built without CONFIG_SYSFS_SYSCALL.
config SMP
bool "Symmetric multiprocessing"
default y
help
Enable architecture secondary CPU startup and the shared per-CPU
scheduler, interrupt, memory-ordering, and hotplug foundations.
config NR_CPUS
int "Maximum supported CPUs"
depends on SMP
range 2 256
default 64
help
Compile-time storage ceiling for per-CPU kernel objects. Runtime CPU
masks retain the firmware-discovered width and are not limited to one
64-bit word.
config BSD_DRIVER_BRIDGE
bool "FreeBSD source-compatible driver bridge"
default n
help
Build the shared compatibility services used to compile unmodified
BSD-licensed driver sources. Driver families remain separately
selectable and must pass their device-specific runtime tests.
config BSD_DRIVER_ACPICA
bool "Complete ACPICA namespace and method runtime"
depends on BSD_DRIVER_BRIDGE && ACPI
default y
help
Build the vendored ACPICA runtime with the shared EdgeOS operating-
system layer. This enables firmware namespace enumeration and method
execution required by laptop I2C, HID, battery, button, and thermal
drivers.
config BSD_DRIVER_MODULES
bool "Load source-built BSD drivers from relocatable modules"
depends on BSD_DRIVER_BRIDGE
default y
help
Enable the shared ELF64 and ARM64 COFF object loader so driver
packages can remain outside the kernel image and load from the root
filesystem.
config MODULES
bool "Linux module loading UAPI"
depends on BSD_DRIVER_MODULES
default y
help
Expose Linux init_module, finit_module, and delete_module system calls
over the source-built EdgeOS module loader. Public flags and errors
follow the selected Linux UAPI release.
config SYSVIPC
bool "System V IPC"
default y
help
Enable Linux-compatible shared memory, semaphore arrays, and message
queues with IPC namespace isolation and common cross-architecture
policy.
config CHECKPOINT_RESTORE
bool "Checkpoint and restore support"
default y
help
Enable Linux checkpoint and restore UAPI details implemented by
supported subsystems, including nondestructive SysV message reads.
config POSIX_MQUEUE
bool "POSIX message queues"
default y
help
Enable Linux-compatible named POSIX message queues, descriptors,
notification, polling, and IPC namespace isolation.
config AIO
bool "Legacy Linux asynchronous I/O"
default y
help
Enable Linux io_setup, io_submit, io_getevents, io_cancel, and
io_destroy over the shared descriptor I/O runtime.
config IO_URING
bool "Linux io_uring"
default y
help
Enable Linux io_uring setup, shared submission and completion rings,
registration, and asynchronous descriptor operations.
config QUOTA
bool "Linux filesystem quotas"
default y
help
Enable Linux quotactl and quotactl_fd control, quota formats, grace
information, and per-user, per-group, and per-project limit records.
config BSD_PROCESS_ACCT
bool "BSD process accounting"
default y
help
Enable Linux acct and version 3 process accounting records, including
per-PID-namespace output files and thread-group exit aggregation.
config KEYS
bool "Linux key retention service"
default y
help
Enable Linux add_key, request_key, and keyctl over the shared keyring,
permission, payload, search, timeout, and persistent-keyring runtime.
config FANOTIFY
bool "Linux fanotify notification service"
default y
help
Enable Linux fanotify notification groups, inode marks, event queues,
polling, and event file descriptors over the shared VFS event source.
config USERFAULTFD
bool "Linux userfaultfd missing-page service"
default y
help
Enable Linux userfaultfd missing-page registration, page-fault events,
polling, and userspace COPY, ZEROPAGE, and WAKE resolution.
config SECRETMEM
bool "Linux secret-memory file descriptors"
default y
help
Enable Linux memfd_secret descriptors, shared locked mappings,
non-pageable backing, and exclusion from cross-process memory access.
config PERF_EVENTS
bool "Linux performance events"
default y
help
Enable Linux perf_event_open software counters, event groups,
descriptor reads, and event control operations.
config BPF_SYSCALL
bool "Linux BPF system call"
default y
help
Enable Linux BPF object descriptors, hash and array maps, verified
cgroup-device programs, object enumeration, and information queries.
config LANDLOCK
bool "Linux Landlock filesystem access control"
default y
help
Enable Linux Landlock rulesets, path-beneath rules, stacked task
domains, and cross-architecture VFS enforcement.
config RSEQ
bool "Linux restartable sequences"
default y
help
Enable per-thread restartable-sequence registration, CPU and memory
concurrency identifiers, critical-section aborts, and Linux rseq UAPI.
config RSEQ_SLICE_EXTENSION
bool "Restartable-sequence time-slice extension"
depends on RSEQ
default y
help
Enable Linux rseq v2 time-slice requests, PR_RSEQ_SLICE_EXTENSION,
and rseq_slice_yield over the shared scheduler integration.
config BSD_DRIVER_FDT_INVENTORY
bool "Inventory Device Tree devices for BSD drivers"
depends on BSD_DRIVER_BRIDGE && DEVICE_TREE
default y
help
Create a non-attaching newbus inventory from the validated firmware
Device Tree. Imported drivers may claim matching devices after their
modules load, while native EdgeOS drivers retain ownership by default.
config BSD_DRIVER_MODULE_DIRECTORY
string "BSD driver module directory"
depends on BSD_DRIVER_MODULES
default "/usr/lib/edgeos/modules"
help
Absolute directory containing source-built BSD driver modules. Bare
entries in the module list resolve below this directory.
config BSD_DRIVER_MODULE_AUTOLOAD
bool "Load BSD driver modules during boot"
depends on BSD_DRIVER_MODULES
default y
help
Load the ordered module list after built-in compatibility services
start and before buses attach devices.
config BSD_DRIVER_MODULE_CONFIG
string "BSD driver module list"
depends on BSD_DRIVER_MODULE_AUTOLOAD
default "/etc/modules.load"
help
Absolute path to the ordered module list in the initial root
filesystem. Bare names resolve below BSD_DRIVER_MODULE_DIRECTORY.
endmenu
menu "Boot options"
config INITRAMFS
bool "Linux initramfs cpio support"
default y
help
Unpack Linux-compatible newc and crc cpio archives as the initial root
filesystem. Both x86_64 Multiboot modules and ARM64 UEFI handoff images
use the same architecture-neutral unpacker.
config INITRAMFS_SOURCE
string "Initramfs source directory"
depends on INITRAMFS
default ""
help
Directory packed by the initramfs build target. Leave this empty when an
externally generated archive is supplied by the boot loader.
config INITRAMFS_MAX_INODES
int "Maximum initramfs inode count"
depends on INITRAMFS
range 512 65536
default 8192
help
Maximum number of files, directories, links, and device nodes in the
initial root filesystem. Metadata storage is allocated only when the
initramfs root is mounted.
config INITRAMFS_MAX_BYTES
int "Maximum uncompressed initramfs size"
depends on INITRAMFS
range 1048576 1073741824
default 268435456
help
Reject compressed initial root filesystems whose advertised
uncompressed size exceeds this bound.
config INITRAMFS_GZIP
bool "gzip-compressed initramfs support"
depends on INITRAMFS
default y
help
Decode gzip-compressed initial root filesystems with the permissively
licensed zlib implementation imported with the FreeBSD source tree.
config INITRAMFS_COMPRESSION_GZIP
bool "Compress generated initramfs images with gzip"
depends on INITRAMFS_GZIP
default y
help
Make initramfs build targets emit deterministic gzip streams instead of
uncompressed cpio files.
config INITRAMFS_CRC
bool "Generate crc cpio archives"
depends on INITRAMFS && INITRAMFS_SOURCE != ""
default n
help
Generate the Linux crc cpio variant and verify each payload while
unpacking. The default newc format omits payload checksums.
endmenu
source "arch/x86/Kconfig"