我在更新内核消息时遇到了问题。我想我可能已经损坏了我的内核,因为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