【发布时间】:2012-01-02 04:03:44
【问题描述】:
我正在尝试开发 Linux 设备驱动程序,作为我的第一次尝试,我正在尝试开发具有以下文件选项的 char 设备驱动程序,
struct file_operations fops{
.open=open_fun,
.release=release_fun,
.write=write_fun,
.read=read_fun,
};
当我使用insmod 加载驱动程序时,我看到/proc/devices 列出了字符设备下的驱动程序,但我在/dev 中找不到它。谷歌搜索建议使用mknod 在/dev 中创建一个设备并将其与驱动程序的主要和次要相关联。但是,即使以超级用户身份尝试这样做也会导致“权限被拒绝”错误。
在加载内核模块时,我应该怎么做才能使设备出现在/dev 中?我尝试了旧版本 (register_chrdev) 和新版本 (cdev_init & cdev_add) 来注册设备,但它们都不起作用。
谢谢,
米尔
【问题讨论】:
标签: linux-kernel linux-device-driver