简单的linux设备驱动程序没有出现在/ dev中

时间:2014-12-12 23:21:58

标签: linux kernel device-driver

我一直在编写一个简单的scull_dev设备驱动程序,以了解如何编写内核模块,我认为我有一个完全编码。

我可以成功完成,我可以毫无问题地调用sudo insmod scull.ko,但驱动程序永远不会出现在linux /dev/文件夹中。

我现在正在尝试实施.ioctl,但我没有要打开的文件。使用来自用户空间程序的ioctl以使用设备驱动程序的“文件”的open fd调用它是不正确的方法? (甚至不知道这意味着什么......)

设备驱动程序的整个主题对我来说极其混乱,我一直在使用的书在我看来完全是垃圾,所以我知道我可能在这里有一些重大的误解......

1 个答案:

答案 0 :(得分:1)

  

我正在使用alloc_chrdev_region方法。所以我假设它有254 ......

你不应该无理由地假设。打印*dev返回的alloc_chrdev_region(),或改为使用register_chrdev(254, ...)

  

我的用户空间程序调用open只返回-1

不,它不只是返回-1,open()还将errno设置为适当的错误编号,您可以使用perror()方便地生成邮件。