LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1735|回复: 1

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

[复制链接]
发表于 2009-12-16 21:01:26 | 显示全部楼层 |阅读模式
我试图在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;
}
[/HTML]
但是什么结果也没有,是哪里出了问题呢?感觉好像没有找到我添加的系统调用啊
那个系统调用号是系统唯一的,没有和其他的冲突。
谢谢
补充下:
我的机器cpu是Pentium (R) Dual-Core CPU T4200 @2.00G HZ
 楼主| 发表于 2009-12-16 22:29:03 | 显示全部楼层
我弄错了,有结果输出的
printk的输出在/var/log/messages
奇怪的是怎么之前没有呢?
可能是大意了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表