我如何知道我的 linux 风格中提供的标准内核是否选择了 DEBUG KERNEL ENABLED 标志?
我认为应该启用 DEBUG 选项才能使用 kprobe、systemtap 等工具?
我如何知道我的 linux 风格中提供的标准内核是否选择了 DEBUG KERNEL ENABLED 标志?
我认为应该启用 DEBUG 选项才能使用 kprobe、systemtap 等工具?
假设内核具有“通过 proc 提供配置”,您可以通过查看 /proc/config.gz 检查正在运行的内核的配置
gunzip -c /proc/config.gz | less
要了解您的内核是如何配置的,请检查/boot/
目录。根据您的发行版的运作方式,可能会有一个config-*
文件显示用于构建内核的内核配置选项。查找调试设置(例如CONFIG_DEBUG_KERNEL
)。
如果是 RHEL / CentOS / Fedora:
内核配置在kernel-devel包中。
Red Hat 用于构建发行版内核的特定配置存储在/usr/src/kernels/ version /.config中。
在 RHEL 5 中,您还可以通过以下方式检查通过内核安装到服务器中的所有驱动程序:
gunzip -c /boot/symvers-2.6.18-274.3.1.el5.gz | less
请注意,您可以通过以下方式获取完整路径:
rpm -ql kernel | grep -i symver*
也lsmod | more
应该这样做。希望这会有所帮助。
标准内核可能不会在启用这些标志的情况下编译,因为这会增加内核的大小。开销对大多数用户来说是不利的。
您始终可以选择重新编译您自己的自定义内核版本,在这种情况下您可以选择您自己的一组选项。
lsmod
您可以使用该命令列出编译到内核中的模块。