前のブログで、Yocto-LinuxをビルドするためのVagrantfileとchefを作成したが、途中でビルドが失敗してしまう問題があった。 何度か繰り替えしたトライした結果、どうやらタイムアウトになっていたようだ。Vagrant(というかChef?)は1時間(3600秒)以上一つのプロセスが終了しないと異常終了するようだ。
Chefのビルドプロセスに、
timeout 36000 # 10時間
を追加することでビルドの成功が確認できた。こういうときはきちんとデバッグメッセージを表示させながらやるべきだね。
diff --git a/vagrant-yocto/yocto-repo/site-cookbooks/yocto-tools/recipes/default.rb b/vagrant-yocto/y index 0cdd53c..31f0dd5 100644 --- a/vagrant-yocto/yocto-repo/site-cookbooks/yocto-tools/recipes/default.rb +++ b/vagrant-yocto/yocto-repo/site-cookbooks/yocto-tools/recipes/default.rb @@ -64,6 +64,7 @@ bash "Format Build environment" do user "vagrant" environment "HOME" => "/home/vagrant" cwd "/home/vagrant/poky/" + timeout 36000 code <<-EOS source ./oe-init-build-env cd /home/vagrant/poky/build/conf/