開発環境
印刷用ページへ

VirtualBox UbuntuへのホストUSBデバイスの接続

VirtualBox上で稼働するUbuntuに、ホストのUSBデバイスを認識させる方法について解説します。

VirtualBoxへのUSBデバイスの接続

ホスト(VirtualBoxを起動するマシン)に接続されたUSBデバイスをVirtualBoxの仮想環境上で利用するためには、接続作業が必要になります。

VirtualBox最下段のインジケータ、左から3番目にUSBデバイスのアイコンが位置していますが、クリックするとホストに接続されているUSBデバイスの一覧が表示されます(MacBook ProにFTDI社のUM232Hを接続した状態での実行例)。

目的のデバイスをマウスで選択しクリックすると、

UM232HがVirtualBoxに接続され、チェックマークが入ります。

Ubuntuでの認識

Ubuntuには、デフォルトでFTDIシリアルポートドライバがインストールされているため、UM232Hが接続されると、仮想シリアルポートへアクセスするためのデバイスファイルが出現します。

oversea@Ubuntu64:~$ ls -l /dev/*USB*
crw-rw---- 1 root dialout 188, 0 12月 21 11:11 /dev/ttyUSB0

/dev/ttyUSB0はキャラクタ型デバイスファイルであり、グループオーナーはdialout(発信)となっています。

Ubuntuでは、デバイスファイル以外に/dev/serialディレクトリも新たに登録されます。

$ tree /dev/serial
/dev/serial
├── by-id
│   └── usb-FTDI_UM232H_FTUG3YAF-if00-port0 -> ../../ttyUSB0
└── by-path
    └── pci-0000:00:06.0-usb-0:2:1.0-port0 -> ../../ttyUSB0

ホスト環境からの切断

UM232HがUbuntu上で認識されると同時に、ホスト環境では切断されます。

MacBookPro:~ $ ls /dev/*serial*
ls: /dev/*serial*: No such file or directory
MacBookPro:~ $ kextstat |grep FTDI
MacBookPro:~ $

/devディレクトリのデバイスファイルエントリは消失し、FTDIシリアルポート対応拡張モジュールもアンロードされています。この時点で、ホスト上のD2XXライブラリを使用したプログラムはFTDIデバイスを認識できなくなりますので、注意してください。

VirtualBoxステータスラインのUSBアイコン上で切断を行うと、再びホスト環境に拡張モジュールがロードされ、デバイスファイルも復帰します(Ubuntu上のデバイスファイルは消失)。

posted by Wataru Nishida.