656
技術社區[雲棲]
linux2.6驅動注冊、字符設備注冊和它們的釋放
linux2.6驅動注冊設備號
(1)如果主設備號事先知道,要用:int register_chrdev_region( dev_t first, unsigned int count, char *name );
(2)如果主設備號為0,則要用動態分配:
int alloc_chrdev_region( dev_t *dev, unsigned int firstminor,
unsigned int count, char *name );
linux2.6釋放設備號
void unregister_chrdev_region( dev_t first, unsigned int count );
linux2.6內核字符設備驅動注冊
struct cdev *my_cdev = cdev_alloc();my_cdev->ops = &chr_fops;
void cdev_init( struct cdev *cdev, struct file_operations *fops);
int cdev_add( struct cdev *dev, dev_t num, unsigned int count);
2.6內核字符設備驅動移除
void cdev_del( struct cdev *dev );
2.6內核驅動注冊完後,要用以下代碼創建設備文件
devfs_mk_cdev( MKDEV(LED_MAJOR, LED_MINOR),S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP, DEVICE_NAME);
linux2.6內核驅動要用以下代碼移除設備文件
devfs_remove(DEVICE_NAME);可以用命令創建設備文件
mknod /dev/設備文件名 字符設備(c是字符設備,b是塊設備) 主設備號 次設備號例如:mknod /dev/testChar c 100 0
刪除設備入口:
rm /dev/testChar
最後更新:2017-04-03 20:19:50