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)
1.jpg

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/

2.jpg

表示されたファイル名の中で、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」を用いた方法を紹介します。

コメント

このブログの人気の投稿

AndroidAutoでLINE通知を表示する。

Headunit Reloaded Emulator(HUR)の使い方。

android-x86を導入したComputeStickから音声が出ない その2