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


34

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

以来udev、動的にデバイスファイルを作成することができ、なぜされている/dev/ttyS0/dev/ttyS1まだ静的に作成されましたか?たびに私が起動し、/dev/ttyS0そして/dev/ttyS1そこにあります。

ところで:私はDebian 7.0を使用しています。

回答:


41

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

これらのUARTは、マザーボードのチップセットの多くの機能の1つである可能性が高いです。チップセットのシリアルUARTは、DB-9コネクタがこれらのIC UARTピンに接続されることがますます少なくなっていますが、まだかなり一般的です。

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

DB-9Mアダプターケーブルへの10ピンヘッダー

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

いくつかのシリアルUARTは、大量生産のPCチップセットICに無視できるほどのコストを追加しますが、DB-9コネクタをボードエッジまで実行するには、マザーボードの最終小売コストに数ドルを追加します。PCBスペースにもコストがかかります。ボードの端のスペースは特に貴重です。

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

対照的に、マザーボードにポートが存在するだけでは/devノードは作成されませんが、デバイスとホストOSの間でかなり複雑なネゴシエーションが行われるため、デバイスをプラグインするとノードが作成されます。実際には、デバイスは自身をOSに通知するため、デバイスにudev適切な/devノードを作成することで対応できます。


11
また、言及することをお勧めします、多くのラップトップマザーボードにはシリアルコントローラーがあり、どこにも向いていないため、ラップトップを分解してテストポイントにはんだ付けしない限り使用できません。多くのメーカーはこれを使用して、生産ラインでいくつかの基本的なチェックを行います出荷前にマザーボードの基本機能レベルを確保するため。ただし、Linuxに関する限り、これはシリアルポートがあることを意味し、シリアルコントローラーを備えたすべてのボードで予想されるようにシリアルポートをインスタンス化します。
バリティ14

@Vality、これに関する有用な情報をご存知ですか-明日廃止されると思われるラップトップにアクセスします。
クリスH 14

1
@ChrisHまあ、それはラップトップにいくらか依存します、モデルに応じて、データシート、または少なくともラップトップのマザーボードのハッキングガイドを見つける必要があります、いくつかは簡単にシリアルヘッダーにはんだ付けするための正しいレイアウトを持っています安価なボードには、ボードに関するテストポイントが散在しています。運が良ければ、ヘッダーにはんだ付けし、ケーブルを接続するだけで、ソケットが収まるようにラップトップに小さな穴を開けてポートを作成できます。ただし、5ボルトまたは3.3ボルトになるので、RS232として使用しないでください。それは何のラップトップですか?
バリティ14

@Vality an acerネットブック-ここに正確なモデルはありません-私は実際に一般的なリソースについて本当に疑問に思っていました。
クリスH 14

この問題は、基本的な保守的な下位互換性です。それが人々がLinuxを好む理由です。カーネル内で「高速で移動して破壊する」ことはありません。カーネルが前進するための有効な、そしてかなり普遍的な理由がある場合にのみ、物事を変える必要が本当にあります。
JakeGould 14

4

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


ただし、これらのいずれもデバイスノードが作成される理由ではありません。カーネルに関する限り、デバイスがあるために作成されます。CMOSでシリアルUARTを無効にすると無効になりません。
GnP 14

1
QEMUはあなたの端末内のVMを実行したい場合は、それを使用する例です:stackoverflow.com/questions/19565116/...
チロSantilli新疆改造中心法轮功六四事件

0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.