我在更新內核消息時遇到了問題。我想我可能已經損壞了我的內核,因爲KERN ALERT消息似乎沒有更新。系統調用教程 - Hello World
我所謂的 「dmesg的」 命令,這是被顯示的內容:
Jan 20 18:18:59 cu-cs-vm kernel: [29194.126766] hello world
但更新後helloworld.c:
#include <linux/kernel.h>
#include <linux/linkage.h>
asmlinkage long sys_helloworld(void)
{
printk(KERN_ALERT "Why isn't this working now???");
return 0;
}
它仍然打印: 1月20日18:35: 25銅CS-VM內核:[30178.146268]你好世界
這是我測試它的腳本:
#include <unistd.h>
#include <stdio.h>
int main(){
int id;
id = syscall(318);
printf("should print out zero: %d\n", id);
return 0;
}
printf確實打印0而不是-1,這很好,但爲什麼不把內核消息從「hello world」更新爲「爲什麼現在不工作?」我已重新編譯。如果有人有任何想法,我會很感激,如果你可以與我分享。謝謝!
您是否使用modprobe重新加載了模塊? – 2015-01-21 02:43:16
我對modprobe不是很熟悉,但是我的問題是我不知道哪個模塊導致了問題。不確定要重新加載哪一個。 – user2998285 2015-01-21 03:06:47
確保已經使用'rmmod'卸載了以前加載的模塊,然後使用'insmod'插入最近編譯的模塊。 – 2015-01-21 04:44:26