OrangePiPC2升级Armbian后无法发声的解决方案
source link: https://www.lujun9972.win/blog/2018/09/27/orangepipc2%E5%8D%87%E7%BA%A7armbian%E5%90%8E%E6%97%A0%E6%B3%95%E5%8F%91%E5%A3%B0%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/index.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
OrangePiPC2升级Armbian后无法发声的解决方案
某一次在对OrangePiPC2进行系统升级后,提示内核已更新,需要进行重启。
然而在重启后发现播放音乐不再有声音了。
怀疑是不是音量被调成0了,因此运行
alsamixer
,发现提示This sound device does not have any controls.
注意到现在这张声卡是hdmi的,按下
F6
选择其他声卡,可以发现还有一张H3 Audio Codec
声卡而选择
H3 Audio Codec
声卡可以看到熟悉的音量控制界面- 大致可以推测出,由于我的音响是接到
H3 Audio Codec
上的,而alsa默认声卡变成了hdmi
从而导致了播放音乐没有声音 将ALSA默认声卡修改为
H3 Audio Codec
, 步骤为:查看声卡极其对应的编号
cat /proc/asound/cards echo 或者 aplay -l | awk -F \: '/,/{print $2}' | awk '{print $1}' | uniq
0 [allwinnerhdmi ]: allwinner_hdmi - allwinner,hdmi allwinner,hdmi 1 [Codec ]: H3_Audio_Codec - H3 Audio Codec H3 Audio Codec 或者 allwinnerhdmi Codec
可以看到我想要的默认声卡名为
Codec
,其编号为1,那么创建文件/etc/asound.conf
填入下面内容pcm.!default { type hw card 1 } ctl.!default { type hw card 1 }
其中的
1
就是声卡对应的编号- 再次播放音乐,就可以正常发声了。
另一种解决方法
其实还有另一种解决方法就是控制声卡module的载入顺序,让 H3 Audio Codec
声卡成为第一顺位的声卡就行了. 方法如下:
查看加载的声卡驱动
lsmod |grep snd
snd_soc_hdmi_codec 16384 1 snd_soc_simple_card 16384 0 snd_soc_simple_card_utils 16384 1 snd_soc_simple_card snd_soc_core 155648 6 sun4i_i2s,sun8i_codec_analog,snd_soc_hdmi_codec,sun4i_codec,snd_soc_simple_card_utils,snd_soc_simple_card snd_pcm_dmaengine 16384 1 snd_soc_core snd_pcm 106496 4 sun4i_i2s,snd_soc_hdmi_codec,snd_soc_core,snd_pcm_dmaengine snd_timer 32768 1 snd_pcm
你会发现查出来了好多module,但只有两个module是不被别人引用的:
snd_soc_hdmi_codec
和snd_soc_simple_card
.可以推测出
snd_soc_hdmi_codec
对应的是hdmi
声卡,snd_soc_simple_card
对应的是H3 Audio Codec
声卡创建
/etc/modprobe.d/alsa-base.conf
文件,填入下面内容options snd_soc_hdmi_codec index=-1 options snd_soc_simple_card index=-2
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK