web-dev-qa-db-ja.com

新しいコンピュータにそのようなシリアルポートがないのに、なぜ一部のLinuxディストリビューションにはまだ/ dev / ttyS0、ttyS1などがあるのですか?

多くの新しいラップトップおよびデスクトップコンピュータには、9ピン/ 25ピンのシリアルポートがありません。多くのLinuxディストリビューションに/dev/ttyS0dev/ttyS1デバイスファイルがまだ含まれているのはなぜですか?

udevはデバイスファイルを動的に作成できるため、/dev/ttyS0/dev/ttyS1が静的に作成されるのはなぜですか?起動するたびに、/dev/ttyS0/dev/ttyS1がそこにあります。

ちなみに、私はDebian 7.0を使用しています。

36
cli__

これらの/devノードが表示されるのは、標準のPCシリアルポートドライバーが使用しているカーネルにコンパイルされており、 ARTs が検出されているためです。これにより/sys/devices/platform/serial8250(または互換性のあるもの)が表示されるので、 dev は対応する/devノードを作成します。

これらのUARTは、おそらくマザーボードのチップセットの多くの機能の1つです。チップセット内のシリアルUARTは、DB-9コネクタをこれらのICに接続することがますます一般的でなくなってきているにもかかわらず、まだかなり一般的です。UART=ピン。

一部のマザーボードでは、シリアルポートごとに ヘッダーコネクタ があり、そのコネクタをPCの背面にルーティングするには、アダプタケーブルを購入する必要があります。

10-pin header to DB-9M adapter cable

同じチップセットを使用する他のマザーボードは、機能がシリコンで利用可能であっても、純粋にPCBスペースとヘッダーコネクタの数セントを節約するため)、ヘッダーコネクタを公開しない場合もあります。

いくつかのシリアルUARTは、大量生産されたPCチップセットICにわずかなコストを追加しますが、DB-9コネクタをボードEdgeに接続するためにマザーボードの最終小売コストに数ドルを追加します。 PCB=スペースにもコストがかかります。ボードエッジのスペースは特に貴重です。

RS-232シリアルポートに接続されたデバイスの存在を調べる標準的な方法はありません。

USBとは対照的です。マザーボードにポートが存在するだけでは/devノードは作成されませんが、デバイスとホストOSの間にはかなり複雑なネゴシエーションが存在するため、デバイスをプラグインします。事実上、デバイスはそれ自体をOSにアナウンスするので、udevはデバイスに適切な/devノードを作成することによって反応できます。

43
Warren Young

仮想化の下でLinuxを実行していると想像してください。エミュレータの多くは、コンソールをシリアルポートに出力することに依拠しています。便利な規格です。また、ヘッドレスサーバーは通信にシリアルポートを使用します。

4
Patrick

多くの(ほとんどの)サーバーがまだシリアルアクセス(ttyS0)を提供していることは言及に値します。ほぼ毎日、iLO/iDRACを介してSerial-over-LAN接続で接続する必要があります。 @Patrickが指摘したように、ネットワークを再構成するときなど、シリアルポートを介して仮想マシンに接続します。

0
David