unregister_chrdev不会从/ dev /中删除设备

时间:2015-04-11 16:22:35

标签: c linux-kernel

我正在运行unregister_chrdev(major, "mod_name");,但我仍然可以使用ls -l /dev/中的设备。

我做错了什么?

1 个答案:

答案 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许可,则必须手动创建文件