|
楼主 |
发表于 2003-5-22 12:58:00
|
显示全部楼层
按照Dragonfly 所说的 我改了一下driver/char/mem.c
[code:1]
#include <linux/config.h>
#include <linux/mm.h>
#include <linux/miscdevice.h>
#include <linux/tpqic02.h>
#include <linux/ftape.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/mman.h>
#include <linux/random.h>
#include <linux/init.h>
#include <linux/raw.h>
#include <linux/tty.h>
#include <linux/capability.h>
#include <asm/uaccess.h>
#include <asm/io.h>
#include <asm/pgalloc.h>
static ssize_t read_null(struct file * file, char * buf,
size_t count, loff_t *ppos)
{
return 0;
}
static ssize_t write_null(struct file * file, const char * buf,
size_t count, loff_t *ppos)
{
return count;
}
static struct file_operations null_fops = {
read: read_null,
write: write_null
};
int __init chr_dev_init(void)
{
devfs_register (NULL, "myzero", DEVFS_FL_NONE,
MEM_MAJOR, 255,/*<<=======我不知道这个数该添啥 原来写的是3 */
S_IRUGO | S_IWUGO | S_IFCHR,
&null_fops, NULL);
return 0;
}
__initcall(chr_dev_init);
[/code:1]
我把前面的一大堆include都用上了
用
gcc -c -DMODULE -D__KERNEL__ -DLINUX -I/usr/src/linux-2.4/include chard.c
编译通过
#cp chard.o /lib/modules/2.4.20-8/misc/
#depmod -a
#insmod chard
Using /lib/modules/2.4.20-8/misc/chard.o
/lib/modules/2.4.20-8/misc/chard.o: couldn't find the kernel version the module
was compiled for
又是version的问题 奇怪了 我可是抄mem.c的阿 是不是我编译有问题?
还有 mem.c写的和我看的书上写的不一样 书上还要unregister设备
请指教 |
|