我正在运行unregister_chrdev(major, "mod_name");
,但我仍然可以使用ls -l /dev/
中的设备。
我做错了什么?
答案 0 :(得分:1)
register_chrdev(9)
和unregister_chrdev(9)
实际上并未在/dev
目录中创建或删除文件。您应该事先通过加载脚本创建它们。删除是一样的,你应该手动删除它们。
请参阅scull example,scull_load在使用insmod
加载模块后创建一个char文件(与模块具有相同的主编号)。 scull_unload类似,在使用/dev
卸载后删除rmmod
下的文件。
作为@myaut suggested,这也可以使用device_create
来完成,但这是一个仅限GPL的功能,如果您的模块未获得GPL许可,则必须手动创建文件