« MinGW を使った Vim のビルドに挑戦 | トップページ | virtualbox-ose-additions-3.2.12_1 にアップデート »

2010年12月31日 (金)

FreeBSD 8.1-RELEASE on Oracle VM VirtualBox 4.0

自宅では PC で Windows しか使ってませんでしたが、Unix 系の勘を取り戻そうと思い、 FreeBSD をインストールしてみました。

# 取り戻すってのは嘘か。

仮想 PC と言えば Windows Virtual PC が慣れてて良かったんですが、ゲスト OS として公式にサポートされてないからか、 FreeBSD のインストールは一筋縄でいかず、 VMware Player 3.1.3 に変更。

VMware Player でうまくいったことはいったんですが、Virtual PC みたいに復元ディスクや差分ディスクを使えないのは不便だなと思って、今度はバージョンアップしたばかりで評判の良さそうな Oracle VM VirtualBox 4.0 に変更。

Guest_OSes - VirtualBox を見ると、 VirtualBox はゲスト OS としての FreeBSD が完全じゃなかったりするんですが、Guest Addition については packeges や ports からインストールすることが出来ます。

手順は VirtualBox - FreeBSD Wiki Guest Additions for FreeBSD guests にある通り。

説明で VirtualBox 3.1 の頃のままになっており、FreeBSD 8.1-RELEASE の package も 3.2.6 だったりします。2010年12月30日時点で ports/emulators/virtualbox-ose-additions/ から入手できるのは 3.2.12 です。

自分は ports からインストールしましたが、依存パッケージも含めてコンパイルするのに3時間ぐらい掛かりました。

FreeBSD 8.1-RELEASE は Xorg 7.5 の package が付いているので、 X11 の設定VirtualBox - FreeBSD Wiki の説明に従って、/etc/rc.conf に以下の行を (なければ) 追加します。

vboxguest_enable="YES"
hald_enable="YES"
dbus_enable="YES"

また以下の行がもしあれば 削除してください。VMware もそうですが、VirtualBox でもマウスの中央ボタンは特に設定することなく左右ボタンの同時押しでエミュレートしてくれます。

moused_flags="-3"

上記の通り設定すれば、 X11 の設定VirtualBox - FreeBSD Wiki の説明にある xorg.conf の編集は一切不要です。

後は HAL 用の VisualBox マウスドライバ (中身は XML) をコピーします。

cp -p /usr/local/share/hal/fdi/policy/10osvendor/90-vboxguest.fdi /usr/local/etc/hal/fdi/policy/90-vboxguest.fdi

ここまで root での作業です。

この後 su から exit したら、 startx を実行し、Xorg を起動します。

そして、起動した Xorg の xterm で su を実行し、

VBoxClient --clipboard

を実行すると、ホスト OS とゲスト OS でクリップボードを共有できるようになります。

VBoxClient にはほかにも機能があります。

VBoxClient --help

でほかの機能も確認できます。

私は VBoxClient を root で実行しなければならないことに気付かず、長いこと悪戦苦闘してました…

因みにキーボードは英語 101 配列のままです。日本語 106 にしたい場合は、x11-input.fdi を作成し、/usr/local/etc/hal/fdi/policy ディレクトリに保存してください。

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
      <merge key="input.x11_options.XkbModel" type="string">jp106</merge>
      <merge key="input.x11_options.XkbLayout" type="string">jp</merge>
    </match>
  </device>
</deviceinfo>

もうクリップボードも共有できるようになってるからコピーアンドペースト出来ますね。

« MinGW を使った Vim のビルドに挑戦 | トップページ | virtualbox-ose-additions-3.2.12_1 にアップデート »

パソコン・インターネット」カテゴリの記事

コメント

Oracle VM VirtualBox 4.0 on FreeBSD 8.1-RELEASEってタイトルじゃFreeBSD8.0RでVBox4.0を動かしたのかと勘違いされますよ。

しまった! その通りですね。

タイトル変えました。

役に立つ情報をありがとうございます。
小生もDELL XPS Laptop L501X上で、仮想環境を
構築して見ました。
ホストOSは、Windows 7 Home Premiumで
ゲストOSは、FreeBSD/i386 8.1-RELEASEです。
Windows版のOracle VM VirtualBox 4.0をまずインストール
しました。
FreeBSDのCLIのコンソールを立ち上げるまでは、
なんとかなりました。
Xで難儀しております。
最初に、
# Xorg -config /home/foo/xorg.conf.new.vbox -retro
で苦労しました。結論から言えば、USBマウスをVirtualBoxの設定でフィルタを作成して認識させなければ、マウスカーソルが動きませんでした。
xdm、slim、kdm、gdmでは、マウスの統合がちゃんとできました。ここでは、USBマウスのフィルタを利用不能にします。
ここから先がうまく行きません。
gnome 2でも、kde 4でも、マウスは、右クリックは利きます
が、左クリックが利きません。左クリックが利かせる方法
がありましたら、ご教示下さいませ。

空條 丞太郎 さん:

私はホスト OS で USB マウスを使ってないから分からないのですが、
記事に書いたように HAL を使った方法では試してないでしょうか。

HAL を使う場合、xorg -config も必要なくて、マウスドライバを
/usr/local/share/hal/fdi/policy/10osvendor/90-vboxguest.fdi
に用意すれば X でマウスが使えるようになりました。

X のデスクトップ環境はまだ使ってないので分かりません。すみません。
startx で X サーバーを起動した場合、マウスは使えますか?

わ さん

twitterを拝見しました。
深夜まで取り組んで頂くことになってしまって
恐縮です。

その後の進展のご報告です。


HAL は、使っております。

90-vboxguest.fdi は、正しくコピー致しました。
root@bar# startx
で、~/.xinitrc がない状態で立ち上げました。ウインドウ=
マネージャーは、twmでした。
マウスの左クリックが利かない状態は変わりませんでした。

手詰まりだと思いました。

/var/log/Xorg.0.log
を見ると、vboxmouseのドライバがロードされた後で、
PS/2マウスが/dev/sysmouseとして認識されていました。
/etc/rc.conf にて
#moused_enable="YES"
#moused_flags="-3"
#moused_port="/dev/psm0"
#moused_type="auto"
とmoused関係の項目をコメント=アウトしました。
/bin/sh /etc/rc.d/moused stop
としても状況は変わりませんでした。
ところが、mousedが立ち上がらないようにして、
リブートした後で試して見ると、twmでもgnome 2でも
kde 4でも、マウスの左クリックが利くではありませんか!

Xorg.0.logを見ると、PS/2マウスが
/dev/psm0
として認識されております。

そう言えば、以前、
FreeBSD-users-jp
のメーリング=リストで、
Xorgで、HAL経由でキーボードとマウスを認識させる
際は、mousedは止めた方がいい場合があるとの
記述を目にしたような気が致します。


お騒がせ致しました。
問題は解決致しました。

誠実な対応に感謝いたします。

上記で上手くいったと思ったのでした。
ところが、VMが異常終了して、
再び起動し直してみると、
また、マウスの左クリックが利かなくなりました。
確率論的な問題なのでしょうか。

実は、あれから自分のところでも再起動すると X でちょくちょくマウスカーソルが動かなかったりしておりまして途方に暮れていたところです。

で、今はこの記事を参考に procfs をマウントするようにして様子を見ています。

FreeBSD Daily Topics:2009年4月15日 HAL/DBusを動作させてユーザからシャットダウンやUSBメモリマウントを実現する方法(Gnome / KDE両対応)|gihyo.jp … 技術評論社
http://gihyo.jp/admin/clip/01/fdt/200904/15

具体的には /etc/fstab に以下の行を追加しています。

proc /proc procfs rw 0 0


今のところマウスカーソルが動かなくなるといったことは起きていません。
今後も大丈夫かどうかは分かりませんが、もしまだ試していないようでしたら同様に試してみてはいかがでしょうか。

それから、空條さんに頂いたコメントを見て、自分も Xorg.0.logを見てみました。
マウス関係らしきところは以下のように出ていました。

(II) config/hal: Adding input device PS/2 Mouse
(II) LoadModule: "mouse"
(II) Loading /usr/local/lib/xorg/modules/input/mouse_drv.so
(II) Module mouse: vendor="X.Org Foundation"
compiled for 1.7.5, module version = 1.5.0
Module class: X.Org XInput Driver
ABI class: X.Org XInput driver, version 7.0
(**) PS/2 Mouse: Device: "/dev/psm0"
(==) PS/2 Mouse: Protocol: "Auto"
(**) PS/2 Mouse: always reports core events
(**) Option "Device" "/dev/psm0"
(==) PS/2 Mouse: Emulate3Buttons, Emulate3Timeout: 50
(**) PS/2 Mouse: ZAxisMapping: buttons 4 and 5
(**) PS/2 Mouse: Buttons: 9
(**) PS/2 Mouse: Sensitivity: 1
(II) XINPUT: Adding extended input device "PS/2 Mouse" (type: MOUSE)
(**) PS/2 Mouse: (accel) keeping acceleration scheme 1
(**) PS/2 Mouse: (accel) acceleration profile 0
(II) PS/2 Mouse: SetupAuto: hw.iftype is 3, hw.model is 10
(II) PS/2 Mouse: SetupAuto: protocol is ExplorerPS/2
(II) PS/2 Mouse: ps2EnableDataReporting: succeeded

そういえばマウスカーソルが動かなかったときは "PS/2 Mouse" ではなく
IntelliMouse として認識されてたような気もします。
もうログが残ってないので確かめていません。うろ覚えです。すみません。

私も手探りでやっていていまいち自信がありませんけれど、参考になれば幸いです。

わ さん

お世話になっております。

procfsは、使用可能にしております。

foo@bar~% mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local, multilabel)
/dev/ad0s1d on /home (ufs, NFS exported, local, soft-updates)
/dev/ad0s1h on /opt (ufs, local, soft-updates)
/dev/ad0s1e on /tmp (ufs, local, soft-updates)
/dev/ad0s1f on /usr (ufs, local, soft-updates)
/dev/ad0s1g on /var (ufs, local, soft-updates)
procfs on /proc (procfs, local)
linprocfs on /usr/compat/linux/proc (linprocfs, local)
linsysfs on /usr/compat/linux/sys (linsysfs, local)
foo@bar~%

実は、設定で大きなミスを犯していました。


portsの

virtualbox-ose-additions-3.2.12 VirtualBox additions for FreeBSD guests

の存在を知る前にGuest Additionsのことを生半可に学び、

VirtualBOXのメニューバーの
デバイス -- Guest Additionsのインストール
から、Guest Addtionsのファイル群のisoイメージを
光学ドライブにマウントしました。
# mount /cdrom
して、
# cd /cdrom
# ls -FailG
# /bin/sh VBoxLinuxAdditions.run
としたのがいけなかったのでした。


これを実行すると、
ゲストOSのFreeBSD/i386上に
LinuxバイナリとFreeBSDバイナリの2通りの
Guest Additonsが存在することになり、
様々な問題を引き起こすのでした。

問題その1
ゲストOSでマウスの左クリックが利かないことが多い。

これは、Linux版のドライバがロードされると、
ゲストOSのFreeBSDのマウスドライバがうまくロードされない
と言うことでした。確率論的にうまく左クリックが利くこと
もあったのは、たまたFreeBSD版のドライバがロードされる
こともあったからなのでしょう。


問題その2
ゲストOSのFreeBSDの端末エミュレータで

# VBoxClient --clipboard

としても、ホストOSとゲストOSとで
クリップボードが共有できない。


foo@bar~% where VBoxClient
/usr/bin/VBoxClient
/usr/local/sbin/VBoxClient
foo@bar~%


FreeBSDのports/Packagesで追加したアプリケーションでは、
/usr/localより上のディレクトリ階層にはファイルを出さない
と言う思想があるので、
/usr/local/sbin/VBoxClient <------- FreeBSDバイナリ
/usr/bin/VBoxClinet <------- Linuxバイナリ

と言うことになります。

LinuxバージョンのGuest Addditionsをアンインストール
するには、

# cd /opt/VBoxGuestAdditions-4.0.0
# /bin/sh uninstall.sh

として、ゲストOSもホストOSもリブートすれば
良いようです。

こうした後は、

クリップボードが共有できるようになります。

/etc/rc.confを再編集して、FreeBSDのブート時に
moused を起動しても、マウスの左クリックに問題
が生じないところを見ると、
問題1も問題2も解決したようです。


今度という今度は、問題解決のようです。


いろいろご心配おかけ致しました。


追記


Linux版のGuest Additions
をアンストールした後では、
# Xorg -config /etc/X11/xorg.conf -retro

も、USBマウスをフィルタを使って直接、認識
させなくても、うまく表示できます。
マウスカーソルがちゃんと動きます。
この問題も、同じ原因でした。


訂正

> もあったのは、たまたFreeBSD版のドライバがロードされる

もあったのは、たまたまFreeBSD版のドライバがロードされる
***
> をアンストールした後では、

をアンインストールした後では、

空條 丞太郎さん。

解決されたようで良かったですね。
殆どお役に立てなかったような気もしますが。

自分も procfs をマウントしてからは安定しているような気がします。
空條さんのコメントは私にとっても色々参考になりました。

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: FreeBSD 8.1-RELEASE on Oracle VM VirtualBox 4.0:

« MinGW を使った Vim のビルドに挑戦 | トップページ | virtualbox-ose-additions-3.2.12_1 にアップデート »

Social connection

  • Check

最近のトラックバック

2022年12月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

これも見とるよ

無料ブログはココログ