【Telegramアカウント必須】Androidアプリが動くFydeOSを触ってみたいからVMware Playerで動かしてみた記録(VirtualBoxでの失敗記録も)

Posted by 雅楽斎 on Monday, September 14, 2020

TOC

Google Chrome OSとChromium OSとFydeOS

突然ですが、ここでGoogle ChromeOSとChromium OSとChromium OSのフォークであるFydeOSを比較してみましょう。

  • Google Chrome OS…Googleが開発し、Chromebook、Chromeboxに搭載して出荷するOS
  • Chromium OS…Google Chrome OSのベースとしてソースが公開されているOS。使うためには自分でビルドするか、誰かがビルドしたものを使う必要がある
  • FydeOS…北京の燧炻科技创新が公開しているChromium OSのフォークで、Androidアプリを実行できるという特色があるOS

分類としては以上のようになりますが、Chromium OSのフォークはFydeOS以外にも有名なものとしてCloudReadyがあります。

これらはGoogle Chrome/Chromiumといったブラウザが主に使用するアプリケーションとなっていること、動作が他の一般的なPCと比較して速いことが特徴的なOSとなっています。

また、高速に動作する反面汎用的なOSと比較して動作するCPUが限られていて、ハードウェアに最適化するというのも特徴として挙げられます。

他方でGoogle Chrome OSとChromium OS自体に機能差があり、例えばAndroidアプリを実行できるAndroid Runtime for Chrome/ARCやLinux環境を使用できるCrostiniといった魅力的な機能はChromium OSやそのフォークでも使用できません。

Acer Chromebook C720にGalliumOS3.0をインストールする

一方で、Linuxを使う上ではCrostiniは必要ありませんがAndroidアプリを一番自然に使えるAnboxが使い勝手がまだまだの側面があり、もっとちゃんとAndroidアプリが使えるといいなぁと思うのも事実。

Androidの互換ソフトウェアAnboxをUbuntu 20.04で試す(楽になってた)

最近のChromebookであればARC対応済みですが、そのためにChromebook買うのも…スマホとかタブレットはあるので…

解像度に妥協。小米 Mi A3を買ったのでレビュー

FydeOSはAndroidアプリが使えるらしい

ということで、Chromium OSのフォークであるFydeOSがAndroidアプリを使えるようだという話で、何とかこれを既存環境を壊さずに使えないかということでVMware Playerで試してみた記録です。最初はVirtualBoxで試してみましたが、結果としてGRUBの先に進めていないのでVMware Playerを使用することになりました。VirtualBoxを使った場合の挙動も後述します。

FydeOSを使うための認証について(Telegramのチャットボットを使った認証)

FydeOSは初回起動時にFydeOSアカウントの認証が必須になります。既にFydeOSのアカウントを持っている場合はその認証で済むはずですが、新規にアカウントを作成する必要がある場合については、Telegramというメッセージングアプリのチャットボットを使った認証が必須となっています。

Telegramアカウント作成後の手順については該当箇所に詳細を記載しますが、この認証を行うために必要なものは以下の通りです。

  • Telegramアカウント(SMS受信確認済み)

また、このTelegramアカウントに紐づけているSMSを受信できるMSISDN(携帯電話番号)はFydeOSアカウントにそのまま紐付けられます。簡単に言うと、携帯電話番号は燧炻科技创新に知られることになります。

中国には2017年6月に施行された国家情報法という法律があり、国が開示を求めた場合、すべての中国企業は保持する情報を開示しなければなりません。従わない場合は違法ということを意味します。これが最大のリスクになると思います。

記事が長くなってしまったので先にまとめ

この記事では当初やりたかったことは概ねできています。

  • VMware Playerを使用したゲストOSとしてのFydeOSの使用
  • Telegramアカウントを使ったFydeOSのアカウント作成
  • FydeOSでのOpen GAppsを使ったGoogle Playストアの利用、Androidアプリの使用

一方で、できていないこともこれだけあります。

  • VMware上のFydeOS上での動画の再生
  • VMware上のFydeOS上での音声の再生

なので、実用性としてはあまり高くないと思います。あくまでもコンパニオンとして気軽にChromiumOSを使いたい場合に使っても良いかな…?と感じる程度です。

また、この記事では正常系ルートを進むように書いていますが、実際の作業では異常系ルートを踏みまくったので、スクリーンショットの実際の取得日時がバラバラです。今回踏んだ異常系ルートは以下の通りです。

FydeOSの
起動
Open GApps
の実行
FydeOSの
認識
VirtualBoxでの起動1
吊るしのVMware
イメージでの起動
吊るしのVMwareイメージに
SCSI接続の仮想HDDを追加
吊るしのVMwareイメージに
SATA接続の仮想HDDを追加

動作確認を行った動作環境について

本稿に記載の手順は以下の環境で確認を行いました。

  • Ubuntu MATE 20.04 amd64
  • Lenovo ThinkPad X270

ThinkPad X270は中古でCPUがSkylakeというそれほど数が出回っていないものになります。

【画像で分解説明】実用性に全振り!中古のLenovo ThinkPad X270に手を入れて最強の作業環境を構築

FydeOSをダウンロード

https://fydeos.com/download/

FydeOSの現在の最新版は、PC向けとされているFydeOS for PCがv10.2(Chromium OS release-R83-13020.Bベース)、VMWare向け仮想アプライアンスのFydeOS VM for VMwareがv10.0 - Preview1(Chromium OS release-R83-13020.Bベース)となっています。必要な方の「直接下裁」をクリックしてダウンロードします。

ファイルサイズはFydeOS for PCv10.2の方が1.9GB2、FydeOS VM for VMWarev10.0 - Preview1の方が1.8GB3となっています。

VMware Playerのインストール

VMware Workstation Player - My VMware

本稿執筆時点ではVMware Playerは上記URLからダウンロードが可能でした。VMware Workstation 15.5.6 Player for Linux 64-bitの右にあるDOWNLOAD NOWを押してダウンロードします。

ダウンロードが終わったらファイルに実行権を付けてrootユーザーで実行するとインストールが完了します。

$ chmod +x VMware-Player-15.5.6-16341506.x86_64.bundle
# ./VMware-Player-15.5.6-16341506.x86_64.bundle

ただこのインストーラー、FHSガン無視で/usr/binに思いっきりバイナリを置いていくんですよね。なんとかならないかな。

$ vmplayer

でVMware Playerが起動します。初回はインストールの続きです。ライセンスの確認やらサポート受けるならコミュニティに加入しろやらライセンスの選択(非商用)やら進んで行くと、

最後にこんなダイアログが表示されてインストール完了です。

FydeOS VM for VMwareを読み込む

VMware Playerを起動したら、Open a Virtual Machineを選びます。

ダウンロードしたFydeOS_VM_VMWare-v10.0-preview1.ovaを読み込ませると名前と格納場所が補完されるので、そのままImportします。

FydeOS VM for VMwareを起動する

取り込まれたFydeOS VM for VMwareが表示されたら、Power Onを押すとVMが起動します。

なにやらやたら表示されますが邪魔で画面が見えないので消しつつ、様子を見守ります。

とりあえずFydeOSのロゴが表示されますが、こちらの環境ではとりあえずここで停止。

ちなみにこの状態でもCtrl+Alt+F2でDeveloper Consoleに入れて、ユーザーchronosでログインしてコンソールの作業は可能です。パスワードなしでsudoも通るので、root権限の必要な作業も行えます。4top等のよく使うコマンドも使えるので、この状態でもとりあえず使うことは可能です。

FydeOS VM for VMwareにSATA接続の仮想HDDを繋いで、もう一つFydeOSをインストールする

詳細は別記しますが、吊るしのVMwareイメージに接続されているNVMe接続のHDD上で動かすFydeOSはOpen GAppsのセットアップに失敗したので、別にSATA接続の仮想HDDを接続してそちらにもFydeOSをインストールします。

SATA接続の仮想HDDを追加

FydeOSのVMを終了させて、VMware Playerから該当VMのEdit virtual machine settingsを押して設定画面に入り、HardwareタブのAddを押します。

淡々とSATA接続の仮想HDDを追加します。容量は念の為20GB、分割で作ってしまいましたがどう考えても後々の管理が面倒なのでStore virtual disk as a single fileにすれば良かったと後悔しています。

【参考】SCSI接続の仮想HDDはFydeOSから見えません

最初にVMwareオススメのSCSI接続の仮想HDDを増設してlsblkを実行してみましたが、それっぽいものが存在しませんでした。なので、SCSI以外の接続方法の仮想HDDを追加しましょう。こちらではSATA接続なら普通に見えました。

追加したSATA接続のHDDにFydeOSをインストール

FydeOSを起動し、ログインする前にCtrl+Alt+F2を押してDeveloper Consoleに入ります。chronosユーザーでログインした後、lsblkコマンドを実行して追加したSATA接続のHDDがsdaとして認識されていることを確認します。

個人的にsudoコマンドが嫌いなので、sudo su -でrootになって作業します。

/usr/sbin/chromeos-install --dst /dev/sdaを実行すると、/dev/sdaにFydeOSをインストールします。

yを入力してEnterを押すと、速やかにインストールが行われて、何も問題なく終了するので、ターミナルが返ってきたらshutdown -h nowで電源を落とします。

FydeOS VM for VMwareの起動順を変更する

追加したSATA接続のHDDへのFydeOSのインストールは終わりましたが、そのまま起動すると当然のように元々繋がっていたNVMe接続のHDDから起動するので、VMの中の起動順を変更します。

VMの起動直後2秒以内くらいに、なんとかしてF10を押してBoot Managerに入り、Enter setupへ。

Configure boot optionsへ。

Change boot orderへ。

現在の起動順が表示されるので、Enterを押してEFI VMware Virtual SATA Hard Drive (0.0)が一番上になるように+とーを押して調整します。

Enterを押して変更後の順序を確定したら、Change the orderの右側も変更されるので、Commit changes and exitを押して終了です。

SATA接続のHDDから起動しても全く同じFydeOSの起動ロゴが表示されます。ここから再スタートです。

VMwareの3Dハードウェアアクセラレーションを有効にする

どのホストOSの環境でもこの対処が有効なのかわかりませんが、デフォルトでは無効になっているOpenGLっぽい設定を有効にします。

https://github.com/FydeOS/chromium_os-vm-vmware/issues/13

「mks.gl.allowBlacklistedDrivers = “TRUE”」で検索するとどうも

  • VM単位で設定ファイル~/vmware/FydeOS_VM_VMWare-v10.0-preview/FydeOS_VM_VMWare-v10.0-preview1.vmxに書いて有効にする
  • 実行ユーザー単位で~/.vmware/preferencesに書いて有効にする

のどちらかで設定を有効にできるようです。

今回はVMを停止した状態で後者の~/.vmware/preferencesに「mks.gl.allowBlacklistedDrivers = “TRUE”」を書き足しました。

もう一度VMを起動してみると、先程のFydeOSのロゴが表示された後に中国語で歓迎されます。

FydeOS VM for VMwareの初期設定

左下の「中文(簡体)」をクリックすると言語を選べるので、まずはこれを日本語にしてみます。Androidだと大抵一番下に日本語がありますが今回は真ん中あたりです。言語選択後にキーボードがUSになりますがこちらも日本語に変えています。

タイムゾーンも+9時間に変更してもいいかもしれません(デフォルトでは中国の+8時間になっています)

ネットワークへはVMwareの中で有線LANがつながっていることになっているのでそのまま先に進みます。

ライセンスの確認画面です。30秒経つか一番下までスクロールするとAgree and continueボタンが押せるようになります。

先に進むとしばらく処理をした後にFydeOSのサインイン画面になります。画面下にあるゲストとしてブラウジングを選べば、とりあえずFydeOSをブラウザメインで使えるようにはなります。

右下のUSと書かれている部分をクリックして表示されるメニューの「ゲスト セッションを」をクリックすると元に戻ります。

FydeOSアカウントの作成(Telegramアカウントが必須)

FydeOSを使うにあたってはFydeOSのアカウントが必要ですが、既に作成したアカウントがない場合はFydeOSのアカウントを作成する必要があります。そしてFydeOSのアカウント作成にはTelegramのアカウントが必須です。

Telegramのアカウント作成時にSMSを受信できる電話番号か着信できる電話番号が必要ですが、FydeOSのアカウント作成時にTelegramアカウントに紐付けられている電話番号をFydeOSのチャットボットに開示する必要があります。

今回、私はTelegramに登録している番号をFydeOSに通知してFydeOSのアカウントを作りました。あまりやりたくなかったのは事実です。

スマホでの手順になりますが、PCでもできるのではないかと思います。

Sign in to your FydeOSの画面で入力する電話番号は既にFydeOSアカウントを持っている人のための入力欄なので、アカウントがない場合はMORE OPTIONSからCreate accountを選びます。

Create your FydeOS AccountにMSISDNを入力します。日本の場合は国番号である+81が入力され、右側に入力するのは市外局番の先頭の0を削った番号です。

NEXTを押すとQRコードが表示されるので、このリンクをTelegramで表示します。TelegramをインストールしているスマホでQRコードを読み込むのが一番早いと思います。

Telegramアプリでリンクを開くとこんな感じになっているので、下のSTARTを押します。

下に新しく表示されるSend verification codeをタップするとTelegramに登録しているMSISDNをFydeOS Conciergeに通知するかどうかの確認が表示されます。

SHARE CONTACTをタップすると、FydeOS Conciergeから認証コードが送られてきます(一回キャンセルしたので後ろに表示される会話が増えています)

認証コードが表示されたらFydeOSに戻って、実はQRコードの下にあるCONFIRMを押します。5

認証コードを入力して、メールアドレスとID、パスワードを設定してCREATE ACOUNTを押すと(問題がなければ)FydeOSのアカウント作成が完了します。

FydeOS使用時に利用するアカウントの選択(FydeOSアカウントかGoogleアカウントか選択)

FydeOSを使うにあたって、FydeOSのアカウントとGoogleアカウントどちらを使うかを選択します。FydeOSアカウントを使いたい場合はデフォルトのFydeOSアカウントを選択してもいいと思いますが、個人的には下のI prefer Googleを選んで、中華端末使用時専用のアカウントで使用するのがおすすめです。

因みにこのアカウント選択機能、FydeOSv10から導入された目玉機能みたいです。

https://fydeos.com/2020/07/25/fydeos-x-release-news/

【参考】FydeOS accountを選んだ場合の違い

GoogleアカウントではなくFydeOSアカウントを選択した場合、細々とした違いがあります。

ブラウザ(Chromium)のスタートページ・検索エンジンがBing

FydeOSではなくGoogleアカウントを選択した場合、今度はFydeOSで使うGoogleアカウントの設定になります。

他にGoogleのサービスを使っている場合は迷うことなく進めると思います。Googleアカウントを使う場合はChromiumブラウザのスタートページと検索エンジンはGoogleになります。

デフォルトインストールアプリは2ページ分あります。初回起動時は動的に追加されていくのが見れるかもしれません。StoreがFydeOSの提供するストア、CoolApkが中国でよく利用される(?)Androidアプリのストアみたいです。

ちなみに、この先のOpen GAppsのインストール失敗まではFydeOSアカウントの方で進めていることもあって中国語表示が多いです。

FydeOS StoreからダウンロードしたOpen GAppsのアプリのインストールと設定

Store(FydeOS Store)を起動すると、しばらくして用意されているアプリが表示されます。その中にはOpen GAppsがないので、左下の検索でgappsとか入力すると検索結果に配置 Open GAppsが表示されます。

表示された配置 Open GAppsを選んでインストールをすると程なく終了し、メニューにConfigure O…が追加されます。

これをクリックして起動すると、まずAndroidサブシステムを使えるようにしろというメッセージが表示されます。

言われるがままにメニューのAndroidをタップします。

ライセンスを読んでLAUNCHを押すとすんなり終了します。

再びConfigure O…の方を起動してみると、今度はAndroidサブシステム云々は何も言われずに先に進めます。直前と同じはずのEULAが表示されるので、チェックボックスにチェックを付けてNEXT。

この後は淡々と進めていきます。

installation optionsはOpenGAppsのpicoパッケージをどこからダウンロードするか設定できます。デフォルトの値はカスタムに記載されているURLだと思うので、そこにつながらない状況とかの場合は繋がるURLを指定するとうまく行くんだろうと思います。

なお、デフォルトではsourceforge(が選んだミラー)からダウンロードするようになっているので、デフォルトのままで良いと思います。6

確認ダイアログが出るのでそのまま進みます。

処理が20%まで進むとダウンロードに入ります。

40%になってもエラーが出ずに…

やっと終わりです。

【参考】吊るしのVMwareイメージにOpen GAppsアプリをインストールした場合の結果編(失敗)

ここでは最初にトライした吊るしのVMwareイメージ(NVMe接続のHDD)にOpen GAppsアプリをインストールした時の結果を記載します。

処理が40%になると、ダウンロードしたものを展開する処理に入ったように見せかけてsomething went wrongです。

裏に何が書いてあるか見てみると、No space left on deviceと書かれています。いわゆる空き領域不足です。但し、この時点でこのディスクは8GB中2.9GBしか使っておらず、単純に空き領域が不足しているとは思えません。

No space left on deviceの原因を推測

このエラー自体はファイルをディスクに書き出そうとした時に返ってくるエラーなので、ディスクに余裕があってこのエラーが返ってくるシチュエーションを想定すると…一番可能性が高いのはパーミッションが足りない。吊るしのこのイメージがそもそも間違ってカスタマイズされてるんじゃないか。という仮説を立てて、(どうせホストOSがSATA接続のSSDなのにNVMe接続扱いされている無意味な)デフォルトのHDDではなく、普通にSATA接続の仮想HDDを繋いで、もう一つFydeOSをインストールして同じ結果になるか試したらOpen GAppsのセットアップに成功しました。

おなじみのGoogle Playセットアップ作業

再起動をするとログイン後に自動的にOpen GAppsも立ち上がっているのでクリックしてみると毎度おなじみのGoogle Playのセットアップ作業に入ります。

使用するGoogleアカウントでの設定が終わると、そのままPlayストアからアプリをインストールできるようになります。かなり長かったですがここまでたどり着けてよかったです。

冷蔵庫のプリン食べられたもアプリとして実行可能です。ちなみにAndroidアプリはウィンドウサイズの変更ができます。

Termuxをインストールして色々確認

とりあえずAndroid上でLinuxっぽいことをできるようにしてくれるTermuxをインストールして、諸々の確認をします。

Termux - Google Play のアプリ

インストールしてTermuxを起動したら、諸々好みの設定をします。

$ pkg install apt
$ apt-get upgrade
$ apt-get install tree dropbear neofetch
$ termux-setup-storage

termux-setup-storageを実行すると、termuxからAndroid上に簡単にアクセスできるシンボリックリンクが作成されます。

$ tree ~/storage/
/data/data/com.termux/files/home/storage/
├── dcim -> /storage/emulated/0/DCIM
├── downloads -> /storage/emulated/0/Download
├── movies -> /storage/emulated/0/Movies
├── music -> /storage/emulated/0/Music
├── pictures -> /storage/emulated/0/Pictures
└── shared -> /storage/emulated/0

普段Android上でTermuxを使うとユーザーアカウントはu0_a52だったんですが、今回はu0_a67でした。

$ id
uid=10067(u0_a67) gid=10067(u0_a67) groups=10067(u0_a67),3003(inet),9997(everybody),20067(u0_a67_cache),50067(all_a67)

u0_a67ユーザーにパスワードがないと後から諸々面倒なので、パスワードを設定します。

$ passwd u0_a67

ホストOSからSSHでログインできるように、dropbearコマンドを実行します。今回は2222番ポートを使います。

$ dropbear -w -T 2 -j -k -p 2222 -I 600

ホストOSから接続するためのIPアドレスを調べると…

$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: arc0@if4: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether ce:cf:5d:c1:cc:4f brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 100.115.92.2/30 brd 100.115.92.3 scope global arc0
       valid_lft forever preferred_lft forever
    inet6 fe80::cccf:5dff:fec1:cc4f/64 scope link 
       valid_lft forever preferred_lft forever
4: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether e6:3e:d9:09:56:52 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 100.115.92.10/30 brd 100.115.92.11 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::e43e:d9ff:fe09:5652/64 scope link 
       valid_lft forever preferred_lft forever

ホストOSから繋がりそうなIPアドレスが一つもない…でも外には通信できているので、termux側からホストOSにSSH接続してみる…

$ ssh hogehoge@192.168.1.108

こっちは繋がるので、ホストOS側から接続元のIPアドレスを見てみると…

# netstat -anp | grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1012/sshd: /usr/sbi 
tcp        0      0 192.168.1.108:22        192.168.1.114:59348     ESTABLISHED 76852/sshd: hogehog
(snip)

接続元IPアドレスは192.168.1.114になってるので、どこかでNATかかってるんでしょうね(VMwareのネットワーク設定はブリッジなのでFydeOSかな…)

ということでホストOSから今度こそFydeOSにSSH接続。

$ ssh u0_a67@192.168.1.114 -p 2222
u0_a67@192.168.1.114's password: 

Welcome to Termux!

Wiki:            https://wiki.termux.com
Community forum: https://termux.com/community
Gitter chat:     https://gitter.im/termux/termux
IRC channel:     #termux on freenode

Working with packages:

 * Search packages:   pkg search <query>
 * Install a package: pkg install <package>
 * Upgrade packages:  pkg upgrade

Subscribing to additional repositories:

 * Root:     pkg install root-repo
 * Unstable: pkg install unstable-repo
 * X11:      pkg install x11-repo

Report issues at https://termux.com/issues


Welcome to Termux!

Wiki:            https://wiki.termux.com
Community forum: https://termux.com/community
Gitter chat:     https://gitter.im/termux/termux
IRC channel:     #termux on freenode

Working with packages:

 * Search packages:   pkg search <query>
 * Install a package: pkg install <package>
 * Upgrade packages:  pkg upgrade

Subscribing to additional repositories:

 * Root:     pkg install root-repo
 * Unstable: pkg install unstable-repo
 * X11:      pkg install x11-repo

Report issues at https://termux.com/issues

$ 

なぜかMOTDが2回表示されてバグっている気がします。

$ neofetch
         -o          o-            u0_a67@localhost 
          +hydNNNNdyh+             ---------------- 
        +mMMMMMMMMMMMMm+           OS: Android 9 x86_64 
      `dMMm:NMMMMMMN:mMMd`         Host: fydeos FydeOS Android 
      hMMMMMMMMMMMMMMMMMMh         Kernel: 5.4.28-g25fe9b8da-dirty 
  ..  yyyyyyyyyyyyyyyyyyyy  ..     Uptime: 23 mins 
.mMMm`MMMMMMMMMMMMMMMMMMMM`mMMm.   Packages: 63 (dpkg), 1 (pkg) 
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:   Shell: bash 5.0.18 
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:   Resolution: preferred 
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:   Terminal: /dev/pts/2 
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:   CPU: Intel i5-6300U (2) @ 2.496GHz 
-MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM-   Memory: 1077MiB / 1990MiB 
 +yy+ MMMMMMMMMMMMMMMMMMMM +yy+
      mMMMMMMMMMMMMMMMMMMm                                 
      `/++MMMMh++hMMMM++/`                                 
          MMMMo  oMMMM
          MMMMo  oMMMM
          oNMm-  -mMNs

というわけで、扱いとしてはAndroid9です。

また、Androidアプリ上で文字入力をする場合、Google日本語入力を使わなくてもFydeOS側の日本語入力が使えるというのは結構メリットかなぁとは思います。

制約事項(VMware上で実行する場合)

動画と音声の再生ができない

ChromiumOSはハードウェアアクセラレーションをガンガン効かせるから動画の再生も(Anboxでするよりも)快適なんだろうな…という期待を結構していましたが、動画の再生自体ができません。

試しにYouTubeで動画を再生しようとしましたが、「If playback doesn’t begin shortly, try restarting your device.」が表示され、一向に再生が始まりません。これはFydeOSを再起動しても変わらないので、現在のところ諦めるしかないのかなと思っています。

動画の再生ができないということは動画広告の再生をトリガーにしているゲームのリワード報酬とかは貰えないと思います。

音声についてはすべてが無音です。VMware自体にオーディオデバイスが存在しなかったので追加してAuto Detectにしてみましたが、何も鳴りません。FydeOS側ではmp3ファイルの再生自体はできていてエラーにはなっていない状態です。

VirtualBoxでFydeOSを試した結果編(失敗)

ここからはVirtualBox(Oracle VM VirtualBox)でFydeOSを動かそうとした時の結果になります。

VirtualBoxはVMwareと違い、基本部分はGPLv2で公開されていることからOracleで配布されているものの他にUbuntu等のLinuxディストリビューションでも配布されていて、Linux上で動作させる場合にkernelを更新しても配布パッケージが追従してくれる為にホストOSのkernel更新に伴うトラブル(具体的にはvmmonとvmnetという2つのkernel moduleの不整合)が起こりにくいという特徴があります。7その為、個人的にはVirtualBoxを優先的に使っています。

VirtualBoxのインストール

今回の検証は以下の環境で行っています。

  • Ubuntu MATE 20.04
  • VirtualBoxはOracle配布のものではなくUbuntu配布のもの(6.1.10-dfsg-1~ubuntu1.20.04.1)

いつもどおりの手順でVirtualBoxのパッケージをインストールします。

# apt-get install virtualbox

FydeOS VM for VMWareをVirtualBox用に変換してみるも失敗

インストール後はシステムツールに登録されるVirtualBoxを起動して、インポートボタンを押します。

ダウンロードした拡張子ovaのファイルを指定して次へを押します。

失敗します。お疲れ様でした。

わずか3手で敗北です。おかしいな…VMwareとかVirtualBoxとかって仮想マシンの互換性確保するようになったんじゃ…と思ったので一応メッセージを確認してみると、

Error reading “/home/hogehoge/Downloads/FydeOS_VM_VMWare-v10.0-preview1.ova”: Host resource of type “Other Storage Device (20)” is supported with SATA AHCI controllers only, line 47 (subtype:vmware.nvme.controller)

と書かれており、vmware.nvme.controllerというVendor Specificな値で出力しているからVirtualBox側では安全を取ってSATA AHCI以外はエラーで終わるようにしてる気がします。別にNVMe接続で仮想マシン作らなくてもいいと思うんだけど。

FydeOS for PCを仮想HDDに変換して起動してみるも不調に終わる

VMware用のアプライアンスが不調に終わったので、残されたFydeOS for PCをVirtualBoxで動かす方向でチャレンジを開始します。

FydeOS for PCでダウンロードするファイルはよくあるUSBメモリに書き込んでブートするイメージファイルになっています。

https://fydeos.com/instructions-pc

etcherを使ってUSBメモリに書き込んで、それをPCに挿して起動する手順が書かれていますが、今回はVirtualBoxで使いたいので、仮想PCを一式設えます。

FydeOS用仮想PCをVirtualBox上に作る

今度は新規を押します。

名前とかは捻りなく付けていきます。タイプとかは特に該当するものがなさそうなのでOtherで。

RAMはホストが16GBあるので多めにとっても問題ないだろうと思い4GB。

HDDも40GB割り当てます。形式はVDI、可変長にすることで実際に使った時にサイズが実サイズになるように。

FydeOS起動イメージを仮想HDDに変換する

VirtualBoxに付属するコマンドラインツールで起動イメージファイルをVDI形式の仮想HDDに変換します。FydeOS_PC_v10.2-stable.imgは実際にファイルのあるパスを指定してください。カレントディレクトリにある状態でコマンドを実行しています。

$ vboxmanage convertfromraw --format VDI FydeOS_PC_v10.2-stable.img FydeOS_Boot.vdi
Converting from raw image file="FydeOS_PC_v10.2-stable.img" to file="FydeOS_Boot.vdi"...
Creating dynamic image with size 6241204736 bytes (5953MB)...

コマンドシンタックスは以下をご参照ください。

7.27. VBoxManage convertfromraw

仮想HDDを仮想PCに追加する

作成した仮想PCの設定を押します。

ストレージのIDEの右端にあるHDDと+の画像をクリックしてハードディスクを追加します。

起動イメージを変換した仮想HDDを追加します。

追加し終わるとこうなります。まだどの仮想PCにも使われていないのでNot Attachedにファイルが表示されています。そのまま右下の選択を押すと、戻った画面ではIDEのプライマリスレーブに割り当てられます。

仮想PCを起動する

設定が一通り終わったので、仮想PCを起動して追加した仮想HDDから起動するようにします。

デフォルトだと起動時にプライマリマスターから起動しようとして起動できないで終了するので、なんとかして起動順を指定する画面に行きます。

具体的には、起動してすぐに画面をマウスクリックして入力できる状態にして、「Press F12 to select boot device」の表示がされている間にF12キーを押します。

うまく入れると起動デバイスを選択する画面になるので、2を押してプライマリスレーブを選択します。

起動処理が始まりますが、この状態ではここで試合終了です。残念。

仮想PCの設定でEFIを有効にする

仮想PCの設定に入って、システムのマザーボードの拡張機能でEFIを有効化を選択してOKで反映します。

もう一度起動するとGRUBまでたどり着きます。

ただし、この後はどれを選んでも先に進みません。ブラックアウトするだけかGRUBに戻ってくるかのいずれかです。image AはBooting ‘FydeOS image A’が表示されて先に進まないのでグラフィック周りかなぁとは思うんですが。

ちなみにGRUBの各メニューに対応する起動コマンドは以下になります。

setparams ‘FydeOS image A’ linux /syslinux/vmlinuz.A init=/sbin/init boot=local rootwait ro noresume noswap loglevel=7 noinitrd console= i915.modeset=1 cros_efi cros_debug root=PARTUUID=9D74872A-FCF3-8E4E-B59F-6A4DpEF4DCFC

setparams ‘FydeOS image B’ linux /syslinux/vmlinuz.B init=/sbin/init boot=local rootwait ro noresume noswap loglevel=7 noinitrd console= i915.modeset=1 cros_efi cros_debug root=PARTUUID=F0B88D14-AB78-D440-B49A-8ED4BE1AB827

setparams ‘FydeOS verified image A’ linux /syslinux/vmlinuz.A init=/sbin/init boot=local rootwait ro noresume noswap loglevel=7 noinitrd console= dm_verity.error_behavior=3 dm_verity.max_bios=-1 dm.verity.dev_wait=0 i915.modeset=1 cros_efi cros_debug root=/dev/dm-0 dm=“1 vroot none ro 1,0 5529600 verity payload=ROOT_DEV hashtree=HASH_DEV hashstart=5529600 alg=sha256 root_hexdigest=657156afa0bd616c4294e940fca153b0c60909560de320704486131ced340921 salt=8d26ab02f11a3d5ee1adf85a6d1b48e03f22f260f6c4673654fd8df3afb18b62”

setparams ‘FydeOS verified image B’ linux /syslinux/vmlinuz.B init=/sbin/init boot=local rootwait ro noresume noswap loglevel=7 noinitrd console= dm_verity.error_behavior=3 dm_verity.max_bios=-1 dm.verity.dev_wait=0 i915.modeset=1 cros_efi cros_debug root=/dev/dm-0 dm=“1 vroot none ro 1,0 5529600 verity payload=ROOT_DEV hashtree=HASH_DEV hashstart=5529600 alg=sha256 root_hexdigest=657156afa0bd616c4294e940fca153b0c60909560de320704486131ced340921 salt=8d26ab02f11a3d5ee1adf85a6d1b48e03f22f260f6c4673654fd8df3afb18b62”

以上、失敗の記録でした。

スポンサーリンク


  1. GRUBの先に進めない [return]
  2. 6.2GBのイメージファイルをxzで圧縮したものになっています [return]
  3. 仮想環境一式のovaファイルです [return]
  4. すべてのユーザーでパスワードを変更できなくなっている(passwdコマンドが失敗する)ので、パスワードが必要になる作業はできません。 [return]
  5. 真面目な話、これを見つけられなくて結構時間をロスしています。縦スクロールバーを常時表示してほしいところ [return]
  6. ミラーになってるJAISTからダウンロードしてました [return]
  7. Windows上でVMwareを動かす分にはこの種のトラブルは経験したことがありませんが [return]

comments powered by Disqus