ディスプレイもキーボード無い状態でraspberrypiをつかってみた
はじめに
久々にraspberrypiで遊んでみました.raspberrypiはlinux環境がつかえてGPIOも扱える良いマシンだと思うのですが,ディスプレイとキーボードを外付けで用意するのがツラいという問題があります.
いくつかネットの記事を漁っていたところ,ディスプレイもキーボードも無い環境で接続する例が出てきており,なかなか良い方法だったので,メモしておきます.僕が見た限りではraspberrypi B+の話が多くA+などLANコネクタの無いraspberrypiでは試していなかったようでした.今回はmacbook proとraspberrypi A+の間で接続を行なったのでそのことについてメモします.
用意したもの
- raspberrypi A+(zeroでも良いかもしれない)
- USBケーブル(タイプAオス- マイクロタイプBオス)
- USBタイプのEthernetアダプタ(使用したのはこれhttp://logitec.co.jp/products/lan/lantxu2h3a/index.php)
- macbook pro Retina(2012)
- Apple Thunderbolt - ギガビットEthernetアダプタ
- SDカード(使用したのはclass10の32GBタイプのマイクロSDカード(変換アダプタつかわないとそのままmacbookproに挿せませんので注意))
- LANケーブル
OSインストール手順
すでにSDカードにOSのインストールが完了しており,ssh環境も整っている人はスキップしてください.
raspberrypiではnoobsの使用を推奨しておりますが,noobsではディスプレイとキーボードが必要なため,raspbian wheezyを直接インストールすることにします.この記事ではraspbian wheezyを利用するものとします.
まずはSDカードをマシンに差しましょう.次にraspbian wheezyを取得しましょう.
公式のサイトからダウンロード可能ですがリンクがとても重たいため(僕が試したときには14時間かかると表示されました...),
↓に張ったjaistのミラーリンクを利用すると良いでしょう.
Index of /pub/raspberrypi/raspbian/images
jaistのサーバからOSのつまったzipファイルをダウンロードしたあとは,そのzipファイルを解凍して,imgファイルを取り出しましょう.
僕の環境では2016-05-10-raspbian-jessie.imgという名前imgが/path/to/に保存されていますので,その前提で話を進めます.
SDカードのデバイスがどのように認識されているかを確認するため次のコマンドを叩いて確認しましょう.
df -h
もしわからなければ,SDカードを挿す前と後でdf -hを叩いてその差分を見ましょう.
僕の場合
/dev/disk4
というのがSDカードデバイスでした.各マシンによって異なるので,そこは各自の値に沿って進めてください.ここでは/dev/disk4がSDカードのデバイスであるという前提で話を進めます.
デバイスがわかったらアンマウントしましょう.
diskutil umountDisk /dev/disk4
次にダウンロードして解凍済みのOSをSDカードに書き込む操作をします.注意して欲しいのはofにmacのストレージを指定しないください.ストレージを指定するとOSごとふっとぶ可能性があります.
僕の環境ではSDカードデバイスは/dev/disk4というものなので,OSを書き込む先では/dev/rdisk4になります.diskにrをつけてください.
それではddをつかって書き込みます.
cd /path/to sudo dd bs=1M if=2016-05-10-raspbian-jessie.img of=/dev/rdisk4
このまま数分放置してください.うんともすんとも言いませんが,問題ありません.
終わると完了メッセージが表示されます.これでOSのインストールは終了です.
デバイスの接続
OSをインストールしたSDカードをraspberrypiに挿しましょう.
次のようにデバイスを接続してください(図1を参考に).
図1: デバイスの接続図
raspberrypiにEthernetアダプタを挿します.
一応この段階まで進んだら,システムの設定から共有を選択してインターネット共有のThunderbolt Ethernetも共有できるようにしましょう.
次にraspberrypiの給電ポートにUSBケーブルを挿し,macbookproと繋げて電源を投入しましょう.
電源がはいるとraspberrypiのLEDが点滅を繰替えします.
ssh接続
ifconfigを叩いてEthernetアダプタのIPを知りましょう.
叩くとbridge100というところにEthernetアダプタのブリッジのIPが表示されます.192.168.4.1から192.168.4.255の範囲に収まっていることがわかります.
また,statusがactiveになっており,問題なく接続ができていることがわかります.statusがinactiveのまましばらく変わらない場合は接続の仕方が悪いのかもしれませんので見直しましょう.
bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=3<RXCSUM,TXCSUM> ether ba:f6:b1:41:83:64 inet 192.168.4.1 netmask 0xffffff00 broadcast 192.168.4.255 inet6 fe80::b8f6:b1ff:fe41:8364%bridge100 prefixlen 64 scopeid 0x11 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 16 priority 0 path cost 0 nd6 options=1<PERFORMNUD> media: autoselect status: active
デバイスの範囲を確認できたら,arp -aを叩いてその範囲にipが存在しているか確認しましょう.
ちなみに僕の環境では192.168.4.3でした.
IPがわかったらsshで繋ぎましょう.
ssh pi@192.168.4.3
こうすると反応があります.パスワードが聞かれたら「raspberry」と入力すればraspberrypiにアクセスできるはずです.
おまけ(i2cを有効化する)
raspberrypiセットアップしたあとsshでアクセスできたまでは良かったのですが,i2cがつかえなかったので,その設定も載せておきます.試行錯誤的に行なったので正しいかは自信ありません...
まずは/etc/modulesに以下を追記しました.
i2c-bcm2708 i2c-dev
もともとi2c-devは存在していたので追記するのはi2c-bcm2708だけで良さそうでした.ただしOSのバージョン?によっても微妙に異なるらしくi2c-devが記載されてないケースもありそうです.もしi2c-devが無ければ追記しておいてください.
次に/boot/config.txtに以下を追記してください(A+,B+のみらしい).
device_tree=bcm2708-rpi-b-plus.dtb device_tree_param=i2c1=on device_tree_param=spi=on
なお,この3行の設定はここの書き込みを参考にしました. Arch Linux ARM • View topic - Unable to enable i2c device
ここまでいったら
sudo reboot
してi2c-toolsを以下のようにインストールしましょう.
sudo apt-get install i2c-tools
インストールが終わったら
sudo i2cdetect -y 1
を叩いてみて,表のようなものがでればi2cが扱えるようになっているはずです.
まとめ
raspberrypi A+を動かすためにディスプレイもキーボードも不要な方法を紹介した.