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 で接続できたから、手順を確認する。
- kermit を立ち上げ
- 必要な情報をset
- 完了したらconnnect
- (以前作成した手順と同じで、)ログインして昇格、restart
- ctrl + \ + c で抜けて
- 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
参考文献
- 第三のペンギン: Linux でシリアルコンソール
- Linuxでシリアルコンソールを使う – builder
- linuxマシンからシリアルポートでtelnet接続をしたい | OKWave
- Linux/シリアルコンソール – Tomocha WikiPlus
- LinuxでCOMポート通信しよう – The dream is invincibility.
- Ubuntu日本語フォーラム / シリアルポートへの接続方法
- Ubuntu日本語フォーラム / シリアルポートを設定するには?
- ポート「COM1」へのtelnet - Linux Square - @IT
- man kermit
- http://www.yk.rim.or.jp/~george/dot.mykermrc-6.0.192
- kermit-5A(190) install Tips (in Japanese)
※「うまくいかない」はハングアップしたかのように見え、サーバー操作がTeraTerm からできなくなった状態。TeraTerm に問題がないとは言い切れない。また、9600 で接続したのは気分的にkermit のみ。もしかしたらその辺に問題があるのかもしれない。
コメント