はじめに
これは失敗した話なので読んで役に立つかどうかはわかりませんし保証もできません。が、一応Raspbian Jessieを走らせるところまでは動きました。
経緯
Homebridgeの開発環境をどうやって作るのがいいのか試行錯誤していたのですが、SDカードのあまりが手元になく、仮想環境でやったらいいんじゃないの?と思いやり始める。
前提
VagrantもDockerもあんまりなにかわかっていなかった。というかあんまりわかってない。触りながら少し勉強しました。
やりたいこと
- Raspberrypiをmac上でエミュレートしたい
- 開発環境の構築をできるかテストしたい
方法
最初はdocker-machineで直接Raspbian立てられないかな?と思っていたのですが、なんかdocker run -ti resin/rpi-raspbian bash
をmacのterminal上で実行したのですがエラーがでたので検索したら出てきたここを参考にしました。
dockerのイメージはresin/rpi-raspbianにしました
- Vagrant
2. インストールbrew install vagrant
3. vagrantのファイル入れるフォルダ作るmkdir raspbian-docker; cd raspbian-docker
4. raspbianは今jessieが新しいので、debian/jessieの仮想環境をvagrantで作成vagrant init debian/jessie64
5. 仮想環境を立ち上げるvagrant up
6. 仮想環境にssh接続するvagrant ssh
- Docker
3. 仮想環境でdockerを使う
4. QEMUを入れるsudo apt-get install qemu-user-static
5. Dockerを仮想空間にインストールsudo curl https://get.docker.com/ | sh
6. Dockerをvagrant上で走らせるdocker run -ti --volume /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static resin/rpi-raspbian bash
できたこと
Raspbianのインストール自体は上手くいったようで、無事に動いているように見えます。
つまづいているところ
homebridge関連の開発をやりたかったので諸々をインストール(Homebridgeのインストールのやり方を参考にしました)し
$ homebridge
ではしらせたところ
/usr/local/lib/node_modules/hap-nodejs/node_modules/mdns/lib/advertisement.js:56
dns_sd.DNSServiceRegister(self.serviceRef, flags, ifaceIdx, name,
^
Error: dns service error: unknown
at Error (native)
at new Advertisement (/usr/local/lib/node_modules/hap-nodejs/node_modules/mdns/lib/advertisement.js:56:10)
at Object.create [as createAdvertisement] (/usr/local/lib/node_modules/hap-nodejs/node_modules/mdns/lib/advertisement.js:64:10)
at Advertiser.startAdvertising (/usr/local/lib/node_modules/hap-nodejs/lib/Advertiser.js:43:30)
at Bridge.Accessory._onListening (/usr/local/lib/node_modules/hap-nodejs/lib/Accessory.js:539:20)
at emitOne (events.js:77:13)
at HAPServer.emit (events.js:169:7)
at HAPServer._onListening (/usr/local/lib/node_modules/hap-nodejs/lib/HAPServer.js:190:8)
at emitOne (events.js:77:13)
at EventedHTTPServer.emit (events.js:169:7)
のエラーで落ちてしまい、ググったりなんだりしたけど解決せず諦めたところです。
一応Homebridgeのインストール
apt-get update
apt-get install git make
apt-get install wget
apt-get install python
apt-get install build-essential g++
wget https://nodejs.org/dist/v4.3.2/node-v4.3.2-linux-armv6l.tar.gz
tar -xvf node-v4.3.2-linux-armv6l.tar.gz
cd node-v4.3.2-linux-armv6l
sudo cp -R * /usr/local/
node -v
npm -v
apt-get install libavahi-compat-libdnssd-dev
npm config get unsafe-perm
npm config set unsafe-perm true
npm install -g --unsafe-perm homebridge hap-nodejs node-gyp
exit
sudo docker restart [dockername]
次にやろうかなあと思うこと
しらべていたら、vagrantでlinux立ててからでなくてもmacに直接QEMUでraspbianの仮想環境を置く方法もあるようなので、参考にしてやってみようかなあと思っています。
http://qiita.com/keita1987/items/f943b380a02e5ad67274