我正在爲linux編寫控制檯驅動程序,並且遇到了需要爲此驅動程序設置的tty接口。我對tty驅動程序如何與低級驅動程序綁定感到困惑。低級驅動程序和tty驅動程序之間的鏈接
很多時候,根文件系統已經包含很多tty設備。我想知道底層設備如何綁定到根文件系統上的一個現有tty節點。
例如,/dev/tty7
:根文件系統上的節點。
低級設備驅動程序如何與此節點連接?或者該低級設備應該定義一個全新的tty設備?
我正在爲linux編寫控制檯驅動程序,並且遇到了需要爲此驅動程序設置的tty接口。我對tty驅動程序如何與低級驅動程序綁定感到困惑。低級驅動程序和tty驅動程序之間的鏈接
很多時候,根文件系統已經包含很多tty設備。我想知道底層設備如何綁定到根文件系統上的一個現有tty節點。
例如,/dev/tty7
:根文件系統上的節點。
低級設備驅動程序如何與此節點連接?或者該低級設備應該定義一個全新的tty設備?
底層設備如何綁定到根文件系統上的一個現有tty節點?
控制檯和tty驅動程序的主要和次要編號是硬編碼的。你可以看一下分配的主設備號在系統上:
$ cat /proc/devices
設備文件結合throgh用mknod工具,例如設備驅動程序設備文件是在設備驅動程序加載後創建的 - 而不是相反。要創建設備文件/ dev/TTY7你鍵入
$ mknod /dev/tty7 c 4 7
對於內核源代碼的參考:驅動程序/ TTY /在tty_io.c:tty_init用於分配的/ dev/tty的主要和次要的數字和/開發/控制檯。 tty_register_driver似乎爲一組其他tty驅動程序分配主要和次要數字。也許你會找到答案,如果你看一下來電。
如果您想要高層概述如何構建tty子系統,那麼tty demystified和LDD3 Chapter 18 TTY drivers是很好的資源。