我用一個rt補丁修補了一個linux內核3.2,然後安裝了它。現在在GRUB菜單中,我可以選擇內核,並且它還包含後綴-rt。但我仍然不確定它是否具備實時功能。有沒有辦法找出它是實時內核還是普通的香草核? 進一步根據rtwiki中的一個例子,它告訴我們是否使用了一個vanilla或一個rt先佔內核。當我修改我的內核與RT補丁創建如何查找正在使用的內核是否爲實時
#include <string.h>
#include <stdio.h>
#include <sys/utsname.h>
int main(int argc, char **argv)
{
struct utsname u;
int crit1, crit2 = 0;
FILE *fd;
uname(&u);
crit1 = strcasestr (u.version, "PREEMPT RT");
if ((fd = fopen("/sys/kernel/realtime","r")) != NULL) {
int flag;
crit2 = ((fscanf(fd, "%d", &flag) == 1) && (flag == 1));
fclose(fd);
}
fprintf(stderr, "this is a %s kernel\n",
(crit1 && crit2) ? "PREEMPT RT" : "vanilla");
}
該代碼訪問的命名從SYS /內核的實時文件,但沒有這樣的文件。
'uname -r'會顯示內核版本。 –
@rakib雅甚至它顯示後綴rt,但是我用於實時安裝ENOGH的方法。現在有什麼需要做的,以激活實時內核 – Bas
,因爲當我嘗試運行實時程序,我得到像「sched_setscheduler失敗:操作不允許」的錯誤。 – Bas