下記の参考記事にもあるように、Virtual Box 2.1からOpenGLへの対応が始まっています。個人的にはOpenGLよりDirectXに対応して欲しいところですが…それはさておき。
参考記事: OpenGLやIntel Core i7に対応した「Sun xVM VirtualBox」v2.1が公開
OpenGLへの対応といってもOpenGLのフル機能をサポートしているわけではありません。というのもOpenGLは過去何度も仕様が拡張(※)されており、様々なバージョンが存在するうえに、各GPUメーカーが独自拡張を施しているためです。
というわけでVirtualBoxはどの機能に対応しているのか、OpenGL Extensions Viewer を使って調べてみました。
ホストOS(Windows XP)でOpenGL Extensions Viewerを実行した結果
まず、ホストOS(Windows XP)でOpenGL Extensions Viewerを実行した結果です。ホストマシンではNVIDIA GeForce6600を使っています。
結果はOpenGL 2.1までフル対応です。Rendering Testを走らせてみると、きちんと2.1のテストまで完走します。
VirtualBox内のゲストOS(Windows 2000)でOpenGL Extensions Viewerを実行した結果
次に、VirtualBox内のゲストOS(Windows 2000)でOpenGL Extensions Viewerを実行した結果です。
結果はOpenGL 1.5までフル対応です。しかしRendering Testを走らせようとすると、OpenGL Extensions Viewerがエラーを吐いてしまい、テストができません。しかも不思議なことに、OpenGL Extensions Viewerを起動させるとVirtualBoxごと死んでしまう場合があります。よくわからんな…。OSがWindows 2000だからかなあ…?
VirtualBoxの名誉のために書いておくと、巷にあるOpenGLのアプリケーションは正常に実行できます。OpenGL Extensions Viewerが何か変わったことをしているだけかもしれません。
(※)OpenGLの公式サイトによると現時点での最新版はOpenGL 3.1 のようです。
大下さんちでシュークリームを作って食べました。
今回はカスタードクリームが若干粉っぽかったけど、シュー皮がうまくいってました。おいしかったです。
シュークリームというと難しそうなイメージがあったのですが、作り始めてからできあがるまで、2時間かからなかったです。材料もクッキーと大差ない(レシピによっては特殊な材料が入っているかも)ので、揃えるのも簡単です。
昼から作って3時のおやつに間に合う、お手軽おやつです。みなさんもいかが?
ある日、部屋のネットワークをシェア(ネットワークの契約や管理は私がやっています)している隣人から「インターネットに繋げない。」って言われました。うーん、何も変えてないぞ?
自分のデスクトップマシン(有線)で試すとインターネットに繋げました。プロバイダやVDSL回線は正常のようです。
隣人のPCは無線接続なので無線が原因?と考えて、手持ちの無線機器(VAIOとNintendo DS-i)で試してみました。結果VAIOは正常に通信できましたので、無線に問題はなさそうです。しかしDS-iはインターネットに接続できません。
VAIOとDSの差というと、VAIOは固定IP、DSはDHCPから動的割り当てに設定したくらいしか思い浮かびません。試しにDSに固定IPを振ってみると、DSからインターネットに接続できました。どうやらDHCPサーバがおかしくなっているようです。
しかしCTUのDHCPサーバ設定を見ても異常はないし、ログを見ても攻撃されている様子はないので、CTUが原因とは考えにくいです。他に起動しているのはデスクトップマシンくらいなものですから、デスクトップマシンが原因でしょう。おそらく。
デスクトップマシンを調べるとVirtualBoxが起動している時のみ、DHCPが192.168.56.xという変なアドレスを振ってくることがわかりました。仮想マシン内でLinuxを動かしていたのでそれが原因かと思いきや、仮想マシン内でWindows 2000を動かしても同じ症状が出ます。もしやVirtualBox自体が原因か?
調べるとVirtualBoxは独自のDHCPサーバを持っていることがわかりました(※1)。Host-only Adapterの先にあるネットワーク(つまりホスト - 仮想マシン間ネットワーク)からのアドレス要求に答えて、アドレスを割り当てるためです。
部屋のネットワークとVirtualBoxのホスト - 仮想マシン間ネットワーク
上図のように、CTUのDHCPサーバは192.168.1.1〜254のアドレスを割り当てます。またVirtualBoxのDHCPサーバはホスト - 仮想マシン間ネットワーク上の機器に、192.168.56.101〜254のプライベートアドレスを割り当てるように設定されています。
VirtualBoxのDHCPサーバが振るアドレスと、さきほど判明した変なアドレスが一致していますので、DSを困らせるDHCPサーバはVirtualBoxで間違いなさそうです。
(※1)VirtualBoxのDHCPサーバの設定は、
[ファイル] - [環境設定] - [ネットワークタブ] - [Host-only Adapterのリストから適切なものを選択] - [ドライバーマークのボタン] - [DHCPサーバータブ]
にあります。かなりわかりづらいです。
ホスト - 仮想マシン間ネットワーク用のDHCPサーバのはずなのに、部屋のネットワーク上にある機器にアドレスを振っているのはなぜでしょう?実は訳あって(※2)部屋のネットワークとホスト - 仮想マシン間ネットワークをブリッジしていたのです。
部屋のネットワークとVirtualBoxのホスト - 仮想マシン間ネットワーク、ブリッジ後
上図のように、部屋のネットワークと、ホスト - 仮想マシン間ネットワークをブリッジすると、VirtualBoxのDHCPサーバに部屋のネットワークからのアドレス要求が届いてしまいます。さらにVirtualBoxのDHCPサーバはCTUのDHCPサーバより早く応答していたため、部屋のネットワークからのアドレス要求に対してVirtualBoxのDHCPサーバの応答が優先されてしまうのです。
その結果、DSはVirtualBoxのDHCPサーバが割り振るアドレスを受け取り、ホスト - 仮想マシン間ネットワーク(青線)へ参加してしまいます。これは当然CTUのDHCPサーバが割り振るのアドレスとは異なりますので、DSは部屋のネットワーク(赤線)上のCTUと通信できず、インターネットへアクセスできないのです。
今回の教訓は、ネットワークをブリッジするときは、ブリッジする2つのネットワークに被害が出ないことを確認してからやりましょう、かな。
(※2)この時はBridge Adapterが何故か使えなかった(2009年4月29日の日記参照)ため、Host-only Adapterを一つ作って、デスクトップのネットワークインタフェースとWindowsのブリッジ機能でブリッジしていました。
幸いなことに今回のケースではVirtualBoxのDHCPサーバの応答速度が、CTUのそれに対して圧勝していたため、問題の発覚が早かったです。これがもし場合によってVirtualBoxのDHCPサーバが勝ったり負けたり、という状況だったら、さらに解析が困難でした。不幸中の幸い、でしょうか。
またVirtualBoxの話です。
VirtualBoxを2.2.0から2.2.2にバージョンアップした際に、何回やってもインストーラが失敗メッセージを出して終了してしまい、アップデートできません。症状を見るにRemoving Files... と出た後、何かが失敗してセットアップのRollbackが始まっているようです。
セットアップが削除したいファイルが使用中なのかなあ?と思って、Host-only Adapterを削除したり、Windowsの再起動直後にアップデートしたりしましたが、改善せず。何が悪いのやら?
もう2.2.0をアンインストールするしかないかなあと思いつつ、最後にダメもとでVirtualBox 2.2.0の修復セットアップを行った(私の環境ではWindowsの再起動が必要でした)後、2.2.2へのアップデートを行ったところ無事アップデートできました。
今までMicrosoft Officeくらいでしか修復セットアップを試したことがなくて、しかも大抵失敗するだけで何の役にも立たないイメージだったのですよ。今日、初めて修復セットアップが役立ったというか、きちんと動作したことに感動しました。
で、感動はさておき、古いセットアッププログラムが手に入らない場合は、素直に2.2.0をアンインストールしてから、2.2.2を新規にインストールすればうまくいくと思います。
家ではVirtualBoxを使って、デスクトップに仮想Linuxマシンを作っています。
VirtualBoxはバージョンアップの際に設定ファイルを勝手に引き継ぐので、バージョンアップの際に再設定などは必要ありません。今使っている設定ファイルも1.xの時代から使ってきたものです。
しかし最近はネットワーク周りの変更で良く引っかかります。
以前VirtualBoxを2.2.0にバージョンアップした際に、どういうわけか今まで使っていたBridged Adapter(※1)が使えなくなってしまって、仕方なくHost-only Adapter(※2)に変更しました。
で、最近2.2.2にバージョンアップしたら、またBridged Adapterが使えるようになっていました。何でだろう。使えるのか使えないのか、良くわからん…。
(※1)VirtualBoxがホストのネットワークインタフェースと仮想マシンのネットワークインタフェースをブリッジする方法。Windowsのブリッジ機能とは違います。
(※2)仮想マシンのネットワークインタフェースと通信するためのインタフェースを新たに作成する方法。Windowsのブリッジ機能で、ホストマシンのネットワークインタフェースとHost-only Adapterをブリッジすると、Bridged Adapterでやっていたこととほぼ同等のことができます。
< | 2009 | > | ||||
<< | < | 05 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | - | - | 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 | - | - | - | - | - | - |
合計:
本日: