misc_register 的用法: 通常要註冊一個 char device 都是用 register_chrdev。這會 註冊 major / minor number,即便可能只需要1個 minor number,往往卻佔住 major number 底下的所有 minor number, 所以 Linux 2.0 有了 miscellaneous character drivers 的誕生,misc driver 使用 major number 10 ,然後使用者如果需要這樣的"小驅動程式",便可以指明 minor number 即可。 使用 misc device 必須 include ,裡面包含了許多的官方的 minor number ,您可以挑選您適合的 minor number ,裡面也包含了兩個 API ,misc_register() / misc_deregister() 。 一般您只要填好 struct miscdevice 的內容,再使用 misc_register() 進行註冊,或者使用 misc_deregister() 進行移除即可。 struct miscdevice { int minor; const char *name; const struct file_operations *fops; struct list_head list; struct device *parent; struct device *this_device; const char *devnode; }; minor:就是您要註冊的minor number。 name:device的name。 fops:file operations。 其他的就不用理會了。 下面為範例: #include #include #include #include MODULE_LICENSE("GPL"); #define DEV_BUFSIZE 1024 static int dev_open(struct inode*, struct file*); static int dev_release(struct inode*, struct file*)...