Raspberry Pi2(以下ラズパイ)をルーター設備なしで接続する方法です。
有線を固定IPにしているラズパイとMacを直結通信する
例えばラズパイが192.168.1.5で固定していたとします。Macのシステム環境設定>ネットワーク>EthernetをIP固定で図のように192.168.1.1とし、LANケーブルを直結すると、ping 192.168.1.5が通るようになるようです。
ここでssh等で侵入すれば/etc/network/interfaceを書き換えてもう一度dhcpに戻すこともできました。
- ちなみにクロスケーブルは不要でストレートケーブルでOKでした。
- Mac側の末尾が192.168.1."1"でなければいけない理由もない気はしますが、とりあえず自分は1で作業しました。
- ルーターという項目は何も書かなくてOKでした。サブネットマスクも不要だったのかも。
有線をDHCPにしているラズパイとMacをEthernetで直結し、Mac側のWi-Fiをブリッジして外界に出る
Macのシステム環境設定>共有から次の設定でインターネット共有をします。
- 共有する接続経路: Wi-Fi
- 相手のコンピュータが使用するポート: Ethernet
- インターネット共有: チェックする
すると、ラズパイとMacをEthernetで直結すると、おそらくラズパイが192.168.2.2として見れるようになるはずです。しかもsshでラズパイに入ってそこから外界に出ることができます。これはMacのWi-Fiをブリッジしていることになります。
ちなみにDHCPにしなければいけない理由は、Macでこの共有という機能を使うと勝手に「自分が192.168.2.1, 相手は192.168.2.2~254のDHCP」という状態になるからです。つまり複数台を接続しないならばクライアント側は192.168.2.2〜254を決め打った固定IPでもよいはず…。この辺りはこちらの先輩の記事を参考にしました。ちなみに未確認ですがWindowsで同じようなことをやると192.168.0.0/24になるそうで。
共有できないとき(1)
共有が正しく有効になった場合、Mac側でifconfig | grep bridge
とすると、bridge100という(仮想)デバイスができるようですが、これが出ないケースがあります。これがないとDHCPサーバーとして動かないようで、ラズパイが接続してきてくれません。
このケースでは、共有する経路(上の例ではWi-Fi)がきちんと外界につながっているかを確認してみてください。ラズパイと接続するだけなら外界がつながっている必要はないと思うのですが、実際には必要になるようです。
- Macを再起動しないとだめなケースもあったような気がします。
- bootpdというプロセスをkillする必要があるケースもあるそうです。こちらに情報がありましたが私は未確認です!
共有できないとき(2)
既に共有できているところからラズパイをrebootしたら、そのあと数分待ってもラズパイ(192.168.2.2)に接続できないケースがありました。このラズパイはavahiでraspberrypi.localも名乗っているのですが、それもだめ。この場合はMac側のEthernetケーブルを一度抜き差ししたら10秒程度で再接続できるようになりました。
共有できないとき(3)
正確には、共有ができても外に出られないケースがありました。これはラズパイに配布したMacのEthernet接続部分に何もDNSサーバーがセットされていないときに起こります(共有時にIPアドレスとかの設定は見ないのに、DNSサーバーは見てるらしい)。これを8.8.8.8などに設定すれば外に出られるようになりました。こちらに情報を参考にしています。