首页 文章

Linux设备驱动程序字符设备“子目录”

提问于
浏览
3

我正在为一个提供几个独立“数据通道”数据的硬件编写Linux设备驱动程序 . 系统上可能存在多个设备,每个设备提供一组通道,这些通道将表示为基本上独立的字符设备 .

我想知道如何在/ dev中创建表达层次关系的设备节点,例如:

/dev/mydevice0/chan0
/dev/mydevice0/chan1
/dev/mydevice0/chan2
/dev/mydevice0/chan3

/dev/mydevice1/chan0
/dev/mydevice1/chan1
/dev/mydevice1/chan2
/dev/mydevice1/chan3
...

如何自动创建这种层次结构?通过"automatically"我的意思是使用大多数现代Linux系统上可用的典型机制(即它需要在其中制作一些带有一堆 mknod 命令的特殊脚本) . 尝试这是否明智,或者我最好为每个通道生成一个独特的后缀,类似于对磁盘设备所做的,例如:

/dev/mydev0c0
/dev/mydev0c1
...
/dev/mydev1c0
/dev/mydev1c1
...

谢谢!

1 回答

  • 2

    函数device_create()是驱动程序创建设备节点的方法,根据this short thread,您可以硬编码设备在调用时放置的路径 . 您只需要用感叹号替换路径分隔符 .

    来自链接线程的示例路径:

    “test!power”将创建为:/ dev / test / power

    This tutorialmy answer to another SO question应该可以帮助您正确使用device_create() .

相关问题