2012-02-23 22 views
4

私はLinux用のコンソールドライバを作成していましたが、私はこのドライバ用にセットアップする必要のあるttyインターフェイスを見つけました。私は、ttyドライバが低レベルのドライバとどのように結びついているかについて混乱しました。低レベルのドライバとttyドライバのリンク

多くの場合、ルートファイルシステムにはすでにたくさんのttyデバイスが含まれています。私は、低レベルのデバイスがルートファイルシステム上の既存のttyノードのどれにバインドすることができるのだろうかと思います。

たとえば、/dev/tty7:ルートファイルシステム上のノード。
低レベルのデバイスドライバはどのようにこのノードに接続しますか?あるいは、低レベルのデバイスがまったく新しいttyデバイスを定義するべきかどうか?

答えて

4

低レベルのデバイスは、ルートファイルシステム上の既存のttyノードの1つにバインドできますか。

コンソールおよびttyドライバのメジャー番号とマイナー番号は、ハードコードされています。あなたがあなたのシステム上で割り当てられたメジャー番号を調べることができます。デバイスファイルは

$ cat /proc/devices 

例えば、mknodをユーティリティthroghデバイスドライバに結合しますデバイスファイルは、デバイスドライバがロードされた後に作成されます。ドライバー/ TTY/tty_io.c:デバイスファイルは/ dev/tty7を作成するには、カーネルソース内の参照のために

$ mknod /dev/tty7 c 4 7 

を入力したいtty_initは/は/ dev/ttyのためにメジャーとマイナー番号を割り当て、 dev/console。 tty_register_driverは、他のttyドライバのグループにメジャー番号とマイナー番号を割り当てているようです。おそらく、あなたが発信者を見れば答えを見つけるでしょう。

ttyサブシステムがどのように構成されているかについての概要を知りたい場合は、tty demystifiedLDD3 Chapter 18 TTY driversが良いリソースです。