LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: macping

如何注册一个内核模块,能够进行网络通信

[复制链接]
 楼主| 发表于 2006-3-20 14:48:29 | 显示全部楼层
#ifndef __KERNEL__

#define __KERNEL__

#endif

#ifndef MODULE

#define MODULE

#endif

#include <linux/module.h>
#include <linux/init.h>

#include <linux/config.h>
#include <asm/uaccess.h>


#define __KERNEL_SYSCALLS__
#include <linux/fs.h>


static int __init vman_init(void)
{
        printk("<1>Hello,world\n");
        int fd;
        fd=open("/root/result1.tr",O_CREAT|O_RDWR,S_IRWXU);
        return 0;
}

static void __exit vman_exit(void)
{
        printk("<1>Goodbye cruel world\n");
}


MODULE_DESCRIPTION("MAC-filter by Yuelei VMANE project, Northeastern University");

MODULE_AUTHOR("Yuelei");

#ifdef MODULE_LICENSE

MODULE_LICENSE("GPL");

#endif
module_init(vman_init);

module_exit(vman_exit);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-20 14:50:03 | 显示全部楼层
[root@macxiaowei test1]# make
gcc -Wall -O -D__KERNEL__ -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4/include/linux/modversions.h -nostdinc -I /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include -I/usr/src/linux-2.4/include -c test.c -o test.o
test.c: In function `vman_init':
test.c:23: warning: implicit declaration of function `open'
为什么会是这样
回复 支持 反对

使用道具 举报

发表于 2006-3-20 21:45:43 | 显示全部楼层
#ifndef __KERNEL__

#define __KERNEL__

#endif

#ifndef MODULE

#define MODULE

#endif

#include <linux/module.h>
#include <linux/init.h>

#include <linux/config.h>
#include <asm/uaccess.h>

#include <asm/unistd.h>

_syscall2(int,open,const char*,name,int,flags)


#define __KERNEL_SYSCALLS__
#include <linux/fs.h>


static int __init vman_init(void)
{
printk("<1>Hello,world\n");
int fd;
fd=open("/root/result1.tr",O_CREAT|O_RDWR,S_IRWXU);
return 0;
}

static void __exit vman_exit(void)
{
printk("<1>Goodbye cruel world\n");
}


MODULE_DESCRIPTION("MAC-filter by Yuelei VMANE project, Northeastern University");

MODULE_AUTHOR("Yuelei");

#ifdef MODULE_LICENSE

MODULE_LICENSE("GPL");

#endif
module_init(vman_init);

module_exit(vman_exit);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-21 07:59:27 | 显示全部楼层
谢谢camelguo。。。。
我试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-21 08:57:47 | 显示全部楼层
[root@macxiaowei test1]# make
gcc -Wall -O -D__KERNEL__ -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4/include/linux/modversions.h -nostdinc -I /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include -I/usr/src/linux-2.4/include -c test.c -o test.o
test.c: In function `open':
test.c:21: `errno' undeclared (first use in this function)
test.c:21: (Each undeclared identifier is reported only once
test.c:21: for each function it appears in.)
make: *** [test.o] Error 1

还是过不去!!为什么,,,,,,郁闷死了
#ifndef __KERNEL__

#define __KERNEL__

#endif

#ifndef MODULE

#define MODULE

#endif

#include <linux/module.h>
#include <linux/init.h>

#include <linux/config.h>
#include <asm/uaccess.h>

#include <asm/unistd.h>

_syscall3(int,open,const char *,file,int,flag,int,mode)


#define __KERNEL_SYSCALLS__
#include <linux/fs.h>


static int __init vman_init(void)
{
printk("<1>Hello,world\n");
int fd;
fd=open("/root/result1.tr",O_CREAT|O_RDWR,S_IRWXU);
return 0;
}

static void __exit vman_exit(void)
{
printk("<1>Goodbye cruel world\n");
}


MODULE_DESCRIPTION("MAC-filter by Yuelei VMANE project, Northeastern University");

MODULE_AUTHOR("Yuelei");

#ifdef MODULE_LICENSE

MODULE_LICENSE("GPL");

#endif
module_init(vman_init);

module_exit(vman_exit);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-21 08:59:29 | 显示全部楼层
camelguo大哥,再给看看.....谢谢
回复 支持 反对

使用道具 举报

发表于 2006-3-21 16:07:20 | 显示全部楼层
ifndef __KERNEL__

#define __KERNEL__

#endif

#ifndef MODULE

#define MODULE

#endif

#include <linux/module.h>
#include <linux/init.h>

#include <linux/config.h>
#include <asm/uaccess.h>

#include <asm/unistd.h>

_syscall3(int,open,const char *,file,int,flag,int,mode)

int errno;

#define __KERNEL_SYSCALLS__
#include <linux/fs.h>


static int __init vman_init(void)
{
printk("<1>Hello,world\n");
int fd;
fd=open("/root/result1.tr",O_CREAT|O_RDWR,S_IRWXU);
return 0;
}

static void __exit vman_exit(void)
{
printk("<1>Goodbye cruel world\n");
}


MODULE_DESCRIPTION("MAC-filter by Yuelei VMANE project, Northeastern University");

MODULE_AUTHOR("Yuelei");

#ifdef MODULE_LICENSE

MODULE_LICENSE("GPL");

#endif
module_init(vman_init);

module_exit(vman_exit);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-21 20:06:57 | 显示全部楼层
编译是通过了
但是加载过模块,还是没有建立相应的文件。。。。。。。。。。
肯请camelguo把qq或别的即时联系方式留下。。。。
小弟好即时联系请教
回复 支持 反对

使用道具 举报

发表于 2006-3-22 13:24:16 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2006-3-29 11:35:28 | 显示全部楼层
递交重复,见下贴
回复 支持 反对

使用道具 举报

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

本版积分规则

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