+ -
当前位置:首页 → 问答吧 → 给2.6.31内核添加一个系统调用[疑问]

给2.6.31内核添加一个系统调用[疑问]

时间:2009-12-17

来源:互联网

我试图在2.6.31版本的内核里面添加一个系统调用
步骤如下:
HTML 代码:
1.cd /usr/src/linux/include/asm-generic/
2. vim unistd.h,添加#define __NR_mysyscall 337
3.cd /usr/src/linux/arch/x86/kernel/
4. vim syscall_table_32.S 添加.long sys_mysyscall
5.cd /usr/src/linux/kernel
6.vim sys.c 添加函数
asmlinkage int sys_mysyscall(void)
{
 printk( "hello, world" );
 return 10;
}

7.编译,并且启用新内核
8.编写代码
#include <linux/unistd.h>
#include <sys/syscall.h>

#define __NR_mysyscall 337

int main(int argc, char** argv)
{
 syscall(__NR_mysyscall );
 return 0;
}
但是什么结果也没有,是哪里出了问题呢?感觉好像没有找到我添加的系统调用啊
那个系统调用号是系统唯一的,没有和其他的冲突。
谢谢
补充下:
我的机器cpu是Pentium (R) Dual-Core CPU T4200 @2.00G HZ

作者: pamirs   发布时间: 2009-12-17

我弄错了,有结果输出的
printk的输出在/var/log/messages
奇怪的是怎么之前没有呢?
可能是大意了

作者: pamirs   发布时间: 2009-12-17