【世界初】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に作成したものとして説明します。
- vfatパーティションへのコピー
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を書き換える必要がなくなりました。
何だこの無理ゲーは・・・
おはようございます、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::SyncMessageSchemaSchema; \ 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 追っかけるしかないのか・・・