PR

[Linux] シリアル通信でRT57i にログイン

Linux(Ubuntu)からシリアル通信をするにはどうしたらいいのだろうか。

telnet とシリアル通信はベツモノ

TeraTerm はtelnet もSSH もシリアル通信もアリだから気がつかなかったが、telnet とシリアル通信はベツモノだった…。今更知りました(恥)

シリアルポートの認識を調べる

$ cat /var/log/dmesg | grep ttyS
[    1.030816] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.030919] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    1.031274] 00:05: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.031429] 00:06: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A


※ttyS0 はUPS と通信している

スポンサードリンク

シリアル通信をするには?

では、どのような接続手段があるかを調べる。

※環境 Linux vm130 2.6.35-28-server #49-Ubuntu SMP Tue Mar 1 14:55:37 UTC 2011 x86_64 GNU/Linux

screen

$ sudo aptitude install screen

screen /dev/ttyS1 115200

うまくいかない。

cu

$ sudo aptitude install cu

$ cu -l /dev/ttyS1 -s 115200

うまくいかない。

minicom

$ sudo aptitude install minicom

$ env LANG=C minicom -s

$ minicom

うまくいかない。

tip

試してない。

kermit

$ sudo aptitude install kermit


$ kermit
C-Kermit 8.0.211, 10 Apr 2004, for Linux
 Copyright (C) 1985, 2004,
 Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/home/casey/) C-Kermit>set line /dev/ttyS1
(/home/casey/) C-Kermit>set speed 9600
/dev/ttyS1, 9600 bps
(/home/casey/) C-Kermit>set stop-bits 1
(/home/casey/) C-Kermit>set flow-control auto
(/home/casey/) C-Kermit>set carrier-watch off
(/home/casey/) C-Kermit>connect
Connecting to /dev/ttyS1, speed 9600
 Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------

Password:

RT57i BootROM Ver. 1.02


できた!

※ctrl + \ + c で抜けて、q で終了

自動化手順の確認

kermit で接続できたから、手順を確認する。

  1. kermit を立ち上げ
  2. 必要な情報をset
  3. 完了したらconnnect
  4. (以前作成した手順と同じで、)ログインして昇格、restart
  5. ctrl + \ + c で抜けて
  6. q で終了

まずは「ctrl + \ + c」を送信することができるか確認する(…必要はなかった)

rt57i-s2.macro を作成


#!/usr/local/bin/kermit +
set line /dev/ttyS1
set speed 9600
set stop-bits 1
set flow-control auto
set carrier-watch off
set terminal bytesize 8
set command bytesize 8
set parity none
set delay 0
set escape 127
wait 1
output \13
output administrator\13
output \13
output restart\13
exit


テスト実行


$ kermit rt57i-s2.macro


参考文献

※「うまくいかない」はハングアップしたかのように見え、サーバー操作がTeraTerm からできなくなった状態。TeraTerm に問題がないとは言い切れない。また、9600 で接続したのは気分的にkermit のみ。もしかしたらその辺に問題があるのかもしれない。

コメント