ticktakclockの日記

技術ポエムを綴ったりします。GitHub idも同じです (@ticktakclock)

Fuchsiaをビルドしてエミュレータ起動する

こんにちは、tkyです。

Fuchsiaのビルドをしてみたいと思います。

以下のサイトを見ながらやったこととなります。 結構時間かかります。3時間くらい・・・?

fuchsia.dev

実施端末情報

macOS Mojave (10.14.5)
MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports)
プロセッサ 2.7 GHz Intel Core i7
メモリ16 GB 2133 MHz LPDDR3

Fuchsiaをビルドするソースコード郡を落としてきます。

$ curl -s "https://fuchsia.googlesource.com/fuchsia/+/master/scripts/bootstrap?format=TEXT" | base64 --decode | bash

20分くらいかかりました・・・ このあと pathを追加するように促されるのでされるがままに追加します。

{username} はログイン名が入ります。

export PATH=/Users/{username}/fuchsia/.jiri_root/bin:$PATH

この状態で jiri, fx, cipd コマンドが使えるようになります。

Jiriは開発ツールのようです。Fuchsiaのコードをチェックアウトしたりビルドしたりするためのコマンドがいろいろと用意されている模様です。

ビルドについては以下の通り。

$ xcode-select --install
$ fx set core.x64 --with //bundles:kitchen_sink
$ fx build

2時間強かかりました・・・

ビルドできたのでいざ起動!!!

$ fx run

・・・省略・・・
[00008.390] 01281:01283> devcoordinator: fallback driver 'usb_composite' is avai
[00008.390] 01281:01283> devcoordinator: driver 'usb_composite' added
[00008.390] 01281:01283> devcoordinator: fallback driver 'intel_disp' is availab
[00008.390] 01281:01283> devcoordinator: driver 'intel_disp' added
[00008.391] 02907:02930> devhost[proxy] bind driver '/system/driver/virtual_audi
[00008.408] 02907:02930> devhost[proxy] bind driver '/system/driver/virtual_came
[00009.599] 06866:06887> [00009.595941][1186734803][0][netstack] INFO: netstack.
[00009.623] 06866:06887> [00009.621660][1186734803][0][netstack] WARNING: main.g
[00013.611] 05656:05671> [ERROR:garnet/bin/sysmgr/app.cc(183)] Could not load pa
[00014.980] 05656:05671> [ERROR:garnet/bin/sysmgr/app.cc(190)] Singleton fuchsia
[00017.406] 06866:06887> [00017.405761][1186734803][0][netstack] WARNING: netsta
[00018.418] 11088:11101> wlanstack [I]: Starting

動いたっぽい!!?やった! 🎉ここからどうしたら良いんだ・・・・

ls は反応しませんでしたが、 pwd は反応した。Linuxコマンドは少しだけ準備があるみたいです。

ls
/boot/bin/sh: 1: Cannot create child process: -1 (ZX_ERR_INTERNAL): failed to re
$ ls
/boot/bin/sh: 2: Cannot create child process: -1 (ZX_ERR_INTERNAL): failed to re
$ pwd
/
$ 

ドキュメント読み進めるとわかりますが、グラフィックを有効にして起動するオプションもありました。

QEMUエミュレータのことです。それ以上のことはよく知らない状況です。

-m sets QEMU's memory size in MB. ・・・QEMUのメモリ容量を設定する
-g enables graphics (see below).   ・・・GUIを有効にする
-N enables networking (see below).  ・・・ネットワーク接続を有効にする
-k enables KVM acceleration on Linux. ・・・KVMを有効にする
-h help                                                         ・・・ヘルプ

改めて、この設定で起動してみます。一度シャットダウンしてもう一度起動します。

$ dm shutdown    ・・・シャットダウンする時はdmコマンドを使います。
[01923.365] 04981:05009> minfs: Unmounted
[01923.377] 10107:10120> thread 'main' panicked at 'log_listener: not able to wr
[01923.377] 10107:10120> note: Run with `RUST_BACKTRACE=1` environment variable 
[01923.445] 04398:04413> Allocation Info:
[01923.446] 04398:04413>   Allocated 0 blobs (0 MB) in 0 ms
[01923.446] 04398:04413> Writeback Info:
[01923.446] 04398:04413>   (Client) Wrote 0 MB of data and 0 MB of merkle trees
[01923.446] 04398:04413>   (Client) Enqueued writeback in 0 ms, made merkle tree
[01923.446] 04398:04413>   (Writeback Thread) Wrote 0 MB of data in 0 ms
[01923.446] 04398:04413> Lookup Info:
[01923.446] 04398:04413>   Opened 1257 blobs (738 MB)
[01923.446] 04398:04413>   Verified 339 blobs (153 MB data, 2 MB merkle)
[01923.446] 04398:04413>   Spent 1012 ms reading 5 MB from disk, 7140 ms verifyi
[01923.464] 04398:04413> blobfs: Unmounted
[01923.469] 01281:01283> devcoordinator: Successfully waited for VFS exit comple
$fx run -g

CUIが出てきました。クリックするとマウスが持っていかれるので ctrl + alt + gでマウスを奪い返します。

画面上部に表示されている <0] debug [1] [2] [3] という表記はタブを表していて、 opttion(⌥) + tab でタブ切り替えが可能となります。

f:id:ticktakclock:20190715171354p:plain:w500
fuchsia $run -g

また、-Nの起動オプションも試してみます。

$ fx run -N
WARNING: Please opt in or out of fx metrics collection.
You will receive this warning until an option is selected.
To check what data we collect, run `fx metrics`
To opt in or out, run `fx metrics <enable|disable>

Creating disk image...done
To use qemu with networking on macOS, install the tun/tap driver:

tun/tapドライバを入れろというのでぐぐって入れます。このコマンドで行ける模様。

$ brew cask install tuntap
・・・略・・・
installer: Package name is TunTap Installer package
installer: Installing at base path /
installer: The install failed (エラーによってインストールできませんでした。ソフトウェアの製造元に問い合わせてください。)
Follow the instructions here:
  https://github.com/Homebrew/homebrew-cask#reporting-bugs

っておいぃぃぃ!!!入らないんかーい! ということで-Nオプションはちょっと断念・・・解決できた人いたら教えてください・・・ 😇

#