2010-04-14 21:10:13 +0000 2010-04-14 21:10:13 +0000
33
33
Advertisement

どの /dev/ttyS* が自分のシリアルポートかを知るには?

Advertisement

私は、シリアルポートが1つしかないノートパソコンを持っています。

/dev

ディレクトリに入りました。

ttyS0
ttyS1
ttyS2
ttyS3

ディレクトリに入りました。

Advertisement
Advertisement

回答 (5)

34
34
34
2010-04-14 21:24:54 +0000

このコマンドだと思います。

dmesg | grep tty

これを自分のLinuxボックス(シリアルポートが1つしかない)で実行すると、ttyS0の出力行が1行出てきます。自分で試してみてください。

14
14
14
2016-06-30 15:45:47 +0000

/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 バイト数についても同じことが言えます。

7
Advertisement
7
7
2014-12-20 13:55:13 +0000
Advertisement

プログラムでこれを行う必要がある場合、dmesg から出力を読むのは面倒です。代わりに /dev/serial/by-id フォルダには、デバイスの識別可能なデータにちなんだシンボリックリンクがあり、それらが接続されている特定の /dev/tty* を指しています。

これがディストリビューション固有の特別な udev ルールなのかどうかはわかりませんが、Ubuntu ではうまく動作します。

6
6
6
2010-04-14 21:17:04 +0000

ttyS03はそれぞれCOM14に対応しています。これらは通常、同じハードウェアリソースを持っており、常に検出可能ではないため、常に存在しています。

1
Advertisement
1
1
2016-09-12 15:19:53 +0000
Advertisement

また、setserialを使ってデータを取得するコマンド/proc/tty/driver/serialもあります。

# setserial -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
Advertisement

関連する質問

6
10
5
37
5
Advertisement
Advertisement