14

というデバイス ファイルがあり/dev/console、そのファイル(major,minor)(5,1). シリアル コンソールで起動すると、同じように UART ポートに接続され/dev/ttyS0ます。しかし、シリアル コンソールを無効にして起動すると、 は常に同じ物理デバイスに/dev/console接続されている別の場所に接続しているように見えます。そのような情報を示す表示 (または内のようなもの) はありますか? そこで試してみましたが、欲しいものは何も見つかりませんでした。Linux カーネル ソースを追跡して、それらの関係を明らかにし始めています。誰かヒントを教えてくれませんか?接続先の物理デバイスをいつ、どこで、どのように、何を決定するのか?/dev/ttyS0UART0/proc/sys/dev/console

編集:最新の調査結果は次のとおりです。

  1. これは、カーネル パラメータ/dev/consoleによって設定されます。これは、 によって開かれます。noを指定すると、として開かれます。しかし、それらが とまったく同じかどうかはわかりません。これは、その I/O が異なる物理デバイスに接続されている可能性があることを意味します。console=gettystdin/stdout/stderrconsole=/dev/nullstdin/stdout/stderr/dev/console/dev/console
  2. USB HID キーボードが接続されていて、が UART として構成されていない場合、/dev/consoleを読み取ることができます。console=したがって、 /dev/console==/dev/nullはほとんど意味がないようです。さらに調査が必要です。
4

2 に答える 2

9

/sys/devices/virtual/tty/console/activeはあなたが探しているものだと思います。

于 2013-03-19T07:26:08.727 に答える
0

http://man7.org/linux/man-pages/man4/console.4.htmlから: 「現在のコンソールは /dev/console または /dev/tty0 (メジャー番号 4 およびマイナー番号のキャラクター デバイス) によってもアドレス指定されます。ナンバー0。」

それがあなたが探していたものだったことを願っています。

于 2014-02-26T00:04:54.130 に答える