Fuchsiaをビルドしてエミュレータ起動する
こんにちは、tkyです。
Fuchsiaのビルドをしてみたいと思います。
以下のサイトを見ながらやったこととなります。 結構時間かかります。3時間くらい・・・?
実施端末情報
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 でタブ切り替えが可能となります。
また、-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オプションはちょっと断念・・・解決できた人いたら教えてください・・・ 😇