last updated 2011/11/12(履歴)
Haikuは、BeOS のオープンソース実装 + α を目指して開発が続けられている OS です。
今回、Linux(Ubuntu) をホスト OS(注 1)として、Haiku の実機へのインストールを行ってみました。
これから Haiku を試してみようとする方の参考になれば幸いです。
参考リンク(Haiku / BeOS とは?)
|
まず、実際の構成で Haiku が動作するかどうか確認しておくと良いでしょう。
以下に幾つか関連リンクを集めましたので参考にしてください。
VGA については非対応の場合、VESA モード (Safeモード) で動かすことが可能です。
参考リンク(Haiku、BeOS ハード関係):
|
今回ホストとする Linux にはUbuntuの8.04LTS(長期サポート版)を使用しました。(注2)
まずは、日本語ローカライズドDesktop CDのダウンロードから CD イメージを落として
LiveCDを焼いておきました。
今回、BeOS 上で、Cdrecord を使って
| sh-2.05b# cdrecord -v dev=8,1,0 driveropts=burnfree -data ubuntu-ja-8.04-desktop-i386.iso |
のようにして作成しました。(dev=*,*,*の値は cdrecord -scanbus で調べられます。)
参考リンク(Ubuntu 関係、およびダウンロード、CD作成関係)
|
|
注意: 今回は空の HDD にインストールしていますが、もし既存の OS やデータのある HDD に入れる場合はデータを失わないよう慎重に作業してください。 |
Bios で CD から起動する設定にしてから、Step 2で作成した LiveCD を入れて立ち上げるとメニューが出るので「コンピュータに変更を加えないでUbuntuを使ってみる(T)」を選びます。
立ち上がったら、画面上部のメニューバーからシステム→システム管理→パーティションエディター(GParted)を起動して、HDD に Haiku 用領域とubuntu用領域を作成しました。
| パーティション | Type | 説明 |
|---|---|---|
| /dev/sda1 | 未フォーマット |
Haiku 用パーティション。とりあえずサイズは 10-20GB あれば 充分でしょう。パーティションは1つだけです。 (swap 領域とかはありません。) |
| /dev/sda2 | 未フォーマット |
Linux 用パーティション。今回 Linux の使用がメインでは無いので、最小限のパーティションとして、/と swap の組合せとしました。(本格的にはもっと分ける?(注3)) Haiku のみのコンパイルなら、Linux 用+2G ほど空きが有れば充分ですが、Webkit 等その他のソースをコンパイルする人は充分な空きを取っておいてください。 |
| /dev/sda3 | linux-swap |
Linux の swap 領域。 サイズは今回実メモリ (512M) の 2 倍としてみました。とりあえず Haiku のビルドには問題無いようでした。 |
| /dev/sda4 | fat32 |
Linux<>Haiku 間のデータ交換用fat32領域。 本領域は、メモ作成時点では Haiku からはマウントできませんでしたが、r26128から、マウントできるようになりました。(起動後、デスクトップ右クリックで mount メニューを出してマウント。) なお、Ubuntu8.04 から Hdd 内の fat32 領域にアクセスするには初回認証が必要なようです。 ※データ交換にはその他、bfs_shell を使用する方法もあります(参考リンク20) |
領域が出来たら、デスクトップにあるインストーラーアイコンを起動して、
(参考17)に従ってインストールを行います。
異なる所は、「ディスクの準備」で「手動」を選び、Linux 領域のマウントポイントを/に、
Format に ext3 のチェックを入れたぐらいです。
| 参考リンク(Ubuntuインストール関係) |
この項は、参考リンク 21 の記事を参考に作成しました。
いよいよ Haiku のビルド&インストールを行います。
まず、ソースのダウンロードやクロスビルドツールの作成に必要なツール類(注4)を
インストールします。
| haiku@haiku:~$ sudo apt-get install git autoconf automake texinfo flex bison gawk build-essential yasm |
次に、作業用ディレクトリを作成し、Haiku クロスビルドツール、および Haiku のソースコードを git でダウンロードします。git を使ったソースコードのダウンロードおよびワークフローについては、Getting the source code (git) を参照ください。
|
haiku@haiku:~$ mkdir haiku haiku@haiku:~$ cd haiku #Haiku クロスビルドツールのソースダウンロード haiku@haiku:~/haiku$ git clone git://git.haiku-os.org/buildtools #Haiku のソースをダウンロード haiku@haiku:~/haiku$ git clone git://git.haiku-os.org/haiku |
git の使い方は参考リンク 23 などを見てください。
参考リンク(Haikuビルド関係-1)
|
まず、Jam (Haiku で使う Make のようなもの)をビルド、インストールします。
|
haiku@haiku:~$ cd haiku/buildtools/jam haiku@haiku:~/haiku/buildtools/jam$ make haiku@haiku:~/haiku/buildtools/jam$ sudo ./jam0 install |
次に、configure を実行して、Haiku クロスビルドツールのビルドを行います。
主な configure のオプションは以下の通りです。
| オプション | 説明 |
|---|---|
| --build-cross-tools <build tools dir> | ビルド用コンパイラにgcc2 を使用する。BeOS 用のアプリの一部を Haiku 上で動かすことが出来ます。 |
| --build-cross-tools-gcc4 <arch(注5)> <build tools dir> | ビルド用コンパイラに gcc4 を使用する。BeOS のアプリは実行できないが、効率のよいバイナリとなります。 また、移植中のWebkitなど gcc4 でないとビルドできないものもあります。 |
| --include-gpl-addons | GPL license な add-on(注6)を含めます。 |
| --use-gcc-pipe | gcc の -pipe オプションを使用します。 メモリをより多く使用しますが、ビルド時間が短縮されます。 |
| --use-32bit | 64bitホストの場合、gccの-m32 flag を使用します。 |
| --alternative-gcc-output-dir <dir> | gcc2/gcc4ハイブリッドモードを作成(後述)の場合、サブコンパイラのある作業用ディレクトリを指定します。 |
configure を実行すると、クロスビルドツールのビルドが始まります。
(configure + make ではないので注意。)
|
haiku@haiku:~$ cd haiku/trunk haiku@haiku:~/haiku/trunk$ ./configure --build-cross-tools ../buildtools/ --include-gpl-addons --use-gcc-pipe |
付.gcc2/gcc4 ハイブリッドモードで作成する場合
これまでHaiku は gcc2 または gcc4 のどちらか一方のバイナリのみ実行できていましたが、r25536より、gcc2/gcc4 のバイナリを両方実行出来るモードでビルド出来る様になりました。BeOS 用の gcc2 バイナリの資産を生かしながら、gcc4 バイナリの高速性を生かす事が出来ます。
この場合、configure は両方のコンパイラを作成するために 2 度行う必要が有ります。また、--alternative-gcc-output-dir を追加してサブのコンパイラのある作業用ディレクトリを指定します。 (メインコンパイラでビルド後、サブコンパイラでビルドを行うため.。)
|
#gcc2、gcc4 用作業用ディレクトリ作成 haiku@haiku:~/haiku/trunk$ mkdir generated-gcc2 generated-gcc4 #新しいディレクトリで gcc2 クロスコンパイラ作成 haiku@haiku:~/haiku/trunk$ cd generated-gcc2 haiku@haiku:~/haiku/trunk/generated-gcc2$ ../configure --build-cross-tools ~/haiku/buildtools/ --include-gpl-addons --use-gcc-pipe --alternative-gcc-output-dir ../generated-gcc4 #新しいディレクトリで gcc4 クロスコンパイラ作成 haiku@haiku:~/haiku/trunk/generated-gcc2$ cd ../generated-gcc4 haiku@haiku:~/haiku/trunk/generated-gcc4$ ../configure --build-cross-tools-gcc4 x86 ~/haiku/buildtools/ --include-gpl-addons --use-gcc-pipe --alternative-gcc-output-dir ../generated-gcc2 |
参考リンク(Haikuビルド関係-2)
|
この項は、参考リンク26の記事を参考に作成しました。
ツールも出来たのでさっそくビルドといきたいところですが、その前に(作業用ディレクトリ)/trunk/build/jamにUserBuildConfig ファイルを作成してインストール時の各種設定を行います。
実機へのHaikuインストールの場合、UserBuildConfig に Haiku をインストールする場所を設定する必要があります。
今回、Haiku を/dev/sda1 にインストールする(Step3参照)ので、
UserBuildConfig ファイルの HAIKU_IMAGE_NAME、HAIKU_IMAGE_DIR を以下の様に設定します。
#/dev/sda1 にインストールする。 HAIKU_IMAGE_NAME = sda1 ; HAIKU_IMAGE_DIR = /dev ; |
以下は、インストール先の指定の他、日本語入力用に Canna(注7)を追加し、 タイムゾーン設定を日本に変更した例です。
#/dev/sda1にインストールする。 HAIKU_IMAGE_NAME = sda1 ; HAIKU_IMAGE_DIR = /dev ; HAIKU_DONT_CLEAR_IMAGE=1; #かんなを追加 AddFilesToHaikuImage system add-ons input_server methods : canna ; #Timezone 変更 AddSymlinkToHaikuImage home config settings : /boot/system/data/timezones/Asia/Tokyo : timezone ; |
UserBuildConfig を使うとその他各種設定、3rd Party ソフトのインストールが出来ますが、
詳しくはUserBuildConfig.ReadMe(参考リンク28)を参照してください。
いよいよビルドです。(注8)
|
haiku@haiku:~$ cd haiku/trunk haiku@haiku:~/haiku/trunk$ jam -q haiku@haiku:~/haiku/trunk$ sudo jam -q |
2 回目以降のビルドの場合、先に示した UserBuildConfig ではビルドの際にインストール先を
フォーマットしてしまいます。もし、Haiku 上に構築したユーザー環境を壊したくない等、インストール先の Haiku 領域を消さずにバイナリのアップデートだけしたい場合は、UserBuildConfig に
|
SetUpdateHaikuImageOnly 1 ; HAIKU_INCLUDE_IN_IMAGE = 1 ; |
の 2 行を追加してください。(注9)
逆に、ファイルシステムなどインストール先の Haiku 環境がおかしくなってしまった場合、これらはコメントアウトしてビルド時にフォーマットしてしまうのが良いでしょう。
ビルドに応じて設定ファイルを書き換えるのが面倒な方は、Readme にある Profile を試してみてください。(ビルド時に領域を消さない場合は、r26435から追加された update-all profile action(注9)を使用します。)
付.gcc2/gcc4 ハイブリッドモードのビルドをする場合
gcc2/gcc4 ハイブリッドモードのビルドを行う場合は、UserBuildConfig に
| HAIKU_ADD_ALTERNATIVE_GCC_LIBS = 1 ; |
ビルドは、メインとするコンパイラが有る方のディレクトリで作業します。
|
#generated-gcc4ディレクトリでビルド (gcc4でHaikuをビルド、gcc2バイナリも実行可能) haiku@haiku:~/haiku/trunk/generated-gcc4$ jam -q haiku@haiku:~/haiku/trunk/generated-gcc4$ sudo jam -q |
参考リンク(パーティションへのインストール関係)
|
この項は、Step6 の参考リンク 26 の記事を参考に作成しました。
ビルドが終わったら、再起動の前にブートローダー(grub)の設定(注10)をしておきます。| haiku@haiku:~$ sudo gedit /boot/grub/menu.lst |
menu.1st に対して以下2点を修正します。
まず、起動時にメニューが出るように hiddenmenu をコメントアウト。
|
## hiddenmenu # Hides the menu by default (press ESC to see the menu) #hiddenmenu |
次に、ブートメニューに Haiku の項目を追加。
rootnoverifyのパラメータはインストールしたパーティションに応じて変更してください。
今回は1番目の起動ディスクの第1パーティションなのでhd0,0としています。
## ## End Default Options ## # Haiku on /dev/sda1 title Haiku rootnoverify (hd0,0) chainloader +1 title Ubuntu 8.04, kernel 2.6.24-16-generic |
grubの設定ファイルについて詳しくは参考リンク 28 などを見てください。
|
注意: Unbutu8.04 でカーネル関係のアップデートを行うと、menu.1st の処理方法を聞いてくるので 「現在インストールされているローカルバージョンを保持」を選んでください。
Unbutu の古いバージョン等で、カーネル関係のアップデートを行っても menu.1st の処理方法を聞いて来ない場合は grub の設定が元に戻っている可能性があるので、再起動前に menu.lst を見直してください。 |
いよいよ再起動です。
参考リンク(grub関係)
|
再起動したら、メニューから Haiku を選んでください……
●一発で動いた人へ
Haiku の世界へようこそ!!
●一発で動かなかった方へ
情報を集めたり、ハード構成やソースをあちこちいじったりしながらぼちぼちいきましょう。
セーフモードで立ち上げる方法や、仮想環境という手もありますので試してみてください。
楽しみながら、少しすつ知識なりスキルをあげつつぼちぼちやりましょう!!
参考リンク(セーフモード、バグ報告関係):
|
2011/11/12
Step 4. svn から git への移行により、ソースコード取得方法を変更。
2009/10/05
Step 4. Haiku ホスト先の変更により、ソース取得法を変更。
2009/04/18
Step 4.r30145の変更に伴い、必要なツールに yasm を追加。
2009/04/05
Step 6.r29876の変更に伴い、UserBuildConfig を修正。
2008/11/15
Haikuソースツリーのリンク修正。
2008/07/19
Step 3. fat32 領域の記述を修正、bfs_shell 参考リンク修正。
Step 5. ---alternative-gcc-output-dir を --alternative-gcc-output-dir に修正(-が一個多かった。)
Step 6. 2 回目以降のビルドについての記述を変更。
Step 7. Unbutu8.04 でカーネル関係のアップデート時の文章をダイアログに合わせて修正。
Step 8. 起動メニュー画面追加。
注7 修正(canna の標準インストール先を追加)
その他各所文章修正。
2008/06/26
Step 3.r26128より、Hdd 内の fat 領域がマウントできるようになったので記述を変更
Step 8. セーフモード等追加。
その他文章修正。
2008/06/15
Step 4. Haikuホスト先のプロトコル変更(svn://→http://)により、ソース取得法を変更。
2008/06/01
Ubuntu のバージョンを 8.04LTS に変更。
Step 3. Linux<>Haiku のデータ交換用に USB メモリの記述を追加。
Step 5. gcc2/gcc4 ハイブリッドビルドを追加。
Step 6. gcc2/gcc4 ハイブリッドビルドを追加。
Step 7. カーネルアップデート時の注意を修正。
2008/04/05
最後尾、Top Pageへのリンク修正。
Step 7. rootnoverifyのパラメータについての注意を追加。
2008/03/14
全体:文書、関連リンク修正。
Step 1. 参考リンクにBeOS and Modern Hardwareを追加。
Step 3. Linux<>Haikuのデータ交換用にbfs_shellの記述を追加。
Step 5. コンパイラの撰択修正。
Step 6. 2回目以降のビルドについて補足。ビルドでsudo無しのjamを入れるようにした。
Step 7. hiddenmenuをコメントアウトに修正。Unbutuでカーネルアップデート時の注意を追加。