我正在学习编写我的第一个Linux字符驱动程序,但似乎不能让它像预期的那样工作。
驱动程序模块的init和exit函数的代码如下:
static int __init one_init(void)
{
int result;
printk(KERN_DEBUG "In ones init call");
result = alloc_chrdev_region(&onedev, 0, 4, "one");
printk("Allocated device major: %d, first minor: %d",MAJOR(onedev),MINOR(onedev));
return 0;
}
static void __exit one_exit(void)
{
unregister_chrdev_region(onedev,4);
printk(KERN_DEBUG "In ones exit call");
}在卸载驱动程序后,我的设备仍然显示在/proc/devices中,该驱动程序的退出函数调用unregister_chrdev_region。
打印的dmesg命令显示了我的驱动程序的初始化和退出调用。
我看到了一些相关的问题,但答案并没有解决我看似简单的问题。
我做错了什么或期望错了什么?
发布于 2013-02-24 14:22:34
在终端中使用'rmmod modulename‘。这应该会卸载模块并删除关联。
https://stackoverflow.com/questions/13566504
复制相似问题