VirtualBox上のDebian GNU/Linux xfceでUSBオーディオインターフェースを使う方法

VirtualBox上のDebian GNU/Linux xfceでUSBオーディオインターフェースを使う方法

先日、steinberg UR22mkIIと、Roland Rubix22をdebian GNU/Linuxで検証する際、VirtualBox上では音が出なかった(正常にオーディオデバイスとして認識はされているが・・)という事を記しましたが、実機では簡単に動作するものがVirtualBoxではダメという結果に納得が行かないので深堀り調査してみる事にしました。

調べた結果原因がわかりました。Windows 10上のVirtualBox 6.1上で動かしたdebian GNU/Linuxで、steinberg UR22mkIIとRoland Rubix22がきちんと動作する方法が判明しました。

私が疑念を持ったのは、VirtualBoxのUSB認識に原因があるのでは無いか?というところでした。そしてそのモヤモヤが的中し原因はUSBポートの問題だったと判明した訳です。

調査方法

debianでUSB認識を確認(lsusb)

実機上のdebianとVirtualBox上のdebianとで【lsusb -t】コマンドを使って認識状態を確認してみました。大きな違いに気づきました。

きちんと動作しない環境での認識状態

$ lsusb
Bus 001 Device 003: ID 0499:170f Yamaha Corp.
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

$ lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/12p, 12M
|__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 0, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 2: Dev 3, If 3, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 2: Dev 3, If 1, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 2: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 12M

UR22mkIIとRubix22から音が出ないVirtualBox転送速度は12M(USB1.1)と遅い様です。

きちんと動作する環境での認識状態

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root Hub
Bus 001 Device 003: ID 0499:170f Yamaha Corp.
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablete
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 480M
|__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 0, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 3, If 3, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 3, If 1, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 480M

音が出る実機では480M(USB2.0)で接続されていることがわかります。

対処方法(USBポートの強化)

「Oracle VM VirtualBox Extension Pack」をダウンロードしてきます。

VirtualBoxのUSBポートを機能拡張する(USB1.1/2.0/3.0対応させる)

Windows環境においては、ダウンロードした「Oracle_VM_VirtualBox_Extension_Pack-6.1.22.vbox-extpack」というファイル名における拡張子が関連付けされていないので、インストールを実行するにはVirtualBoxの実行ファイルにこのファイルをドラッグ&ドロップすることにより、VirtualBox Manager経由でインストールすることが出来ました。プラグインの様なものなのでしょう。

これでVirtualBoxのUSBポートが機能拡張され下図の様に選択肢が増えました。

デフォルトのVirtualBoxの設定画面において、USBポートはUSB 1.1(OHCI)コントローラーしか実装されていません。VirtualBoxエクステンションを追加インストールする事で、USB 1.1, 2.0, 3.0を選択できるようになります。

検証結果

USB1.1
もちろん今までの失敗の通り無音のままでした。

USB2.0
音が出る様になりましたが、ガサガサした割れた様な音で再生している音楽なのかノイズなのか判別に苦労する様なボロボロの音がオーディオインターフェース経由で鳴る様になりました。USB2.0でキレイに音が出ないのはなんとも納得行かない結果です。

USB3.0
キレイな音がなりました。ヘッドホンで聴いてもノイズは皆無という感じでクリアです。成功ですね。VirtualBox上のdebian GNU/Linuxでもsteinberg UR22mkII、Roland Rubix22が動作する事を確認出来ました。

最後に

最後に情報を整理すると、VirtualBox上のdebian GNU/Linux Buster xfce版で「USBクラス・コンプライアント」対応機器であるオーディオインターフェースを動作させるには、VirtualBoxのUSBポートを3.0に設定してやる必要があったという事になります。USB2.0ではなぜか上手く動作しませんが、上位互換のある3.0にしておけば480Mの転送速度でUSB2.0規格として接続される様です。

比較的安価なUSBオーディオインターフェースとして「Behringer(ベリンガー)」なんかもありますし、PC内蔵のサウンド機能よりも品質の良い音を再生するだけなら「USB-DAC」を手に入れても良いかも知れません。Linuxで認識できるという保証は出来ないので事前リサーチは必須ですが・・

オーディオインターフェース(USB-DAC)で蘇る旧型PC

外付けのUSBデバイスを一つ手に入れることでPCの活用方法が一気に広がります。退役して使われてない古いPCに軽めのLinux(個人的にはdebianをオススメしたい)をインストールし、ハイレゾ・オーディオ再生環境にするなんてのも良いかも知れません。

しかし、今回の事でオーディオインターフェースを接続するUSBポートの規格に制限される恐れアリということがわかったので、あまり古すぎるPCでは正しく動作しない可能性があります。

多くのLinuxディストリビューションに標準で入っているオーディオプレーヤー「Audacious」の出力プラグインをALSA出力に、ビット深度を32に設定する程度でもイージーリスニングには十分過ぎる思います。PCで再生しても手軽にノイズを感じられないキレイな音が再生出来ます。

ALSA出力を選択後「設定」をクリックしてALSAでダイレクトにオーディオインターフェースに出力すると、アプリは音質に影響を与える部分をパスするので「Audacious」のボリュームは効かなくなります。オーディオインターフェースのボリュームかアンプのボリュームで調整します。オーディオインターフェースに接続する再生環境にもよりますが、高品位なヘッドホン等で聴くと非常にクリアな音が出てくるので旧型のPCで再生しているとは思えない位です。

オーディオインターフェースを追加すると快適に音楽を聴ける環境が出来たり、録音や配信環境が整うので便利です。1万円台でこの品質のデバイスが手に入るなんて良い時代になったなぁと思います。

また、コロナ禍のステイホームで「歌ってみた」が流行り、オーディオインターフェースが品切れ状態になっていた時期もありましたが、そろそろそういう人たちも飽きてオーディオインターフェースを手放すケースも増えそうです。ヤフオクやハードオフ等で安価に中古品を手に入れてくるのも一案です。

ローランド USBオーディオインターフェイスRoland RUBIX-22

ローランド USBオーディオインターフェイスRoland RUBIX-22

15,200円(01/19 15:36時点)
Amazonの情報を掲載しています
%d人のブロガーが「いいね」をつけました。