LoginSignup
2
2

More than 3 years have passed since last update.

VirtualBox(7) HaikuをUSB メモリにインストールしてみました

Last updated at Posted at 2020-01-21

はじめに

VirtualBox の表題とタグが付いていますが、VirtualBox にインストールして動いたHaiku を実際のPC にインストールしてみた備忘録です。現状での「Haiku の良いところ、悪いところ」、「VirtualBox の優れたところ、使い道」が確認できました。

中古ですが、UEFI 立ち上げできる(しかできない)PC を手に入れました。

内蔵SSD には、Ubuntu 18.04.3 をインストール。
ネットワークは「USB3.0 のネットワークアダプタ」(plugable USB3.0 Gigabit Ethernet Adapter: USB3-E1000)を使い、有線LAN で接続しています。

Ubuntu 18.04.3 だと苦労しなくても自動でネットワーク接続されます。

「接続情報」を確認:

Interface: Ethernet(enx8cae4cdf5365)
Hardware Address: 8C:4E:4C:DF:xx:xx ←Mac アドレス
Driver: ax88179_178a
speed: 1000 Mb/s
Security: なし

IPv4
:

→Mac アドレスのベンダーID からメーカー名は検索できませんでしたが、ドライバー名で使用チップとメーカーが検索できました。

使用チップ:

AX88179

ちなみに、VirtualBox のネットワークのベンダーID は、VirtualBox に割り当てられた番号になるようです。


ライブUSB メモリが立ち上がるかを確認

1. Haiku のライブイメージ「haiku-r1beta1-x86_64-anyboot.iso」を使い、USB3.0 メモリの8GB に作成。

2. PC の電源をオン。
「Esc」または「Delete」キーでBIOS 画面(AMI BIOS) に入り、「Boot」タブで、ブートの優先度の先頭の順位を「USB3.0 メモリ」に変えました。USB メモリはメーカー名で判別して選択。

このPC は、UEFI ディスクでないと認識しません。Haiku のライブイメージ(x86_64-anyboot.iso) だと認識しました。64bit のanyboot.iso のみUEFI 立ち上げできるようです。

3. ブートすると、「Haiku Boot Loader」画面になりました。(BootManager ではありません)

Select boot volume (Current: Haiku) →Enter
Select boot volume : Haiku →Enter
Continue booting →Enter

4. 選択することで、Haiku の立ち上げ画面になりました。
(この機能があれば、複数のHaiku から選択してブートできることに気付きました。)

さすがに、実機でUSB3.0 メモリだと、起動が速いです。
すぐに、デスクトップ画面になりました。

Haiku-usb.jpeg


ネットワーク接続できません

画面右上の「ネットワーク接続」アイコンは、正常接続時は青い点ですが、赤い点になっています。

Haiku-usb-net.jpeg

また、「USB3.0 のネットワークアダプタ」に付いたLED は、LAN がアクティブで点灯とか点滅するのですが、点灯していません。

「Network」を開くと:

DNS 設定
FTP  サーバー off
SSH  サーバー on
telnet サーバー off

→上記のみの表示だけです。接続情報はありません。
せめて、「ネットワーク未接続」くらいは表示して欲しいところ。

使っている「USB3.0 のネットワークアダプタ」が認識されていないと思われます。
ネットワークの動作を調べるときは、Ubuntu だとコマンドを打ちますが、Haiku でもネットワーク系のコマンドの一部は同じように使えました。

参考:

ネットワークの情報を確認するコマンド

ネットワークの設定ファイル


ネットワークのドライバーが組み込まれているかを確認

ログより確認(/boot/system/var/log/syslog):

例えば、VirtualBox での立ち上げ時(仮想ネットワーク):

KERN: loaded driver /boot/system/add-ons/kernel/drivers/dev/net/ipro1000

今回のPC での立ち上げ時(ネットワークがUSB アダプタ):

KERN: loaded driver /boot/system/add-ons/kernel/drivers/dev/net/usb_asix
KERN: loaded driver /boot/system/add-ons/kernel/drivers/dev/net/pegasus

→本来のUSB3.0 の「AX88179」ではなく、USB2.0 の「AX88772」のドライバーがロードされています。
USB3.0 のドライバーは存在しないようで、誤ったドライバーがロードされています。

→ログを見直すと、自動で認識というよりもすべてのドライバーがロードされたけど、対応ドライバーがなかったということみたい。

「ASIX 88772 10/100」device: (ASIX AX88772 USB2.0 to Fast Ehternet Adapter)

ネット検索すると、Amazon がヒット:

「Plugable USB LANアダプター USB 2.0 10/100 Linux 対応(ASIX社 AX88772 チップ) 」

→USB をサポートする、ほとんどのシステムに高速のイーサネット・ポートを追加できます。ASIX 社製 AX88772 チップセットを採用につき、多くの機器との接続が可能です。

たぶん、使えそうな気がします。手頃な価格です。今更 USB2.0 ですが、他でも使えるので緊急用に持っておくのもアリかな。

→USB 2.0 を入手してみましたが、接続できませんでした。
黄色のランプ: リンク切れになります。


ちなみに、最新のAX88179 ドライバーは:

AX88179ドライバーダウンロードWebページ

Linux kernel 4.x/3.x/2.6.x Driver V1.19.0 2018-01-02 For all Android systems, Linux kernel 2.6.14 and later 15.7 KB
(https://www.asix.com.tw/FrootAttach/driver/AX88179_178A_LINUX_DRIVER_v1.19.0_SOURCE.tar.bz2)

→Linux kernel 用のソースコードです。カーネルモジュールなので、そのままコンパイルしてもHaiku で使えるかは不明。


ネットワーク接続できないと、

システム更新もパッケージのインストールもできません。
パッケージのインストールなら、HPKG をどこからか持ってくればインストールできそうですが、依存の関係もあるので、パッケージによります。

また、ライブUSB そのままだと、システムで使える領域(パーティション)が小さすぎて、システム更新と2〜3個のアプリだけで一杯です。


ネットワーク接続できない問題に対応するには、

VirtualBox のHaiku で、システム更新してから必要なアプリを入れ、それをインストール元にしてUSB メモリにインストールすれば、ネットワーク接続できない状態でも、当面は使えそうです。

問題は、そのUSB メモリがUEFI で立ち上がるように作成されているかです。

検索だと、「UEFI で立ち上がる、公開されたISO イメージからライブUSB メモリを作成する」やり方しかヒットしません。これだと、システム更新されてませんし、個人で必要なアプリが入っていません。使える領域も狭いです。


まずは、作成したライブUSB メモリ(UEFI) で、立ち上がるかを確認

例えば、USB メモリによっては、Haiku の立ち上げに使えないものがあります。

1. BIOS 画面の「Boot」タブにて、USB メモリが表示されず、選択できません。

→ライブUSB メモリ(UEFI) を作成し直して OK 。

2. 認識され、ブートできますが、Haiku の立ち上げ画面の 4つ目のアイコン「ディスクと葉っぱ」で、PANIC発生。(PANIC: did not find any boot partitions !)

→違うメーカのUSB メモリにすると、立ち上がりました。微妙な仕様の違いみたい。


USB メモリのパーティション操作は、VirtualBox で行います

USB メモリでHaiku を立ち上げて、USB メモリの操作(例えば、Installer)を行うと、インストール完了直前にPanic に落ちました。自分で自分をいじれないようです。

なので、USB メモリのパーティションを操作するのは、VirtualBox で行いました。


ライブUSB メモリに入っているBoot Loader の画面で、起動パーティションが選べます

1. USB3.0 メモリの8GB にて、Haiku の「haiku-r1beta1-x86_64-anyboot.iso」を使って、ライブUSB メモリを作成しました。自分のマシンで、UEFI 立ち上げできました。

このライブUSB メモリは、Ubuntu で見ると、CD-ROM(ISO9660) イメージです。パーティション操作できません。
Haiku だと、そのライブUSB メモリの後ろの空き領域に、好きなパーティションが作れます。
Haiku の利点です。

2. VirtualBox のHaiku で、USB メモリの後ろの空き領域に「Befs」を作成。

3. インストール元を、VirtualBox のHaiku(システム更新して必要なアプリをインストール済)にして 、
インストール先に、「作成された Befs」を指定してインストールします。

4. PC をそのUSB メモリで立ち上げれば、表示される「Haiku ブートローダー」で、後ろのパーティションを指定して起動できます。


インストール時は、解像度に注意

インストール元にするHaiku で、インストール時に使っていた解像度が、USB メモリに使われます。

デフォルトの1024 x 768 の状態でインストールしたら、立ち上げ後のScreen アプリでは1024 x 768 の解像度しか表示しませんでした。

違う解像度を選択するには、ブートローダー画面で毎回選択する必要がありました。

Select vido mode
- 1920 x 1080 32bit
- 1280 x 1024 32bit
- 1024 x 768 32bit
- 800 x 600 32bit
- 640 x 480 32bit

例えば、ブートローダーのメニューで1920 x 1080 が選択されているように表示されていても、1920 x 1080 を再び選ばないとその解像度にはなりません。その値をデフォルトにしたければ、1920 x 1080 にした状態でインストールが必要です。

ちなみに、VirtualBox にHaiku をインストールした場合、コマンドで解像度を追加できますが、複数のゲストOS をHaiku にした場合、最初のHaiku だけに解像度が追加され、(コマンドでパーティション名を指定しても)その他は追加できませんでした。この辺りは自分の環境だけかもしれませんが注意が必要です。


ごみ箱を空にするときの注意

インストール元は小さいほど有利です。出来るだけ小さくなるように余分なファイルを削除。その後、「ごみ箱」を空にしました。

OS ビルドのテストをしていたからかゴミが 2GB ほどあります。空にするには、すごく時間がかかりました。処理中は、アプリの起動もできません。

USB メモリ立ち上げのホストOS で、VirtualBox にHaiku をインストールしている環境だから遅いのだろうと思っていました。スクリーンセーバーは停止しておきました。

ですが、操作のしかたで時間が大きく変わることを発見しました。
メモリ上に展開してから削除しているようで、メモリが少なくなると急に遅くなります。

大きなフォルダを捨てたときは、ごみ箱を右クリックして、「ごみ箱を空にする」としてはダメです。
左クリックでごみ箱を開いて、細かく削除していったほうが、早く終わります。


使える領域を増やす手順、の事前準備

1. VirtualBox で、Haiku を起動。

2. HaikuDepot を起動。もし、入力メソッドに「Mozc」をインストールしていたら、アンインストール。

もし、「Mozc」を続けて使いたい時は、アンインストールせず、下記の 「mozc」フォルダの削除 を「USB メモリへのインストール」の 直前に行います

3. /boot/home/config/settings/ にて、「mozc」フォルダが残っているのでフォルダごと削除して、ごみ箱を空にします。

→Mozc が入っていると起動の時に自動で作られるファイル(例: mozc.00aadac303bede49803cb94a9fe01027.sessio)
があります。Haiku のインストール元にしたときに不正となり停止します。ちなみに、属性が特殊(srw-r--r--) なためかTracker では見えず、Terminal で確認できます。

install-mozc-error.jpeg

4. 「Mozc」の代わりに「Canna」を使います。

HaikuDepot にて、入力メソッドの「Canna」をインストール
→インストール完了後にdebuger に落ちますが、
「q」Enter
「k」Enter
で、マウスが黒板消しみたいになるので、HaikuDepot の左上の□をクリックして、閉じます。
右上のメニュー(青い葉)→シャットダウン →再起動

5. VirtualBox で、Haiku を起動。

6. 右上のメニュー(青い葉)→Preferences →Screen

解像度を 1920 x 1080(手持ちのモニタの解像度) にして、適用→保持

7. 右Ctrl + F にて「フル画面」にします。→切替 →メニューバーが消えます。

→もう一度、右Ctrl + F すると、メニューバーが復帰します。表示させなくても、下の方にマウスを持っていくと、代わりのメニューが使えます。

→解像度を 1920 x 1080 にしておかないと、USB メモリの立ち上げで、デフォルトの解像度になりません。

8. 右上のメニュー(青い葉)→シャットダウン →電源を切る


使える領域を増やす手順:

1. VirtualBox で、Haiku を起動。ライブUSB メモリを挿入。

2. DriveSetup で、ライブUSB メモリの「空」を選んで、パーティション→新規作成→Befs

すべての領域を使わず、後ろに少しだけ空きを残します。
(今ではなく、作業完了後にデータ交換用のFat32 のパーティションを作成します)

3. 作成された(Befs) を選んで、右クリック→フォーマット→Befs →名前: 「Haiku-USB」

drivesetup.jpeg

4. フォーマットが終わったら、すぐに、右上のメニュー(青い葉)→シャットダウン →電源を切る →VirtualBox マネージャも閉じます。

必ず、USB メモリを抜きます。

→「Haiku でのパーティションの操作は、終了したら、一旦、USB メモリを抜くこと」。(←操作のポイント)

続けて、Installer を使うと、すべてのパーティションが見えないことがあります。
メモリを抜くことを習慣にしておくと、ハマりません。

5. Haiku を立ち上げます。

Haiku が立ち上がってから、USB メモリを挿入。(←操作のポイント)
問合せのメッセージに、「Haiku-USB」パーティションのみ「読み書き」にして、他は「読み取り」を選択します。

6. Installer を起動。

インストール元: Haiku-HD - 10.00 GiB
インストール先: Haiku-USB - 24.41 GiB

終了したら、閉じます。

7. 右上のメニュー(青い葉)→シャットダウン →電源を切る →VirtualBox マネージャも閉じます。

USB メモリを抜きます。


USB メモリに追加したHaiku で立ち上がるかを確認

1. (UEFI 立ち上げできる)PC に作成したUSB メモリを挿入。

2. PC の電源をオン。

3. 「Esc」または「Delete」キーでBIOS 画面(AMI BIOS) に入ります。

「Boot」タブで、ブートの優先度の先頭の1番目を「USB3.0 メモリ」に変えました。USB メモリはメーカー名で判別できます。

4. ちょっと待たされます。20秒。

?no boot path found. scan for all partitions...

5. 「Haiku Boot Loader」画面になります。(BootManager ではありません)

Select boot volume (Current: Haiku-USB) →Enter
Select boot volume : Haiku-USB →Enter
Select Haiku version (Current: Latest state) →Enter
Latest state →Enter(←履歴の最新を選択)
Retun to main menu →Enter
Continue booting →Enter(←全部入力しないと、これは表示されません)

→「Haiku Boot Loader」では、boot volume と Haiku version(ライブ時は不要)のどちらも設定してやらないと、
Continue booting のメニューは表示されません。

すでに設定されている項目も再度指定しないとダメなのは面倒。

6. Haiku の立ち上げ画面になりました。

さすがに、実機でUSB3.0 メモリだと、起動が速いです。
すぐに、デスクトップ画面が表示されました。

Haiku-usb2.jpeg
→Canna で日本語入力できます。

参考:

Boot Loader


参考: BIOS 立ち上げ出来るPC で使うUSB メモリの作成

今までの作業は、UEFI 立ち上げしかできないPC で立ち上がるUSB メモリの話でしたが、逆に、BIOS 立ち上げの、Haiku が立ち上がるPC で使うUSB メモリ(パーティションを分けた場合)の作り方です。

今までの作業で作ったUSB メモリにBootManager(ブートマネージャ)をインストールします。
(MBR のうしろ、つまり先頭に 2KiB のスペースを必要とします。この場合はあるので不要)

ライブUSB メモリに入っているのは「Haiku Boot Loader」です。こちらは別物です。

ちなみに、インストール先のHaiku とは違うHaiku で作業しないと、Panic に落ちるので注意。
ここでは、VirtualBox のHaiku でUSB メモリに書き込みました。


BootManager のインストール手順:

  1. Installer アプリを起動、「ツール」→「ブートメニューの設定」でBootManager を起動。
  2. BootManager をインストールするドライブ(USB メモリ)を選択します。
  3. 「インストール」ボタンをクリック。
  4. デフォルトのMBR 保存場所→そのままで(/boot/home/config/settings/bootman/MBR)「次へ」
  5. 次へをクリックします
  6. オペレーティングシステムをインストールしたパーティション(Haiku、Haiku-USB)を選択し、名前を付けます。
  7. タイムアウトの時間(永久 →1分)とそのときにロードする、デフォルトのOS(Haiku →Haiku-USB) を選択します。
  8. 「次へ」をクリック。

完了です。
BIOS 立ち上げできるPC で立ち上げると、BootManager の、青(Haiku) と赤(Haiku-USB)の選択メニューが表示されます。ちなみに、メニューで青、赤、緑が使われるのは、BeOS の専門色だからだと思います。

→自分の旧マシンは、メニューまでは表示されますが、選択すると再起動になります。

UEFI 立ち上げしかできないPC(今回の新しいPC)で立ち上げたときは、このメニューは表示されず、Boot Loader の画面が表示されます。

参考:

BootManager


気付いたところ

1. UEFI で立ち上がるUSB メモリの作り方

領域を広げて、新規にUSB メモリにインストールして、UEFI で立ち上げるにはどうするか、考えました。
先頭のBefs のパーティションを広げたいけど、その後のUEFI パーティションが邪魔してます。

ライブUSB メモリの空きをBefs やFat32 でフォーマット。そこをUbuntu と共用することはできますが、それでは目的は果たせません。

Ubuntu なら、ライブUSB をUEFI で立ち上げて、インストール先をUSB にすれば自動で作られますが、システムが違うので参考になりません。

ところが、実機でライブUSB メモリを立ち上げたときに、Boot Loader の画面が表示されることを知りました。これなら、Haiku のパーティションを選択してブートできます。そこで、ライブUSB メモリの空きにBefs を作成し、そこをインストール先に指定すれば解決できる、と思い付きました。

先頭のBefs は無駄になりそうですが、Befs の領域として使ったり、緊急時の立ち上げで使えます。

2. UEFI で立ち上がりましたが、ネットワークがつながりません。

ネットワークアダプタ(USB3.0)が認識されていないようです。これが一番のネックです。もしかしたら、ネットワークがつながれば、自動でドライバーがインストールされるかも? それはやってみないとわかりません。多分ダメそう。

Linux 用のドライバーのソースはメーカーからダウンロードできます。でも、コンパイルして出来るのはカーネルモジュールです。Linux のカーネルはモノシリックで、Haiku はマイクロカーネルです。使えそうにないけど、もしかしたら、共有出来る仕組みがあるかもしれません?

USB2.0 のネットワークアダプタを入手するのが早道かもしれません。ただし、そこまでして、Haiku を使う必要があるのかな。

ちなみに、立ち上がったHaiku を見ると、プロセッサが 4個認識されていました。起動が速いわけです。

3. インストール元に、入力メソッドの「Mozc」がインストールされていると、インストールに失敗します。

/boot/home/config/settings/mozc/ のフォルダに不正と思われてしまうファイルがあります。
Mozc があるとシステム起動時に作られるファイルです。Mozc の設定ファイルぽいです。アンインストールしても削除されません。

→「mozc」のフォルダごと削除します。削除しても、起動するとフォルダが復活するので注意です。

4. 解像度は、インストール元になったHaiku で、そのときに使われていた解像度になります。Haiku では選択肢はありません。

ブート時の、「Haiku Boot Loader」画面で解像度の選択があります。でも立ち上げのたびに設定が必要です。


ネットワークの情報を確認するコマンドが使えるかを確認:

ネットワークが接続されているVirtualBox のHaiku で実行。


ネットワークの接続状態や応答速度を確認(内部折返し):
~> ping localhost
PING localhost.localdomain (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=254 time=29.159 ms
:

→Alt+C で停止。

ネットワークの接続状態や応答速度を確認(外部折返し):
~> ping google.co.jp
PING google.co.jp (172.217.161.227): 56 data bytes
64 bytes from 172.217.161.227: icmp_seq=0 ttl=253 time=37.328 ms
:

→Alt+C で停止。


NIC(ネットワークインターフェース)情報を表示:
~> ifconfig
loop    Hardware type: Local Loopback, Address: none
        inet addr: 127.0.0.1, Mask: 255.0.0.0
        inet6 addr: ::1, Prefix Length: 128
        MTU: 16384, Metric: 0, up loopback link
        Receive: 0 packets, 0 errors, 0 bytes, 0 mcasts, 0 dropped
        Transmit: 0 packets, 0 errors, 0 bytes, 0 mcasts, 0 dropped
        Collisions: 0

/dev/net/ipro1000/0
        Hardware type: Ethernet, Address: 08:00:27:xx:xx:xx
        Media type: 1 GBit, 1000BASE-T
        inet addr: xx.xx.xx.xx, Bcast: xx.xx.xx.xx, Mask: 255.255.255.0
        MTU: 1500, Metric: 0, up broadcast link auto-configured
        Receive: 19 packets, 0 errors, 2760 bytes, 0 mcasts, 0 dropped
        Transmit: 19 packets, 0 errors, 2154 bytes, 0 mcasts, 0 dropped
        Collisions: 0
ホスト名の表示:
~> hostname
ネットワークの接続状態や統計情報を表示:
~> netstat -n

→名前を解決せずに番号で表示

ルーティング・テーブル操作:
~> route

→Destination が同じネットワーク上にある場合、Gateway に「*」が表示されます。

ARP テーブル表示:
~> arp
ネットワークの経路を確認:
~> traceroute google.co.jp

→左から1回目の応答時間、2回目の応答時間、3回目の応答時間


ネットワークの設定ファイルの確認

/boot/system/settings/network/

hostname

→ホスト名

hosts

→ホスト名とIPアドレスとの対応(名前解決用)

resolv.conf

→DNS サーバやドメイン名の設定

services

→ポート番号とサービスの対応


追記:

2020-01-22

Haiku のドライバー

Haiku のドライバーは「FreeBSD」のドライバーを利用している(修正しているかは不明)みたいです。サポートされているモデルは下記を参照。

FreeBSD 12.0's release hardware notes
(http://www.freebsd.org/releases/12.0R/hardware.html)

  • 「ax」ドライバー:
    ASIX Electronics の「AX88172/AX88178/AX88772/AX88772A/AX88772B/AX88760」のUSB イーサネットアダプタをサポート

  • 「axge」ドライバー:
    ASIX Electronics の「AX88178A/AX88179」のUSB ギガビットイーサネットアダプタをサポート

Linux 用はメーカーからダウンロードできますが、FreeBSD 用は見つかりません。上記のドライバーもどこかにあるはずですが…。


あとがき

試してみて、色々なこと(ポイント)を知りました。やってみないとわからないことが多かったです。

それと、VirtualBox にHaiku を事前にインストールしていたおかげで、USB メモリにHaiku をインストールする作業が、スムーズにできました。(自分で自分をいじれない場合があるわけです。)

実機でHaiku を使う利点は「速さ」と「メモリ」を最大限に使えること。

不利なことは、システムがブートできるか、画面の解像度、周辺系(ドライバー類)が使えるかは、試してみないとわからないということ。

今回は、手持ちの「ネットワークアダプタ」(USB3.0)が認識されず、ネットワークがつながりませんでした。たぶん、まだ、USB3.0 の製品は使えない可能性が高いようです。

Ubuntu なら参考にできる情報は多いのですが、Haiku でのネットワーク系のトラブルは、ネット検索しても参考にできるものが見つかりません。ただし、ネットワーク系のコマンドの一部は、同じように使えたので安心しました。定義ファイルも似てます。

Linux からHaiku へのアプリの移植はプロジェクトが立ち上がっているので進んでいますが、ネットワークなどのドライバーとかの移植はどうなのでしょう?。何か勉強になるサイトとかあると、ありがたいですね。

次の投稿に続く


今までの投稿一覧は 「ここ

-

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2