kuroの覚え書き

96の個人的覚え書き

FONでシリアル通信



FONにはシリアルコンソールのピンヘッダが立っている訳だが、これはPC→FONへシリアルログインするためにしか使えないと思っていたのだがそんな訳はなく普通にPCのシリアルポートの如くFON<->シリアル機器の通信に使えるらしい。

http://d.hatena.ne.jp/sdkt4a/20080815/1218737958

ここにあるように/etc/inittabで設定できるようだ。標準では/dev/ttyS0からログインできるようになっているのでコメントアウトして再起動する。


root@OpenWrt:~# nano /etc/inittab

sysinit:/etc/init.d/rcS S boot
shutdown:/etc/init.d/rcS K stop

tts/0::askfirst:/bin/ash --login
#ttyS0::askfirst:/bin/ash --login ←先頭に#を追加してコメントアウト
tty1::askfirst:/bin/ash --login

root@OpenWrt:~# reboot

当然シリアルからはログインできなくなるのでイーサポートの設定をちゃんと覚えておかないといけない。でsshでログインする。

シリアルコンソールを使う時と同様にPCと接続してFONの電源を投入すると、何事もなかったようにコンソールに起動シークエンスがずらずら出てくるが、ログインプロンプトは出てこなくなっている。その上でPCからSSHでログインし


root@OpenWrt:~# echo hello > /dev/ttyS0

などとメッセージを送ってみるとログインプロンプトが出ずに止まっていたシリアルコンソール上に


hello

と出た。

逆にSSHからFON


root@OpenWrt:~# cat /dev/ttyS0

とコマンドを送っておいて、シリアルコンソールから適当にメッセージを入力してやるとPC→FONに送信され、SSHの画面にそのメッセージが届く。

どちらも同じPC上でモニタしているのでややこしいが、双方向通信が行えている。

これを応用するとFONをシリアル機器のコントローラとして使え、ネットワーク越しにシリアル機器を操作したりできるってことだ。例えばPICやAVRを使った装置をネットワーク越しにコントロールすることも出来るだろう。無線ネットワークインタホンなんかも作れるかもしれない。