如何自动创建设备节点

内核编译和嵌入式产品的设计与开发
回复
zdhwh
帖子: 5
注册时间: 2009-05-27 17:01

如何自动创建设备节点

#1

帖子 zdhwh » 2009-05-31 10:28

我的字符驱动程序已经写好,并且已经编译进内核,但是每次需要手动mknod创建节点,现在我看别人的程序用devfs系统来自动创建设备节点,可是加入了相关代码后(注释的三行代码),编译有错误,程序代码见下面,求高人指点一下,帮我看看哪里出问题了,非常感谢!
#include <linux/kernel.h> /* printk() */

#include <linux/module.h>

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



#include <linux/fs.h>

#include <linux/cdev.h> /* cdev_add(), cdev_del() */

#include <linux/errno.h> /* error codes */

#include <linux/irq.h> /* IRQT_BOTHEDGE */

#include <linux/interrupt.h> /* request_irq(), free_irq() */

#include <linux/slab.h> /* kmalloc(), kfree() */

#include <linux/poll.h> /* PULLIN, PULLRDNORM */
#include <linux/ioport.h>
#include <asm/arch/gio.h>
#include <asm/io.h>
#include <asm/arch/io.h>
#include <asm/arch/hardware.h>

#define DEVICE_NAME "GPIO_ZFK"
#define BUTTON_MAJOR 223
#define BUTTON_MINOR 0

MODULE_AUTHOR("GGY2005");
MODULE_LICENSE("GPL");

static int GPIO_button_open(struct inode *inode, struct file *filp)

{

gpio_set_direction(GPIO(6), GIO_DIR_OUTPUT);
gpio_set_value(GPIO(6),1);

return 0;

}

static int GPIO_button_release(struct inode *inode, struct file *filp)

{

gpio_set_direction(GPIO(6), GIO_DIR_OUTPUT);

gpio_set_value(GPIO(6),0);

return 0;

}



static struct file_operations GPIO_ZFK_fops = {

.owner = THIS_MODULE,

.open = GPIO_button_open,

.release= GPIO_button_release,

};
//static devfs_handle_t devfs_handle;

static int __init GPIO_button_init(void)

{
int result;
gpio_set_direction(GPIO(6), GIO_DIR_OUTPUT);
gpio_set_value(GPIO(6),0);

result=register_chrdev(223, DEVICE_NAME ,&GPIO_ZFK_fops);
if (result<0)
{
printk(DEVICE_NAME"can't register major number");
return result;
}
// devfs_handle=devfs_register(NULL,DEVICE_NAME,DEVFS_FL_DEFAULT,223,0,S_IFCHR|S_IRUSR|S_IWUSR,&GPIO_ZFK_fops,NULL);


return 0;

}



static void __exit GPIO_button_cleanup(void)

{

//devfs_unregister(devfs_handle);
unregister_chrdev(223, DEVICE_NAME);

}



module_init(GPIO_button_init);

module_exit(GPIO_button_cleanup);
zdhwh
帖子: 5
注册时间: 2009-05-27 17:01

Re: 如何自动创建设备节点

#2

帖子 zdhwh » 2009-06-03 10:02

怎么没有人回复啊??
回复