android-x86を導入したComputeStickから音声が出ない その1
Android-x86にて音声出ない問題
最近、私が所有するIntel®ComputeStick(STK1AW32SC)にAndroid-x86を導入した。(Lubuntuとのデュアルブート)
WiFi,bluetoothなどの動作には問題なく、HDMI経由で映像も正常に出力されたが、何故か音声が出ない。
PC側とモニター側の音量調整には問題がないため、HDMIの音声出力する過程で問題があると考えた。
下記は、本問題を解決する上で参考になったwebページです。ありがとうございます。
https://halfcoin.blog.fc2.com/blog-entry-117.html
http://www.katsuster.net/index.php?arg_act=cmd_show_diary&arg_date=20130913
https://hernaaan.wordpress.com/2018/02/08/how-to-fix-hdmi-audio-in-android-x86-if-it-doesnt-work-out-of-the-box/
主に、3番目のURLがもっとも参考となったので、同トラブルを抱えている方は参考にしてみてください。
実施した解決方法
1.Android-x86のターミナルにてrootアクセスを要求。
$ su
2.ALSAカードの一覧を取得する。
# cat /proc/asound/cards
ここで、HDMIのサウンドカードに該当する番号を記録。(ここでは 1)
3.ALSAカードの一覧にてHDMIのサウンドカードに該当する番号を指定してアクティブにする。
# alsa_amixer -c1 set 'IEC958',0 on
# alsa_amixer -c1 set 'IEC958',1 on
# alsa_amixer -c1 set 'IEC958',2 on
# alsa_amixer -c1 set 'IEC958',3 on
-c の後ろの数字は、HDMIのサウンドカードに該当する番号。(ここでは 1)
4.ALSAのデバイスファイル一覧を取得する。
# ls -l /dev/snd/
表示されたファイル名の中で、pcmから始まる名前に着目。(pcmC*D*p)
Cの後ろに入る数字は、サウンドカードの番号。
Dの後ろに入る数字は、デバイスの番号です。
ここでは、HDMIのサウンドカードに該当する番号は 1 なので、Cの 後ろの*に入る数字は 1 となります。
サウンドカードの番号が 1 場合、デバイスの番号は 0,1,2 と絞ることができます。(pcmC1D0p , pcmC1D1p , pcmC1D2p)
5.サウンドカード番号とデバイス番号を指定し、音声を出力。
実際に音声を出力してテストします。
あらかじめwavファイルを、任意のパスに用意してください。
# alsa_aplay -Dplughw:1,0 /storage/my_file/sample.wav
# alsa_aplay -Dplughw:1,1 /storage/my_file/sample.wav
# alsa_aplay -Dplughw:1,2 /storage/my_file/sample.wav
-Dplughw: の後ろの数字は、サウンドカードの番号。
コンマを挟んで、その後ろの数字は、デバイスの番号です。
先ほど絞ったデバイスの番号 0,1,2 を指定し、出力しています。
また、/storage/my_file/sample.wav は、wavファイルまでのパスを指定しており、任意で置き換えてください。
音声の聞こえたデバイス番号を記憶しておいてください。
私の場合はデバイス番号 2 でした。(pcmC1D2)
6.HDMIから音声出力ができるように設定。
# mv /dev/snd/pcmC1D0p /dev/snd/pcmC1D0p.original
# ln -sf /dev/snd/pcmC1D2p /dev/snd/pcmC1D0p
上記のコマンドにて
pcmC1D0pの部分は、サウンドカード番号(1)の中での最初のデバイス番号(0)を指定している。
pcmC1D2pの部分は、ステップ5番にて、音声の聞こえたサウンドカード番号(1)とデバイス番号(2)を指定している。
これらのサウンドカード番号とデバイス番号は、任意で置き換えてください。
これで、HDMI経由で音声が出力されるはず。
しかし、次回起動したときには、HDMI音声出力がされない元の状態に戻ってしまう。
次回
次回の記事では、本機を起動した際、自動的にHDMIから音声出力ができるように設定していきたいと思います。
なお、こちらの都合上、ブートスクリプト(init.sh)の編集による設定ができなかったため、アプリケーション「MacroDroid」を用いた方法を紹介します。



コメント
コメントを投稿