カーネルが接続されたデバイスを知らないので、残念ながら、シリアルポートは、非PlugNPlayです。A読んだ後手引きチュートリアルを私が働くアイデアを持っています。
/dev/
OSのようなUNIX のディレクトリには、ttySn (nは数字)という名前のファイルが含まれています。それらのほとんどは、既存のデバイスに対応していません。どれを実行するかを確認するには、コマンドを発行します:
$ dmesg | grep ttyS
[ 0.872181] 00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.892626] 00:07: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[ 0.915797] 0000:01:01.0: ttyS4 at I/O 0x9800 (irq = 19) is a ST16650V2
[ 0.936942] 0000:01:01.1: ttyS5 at I/O 0x9c00 (irq = 18) is a ST16650V2
上記は私のPCの出力例です。いくつかのシリアルポートの初期化を確認できます。
ttyS0
、ttyS1
、ttyS4
、ttyS5
。
そのうちの1つは、プラグインされたデバイスに正の電圧を持ちます。したがって/proc/tty/driver/serial
、デバイスのプラグインの有無にかかわらずファイルの内容を比較することで、デバイスに関連するttySを簡単に見つけることができます。だから、今やる:
$ sudo cat /proc/tty/driver/serial> /tmp/1
デバイスの(アン)プラグ
$ sudo cat /proc/tty/driver/serial> /tmp/2
次に、2つのファイルの違いを確認します。以下は私のPCの出力です:
$ diff /tmp/1 /tmp/2
2c2
< 0: uart:16550A port:000003F8 irq:4 tx:6 rx:0
---
> 0: uart:16550A port:000003F8 irq:4 tx:6 rx:0 CTS|DSR
3つの数値をdmesgの出力と比較することにより、どれがポートかを判断できます。
[ 0.872181] 00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
したがって、私たちのデバイスは/dev/ttyS0
、ミッション達成です!