linux -/proc/devices 仍然显示未注册的设备

标签 linux character device linux-device-driver

我正在学习编写我的第一个 Linux 字符驱动程序,但似乎无法使其按预期工作。

驱动模块的初始化和退出函数代码如下:

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 命令打印显示我的驱动程序的 init 和 exit 调用已经完成。

我看到了几个相关的问题,但是答案并没有解决我看似简单的问题。

我做错了什么或期望错了什么?

最佳答案

在终端中使用“rmmod 模块名称”。这应该卸载模块并删除关联。

关于linux -/proc/devices 仍然显示未注册的设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13566504/

相关文章:

android - 如何更改android项目平台版本

c - 本地函数定义被 Visual Studio 拒绝

Python:不被解释的转义字符

javascript - 输入表单中不允许有空白字符/空格

linux - 使用 mac 终端或脚本搜索 linux 日志文件

c++ - -finstrument-functions 不适用于动态加载的 g++ 共享对象 (.so)

javascript - String.fromCharCode 仅适用于一个字符

windows - 设备实例 ID 的驱动器号

linux - shell脚本用空格连接两个字符串

c - 如何调试以 C 语言开发的作为 Wi-Fi 接入点运行的进程?