忍者ブログ
PCメモ
PC関係のメモ、気付いたこと。 simhとChromium OSをいじって遊んでいます。 Chromium OSのカスタムビルドを配布しています。(http://chromiumosde.gozaru.jp) twitter: @zui22904336 PGP fingerprint: 45FC 0E47 A68A FA06 02FE 2BEF B72C C6E6 F9FF 1C19
Admin / Write
2014/04/19 (Sat) 20:38
もうそろそろ、来月あたりにはChromium OSのStable ChannelがR34からR35に切り替わるんじゃないかなとおもってR35の最新(release-R35-5712.B)をビルドしてみたのですが、これがVAIO Type Pで動きませんでした。

ブートするとChromiumのロゴが出た後にマシンがリブートしてしまい、OSが立ち上がってくれません。

以前こちらの記事でビルドしたときのChromium OS R35はPlatform versionが5682というものでしたが、今時点では5712に上がっています。おそらく何かが変わったのだろうとおもいログを調べたところ、/var/log/chromeの下に大量にログが出ていました。
そのログはどれも以下のようなメッセージを出力して終わっていました。

[12328:12328:0419/030144:ERROR:gpu_process_transport_factory.cc(436)] Failed to establish GPU channel.
[12328:12328:0419/030144:FATAL:gpu_process_transport_factory.cc(211)] Failed to create UI context, but can't use software compositing with browser threaded compositing. Aborting.
  

落ちているのはカーネルではなくChromiumです。どうやらGPU関係で何かエラーが出ていてGUIが起動できないみたいです。ログが大量に出ているのは何度もリトライしてその都度落ちたからっぽい。
とはいえ、最初のロゴは出ているので、全然グラフィックが使えていないわけではないっぽい。

いままでトラブルは全部カーネルでChromiumのトラブルは初だったので、どこをどう調べたらよいかよくわからなかったのですが、ログを見る限りでは/sbin/session_manage_setup.shからChromiumを起動するタイミングで落ちているっぽいので/sbin/session_manager_setup.shが動いていた時と何か変わってないか比べてみると、以下のような差がありました。

chromium@Ubuntu12:~$ diff -u chromiumos/chroot/build/x86-generic/sbin/session_manager_setup.sh chromiumR35-stable-5712/chroot/build/x86-generic/sbin/session_manager_setup.sh 
--- chromiumos/chroot/build/x86-generic/sbin/session_manager_setup.sh	2014-03-21 07:38:52.000000000 +0900
+++ chromiumR35-stable-5712/chroot/build/x86-generic/sbin/session_manager_setup.sh	2014-04-19 10:36:23.604701439 +0900
@@ -382,11 +382,15 @@
   HANG_DETECTION_FLAG="--enable-hang-detection=5"  # And do it FASTER!
 fi
 
-GPU_FLAGS="--gpu-sandbox-failures-fatal=no"
+GPU_FLAGS="--gpu-sandbox-failures-fatal=yes"
 if use_flag_is_set gpu_sandbox_allow_sysv_shm; then
   GPU_FLAGS="$GPU_FLAGS --gpu-sandbox-allow-sysv-shm"
 fi
 
+if use_flag_is_set gpu_sandbox_start_after_initialization; then
+  GPU_FLAGS="$GPU_FLAGS --gpu-sandbox-start-after-initialization"
+fi
+
 VIDEO_FLAGS=
 if is_board peach_pit || is_board peach_pi; then
   VIDEO_FLAGS="--enable-webrtc-hw-vp8-encoding"


GPU_FLAGSの設定で--gpu-sandbox-failures-fatalがnoだったのがyesに変わっています。ものすごくにおいます。さっそくここをnoに書き換えてブートしてみたらあっさり起動しました。

session_manager_setup.shをビルド時に書き換える方法はこちらの記事で触れていますので参考にしてください。
とりあえず解説なしで手順だけ書き連ねると以下のような感じになります。

(cr) (release-R35-5712.B/(696ce08...)) chromium@Ubuntu12 ~/trunk/src/scripts $ cros_workon --board=${BOARD} start chromeos-login
INFO    : Started working on 'chromeos-base/chromeos-login' for 'x86-generic'
(cr) (release-R35-5712.B/(696ce08...)) chromium@Ubuntu12 ~/trunk/src/scripts $ cd ../platform/login_manager/
(cr) (release-R35-5712.B/(eb046e1...)) chromium@Ubuntu12 ~/trunk/src/platform/login_manager $ repo start my_login_manager .
(cr) (release-R35-5712.B/my_login_manager) chromium@Ubuntu12 ~/trunk/src/platform/login_manager $ vi session_manager_setup.sh 

GPU_FLAGS="--gpu-sandbox-failures-fatal=no ← yesをnoに書き換え

(cr) (release-R35-5712.B/my_login_manager) chromium@Ubuntu12 ~/trunk/src/platform/login_manager $ cd ../../scripts/
(cr) (release-R35-5712.B/(696ce08...)) chromium@Ubuntu12 ~/trunk/src/scripts $ FEATURES="noclean" cros_workon_make --board=${BOARD} chromeos-login --install
WARNING : Cleaning up stale workdir: /build/x86-generic/tmp/portage/chromeos-base/chromeos-login-9999/work/chromeos-login-9999
(略)
  

上記手順と以前書いたPATAドライバの組み込みを行い、後はbuild_imageスクリプトでイメージを作ればOKです。

なお、この辺の修正については以下のURLでアナウンスされていました。

Re: PSA: Chrome GPU sandbox failures are now fatal

日付を見たら3月25日で、まさに私が以前ビルドに成功した翌日でした。一日遅かったらビルドしたものが動かなかった可能性が高いです。 私の以前の記事を参考にしてビルドしてくださった方がコメントで動かないとおっしゃっていましたが、コメントでいただいた現象から見ても多分この問題だと思います。

あの記事を見て試してみた人がことごとく失敗していたのかもしれないと思うと申し訳ない思いです。

今回調べる気になったのも動いた実績があったからです。もし動いた実績がなく今回の現象が起きていたらVAIO Type Pでは動かないんだとあきらめていたでしょうね。そういう意味では運がよかったなぁと思います。
 
 ※現時点で最新のChromium OSはR36になっていますが、R36はこちらではまだ確認していません。
 
[関連記事]

[悲報] Chrome R44でffmpegsumoが消えた
Dev serverによるChromium OSのアップデート
Chromium OSにパッケージを追加する
安定版ソースを使ってChromium OSをビルドする
勝手ビルド版Chromium OSとGoogleドライブの連携
Chromium OSをKVMで動かす
勝手ビルド版Chromium OSをVirtualBoxで動くようにする
Chromium OSのカーネルをVAIO Type P向けに再構築する
Chromium OSのビルド環境を作る
Hexxeh版Chromium OSをVAIO Type Pにインストールしようとして挫折した話
VAIO Type PでChromium OSをUSBメモリからブートするときのメモ




ランキングに参加してみました。クリックしていただければ嬉しいです。

にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

パソコン ブログランキングへ

拍手[1回]

PR


Comment
Name
Title
Mail
URL
Comment
Pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
  HOME   31  30  29  28  27  26  25  24  23  22  21 
プロフィール
HN:
zui
性別:
非公開
PR
忍者カウンター
忍者ブログ [PR]