去掉编译内核的优化选项

去掉编译内核的优化选项

优化级别从 -O2 改为 -O1

修改内核源代码根目录下的Makefile:

1
sed -i 's/KBUILD_CFLAGS   += -O2/KBUILD_CFLAGS   += -O1/g' Makefile

内核调试选项

1
2
3
4
5
6
7
Kernel hacking  --->
Compile-time checks and compiler options --->
[*] Compile the kernel with debug info
[*] Provide GDB scripts for kernel debugging
[*] Enable full Section mismatch analysis

[*] Kernel debugging
对应编译选项如下:
1
2
3
4
CONFIG_DEBUG_INFO = y
CONFIG_GDB_SCRIPTS = y
CONFIG_DEBUG_SECTION_MISMATCH = y
CONFIG_DEBUG_KERNEL = y
为了支持`CONFIG_DEBUG_SECTION_MISMATCH`特性,还需开启`CONFIG_X86_5LEVEL`特性:
1
[*] Enable 5-level page tables support
对应编译选项如下:
1
CONFIG_X86_5LEVEL = y

关闭内核随机地址选项

1
2
Processor type and features ---->
[] Randomize the address of the kernel image (KASLR)
对应编译选项如下:
1
CONFIG_RANDOMIZE_BASE = n
`make menuconfig`确认上述编译选项后输出如下: ![config](https://cdn.jsdelivr.net/gh/realwujing/picture-bed/config.png)

编译内核

1
make -j`expr $(nproc) \* 2`

More


去掉编译内核的优化选项
https://realwujing.github.io/linux/kernel/qemu/去掉编译内核的优化选项/
作者
Wu Jing
发布于
2023年4月19日
许可协议