Linux 注册字符设备-最佳实践

Linux 注册字符设备-最佳实践,linux,linux-kernel,device-driver,Linux,Linux Kernel,Device Driver,我知道注册char设备有很多问题。尽管如此,因为有这么多API,我还是想寻求一些帮助来将事情安排妥当 我认为为了创建一个设备,应该在模块的init函数中执行以下步骤 注册设备并使用(major、name、fops)方法获取主要编号。 主要:将0作为主要数字传递,这样操作系统将为我们选择一个主要数字 fops:请将其留空,因为我们将使用sysfs 使用方法创建sysfs类 使用方法创建sysfs设备 使用方法创建sysfs文件属性 我在网上看过了,我读了一些,现在我有点困惑 有什么理由使用mkno

我知道注册char设备有很多问题。尽管如此,因为有这么多API,我还是想寻求一些帮助来将事情安排妥当

我认为为了创建一个设备,应该在模块的init函数中执行以下步骤

  • 注册设备并使用(major、name、fops)方法获取主要编号。 主要:将0作为主要数字传递,这样操作系统将为我们选择一个主要数字
    fops:请将其留空,因为我们将使用sysfs
  • 使用方法创建sysfs类
  • 使用方法创建sysfs设备
  • 使用方法创建sysfs文件属性
  • 我在网上看过了,我读了一些,现在我有点困惑

  • 有什么理由使用mknod吗?或者我应该只使用create_设备吗
  • 那这个呢?里面说这是新的API,它取代了。但是如果是这样,它是如何与所有sysfs方法(设备创建等)结合的呢
  • /dev/*中的设备是否有任何用途,或者只能通过sysfs访问这些设备
  • sysfs类有什么好处

  • 谢谢。

    我认为Linux设备存在很多困惑。有不止一个用于设备的文件系统,还有许多用于创建它们的API。我认为有多种不同的方法,最好对它们做一个简短的总结。在过去的几天里,我对这个问题做了一些研究,如果你允许的话,我不介意发表我自己问题的答案。谢谢