我正在为linux编写控制台驱动程序,我遇到了我需要为此驱动程序设置的tty接口。我对tty驱动程序如何与低级驱动程序绑定感到困惑。
根文件系统很多时候已经包含了很多tty设备。我想知道低级设备如何绑定到根文件系统上的一个现有tty节点。
例如,/dev/tty7
:根文件系统上的节点
低级设备驱动程序如何与此节点连接?或者该低级设备是否应该定义一个全新的tty设备?
答案 0 :(得分:5)
低级设备如何绑定到根文件系统上现有的tty节点之一?
控制台和tty驱动程序的主要和次要编号都是硬编码的。您可以使用以下命令在系统上查找指定的主要编号:
$ cat /proc/devices
设备文件通过mknod实用程序绑定到设备驱动程序,例如加载设备驱动程序后创建设备文件 - 而不是相反。要创建设备文件/ dev / tty7,请键入
$ mknod /dev/tty7 c 4 7
对于内核源代码中的引用:drivers / tty / tty_io.c:tty_init为/ dev / tty和/ dev / console分配主要和次要编号。 tty_register_driver似乎为一组其他tty驱动程序分配主要和次要编号。如果你看看来电者,也许你会找到答案。
如果您想要了解tty子系统结构的高级概述,那么tty demystified和LDD3 Chapter 18 TTY drivers就是很好的资源。