そのボード、僕が積んでおきます。

たくさんの電子工作基板が積みっぱなしになってるので、頑張って工作しようとしていますが、どんどん溜まっていっております。

Zeroconf(Bonjour/Avahi)を使いsshでIntel EdisonやRaspberryPiに楽につなぐ

Intel EdisonやRaspberryPiを使う場合、ssh経由で接続することが多い。EdisonやRaspberryPiを無線LANで接続し、DHCPIPアドレスを取得している場合、立ち上げのタイミングによってIPアドレスが変化してしまうため、まずはIPアドレスを調べなければならなくなってしまう。

そこでIPアドレスではなくホストネームでこれらのデバイスに接続するために、ホストネームの自動登録・解決のためにZeroconfを用いる。

 

ZeroconfをAppleが独自に実装・拡張したのが「Bonjour」であり、Linuxなどには「Avahi」という実装が存在している。

 

【デバイス側の準備】

Intel Edison

EdisonでYocto Linuxを使っている場合は標準でmDNSサービスが動いているようなので、ホストネームの登録がきちんとできていれば問題ない。

一般的なセットアップを行っていれば、configure_edison --setupの際に、mDNSとSSIDに利用する名前として入力を求められているはず。

すでに設定してあるホストネームの確認は、cat /etc/hostnameなどで行えばいい。

 

RaspberryPi

Raspbianで動かしている場合、追加でAvahiのパッケージをインストールして用いることとする。

sudo apt-get update

sudo apt-get install avahi-daemon 

これでAvahiのdaemonが動き出すので、利用できるようになるはず。

ホスト名は/etc/hostnameに設定するのだが、標準でraspberrypiが設定されているので、それで良ければそのままでいい。

 

【接続する端末側の準備】

Mac

最近のOS Xでは標準でBonjourが動いているので特に設定することはない。

 

Windows

AppleからBonjour for Windowsが公開されているのでそれを利用する。iTunesをインストールしていればインストールされているはずだし、もしもiTunesをインストールしていない/したくない場合は以下のプリントサービスをインストールすることでBonjourもインストールされる。

Bonjour Print Services for Windows

 

【Zeroconfでssh接続する】

接続情報として、ホストネーム.localを用いればいい。

例えばRaspberryPiの場合、Raspbian標準環境ならssh pi@raspberrypi.localなどとすれば接続できる。

基本的に同一LAN内でのみ有効で、sshのみならずブラウザからのアクセス、例えばhttp://edison.localなども有効。

 

この設定とつなぎ方で、これらのデバイスでの開発が少しだけ楽になるかも。