バナー

UbuntuのVmware Server 2.0でUSBを使う

環境

しばらくFedora Coreを使っていてFlash Movieの再生がいまいちよろしくないので、Ubuntuに戻ろうかと思ってインストールしようとしたのですがグラフィックスボードをうまく認識しなくてインストールができませんでした。どうすっかと思っていたらUbuntu9.04という新しいバージョンが公開されていたので早速ダウンロードしてCDを作成したところ簡単にインストールすることができました。

.NETアプリケーションを開発するのに無償のSharpDevelopを使っていて、UbuntuとWindowsマシンの2台体制は面倒なのでUbuntuにVmwareServer2.0をいれてWindowを仮想マシンとして立ち上げる事にしました。
まあ、VmwareServerとWindowsはあっさりと完了してSharpDevelopも無事起動。.NET開発環境が完成しました。CPU&メモリの関係かきびきび動くというほどではありませんが許容範囲で必要な時だけ立ち上げて利用することにしました。 ここから本題ですが、仮想環境でプリンタを使うのでUSBにプリンタを接続してみました。仮想マシンのコンソールにプリンタアイコンが表示されたのでクリックしてConnectを選択すると仮想マシン側でプリンタが使用できるようになるはずですが、実際にやってみるとエラーが表示されてプリンタを使用することができません。調べてみたら、Vmwareでは/proc/bus/usbというところにUSBデバイス関連のファイルがあるのを前提に動作しているのですがUbuntuではUSBデバイスをつなげてもファイルができあがらないのでVmwareからUSBデバイスが使用できないということでした。どうすりゃいいのかと言うと次のコマンドを実行すれば良いそうです。

mount -t usbfs none /proc/bus/usb/
実際にやってみたら/proc/bus/usb/になにやらファイルが出来上がって(マウントされて)いていけそうな感じです。かなり期待してConnectしてみたら。。。。結果はNGでした。もうちょっと調べたら、/proc/bus/usb以下にあるファイルの権限の関係でアクセスできないという話を発見したので誰でも読み書きできるように次のコマンドを実行。
chmod -R 777 /proc/bus/usb/*
これで無事仮想マシンからプリンタに印刷することができました。仮想マシンでデバイスを有効にするとホストマシンではそのデバイスは使用できなくなりますので切り替えて使う必要があります。試しに追加で住基カードリーダをつないでみたら、/proc/bus/usb/にファイルが追加されるのですが権限が駄目なようです。USBデバイスを追加した場合は、再度権限を設定しなおすために
chmod -R 777 /proc/bus/usb/*
を実行する必要がありました。ホストマシン起動時からデバイスを接続するということであればinit.dにファイルを作って
mount -t usbfs none /proc/bus/usb/
chmod -R 777 /proc/bus/usb/*
が実行されるようにしておけば良いはずです。