LoginSignup
0
1

More than 5 years have passed since last update.

Vagrant+Dockerでラズパイの仮想環境作ってHomebridge走らせようとして失敗した話

Last updated at Posted at 2016-12-15

はじめに

これは失敗した話なので読んで役に立つかどうかはわかりませんし保証もできません。が、一応Raspbian Jessieを走らせるところまでは動きました。

経緯

Homebridgeの開発環境をどうやって作るのがいいのか試行錯誤していたのですが、SDカードのあまりが手元になく、仮想環境でやったらいいんじゃないの?と思いやり始める。

前提

VagrantもDockerもあんまりなにかわかっていなかった。というかあんまりわかってない。触りながら少し勉強しました。

やりたいこと

  • Raspberrypiをmac上でエミュレートしたい
  • 開発環境の構築をできるかテストしたい

方法

最初はdocker-machineで直接Raspbian立てられないかな?と思っていたのですが、なんかdocker run -ti resin/rpi-raspbian bashをmacのterminal上で実行したのですがエラーがでたので検索したら出てきたここを参考にしました。

dockerのイメージはresin/rpi-raspbianにしました

  1. Vagrant
    1. インストール brew install vagrant
    2. vagrantのファイル入れるフォルダ作る mkdir raspbian-docker; cd raspbian-docker
    3. raspbianは今jessieが新しいので、debian/jessieの仮想環境をvagrantで作成 vagrant init debian/jessie64
    4. 仮想環境を立ち上げる vagrant up
    5. 仮想環境にssh接続する vagrant ssh
  2. Docker
    1. 仮想環境でdockerを使う
    2. QEMUを入れるsudo apt-get install qemu-user-static
    3. Dockerを仮想空間にインストール sudo curl https://get.docker.com/ | sh
    4. 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

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1