多くの新しいラップトップおよびデスクトップコンピュータには、9ピン/ 25ピンのシリアルポートがありません。多くのLinuxディストリビューションに/dev/ttyS0
、dev/ttyS1
デバイスファイルがまだ含まれているのはなぜですか?
udev
はデバイスファイルを動的に作成できるため、/dev/ttyS0
、/dev/ttyS1
が静的に作成されるのはなぜですか?起動するたびに、/dev/ttyS0
と/dev/ttyS1
がそこにあります。
ちなみに、私はDebian 7.0を使用しています。
これらの/dev
ノードが表示されるのは、標準のPCシリアルポートドライバーが使用しているカーネルにコンパイルされており、 ARTs が検出されているためです。これにより/sys/devices/platform/serial8250
(または互換性のあるもの)が表示されるので、 dev は対応する/dev
ノードを作成します。
これらのUARTは、おそらくマザーボードのチップセットの多くの機能の1つです。チップセット内のシリアルUARTは、DB-9コネクタをこれらのICに接続することがますます一般的でなくなってきているにもかかわらず、まだかなり一般的です。UART=ピン。
一部のマザーボードでは、シリアルポートごとに ヘッダーコネクタ があり、そのコネクタをPCの背面にルーティングするには、アダプタケーブルを購入する必要があります。
同じチップセットを使用する他のマザーボードは、機能がシリコンで利用可能であっても、純粋にPCBスペースとヘッダーコネクタの数セントを節約するため)、ヘッダーコネクタを公開しない場合もあります。
いくつかのシリアルUARTは、大量生産されたPCチップセットICにわずかなコストを追加しますが、DB-9コネクタをボードEdgeに接続するためにマザーボードの最終小売コストに数ドルを追加します。 PCB=スペースにもコストがかかります。ボードエッジのスペースは特に貴重です。
RS-232シリアルポートに接続されたデバイスの存在を調べる標準的な方法はありません。
USBとは対照的です。マザーボードにポートが存在するだけでは/dev
ノードは作成されませんが、デバイスとホストOSの間にはかなり複雑なネゴシエーションが存在するため、デバイスをプラグインします。事実上、デバイスはそれ自体をOSにアナウンスするので、udev
はデバイスに適切な/dev
ノードを作成することによって反応できます。
仮想化の下でLinuxを実行していると想像してください。エミュレータの多くは、コンソールをシリアルポートに出力することに依拠しています。便利な規格です。また、ヘッドレスサーバーは通信にシリアルポートを使用します。
多くの(ほとんどの)サーバーがまだシリアルアクセス(ttyS0)を提供していることは言及に値します。ほぼ毎日、iLO/iDRACを介してSerial-over-LAN接続で接続する必要があります。 @Patrickが指摘したように、ネットワークを再構成するときなど、シリアルポートを介して仮想マシンに接続します。