DesignAssembler

備忘録に近い

RaspberryPiをクロスLANでSSH接続

こんにちは。

RaspberryPiをクロスLANで接続する方法を書きます。

クロスLANで接続するメリットといえば・・・
・外出先でもノートパソコンとケーブル(と電源)があればRaspberryPiを弄れる。
・ネットワーク機器が必要ない

決め手にかけるメリットですね。。。


クロスLANケーブルとは
LANケーブル内のケーブルの送信同士が衝突しないように文字通り内部で「クロス」させたケーブルです。

クロスさせたおかげで機器間のデータの送受信が可能になります。

普段自分たちが使っているケーブルはストレートケーブルと言います。

自分が使ってるのはこれです。

最近のMacBookにはLANポートがついてないので、別途USBEthernetコネクタも買わなくてはいけません・・・

Apple USB Ethernet アダプタ MC704ZM/A

Apple USB Ethernet アダプタ MC704ZM/A



固定IPアドレスの設定方法

RaspberryPiで以下のコマンドを入力してください。

$ cd /etc/network
$ sudo nano interfaces

で、以下の記述を
f:id:hyottokoaloha:20150124125053p:plain


こうします
f:id:hyottokoaloha:20150124125108p:plain

※192.168.0.10の部分は192.168.0.0〜192.168.0.255の他のデバイスと重複しない任意の数値で大丈夫です。
現在どのアドレスが使用中か調べるにはifconfigコマンドを利用してください。

これで固定IPアドレスが指定されました。

sshコマンドをお手持ちのPCで入力します。

$ ssh pi@192.168.0.10
password:(初期設定だとraspberryです)


f:id:hyottokoaloha:20150124125844j:plain

無事に直結できました!




モニターを持っていない方のために
固定IPアドレスを設定する方法だとモニターとキーボードを持っていなければできません。

モニターを持っていない方もいると思いますのでモニターなしでRaspberryPiにSSH接続する方法も書いておきます。

まずすべきは接続されたRaspberryPiのIPアドレスを知る事です。
pingの繰り返しが有用そうなので書きます。

シェルスクリプトにはC言語などと同じfor文が用意されています。構文は以下です

$ for 変数名 in 代入する値
>do
>処理
>done

この構文にそって192.168.0.0〜192.168.0.255にpingを送って応答したホスト(少なくとも自分と合わせて2つ)のどれかが接続してあるRaspberryPiのIPアドレスになります。コマンドは以下です。

$for i in `jot 255 0`
>do
>ping -c 3 192.168.0.$i
>done

jotコマンドは、指定した範囲の数値を代入するコマンドです。

pingは動作の停止に一回一回Ctr+cを押さなければいけないのが少々煩わしいですが、入力を延々と繰り返すよりはよっぽどマシです。

あと、実行して思ったのですが、jotの中身を0〜10、11〜20というように区切ってやらないとループの終了がめんどくさくなります。

これでいくつか反応したIPアドレスをメモしておいてあとからssh接続して通ればそいつがRaspberryPiということになります。一度入ったらさっさと固定IPにした方がいいです。

もっと良いシェルスクリプトがあると思いますが、とっさに思いついた方法です。