FreeBSD7.0 に Compiz Fusion を導入する

前回の記事で、ホストをWindowsXPにしてVMwareServer上でFreeBSDを動かした。しかし、VMware用のグラフィックドライバvmwareでは、3Dデスクトップとして有名なCompiz Fusionが動かない。グラフィックスドライバのエミュレーションは非常に難しく、企業レベルでもまだ開発中の段階だからだ。せっかくportsにCompiz Fusionがあるのに、勿体ない。そこで、うまいことパーティションを切り直し、FreeBSDの通常インストールを行った。以下に、その手順を記す。

前準備

カーネルをインストールするために複数CDを焼くのは非常に面倒である。よって、CDはインストーラのBootを行うためだけに使用し、ftpサーバーから持ってきてインストールするアプローチを取る。

  1. FreeBSDの公式HPからFreeBSD7.0のisoイメージを1枚目のみをダウンロードする。
  2. Bootable CD にするため、トラックデータとして焼く。

以上で前準備は終了。次節より、インストールを行っていく。個人的に詰まったところのみを詳細にメモしたので、詳細は別サイト参照のこと。

インストール

  1. FreeBSD操作用にスライス(パーティション)を作成。
  2. BootMgrをインストールするか聞かれる。今回はWindowsXPデュアルブートしたいので、BootMgrを選択。
  3. 最初の手順で作成したスライスをどのように振り分けるか決定する。私は素人なのでaキーを押してデフォルト割り当てを行った。
  4. どういった構成でインストールを行うか聞かれる。メインマシンとして使用する予定なので、Kernel Developer + X Window System にする。Kernel Developerにする理由は、ソースファイルを全てインストールできるからだ。
  5. 最初に述べたように、今回はftpからパッケージをとってきてインストールを行う。ネットワークの設定を行う。私の環境では、DHCPサーバーが建っているので、Do you want to use DHCP? と聞かれた際にYESと答える。IPがDHCPにより割り当てられ、設定が終了する。なお、いらない機能はNoと答えた。
  6. どのメディアからインストールを行うか聞かれる。ftpにする。
  7. インストールを行うか、最終確認される。当然YES。
  8. インストールが開始される。
  9. インストールが終了する。
  10. 追加でアプリケーションをインストールするか聞かれる。後でportsからインストールしても良いが、必ず使うものはここでインストールしてしまうのが吉。パッケージで配布されているので、トラブルが少ない。ここでは、gnome2とportupgrade、scim-anthyを選択した。
  11. ユーザを作ったり、rootのパスワード設定したり、ntpの設定したりする。
  12. インストールが終了する。再起動。

Xorg起動のための準備

  1. ログインして、とりあえずXorgが起動するか確認する。そのためには、xinitと打てばよい。
  2. 起動を確認したら、X起動時にXorg標準のウインドウマネージャーtwmを起動するように設定する。実は、xinitを実行時、実行ユーザのホームディレクトリにある.xinitircを見に行く。つまり、~/.xinitrcを編集すればtwmを起動することができる。
echo "xclock &" >> ~/.xinitrc 
echo "xterm &"  >> ~/.xinitrc 
echo "twm"      >> ~/.xinitrc
  1. twmが起動するか確認する。
xinit
  1. さて、先ほどインストールしたgnome2を起動したい。そのためには、graphics driver のインストールが必要だ。私のマシンでは、nvidiaビデオカードを使っているので、以下のようにする。
 portinstall nvidia-driver
 portinstall nvidia-xconfig

/*-------- 以下書いている途中 --------*/

gnome用の設定

echo "exec gnome-session" > ~/.xinitrc 

起動確認

 xinit

ログインマネージャをgdmに

 vi /etc/rc.conf
 gdm_enable=YES
 reboot

compiz fusion のインストール

 portinstall compiz-fusion

compiz fusion を動作させるためのレジストリ設定

 gconf-editor &
 [apps] > [compiz] > [general] > [option]  = ,decoration, 
 [apps] > [compiz] > [decoration] > [option] = gtk-window-hogehoge

compiz fusion を動作させるための起動させるアプリを設定

 [システム] > [Compiz Configurarion Tools]

Linux Kernel 2.6 対応のアプリを使えるようにする

portinstall linux_base-fc6

 # linux_base-fc6 には system call fstatat64 が実装されておらず、クラッシュしてしまう。
 # gnome でセッション保存機能を使用していた場合は、[Ctrl]+[Shift]を押しながらログインすればいい。 
 # 対策として、 2008/04/08 に ports に追加された linux_base-f8 をインストールする。
 # 環境変数の設定が必要
 portinstall linux_base-f8
 #LinuxのアプリでFreeBSD上で使用しているフォントを認識させる
 portinstall linux_fontconfig

linux_base-f8でエミュレーションしたアプリがクラッシュする

まだ対応していない動作がある様子。その場合は、諦めてLinuxを使うことをお勧めする。