|
源码如下,这是一个简单的内核驱动代码:
#include <linux/config.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
int driver_open(struct inode *i,struct file *f)
{
printk("<1>open function.\n");
return 0;
}
struct file_operations *fops={
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
driver_open,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
};
int init_module(void)
{
int devnum;
devnum=register_chrdev(40,"driver",fops);
printk("^_^major num is %d\n",devnum);
if(devnum)
{printk("<1>hello,world.\n");
return 0;}
else {printk("<1>error.\n"); return 0;}
}
void cleanup_module(void)
{
unregister_chrdev(40,"driver");
printk("<1>Goodbye,Crule world.\n");
}
MODULE_LICENSE("GPL");
我在mknod /dev/driver c 40 0之后,插入这个驱动模块,可是老是出现error,也就是register_chdev根本没有成功?
为什么啊?着急。 |
|