このブログでは書いていませんでしたが、先月Raspberry Piを購入し、すでにディスプレイ、キーボード、マウスを繋いでNOOBS使ってOS入れたり、ちょこっと仕事に使ったりしていました。
ですが、ちょっとした作業のたびにモニタをラズパイに専有されるのがイヤだな〜(Macでメインに使っているし〜)と思っていたのです。
その解決方法が見つかったので、試してみました!
しかも、SDカードへのOSのインストールから、ディスプレイ、モニタ、マウス無しでやってみます。
最終形と問題点
まず最初に、今回のエントリの最終形を図にしておきます。これで分かる人はこの後続く長いエントリは読まなくてOK!

接続の方法としては、Macの有線LANポートを作り、そこにインターネット共有を設定し、Raspberry Piに有線LANで繋いで、SSHで入る、という形になります。これならMacがWi-Fiでインターネットにつながっていたら(普通つながっていますよね?)、MacもRaspberry Piも外のインターネットに繋がるという幸せな状態です!
基本的にはこれでOKなのですが、「ディスプレイ、キーボード、マウスを一度も繋がない」となると問題点が2つ出てきます。
1. SDカードへのOSインストールにNOOBSを使えない
2. RaspberryPiに振られたIPアドレスがわからない
これらへの対応がメインとなります。
SDカードにOSイメージを焼く
まずはMacのブラウザで下記URLにアクセスし、適当なOSイメージをダウンロードします。
・Downloads | Raspberry Pi
迷ったら、Raspbianでいいと思います。
ダウンロードが終わったら、展開すると、.imgという拡張子のファイルが出てきます。
次は、ターミナルを開いて、このファイルがある場所に移動します。
$ sudo dd bs=1ms if=2014-06-20-wheezy-raspbian.img of=/dev/disk1 |
という感じのコマンドでイメージを焼くのですが、作業環境によってもちろん引数は変わります。
ディスクイメージのところはダウンロードして焼きたいOSイメージを指定します。
最後のofに与える引数はSDカードのデバイス名を与えるわけですが、これは diskutil list というコマンドで確認できます。

例えば、上図のようになっていると思いますが、この場合、/dev/disk1 を指定するわけです。
/dev/disk1 を指定したい場合に、of=/dev/rdisk1 と”r”をつけて指定すると、アンバッファモードでの転送になり転送が高速(約20倍!)になります(2016/08/14 追記。ななしさん、ありがとうございました!)
ddコマンドを実行した時、デバイスがbusyである、というようなエラーが出ることがあります。この場合、マウントを外す必要があるので、「ディスクユーティリティ」アプリ (/Applications/Utilities/Disk\ Utility.app) を起動して、「マウント解除」を行います。(「ディスクを取り出す」ではないので注意!)

されて、これで上記のddコマンドを実行完了したらSDカード作成は完了なのですが、、実は、かなり時間がかかります!
Raspbianをmicro SDカードにコピーしたら、大体1時間ちょっとかかりました。
正直、NOOBSからOSインストールをしたほうが良かったかなー、と若干後悔するレベルです。
しかも、このddコマンド後、進捗状態が表示されません!
(実は、完全にフリーズしたかと思い、キャンセルしたりしてしまいました…)
でも、ご安心を!!
Control+Tを押すと、その時点での転送完了バイト数や平均転送速度が表示されます!
処理が完了すると、特にメッセージもなく、シェルがコマンド待ち状態に戻ります。
(インストール完了後にcheers!的なアイコンを表示する最近のパッケージとは大違いw)
しかし!!何はともあれ、今はモニタとか無しで環境を作るのが第一義にあります!
インターネット共有
ここで、Mac側のインターネット共有の準備をしておきます。
最近のMacBookには有線LANポートがないので、ThunderBoltなどの変換器を用意します。
Apple Thunderbolt - ギガビットEthernetアダプタ MD463ZM/A
定価:¥ 2,880
Amazon価格:¥ 3,771
カテゴリ:Personal Computers
発売日:2012-06-13
最近はUSBハブも付いたものがありますので、これも良さそうです!
サンワダイレクト LANアダプター内蔵 USB3.0ハブ Gigabit 対応 USB3ポート搭載 Surface Pro4 / Pro3 / Pro2 対応 バスパワー 400-HUB022
定価:¥ 3,980
Amazon価格:¥ 3,980
カテゴリ:エレクトロニクス
システム環境設定>共有>インターネット共有を選択します。
『共有する接続経路』には外に出ていく経路(今回はWi-Fi)、『相手のコンピュータが使用するポート』にはRaspberry Piがつながるポートを指定します。

最後に、左側の「インターネット共有」の「入」にチェックを入れて完了です。
Raspberry Piを起動、IP探し
さぁ、いよいよ起動です!
SDカードをMacから外して、Raspberry Piに挿します。
LANコネクタにLANケーブルを接続します。
そして電源USBを挿すと、Raspberry Piの起動です!
ACTのLEDがチカチカしはじめます。Raspberry PiがTypeB+ならLANコネクタのLEDも点滅します!
さて、SSHで接続するわけですが、ここでRaspberry Piに振られたIPがわからない、という2つ目の問題にぶち当たります。
これはとりあえず、地道に調べるしかないようです。
まずはifconfig。
ズラズラーっと出ますが、私の環境では下記のような箇所があります。これがThunderboltに挿したLANコネクタのブリッジしているところだと思われます。
$ ifconfig (略) bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=3<RXCSUM,TXCSUM> ether 3e:1e:33:3e:e9:33 inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255 Configuration: id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0 maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200 root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0 ipfilter disabled flags 0x2 member: en4 flags=3<LEARNING,DISCOVER> ifmaxaddr 0 port 7 priority 0 path cost 0 media: autoselect status: active |
192.168.2.1というのがあり、ここから192.168.2.255までがおそらく、割り当てられているわけで、
ここの辺だと当たりをつけます。
さらにもうひとつ、arpというコマンドを使うと良いらしいので試してみると次のような結果が出ました。
$ arp -a ? (169.254.255.255) at ff:ff:ff:ff:ff:ff on en4 [ethernet] ? (192.168.1.1) at 8:21:bb:a7:83:11 on en0 ifscope [ethernet] ? (192.168.1.101) at 2c:bb:e1:23:71:a3 on en0 ifscope [ethernet] ? (192.168.1.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet] ? (192.168.2.1) at 2e:15:bb:1d:d9:13 on bridge100 ifscope permanent [bridge] ? (192.168.2.2) at 28:17:bb:1f:b6:13 on bridge100 ifscope [bridge] ? (192.168.2.255) at ff:ff:ff:ff:ff:ff on bridge100 ifscope [bridge] |
これを見ると、どうやら、192.168.2.2っぽいなー、と絞り込めるわけです。
SSHでログインしてみます。Raspbianの初期アカウントとパスワードはpi/raspberryなので、そのとおりに指定ます。
$ ssh pi@192.168.2.2 pi@192.168.2.2's password: <ここでパスワードを入力> Linux raspberrypi 3.12.22+ #691 PREEMPT Wed Jun 18 18:29:58 BST 2014 armv6l (略) |
無事ログインできました!
抜けるときにはexitします。
電源を切る時には、USBを抜いてもいいし、sudo haltしてもOKです。
SSHで怒られた時
OSを入れなおしたりしてIPアドレスが変わらない場合にはSSHでログインしようとしたときに「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」等の警告文が出ることがあります。
一度保存した鍵が合わなくて、サーバがクラックされているのでは?という親切なメッセージです。
適当なエディタ(emacsでもvimでも)で、Mac上のknown_hostsファイルを編集することで対応出来ます。
$ emacs ~/.ssh/known_hosts |
今接続しようとしたIPが先頭にある行を探し、その行を削除することで対応は完了です。
もう一度SSHを試してみましよう。
以上!
これで、Raspberry Piを始めるのに、モニタやマウスやキーボードを用意する必要はありません!と言い切れるようになりました!
しかも、持ち歩き時の荷物も減ったので、カフェでラズベリーパイを食べながらRaspberry Piをいじる、なんてこともできますね!
出版社:日経BP社( 2014-07-16 )
定価:¥ 2,300
Amazon価格:¥ 2,000
ムック ( 164 ページ )
ISBN-10 : 4822234940
ISBN-13 : 9784822234942
Raspberry Piクックブック (Make:PROJECTS)
著者/訳者:Simon Monk
出版社:オライリージャパン( 2014-08-23 )
定価:¥ 3,672
Amazon価格:¥ 3,672
大型本 ( 384 ページ )
ISBN-10 : 4873116902
ISBN-13 : 9784873116907












7 Comments
こんにちは。わたしです。
ポストに触発されて、RaspberryPiを久しぶりに起動しました。
IP探し→うちのはavahi-daemonをつかって、名前解決してます。
起動したら.localで見つかります。
ddの進捗→ kill -s SIGINFO でもとれます。(Mac)
SSHのWarning→ 結局何も考えないでknownhostsから削除するので、.ssh/configに↓追加で抑制してます。
UserKnownHostsFile=/dev/null
StrictHostKeyChecking no
というわけで、マイクロUSB一本で天井近くからぶら下がっていますが快適にアクセスできます。
エンジョイ。
pantypantyさん、ありがとうございます!!
すごい!!!
いろいろ問題が解決しますね!試してみます!!!
(最初の2行を読んだだけでスパムかと判断してしまい、コメント承認が遅れてしまって失礼しました…w)
[…] MACとRaspberry Piをssh接続 http://labs.torques.jp/2014/08/17/3684/ […]
MacでSDカードに書き込むときは、rdiskに書き込むとはやくなりますよ。
sudo dd bs=1ms if=2014-06-20-wheezy-raspbian.img of=/dev/rdisk1
ななしさん、有益なアドバイスありがとうございます!
なるほど、/dev/rdisk1 とすると、アンバッファモードで書き込めるのですね!これなら確かに早そうです!
本エントリも更新しておきます!
こんにちは
もしお暇があったらためしてみてみてください
LanScan(フリーです)
https://itunes.apple.com/jp/app/lanscan/id472226235?mt=12
http://making.mrlittlebig.com/?p=230
とおりすがりさん
LanScanはMacからアドレスを調べられるアプリなのですね!今度試してみます!