Linux系のOSで音声出力させたいことがあったのですが、
Raspberry Piやjetsonだとスピーカー接続させるのが面倒だな。。
と思い、VirtualBox上でUbuntuを動かし、そこで音声を出すことにしました。
しかし、そのままの設定では音声が出力されず困ったので
今後のための備忘録として手順をまとめることにしました!!
■Virtual Box上の設定
まずはVirtual Boxの設定に関してです。
こちらは、VirtualBoxマネージャー上で、
設定⇒オーディオを選択し、
・オーディオを有効:チェック
・ホストオーディオドライバー:Windows DirectSound
・オーディオコントローラー:ICH AC97
・拡張機能:オーディオ出力を有効化 にチェック
これで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です。