web-dev-qa-db-ja.com

virtualboxCOMによるシリアルttyS0のデータのスニッフィング

LinuxでVirtualBoxを実行しています。ゲスOSはWindowsXPです。

ボックスのシリアルポート(古い種類 DE-9 )にIR送信機を接続し、VirtualBoxの「シリアルポート」に以下を追加しました。

[v] Enable Serial Port
Port Number: COM1 IRQ: 4 I/O Port: 0x3F8
Port Mode: Host Device
Port/File_PAth: /dev/ttyS0

シリアルのグループにユーザーを追加しました。

現在:ホストでスニファを使用しています。すなわちjpnevulator

jpnevulator --ascii --timing-print --tty/dev/ttyS0 --read

ゲストOSを実行してIRソフトウェアを起動し、IRでデータを書き込みます(ゲストOS/WinXPの場合)。データは書き込まれますが、jpnevulatorには何も表示されません。

ここで何が欠けていますか?

3
Luca Stein

OK。フィールドで多くのテストを行った後、私は純粋な初心者であり、トラフィックを監視する次の方法を見つけました。

VirtualBoxの「シリアルポート」:

[v] Enable Serial Port
Port Number: COM1 IRQ: 4 I/O Port: 0x3F8
Port Mode: Host Pipe
Port/File_PAth: /tmp/vbwincom1

そして、

socat /tmp/vbwincom1 -

パイプに書き込まれるデータは、ホストLinuxのターミナルに書き込まれます。

これは、シリアルではなくソケットを監視することによるものです。

誰かがソケットによるオーバーレイヤーの代わりに/ dev/ttyS0を監視するための解決策を持っているなら、私はそれを答えとして受け入れます-しかし今のところこれはそれをします。うまくいけば、それは他の誰かを助けるかもしれません。

socat

0
Luca Stein