Elsaの技術日記(徒然なるままに)

主に自分で作ったアプリとかの報告・日記を記載

MENU

VirtualBox上のUbuntu20.04で音声を出力

Linux系のOSで音声出力させたいことがあったのですが、
Raspberry Piやjetsonだとスピーカー接続させるのが面倒だな。。
と思い、VirtualBox上でUbuntuを動かし、そこで音声を出すことにしました。

しかし、そのままの設定では音声が出力されず困ったので
今後のための備忘録として手順をまとめることにしました!!



■Virtual Box上の設定

まずはVirtual Boxの設定に関してです。
こちらは、VirtualBoxマネージャー上で、
設定⇒オーディオを選択し、
 ・オーディオを有効:チェック
 ・ホストオーディオドライバー:Windows DirectSound
 ・オーディオコントローラー:ICH AC97
 ・拡張機能:オーディオ出力を有効化 にチェック
f:id:Elsammit:20211023150555p:plain

これでVirtual Box上の設定は以上になります。

■Ubuntu20.04上の設定

通常であれば、Virtual Boxの設定だけで音声が出力されるはずなのですが、
Ubuntu側の問題で音声が出力できませんでした。。。

どうやらUbuntu側の内部サウンドカードが検出されないバグがあるようで、対応が必要なようです。
そこで、Ubuntu側で必要だった設定についてまとめていきます。

変更するファイルは、

/etc/modprobe.d/alsa-base.conf

と、

/etc/modprobe.d/blacklist.conf

です。
alsa-base.confの末尾に、

options snd-hda-intel dmic_detect=0
options snd-hda-intel model=generic

を追加し、blacklist.confの末尾に、

blacklist snd_soc_skl

を追加すればOKです。

コマンドで、

echo "options snd-hda-intel model=generic" | sudo tee -a /etc/modprobe.d/alsa-base.conf
echo "options snd-hda-intel dmic_detect=0" | sudo tee -a /etc/modprobe.d/alsa-base.conf
echo "blacklist snd_soc_skl" | sudo tee -a /etc/modprobe.d/blacklist.conf

と入力すれば各ファイルの末尾に追記されますので、こちらの方が楽です。

追記が完了したら、再起動を行えば完了です。

■音声出力されるか確認

下記コマンドを実行して、ザー(サー)と音声が出力されればOKです。

speaker-test -c1 -l1

もしくは、wavファイルをあらかじめ用意しておき、

aplay wavファイル

で音声が出力すればOKです。

■最後に

今回はVirtualBox上のUbuntu仮想環境で音声出力させるための方法をまとめました。
こちらの環境で作りたいアプリを作っていきたいと思います。
作成出来たらまた報告します。