彷徨えるフジワラ

年がら年中さまよってます

VirtualBox@Solaris での光学ドライブパススルー

VirtualBox 最新版の 4.0.0 に更新しても、光学ドライブのパススルー(passthrough)機能の有効化が出来なかったことに納得が行かなくて、暫しネットの海を彷徨った末にやっと情報を入手。

Solaris の場合、パススルーは root 権限で実施して頂きたく

あぁ〜、やっぱり root 権限が必要なのね > パススルー

どうりで、仮想マシン起動時に「光学デバイスへの書き出し権限がねーよ」とゴネる訳だ。

権限設定をゴニョゴニョいじって光学デバイスへの書き出し権限を確保すれば、仮想マシンの起動自体は出来るのだけど、オーディオCDの挿入は一切認識されなかったのは、制御コマンド発行における権限不足等が原因だったのね。

っつーか、マニュアルでのパススルーに関する記述の変遷で確認すると:

  • 3.1.x: 「サポート対象は、データディスクのみ
  • 3.2.x: 「サポート対象は、データディスクのみ」+「Solaris ホストでは root 権限実行が必要
  • 4.0.x: 「音楽ディスクもサポート」+「Solaris ホストでは root 権限実行が必要

という具合なので、年末の試行錯誤@3.2.x の際にちゃんと見とけば良かったのか > マニュアル .... orz

4.0.0 リリース前に検索した際に幾つか見つかった「パススルーでゲストOSから音楽 CD が再生できた!」情報は、「サポート対象外だけどたまたま動いた」のか、あるいは「先行リリース版を入手して動かしていた」といったところか?
とりあえず root 権限実行での効果を確かめてみるべく "pfexec VirtualBox" で起動しようと試みるも、表示される管理画面の仮想マシン一覧が空と言う状況。

どうやら VirtualBox の管理情報は、~/.VirtualBox 配下で固定されているらしいので、既存の仮想マシンを root 権限で動かすためにはなにがしかの対応が必要そう。

んが、面倒なので、/root/.VirtualBox から ~/.VirtualBoxシンボリックリンクを作成(笑)。個人使用のデスクトップマシンなのでこれで良いのだ。

root 権限で仮想マシンを稼働中に、うっかりユーザ権限で VirtualBox 管理画面を起動すると、対象仮想マシンに対して「アクセス出来ねぇ!」と状態表示が抑止されるけど、"pfexec VirtualBox" な起動用ランチャーを作成すれば、普段使いには問題無かろう。

で、root 権限で起動した仮想マシンに、ホストの光学ドライブをパススルーで認識させると .... やった!音楽 CD からの取り込みが出来る!

取り込み性能も、ALAC + エラー補正有りで 17 〜 25 倍程度の速度が出てるよ!@iTunes

まぁ、仮想マシン上の性能数値があてにならない事は承知しているけど、体感的にも USB 経由で取り込んでいた時のノロマっぷりに比べれば夢のような早さだ。

ちなみに、ゲスト側で「メディアの取り出し」を実施しても、ホスト側のボリューム管理(多分 GNOMEVFS デーモン)がドライブの管理権を握っているらしく、ホスト側で「メディアの取り出し」を実施してやらないと、イジェクト出来ない模様。

それから、ゲスト起動時点で光学ドライブにメディアが入っていない場合、最初のディスク挿入の際には、ホストドライブの使用を改めて指示(=ゲストのウィンドウ表示下端にある「光学メディア」アイコンからメニューを出してチェックを入れる)してやる必要があるかも。一回、認識させれば、以後はメディアの出し入れをしても大丈夫なんだけどねぇ。

※ 2011/01/15 追記 〜 ここから

iTunes の問題なのか、Windows の問題なのか、はたまた VirtualBox のパススルー機能の問題なのか不明だが、光学メディアの出し入れの際には:

  1. 光学メディアを取り出す(or 入れる)
  2. Windows のタスクバー(あるいはエクスプローラ)をクリック
  3. iTunes をクリック

とやらないと、メディアの出し入れが認識されない。

Windows 内部でのコンテキスト切り替えイベント景気で、デバイスアクセス要求が飛んでいるような気がするのだが、誰か理由を教えてプリーズ > 詳しい人

うっかり上記の手順を踏まずにメディアの入れ替えをすると、入れ替えた事が認識されない、などという状態に .... orz

※ 2011/01/15 追記 〜 ここまで

さらにさらに、別口からの"root 権限で実施せよ"情報には、「pfexec だと上手く行かない」ようなニュアンスが漂っているのだけど、今回の環境では pfexec を使用しても特に問題なく実行できた。

ひょっとすると、role 設定の兼ね合いとか、111b → 134b 更新による影響(151a の Solaris 11 は、sudo 利用に舵を切っているとか何とか)によるもので、素の pfexec 設定だとダメな可能性も。あぁ、RBAC(Role Base Access Control) もちゃんと勉強しないとなぁ。