はじめに
これは失敗した話なので読んで役に立つかどうかはわかりませんし保証もできません。が、一応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
- インストール
brew install vagrant
- vagrantのファイル入れるフォルダ作る
mkdir raspbian-docker; cd raspbian-docker
- raspbianは今jessieが新しいので、debian/jessieの仮想環境をvagrantで作成
vagrant init debian/jessie64
- 仮想環境を立ち上げる
vagrant up
- 仮想環境にssh接続する
vagrant ssh
- インストール
- Docker
- 仮想環境でdockerを使う
- QEMUを入れる
sudo apt-get install qemu-user-static
- Dockerを仮想空間にインストール
sudo curl https://get.docker.com/ | sh
- 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