faith's blog

気まぐれ日記

【世界初】Jetson TK1でTizenを動かす【たぶん】

おはようございます、faithです。

先日、記事にしましたが、世界初!(たぶん)Jetson TK1でTizen-IVI 3.0-M3-June2014が動きました。

今日は、u-bootに引き続き、 Jetson TK1でTizen-IVI 3.0-M3-June2014を動かす方法について紹介します。

bootloaderはu-bootを使用します(その為に、先にu-bootの記事を書いたのです)

KernelはThierry Redding さんのを使用します。

TizenはWindowSystemがwayland/westonなので、DRMに対応していないと駄目なので、L4Tのカーネルでは動きません。

u-bootについては、先ほど書いた記事を参照。

Kernelについては、kmscubeの記事を参照。

rootfsはUSBの1stパーティションに置くので、 boot.scrを修正して、root=/dev/sda1に変更してください。

では、Tizenのビルド(パッケージビルド、rootfsの作成)、SDへの書き込みについて説明します。

ちょっと長いですが、ご了承下さい。

基本は、Wikiに書かれているIntel向けのビルド方法と同じです。

Tizenのソースコードとpre-built rpmをダウンロード

作業用ディレクトリの作成

$ mkdir ~/tizen_work
$ export TIZEN_WORK=~/tizen_work
$ mkdir -p ${TIZEN_WORK}/gbs/3.0-devel
$ export GBS_WORK=${TIZEN_WORK}/gbs
$ mkdir -p ${TIZEN_WORK}/mic
$ export MIC_WORK=${TIZEN_WORK}/mic

pre-built rpmをダウンロード

$ mkdir -p ${GBS_WORK}/3.0-devel/pre-built/armv7l
$ cd ${GBS_WORK}/3.0-devel/pre-built/armv7l
$ git clone review.tizen.org:/pre-built/toolchain-arm
$ pushd toolchain-arm
$ git checkout tizen
$ popd
$ lftp -e "mirror arm m3-june2014; bye" http://download.tizen.org/releases/milestone/tizen/ivi-3.0.m14.2/tizen-3.0.m14.2-ivi_20140724.4/repos/

ソースコードのダウンロード

libdrm, mesa, westonをtegra用に修正する必要があるため、 ソースコードをダウンロードしてリビルドします。

$ mkdir -p ${GBS_WORK}/3.0-devel/platform/upstream

$ git clone review.tizen.org:/platform/upstream/libdrm.git
$ pushd libdrm
$ git checkout 739af7c5b39b2cab52472aa7b8f37a1f18d8e1a5
$ popd

$ git clone review.tizen.org:/platform/upstream/mesa.git
$ pushd mesa
$ git checkout 677942b9df39fd37863920bc426d4f2c22c744e3
$ popd

$ git clone review.tizen.org:/platform/upstream/weston.git
$ pushd weston
$ git checkout ef889d839bd5d21d43c5502ee0dd34f95274a085
$ popd

設定ファイルの作成

build.confをダウンロード

$ wget http://download.tizen.org/releases/milestone/tizen/ivi-3.0.m14.2/tizen-3.0.m14.2-ivi_20140724.4/repos/arm/packages/repodata/b2c5ee761eb091eadab5da0791409364eca446a04aa0197c6a2ea9023a83ac71-build.conf.gz
$ gunzip b2c5ee761eb091eadab5da0791409364eca446a04aa0197c6a2ea9023a83ac71-build.conf.gz
$ mv b2c5ee761eb091eadab5da0791409364eca446a04aa0197c6a2ea9023a83ac71-build.conf build.conf

build.confを修正

tegra用のマクロを定義します。

修正例

--- build.conf.org  2014-07-31 21:47:51.636850521 +0900
+++ build.conf  2014-07-30 22:09:05.336529098 +0900
@@ -46,6 +46,12 @@
 %_with_wayland 1
 :Macros
 
+### Tegra
+%define _with_tegra 1
+Macros:
+%_with_tegra 1
+:Macros
+
 ############################# emulator repository ############################
 
 %if "%_repository" == "emulator"

.gbs.confを作成

ダウンロードした、pre-built rpmをrepositoryとして指定します。

[general]
tmpdir=/var/tmp/
profile = profile.tizen3.0_ivi
buildroot = ../GBS-ROOT/
work_dir = .

[repo.toolchain_armv7l]
url=${work_dir}/pre-built/armv7l/toolchain-arm

[repo.m3-june2014]
url=${work_dir}/pre-built/armv7l/m3-june2014

[profile.tizen3.0_ivi]
repos=repo.toolchain_armv7l,repo.m3-june2014
buildconf=build.conf

ソースコードの修正

修正内容は、githubに上げてあります。

libdrmの修正

ベースをThiery Reddingさんのgit repositoryからdrm.gitに変更し、specを修正します。

$ cd ${GBS_WORK}/3.0-devel/platform/upstream/libdrm
$ tar cf packaging.tar packaging

$ git remote add thierryreding git://gitorious.org/thierryreding/drm.git
$ git fetch thierryreding
$ git checkout thierryreding/master
$ git tag upstream/2.4.54

$ tar xf packaging.tar

$ wget https://raw.githubusercontent.com/faith0x7dc/patches/master/jetson-tk1/tizen-ivi/libdrm/001-add-tegra-support.patch
$ patch -p0 < 001-add-tegra-support.patch

mesaの修正

ベースをfreedesktopのmesa.gitに変更し、specを修正します。

$ cd ${GBS_WORK}/3.0-devel/platform/upstream/mesa
$ tar cf packaging.tar packaging

$ git remote add freedesktop git://anongit.freedesktop.org/mesa/mesa
$ git fetch freedesktop
$ git checkout freedesktop/master
$ git tag upstream/10.3.0

$ tar xf packaging.tar

$ wget https://raw.githubusercontent.com/faith0x7dc/patches/master/jetson-tk1/tizen-ivi/mesa/001-add-tegra-support.patch
$ patch -p0 < 001-add-tegra-support.patch

westonの修正

tegra対応の修正を加えます。

$ cd ${GBS_WORK}/3.0-devel/platform/upstream/weston
$ https://raw.githubusercontent.com/faith0x7dc/patches/master/jetson-tk1/tizen-ivi/weston/001-add-tegra-support.patch
$ patch -p0 < 001-add-tegra-support.patch

ビルド

gbsコマンドを使用して、ソースコードからrpmを作ります。

$ cd ${GBS_WORK}/3.0-devel
$ gbs -v -d lb -A armv7l -D build.conf --clean --exclude=libtool,libffi48,glibc,gcc,gcc48 platform/upstream/libdrm
$ gbs -v -d lb -A armv7l -D build.conf --clean --exclude=libtool,libffi48,glibc,gcc,gcc48 platform/upstream/mesa
$ gbs -v -d lb -A armv7l -D build.conf --clean --exclude=libtool,libffi48,glibc,gcc,gcc48 platform/upstream/weston

repositoryの作成

シンボリックリンクを張る

$ sudo mkdir /var/www/tizen
$ sudo chmod 777 /var/www/tizen
$ cd /var/www/tizen
$ ln -s ${GBS_WORK}/3.0-devel/pre-built/armv7l/m3-june2014/packages/armv7l
$ ln -s ${GBS_WORK}/3.0-devel/pre-built/armv7l/m3-june2014/debug
$ ln -s ${GBS_WORK}/3.0-devel/pre-built/armv7l/m3-june2014/packages/noarch
$ ln -s ${GBS_WORK}/GBS-ROOT/local/repos/tizen3.0_ivi/armv7l/RPMS

xmlをダウンロード

$ mkdir xmls
$ cd xmls
$ wget http://download.tizen.org/releases/milestone/tizen/ivi-3.0.m14.2/tizen-3.0.m14.2-ivi_20140724.4/repos/arm/packages/repodata/group.xml
$ wget http://download.tizen.org/releases/milestone/tizen/ivi-3.0.m14.2/tizen-3.0.m14.2-ivi_20140724.4/repos/arm/packages/repodata/patterns.xml

patterns.xmlの修正

ダウンロードしたものは、intel用(armのディレクトリにあるのに、intel用になっています)なので、 そのままだと、rootfs作成に失敗します。

以下のパッケージをpatterns.xmlから削除します。

  • libva-intel-driver
  • gstreamer-vaapi
  • openavb

repositoryを作成

$ cd /var/www/tizen
$ createrepo -v -g xmls/group.xml .
$ modifyrepo xmls/patterns.xml repodata

rootfsの作成

kickstarterファイルのダウンロード

armのディレクトリにあるのに、中身はintelと同じです。 (故に、milestoneリリースのimageはintel版しかありません)

とりあえず、ローカルにコピーして修正することにします。

$ cd ${MIC_WORK}
$ wget http://download.tizen.org/releases/milestone/tizen/ivi-3.0.m14.2/tizen-3.0.m14.2-ivi_20140724.4/builddata/images/arm/image-configurations/ivi-mbr-i586.ks
$ mv ivi-mbr-i586.ks ivi-armv7l.ks

kickstarterファイルの修正

repository指定箇所のパスを修正します。 (IPアドレスは適宜変更)

また、以下のパッケージはintelでしか使えないようになっているので、コメントアウトします。

  • kernel-x86-ivi
  • setup-extlinux
  • setup-ivi-clone
--- ivi-armv7l.ks.orig  2014-07-24 23:17:03.000000000 +0900
+++ ivi-armv7l.ks   2014-07-30 23:01:16.212540920 +0900
@@ -20,7 +20,7 @@
 
 installerfw_plugins "bootloader,fstab"
 
-repo --name=ivi --baseurl=https://download.tizen.org/snapshots/tizen/ivi-3.0.m14.2/@BUILD_ID@/repos/atom/packages/ 
+repo --name=ivi --baseurl=http://192.168.0.30/tizen.ivi/armv7l-partial --ssl_verify=no
 
 %packages
 
@@ -33,11 +33,13 @@
 @Console Tools
 @IVI Applications
 
-kernel-x86-ivi
+#kernel-x86-ivi
 
 ivi-repos
-setup-extlinux
-setup-ivi-clone
+#setup-extlinux
+#setup-ivi-clone
+
+weston-clients
 %end

rootfsの作成

micコマンドを使用してrootfsを作成します。

$ mkdir cache logs out
$ mic -v -d create fs -k cache -o out --release=test --logfile=logs/test.log ivi-armv7l.ks

rootfsの修正

micで作成したrootfsはそのままでは動きません。

カーネルモジュールのコピーと、一部ファイルの作成が必要です。

カーネルモジュールのコピー

Thierry Redding さんのカーネルをビルドし、カーネルモジュールを/lib/modules以下にコピーします。

/etc/mtabを作成

/etc/mtabは通常、/proc/self/mountsへのシンボリックリンクになっている必要がありますが、 micで作成したrootfsはそうなっていません。

その為、手動でシンボリックリンクを作成します。

$ cd /path/to/rootfs/etc
$ sudo ln -s /proc/self/mounts mtab

ksファイルには、その処理が記述されているんですが、なぜかちゃんと動いていないようです。 (intel版のpre-built imageではちゃんとリンクが張られている)

後は、rootfsをUSBメモリに書き込んで、ボードのUSBポートに指して電源を入れれば、起動します。

Jetson TK1でu-bootを使用する

おはようございます、faithです。

今日はJetson TK1でu-bootを使用する方法についてご紹介します。

L4T R19.3からu-bootが公式でサポートされるようになったようです。

ドキュメント類を見ても、具体的なコマンドとか書いてないんですが(見落としてなければ)、 基本は、fastboot(nVidiaプロプライエタリブートローダ)と同じです。

fastbootを使う場合との差分を中心に説明します。

今回は、SDにkernel, dtb, rootfsを置きます。 (eMMCにrootfsを置くことも可能なんでしょうが、 書き換え制限があるので、eMMCはなるべく書き換えたくないので。SDは壊れたら買い直せばいいし)

SDをパーティション切って、フォーマット

以下の2パーティション構成にします。

# fs 用途
1 vfat kernel, dtbを置く
2 ext3 rootfsを置く

容量は任意です。 私の場合は、vfatに256MB、ext3に残りを割り当てています。

rootfsを作成し、ファイルをSDにコピー

作成方法については、QuickStartGuideを参照。

以降、~/Linux_for_Tegra/rootfsに作成したものとして説明します。

zImageとdtbをコピーします。

$ sudo mount /dev/sdX1 ~/mnt
$ sudo cp ~/Linux_for_Tegra/kernel/zImage ~/mnt
$ sudo cp ~//Linux_for_Tegra/kernel/dtb/tegra124-pm375.dtb ~/mnt/tegra124-jetson-tk1.dtb
$ sudo umount ~/mnt

rootfsをコピーします。

$ sudo mount /dev/sdX2 ~/mnt
$ sudo cp -a ~/Linux_for_Tegra/rootfs/* ~/mnt
$ sudo umount ~/mnt

boot.scrをvfatパーティションに作成

vfatパーティションにboot.scrを置いておくと、 起動時に自動で読み込んで任意のコマンド列を実行させられます。

この仕組みを利用して、 自動的にzImage, dtbをロードし、カーネルをkickするようにします。

boot.txtを作成

以下の内容でtext fileを作成します。

load mmc 1:1 ${kernel_addr_r} zImage
load mmc 1:1 ${fdt_addr_r} tegra124-jetson-tk1.dtb
setenv bootargs console=ttyS0,115200n8 debug_uartport=lsport,3 console=tty1 rw rootwait root=/dev/mmcblk1p2
bootz ${kernel_addr_r} - ${fdt_addr_r}

root=/dev/mmcblk1p2の部分が、SDの2nd partitionにrootfsを置いている、 ということをカーネルに伝える記述になります。

ちなみに、この部分を/dev/sda1に書き換えると、 USBメモリの1stパーティションにrootfsを置くことも可能です。 (SATA HDDでも可な筈だけど、確認はしてません)

boot.scrを作成

mkimageコマンドを使って、boot.txtからboot.scrを作成します。

$ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "jetson-tk1" -d boot.txt boot.scr

出来上がった、boot.scrをvfatパーティションにコピーします。

boot.txtはコピーする必要ありません。 (私は面倒なので、SDカード上で作業しています)

u-bootの書き込み

ボードを起動し、Force recoveryボタンを押して、recovery modeに入ります。 (詳細は、QuickStartGuide参照)

その後、host pc上でflash.shを実行しますが、fastbootを書き込む場合とパラメータが異なります。

以下を実行します。

$ cd ~/Linux_for_Tegra
$ sudo ./flash.sh -L ~/Linux_for_Tegra/bootloader/ardbeg/u-boot.bin jetson-tk1 mmcblk1p2

実行後、自動で再起動がかかり、u-bootからUbuntuが起動します。

SDカードを書き換えるだけで、 kernel, rootfsを自由に差し替えることができ、 eMMCを書き換える必要がなくなりました。

Tizen IVI 3.0 M3-June2014が動いた

おはようございます。

Tizen IVI 3.0の新しいMilestone releaseが気づいたら出ていたので、 Intel NUCとnVidia Jetson TK1で試してみました。

NUCでは動きませんでした。 どうやら、カーネル起動途中で死んでいるっぽいです。 カーネルをビルドし直してみるかなぁ・・・。

Jetson TK1では動きました。 とりあえず、simple-eglが動くのは確認しました。 crosswalkは動きませんでした。

後日、Jetson TK1でのTizen(M3-June2014)立ち上げについてまとめようと思います。

仕事してきます。

何だこの無理ゲーは・・・

おはようございます、crosswalkが動きません。 もう死んでんじゃないですかね(棒)

Tizen snapshotのrevisionが変わっていて、7系から8系にあがってました。 とりあえず、試してみたところ、死に場所が変わりました。 まぁ、死ぬんですけどね。

しかも、eglInitializeがこけるという。 そしてgdbは使えないと。

follow-fork-mode childに設定しても、プロセスが次から次へと生成されるので、ブレークポイント引っかからないし、 detach-on-fork offにすると、gdbが落ちるし(たぶんメモリの使い過ぎですね) ブレークをかけたいところに、sleepを仕込んで、attachしてみるも、attachには成功するが、ステップ実行できなかったり。

仕方なく、printfデバッグしてたら、printfを入れると挙動が変わると。 絶望した!デバッグできない巨大なソースに絶望した!

crosswalkはしばらくおいておこうかと思います。 revisionが変化するたびに、試して絶望する感じで。

あと、別件でfirefox on Tizen(intel NUC)に挑戦してましたが、こっちもだめでした。 ビルドはなんとか通りましたが、実行しても何も表示されない。 エラーメッセージもなし。 ・・・firefoxはやめておいた方がいいかと思います(独り言)

とりあえず、仕事してきます。

もう少しな気がするんです

おはようございます。

結局、この週末もcrosswalkと格闘でした。 惨敗ですけどね。

しかも、金曜にボーリング からの 飲み会で、 腕は痛いは、頭は痛いはで、結局土曜日は半日ぐらいぶっ倒れてましたから、 あまり進んでないんですよね・・・。

肉体は、強制的にHybernation(というか、Halt?)させたので、 休息にはなったかも?ということで良しとします。

で、本題ですが、 crosswalk for tegra Ubuntuは、ビルドが通ったんですけど、結局動かず。 Tizen と同じところでこけてる感じです。

Tizen の方は、Abortがかかっている箇所の意図が意味不明だったので、 とりあえず、コメントアウトしたら、先に進んで、セグりました。 (SIGSEGV=セグるって、方言なのかな)

void IMEStateChangeHandler::SetInstance(IMEStateChangeHandler* impl) {
  CHECK(!impl_) << "Replacing set IMEStateChangeHandler implementation.";
  impl_ = impl;
}

↑この、CHECKマクロが意味不明で、引数がfalseだと、Abortします。 しかし、メンバ変数implは初期値NULLなので、最初にSetInstanceした時点で、Abortするんです。 がついているのが間違いかと(引数のチェックをするつもりかと)おもって、修正してみたら、 もっと早いタイミングでAbort。

・・・意味がわかりません!

何なんでしょうか、Intel版ではここでAbortで止まったなんてことはないので、 ここに処理がきた時点でアウトなんでしょうか。 後で何か問題があるかもしれませんが、そんなことは未来の私が何とかするので、良しとします。

ということで、とりあえず外してみたら、以下の箇所でセグりました。

void WaylandWindow::RealizeAcceleratedWidget() {
  if (!shell_surface_) {
    LOG(ERROR) << "Shell type not set. Setting it to TopLevel";
    SetShellAttributes(TOPLEVEL);
  }

  if (!window_)
    window_ = new EGLWindow(shell_surface_->GetWLSurface(),
                            allocation_.width(),
                            allocation_.height());
}

thisポインタがNULLらしいです。 メモリ破壊って訳じゃなく、

window->RealizeAcceleratedWidget();

を実行したときに、windowがNULLだった場合、 thisポインタにアクセスしたときに初めてセグるらしいですね。 初めて知りました。

pythonのselfみたいなものでしょうか。

Wayland周りまで降りてきたので、解析が進むんじゃないだろうかと思い・・・ たいですが、仕事してきます。

crosswalk が gdb で追えない

先ほど書いた記事のエラーログですが、

[0626/133627:ERROR:command_buffer_proxy_impl.cc(151)] Could not send GpuCommandBufferMsg_Initialize.

該当箇所は、こんなのです。

   bool result;
   if (!Send(new GpuCommandBufferMsg_Initialize(
       route_id_, handle, &result, &capabilities_))) {
     LOG(ERROR) << "Could not send GpuCommandBufferMsg_Initialize.";
     return false;
   }

GpuCommandBufferMsg_Initialize なんですが、 gtags で引っかからないし、grepしても class 定義がない。 しかも、gdb で step 実行すると、すり抜けるという謎現象。 最適化が問題かと思ったんですが、 この class がマクロで定義されているようなんですね。

IPC_SYNC_MESSAGE_ROUTED1_2(GpuCommandBufferMsg_Initialize,
                           base::SharedMemoryHandle /* shared_state */,
                           bool /* result */,
                           gpu::Capabilities /* capabilities */)

↑これを性的に静的に追っていくと、↓に行き着きます。

#define IPC_SYNC_ROUTED_DECL(msg_class, in_cnt, out_cnt, in_list, out_list)   \
  class IPC_MESSAGE_EXPORT msg_class : public IPC::SyncMessage {              \
   public:                                                                    \
    typedef IPC::SyncMessageSchema Schema;  \
    typedef Schema::ReplyParam ReplyParam;                                    \
    typedef Schema::SendParam SendParam;                                      \
    enum { ID = IPC_MESSAGE_ID() };                                           \
    msg_class(int32 routing_id                                                \
              IPC_COMMA_OR_##in_cnt(IPC_COMMA_##out_cnt)                      \
              IPC_TYPE_IN_##in_cnt in_list                                    \
              IPC_COMMA_AND_##in_cnt(IPC_COMMA_##out_cnt)                     \
              IPC_TYPE_OUT_##out_cnt out_list);                               \
    virtual ~msg_class();                                                     \
    static bool ReadSendParam(const Message* msg, Schema::SendParam* p);      \
    static bool ReadReplyParam(                                               \
        const Message* msg,                                                   \
        TupleTypes::ValueTuple* p);                               \
    static void Log(std::string* name, const Message* msg, std::string* l);   \
    IPC_SYNC_MESSAGE_METHODS_##out_cnt                                        \
  };

コード上は、そんな class が存在しないので、gtags でも追えないし、gdb でもひっかからないと。 どうしたらいいんでしょうかね・・・。 ていうか、なんでこんなことするかなー。 デバッガで追えないような実装するとか、何考えてんだろ、馬鹿なの?死ぬの?

Tizen 環境復旧しました

おはようございます。

M2-March2014 のビルドがほぼほぼ終わって、 weston-simple-egl が起動する環境が復旧しました。

まぁ、crosswalk は動かないんですけどね。

Ubuntu の crosswalk build は、4123/5412 までいったので、もう少しってところですが、 ↓こんな感じのエラーが出て、もうわけがわかりません。

[4123/5412] CXX obj/xwalk/application/common/xwalk_application_lib.application_file_util.o
FAILED: c++ -MMD -MF obj/xwalk/application/common/xwalk_application_lib.application_file_util.o.d -DV8_DEPRECATION_WARNINGS -DBLINK_SCALE_FILTERS_AT_RECORD_TIME -D_FILE_OFFSET_BITS=64 -DDISABLE_NACL -DCHROMIUM_BUILD -DTOOLKIT_VIEWS=1 -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_CAIRO=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_
LIBJ
PEG_TURBO=1 -DUSE_MOJO=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DUSE_PROPRIETARY_CODECS -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_INPUT_SPEECH -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DUSE_UDEV -DENABLE_EGLIMAGE=1 -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_PLUGINS=1 -
DENA
BLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_AUTOMATION=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DENABLE_FULL_PRINTING=1 -DENABLE_PRINTING=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_MANAGED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_D
ISCO
VERY=1 -DSK_ENABLE_INST_COUNT=0 -DSK_SUPPORT_GPU=1 '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' -DSK_ENABLE_LEGACY_API_ALIASING=1 -DSK_ATTR_DEPRECATED=SK_NOTHING_ARG1 -DGR_GL_IGNORE_ES3_MSAA=0 -DSK_SUPPORT_LEGACY_LAYERRASTERIZER_API=1 -DSK_WILL_NEVER_DRAW_PERSPECTIVE_TEXT -DSK_SUPPORT_LEGACY_PUBLICEFFECTCONSTRUCTORS=1 -DSK_SUPPORT_LEGACY_GETCLIPT
YPE
-DSK_SUPPORT_LEGACY_GETTOTALCLIP -DSK_SUPPORT_LEGACY_GETTOPDEVICE -DSK_USE_POSIX_THREADS -DSK_DEFERRED_CANVAS_USES_FACTORIES=1 -DU_USING_ICU_NAMESPACE=0 -DU_STATIC_IMPLEMENTATION -DCHROME_PNG_WRITE_SUPPORT -DPNG_USER_CONFIG -DUSE_SYSTEM_LIBXML -DUSE_NSS=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -I../../skia/config -I../../third_part
y/We
bKit/Source -I../../third_party/khronos -I../../gpu -I../../net/third_party/nss/ssl -I../../third_party/skia/src/core -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/pdf -I../../third_party/skia/include/gpu -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../
../t
hird_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../skia/ext -I../../third_party/icu/source/i18n -I../../third_party/icu/source/common -I../../third_party/WebKit -I../../third_party/npapi -I../../third_party/npapi/bindings -I../../v8/include -I../../third_party/libpng -I../../third_party/zli
b -I
../../third_party/libwebp -I../../third_party/ots/include -I../../third_party/qcms/src -I../../third_party/iccjpeg -I../../third_party/libjpeg_turbo -Igen/xwalk -fstack-protector --param=ssp-buffer-size=4 -pthread -fno-exceptions -fno-strict-aliasing -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-unused-local-
type
defs -pthread -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/nss -I/usr/include/nspr -I/usr/include/freetype2 -I/usr/include/libxml2 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -Wno-format -Wno-unused-result -march=armv7-a -mfpu=neon -mfloat-abi=softfp -mthumb -O2 -fno-ident -fdata-sect
ions
 -ffunction-sections -funwind-tables -O2 -g2 -feliminate-unused-debug-types -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=32 -Wformat -Wformat-security -fmessage-length=0 -march=armv7-a -mtune=cortex-a15 -mlittle-endian -mfpu=neon -mfloat-abi=hard -g -I/usr/include/arm-linux-gnueabihf -I/usr/include/arm-linux
-gnu
eabihf/c++/4.8 -Wno-deprecated-declarations -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -Wno-deprecated -Wno-abi  -c ../../xwalk/application/common/application_file_util.cc -o obj/xwalk/application/common/xwalk_application_lib.application_file_util.o
In file included from /usr/include/libxml2/libxml/parser.h:811:0,
                 from /usr/include/libxml2/libxml/globals.h:18,
                 from /usr/include/libxml2/libxml/threads.h:35,
                 from /usr/include/libxml2/libxml/xmlmemory.h:218,
                 from ../../third_party/libxml/src/include/libxml/tree.h:1249,
                 from ../../xwalk/application/common/application_file_util.cc:26:
/usr/include/libxml2/libxml/xmlIO.h:132:5: error: 'xmlBufPtr' does not name a type
     xmlBufPtr buffer;    /* Local buffer encoded in UTF-8 */
     ^
/usr/include/libxml2/libxml/xmlIO.h:133:5: error: 'xmlBufPtr' does not name a type
     xmlBufPtr raw;       /* if encoder != NULL buffer for raw input */
     ^
/usr/include/libxml2/libxml/xmlIO.h:148:5: error: 'xmlBufPtr' does not name a type
     xmlBufPtr buffer;    /* Local buffer encoded in UTF-8 or ISOLatin */
     ^
/usr/include/libxml2/libxml/xmlIO.h:149:5: error: 'xmlBufPtr' does not name a type
     xmlBufPtr conv;      /* if encoder != NULL buffer for output */
     ^
[4123/5412] CXX obj/content/common/content_common.content_message_generator.o
ninja: build stopped: subcommand failed.

Tien crosswalk の方は、↓こんな感じ。

(gdb) run http://www.google.com
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /usr/lib/xwalk/xwalk http://www.google.com
warning: File "/lib/libthread_db.so.1" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
[0626/133623:INFO:desktop_factory_wayland.cc(15)] Ozone: DesktopFactoryWayland
[New LWP 691]
[0626/133624:INFO:desktop_factory_wayland.cc(15)] Ozone: DesktopFactoryWayland
libEGL warning: MESA-LOADER: malformed or no PCI ID

[New LWP 693]
[0626/133624:ERROR:desktop_drag_drop_client_wayland.cc(14)] Not implemented reached in views::DesktopDragDropClientWayland::DesktopDragDropClientWayland(aura::Window*)
[0626/133624:ERROR:desktop_window_tree_host_wayland.cc(632)] Not implemented reached in virtual void views::DesktopWindowTreeHostWayland::OnRootViewLayout() const
[0626/133624:ERROR:desktop_window_tree_host_wayland.cc(632)] Not implemented reached in virtual void views::DesktopWindowTreeHostWayland::OnRootViewLayout() const
[0626/133625:WARNING:proxy_service.cc(903)] PAC support disabled because there is no system implementation
[0626/133625:ERROR:tizen_platform_sensor.cc(53)] Connection to accelerometer sensor failed
[0626/133625:ERROR:tizen_platform_sensor.cc(68)] Connection to gyroscope sensor failed
[0626/133625:ERROR:tizen_platform_sensor.cc(53)] Connection to accelerometer sensor failed
[0626/133625:ERROR:tizen_platform_sensor.cc(68)] Connection to gyroscope sensor failed
[0626/133625:ERROR:desktop_window_tree_host_wayland.cc(611)] Not implemented reached in virtual void views::DesktopWindowTreeHostWayland::SetWindowIcons(const gfx::ImageSkia&, const gfx::ImageSkia&)
[0626/133625:ERROR:display.cc(140)] Not implemented reached in virtual void ozonewayland::WaylandDisplay::SetWidgetState(unsigned int, ui::WidgetState, unsigned int, unsigned int) SHOW 1
[0626/133626:WARNING:xwalk_external_extension.cc(57)] Error loading extension '/usr/lib/tizen-extensions-crosswalk/libtizen_callhistory.so': couldn't get XW_Initialize function.
[0626/133626:WARNING:xwalk_extension_server.cc(376)] Failed to initialize extension: /usr/lib/tizen-extensions-crosswalk/libtizen_callhistory.so
[New LWP 684]
[0626/133626:INFO:desktop_factory_wayland.cc(15)] Ozone: DesktopFactoryWayland
libEGL warning: MESA-LOADER: malformed or no PCI ID

[0626/133627:ERROR:webgraphicscontext3d_command_buffer_impl.cc(426)] Failed to initialize GLES2CmdHelper.
[0626/133627:ERROR:command_buffer_proxy_impl.cc(151)] Could not send GpuCommandBufferMsg_Initialize.
[0626/133627:ERROR:webgraphicscontext3d_command_buffer_impl.cc(394)] CommandBufferProxy::Initialize failed.
[0626/133627:ERROR:webgraphicscontext3d_command_buffer_impl.cc(413)] Failed to initialize command buffer.
[0626/133627:FATAL:window_state_change_handler.cc(26)] Check failed: !impl_. Replacing set WindowStateChangeHandler implementation.

Program received signal SIGABRT, Aborted.
0xb649a884 in raise () from /lib/libc.so.6

MESA_DEBUG=1 を付けても、とくに有益な情報は無し。 エラーも出てない様子。

gdb で crosswalk 追っかけるしかないのか・・・