免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 876 | 回复: 0
打印 上一主题 下一主题

添加简单的系统调用(使用2.6.16.11内核) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-18 16:13 |只看该作者 |倒序浏览
前几天在2.6.16.11的内核中加入了一条简单的系统调用,在FC4上编译成功。
下面的步骤大部分是在linux内核的目录进行的
1       make clean
2       cd include/linux
        vi syscalls.h
        在最后一行加上
        asmlinkage long sys_mycall(void);
3       vi include/asm-i386/unistd.h
        在#define __NR_unshare            310
        下面加上#define __NR_mycall             311
        并修改下面的#define NR_syscalls 311
        为#define NR_syscalls 312
4       vi /kernel/sys.c
        asmlinkage long sys_mycall(void)
        {
                printk("pid: %d:\tThis is my call.\n",current->tgid);
                return 0;
        }
5       在linux/arch/asm/kernel/syscall_table.S中的sys_call_table[]中加入最后一行
        .long sys_mycall
6       make oldconfig(使用旧的配置比自己重新配置方便多了)
7       make (等了大概40分钟)
8       做好备份:
        cd /lib
        cp -R 2.6.16.11 2.6.16.11.save-060608
9       make modules_install
10      cp arch/i386/boot/bzImage  /boot/vmlinuz-2.6.16.11-060608
        cp System.map /boot/System.map-060608
11      修改grub:
        新增加几行:
        title kernel-2.6.16.11-060608
        root (hd0,7)
        kernel /boot/vmlinuz-2.6.16.11-060608 root=/dev/hdb8 ro
        initrd (hd0,7)/boot/initrd-2.6.16.11.img
12      重启,以single模式进入系统,安装nvidia显卡驱动,
        进入解压后的目录,
        ./NVIDIA-Linux-x86-1.0-8756-pkg1.run
        init 5就可以进入图形界面
13      测试系统调用:
        新建文件test.c,见附录:
        gcc -o test  test.c
        ./test
        输出:
        before mycall: i=5
        pid:2669 This is my call.
        after  mycall: i=0
        注意:必须在非图形化的终端(使用Ctrl+Alt+[1..6])下才能输出pid...一行。具体原因还不清楚。
        在> (William von Hagen)
        中有一些说明。
附录:
/*** test.c ***/
#include
#include
#define __NR_mycall     311   /*不加不行*/
_syscall0(int,mycall)
int main()
{
        int i;
        i = 5;
        printf("before mycall: i=%d\n",i);
        i = mycall();
        printf("after  mycall: i=%d\n",i);
        return 0;
}
     


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/20704/showart_129558.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP