我知道有很多关于注册char设备的问题。尽管如此,因为有太多的API,我想要求一些帮助来实现。
我认为为了创建设备,应该在模块的init函数中执行以下步骤。
- 注册设备并使用register_chrdev(主要,名称,fops)方法获取主要号码。
major:将0作为主要编号,因此操作系统会为我们选择一个专业。
fops:将其留空,因为我们将使用sysfs。
- 使用class_create方法创建sysfs类。
- 使用device_create方法创建sysfs设备。
- 使用device_create_file方法创建sysfs文件属性。
醇>
我已经看过网了,我已经阅读了Linux Device Drivers, Third Edition的部分内容,现在我有点困惑。
- 有没有理由使用mknod?或者我应该只使用create_device?
- alloc_chrdev_region怎么样?在Linux Device Drivers, Third Edition中,它表示这是新的API,它取代了register_chrdev。但如果是这样,它如何与所有sysfs方法(device_create等)相结合?
- / dev / *中的设备是否有用,或者只能通过sysfs访问设备?
- 什么是sysfs类适合?
醇>
感谢。