![如何检查CONFIG_HIGH_RES_TIMERS是否启用?](https://linux22.com/image/2731/%E5%A6%82%E4%BD%95%E6%A3%80%E6%9F%A5CONFIG_HIGH_RES_TIMERS%E6%98%AF%E5%90%A6%E5%90%AF%E7%94%A8%EF%BC%9F.png)
我要在Linux上编写一个实时应用程序,但不知道Ubuntu的标准安装是否已CONFIG_HIGH_RES_TIMERS
启用。我怎样才能检查这个?
我使用的是 Ubuntu 11.04 64 位。
答案1
Ubuntu 提供了内核配置/boot/config-$version
(与内核映像位于同一包中/boot/vmlinuz-$version
)。您可以在实时系统上检查此文件,也可以从Ubuntu 网站。有多种图像可供选择; amd64下默认是-generic
,您可以下载二进制包并解压文件/boot/config-*
。如果您没有运行基于 dpkg 的发行版,打开 Debian 软件包的最简单方法是将其转换为外星人。
顺便说一句,在 10.04/-generic/amd64 下答案是肯定的,我在写这个答案时碰巧有可用的。
其他几个发行版也提供了一个/boot/config-*
文件。其他人使内核配置可用/proc/config
或类似的东西,以便在实时系统上很容易看到,但不会出现在二进制包中。在这种情况下,如果您没有实时系统,则需要检查源码包。
答案2
您可能想使用 _SC_TIMERS 和clock_getres() 等,而不是想知道内核是如何具体配置的。
答案3
许多内核都有通过文件系统公开的配置文件的副本proc
:
zcat /proc/config |
grep CONFIG_HIGH_RES_TIMERS
如果没有,内核源代码中有一个工具可以从内核文件本身中提取它:(使用您的内核源目录和内核文件的路径来提取。)
/usr/src/linux/scripts/extract-ikconfig /boot/vmlinuz |
grep CONFIG_HIGH_RES_TIMERS