GNU screen でシリアル通信 + xmodem転送

ターミナルマルチプレクサ Advent Calendarの12日目でございます。

今日はさらにコアなネタに。

みなさん、シリアル通信することってありますよね?
ネットワーク機器に接続して設定したりとか、とかとか。

そんな時にもscreenが使えちゃうんです。 ちなみに私はMac(MBA Snow Lepard)で使ってます。

screenでシリアル接続する

  1. ケーブルをつなぐ。最近はUSBタイプのものですね。ドライバとかは入れておいてください
  2. screenでつなぐ

たとえば、USB接続のシリアルが /dev/tty.usbserial に接続できた場合は下記のように接続します。
※Ctrl-aではなくCtrl-zの場合

screen -e ^z^z  /dev/tty.usbserial 115200

xmodem転送する

ネットワーク機器のファームウェアアップデートのために、xmodem転送でデータを送信したいことってありますよね!
そんな時にもscreenでうまいこといけちゃうんです。

step0. lrzszをインストール

準備は簡単。brewでlrzszをインストールしておきましょう。

brew install lrzsz

では使ってみましょう。

step1. 接続する

上にかいてありますね。 ここでは特別なことはありません。

※Ctrl-aではなくCtrl-zの場合

screen -e ^z^z  /dev/tty.usbserial 115200

step2. 転送する

※Ctrl-aではなくCtrl-zの場合(しつこいかな)

Ctrl-z
:exec !! /usr/local/Cellar/lrzsz/0.12.20/bin/lsx -kb /Users/baba/Desktop/firmware.img

※パスとかは適宜読み替えてください!

・・・とまぁこんな感じで、懐かしのxmodem通信もできちゃいます。
xmodem通信とか、パソコン通信時代に◯☆△◇な画像をダウンロードする時にしか使った記憶がないんですが、 知っておいて損はないと思います。
得があるかはわかりませんが気にしたら負け。

Linux 

See also