-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathbuild-custom-kernel.txt
157 lines (139 loc) · 4.54 KB
/
build-custom-kernel.txt
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
PREPARE A CUSTOM KERNEL
=======================
From the kernel source directory, execute:
$ make tinyconfig
Then, execute 'make menuconfig' and enable the following options:
Kernel hacking > x86 Debugging
* printk and demsg options
* Show timing information on printks
* Set Default console loglevel and Default message log level to 7
* Compile-time checks and compiler options
* Debug information (Rely on the toolchain's implicit default DWARF version)
* Generate BTF typeinfo
* Generic Kernel Debugging Instruments
* Magic SysRq key
* Debug Filesystem
* KGDB: kernel debugger
* Tracers
* x86 Debugging
* Enable verbose x86 bootup messages
* Early printk
General setup
* Configure standard kernel features (expert users):
* Multiple users, groups and capabilities support
* open by fhandle syscalls
* Posix clocks and timers
* Enable support for printk
* BUG() support
* Enable futex support
* Enable eventpoll support
* Enable signalfd() system call
* Enable timerfd() system call
* Enable eventfd() system call
* Use full shmem filesystem
* Enable AIO support
* Load all symbols for debugging/ksymoops
* BPF subsystem
* Enable BPF Just In Time compiler
* Disable unprivileged BPF by default
* Enable BPF LSM Instrumentation
* CPU/Task time and stats accounting
* Pressure stall information tracking
* Control Group support
* CPU Controller
* CPU Bandwidth provisioning for FAIR_GROUP_SCHED
* Support for eBPF programs attached to cgroups
* Namespaces support
* Initial RAM filesystem and RAM disk (initramfs/initrd) support
* Enable kcmp() system call
64-bit kernel
Processor type and features
* Symmetric multi-processing support
* Linux guest support
* Enable paravirtualization code
* KVM Guest support (including kvmclock)
* Enable DMI scanning
* EFI runtime service support
Power Management and ACPI options
* ACPI (Advanced Configuration and Power Interface) Support
Binary emulations
* IA32 Emulation
* x32 ABI for 64-bit mode
Virtualization
General architecture-dependent options
* Enable seccomp to safely execute untrusted bytecode
Enable loadable module support
Enable the block layer
* Partition Types
* Advanced partition selection
* PC BIOS (MSDOS partition tables) support
* EFI GUID Partition support
Executable file formats
* Kernel support for ELF binaries
* Kernel support for scripts starting with #!
* Kernel support for MISC binaries
Networking support
* Networking options
* Packet socket
* UNIX domain sockets
* TCP/IP networking
* Network packet filtering framework (Netfilter)
File systems
* Second extended fs support
* The Extended 3 (ext3) file system
* Ext3 POSIX Access Control Lists
* The Extended 4 (ext4) filesystem
* Ext4 POSIX Access Control Lists
* Kernel automounter support (supports v3, v4 and v5)
* Enable POSIX file locking API
* Inotify support for userspace
* Pseudo filesystems:
* /proc file system support
* Sysctl support (/proc/sys)
* sysfs file system support
* Tmpfs virtual memory file system support (former shm fs)
* Tmpfs POSIX Access Control Lists
* EFI variable filesystem
Security options
* Enable different security models
Device Drivers
* PCI support
* Generic Driver Options
* Maintain a devtmpfs filesystem to mount at /dev
* Automount devtmpfs at /dev, after the kernel mounted the rootfs
* Firmware loader
* Firmware loading facility
* Enable users to initiate firmware updates using sysfs
* Firmware Drivers
* Add firmware-provided memory map to sysfs
* Export DMI identification via sysfs to userspace
* DMI table support in sysfs
* QEMU fw_cfg device support in sysfs
* QEMU fw_cfg device parameter parsing
* Virtio drivers:
* PCI driver for virtio devices
* Block devices
* Virtio block driver
* SCSI device support
* SCSI disk support
* Serial ATA and Parallel ATA drivers (libata)
* Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support
* Network device support
* Virtio network driver
* Ethernet driver support
* Intel devices
* Intel(R) PRO/100+ support
* Intel(R) PRO/1000 Gigabit Ethernet support
* Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support
* Character Devices
* Enable TTY
* Virtual terminal
* Enable character translations in console
* Support for console on virtual terminals
* Unix98 PTY support
* Legacy (BSD) PTY support
* TTY driver to output user messages via printk
* Serial drivers
* 8250/16550 and compatible serial support
* Console on 8250/16550 and compatible serial port
Finally, build the kernel with "make bzImage modules"