このコマンドだと思います:
dmesg | grep tty
これを自分の Linux ボックス (シリアル ポートが 1 つしかない) で実行すると、ttyS0 出力行が 1 つ生成されます。自分で試してみてください。私の言いたいことがわかるでしょう。
/proc/tty/driver/serial
で検出された UART を確認する . uart:unknown
のある行 意味:何も検出されませんでした (存在しない可能性があります)。
# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0
1: uart:16550A port:000002F8 irq:3 tx:111780 rx:1321 RTS|DTR|DSR
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3
何かが接続され、ライン CTS、DSR、または CD を駆動している場合 (これらは入力ラインです)、実際に何かがあることを確信することさえできます...同じことが rx-byte-count にも当てはまります。
これをプログラムで行う必要がある場合、dmesg からの出力を読み取るのは面倒な場合があります。代わりに、フォルダー /dev/serial/by-id には、デバイスの識別可能なデータにちなんで名付けられ、特定の /dev/tty* を指すシンボリック リンクがあります。に接続されています。
これがディストリビューション固有の特別な udev ルールであるかどうかはわかりませんが、Ubuntu ではうまく機能します。機能するかどうか教えてください。