J-YANG

一、基本信息

1.CPU详情:Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz
2.PCH详情:h310
3.系统信息:Linux buildroot 5.4.77 #4 SMP Sun Aug 29 19:39:59 PDT 2021 x86_64 GNU/Linux
 
二、背景
1.使用程序完成视频播放(也可以在文件系统构建中勾选vlc,使用vlc命令直接播放视频文件),VGA和HDMI视频播放画面正常,但是HDMI和耳机都没有声音。
 
三、调试过程
1.由于板子未接入存储设备,采用pxe启动
启动参数如下图所示
内核文件:bzImage
文件系统文件:rootfs.cpio.gz
 
2.检查声卡信息
 
3.检查声卡相关设备信息
缺少HDMI相关音频设备。
 
4.上一步中发现缺少HDMI相关音频设备,检查是否为驱动问题
根据驱动的打印信息可以看出,audio bind失败了。
查看内核源码,找到该错误信息打印的位置,发现驱动确实存在问题,尝试修改驱动源码等方式,经历了很多过程,这里不再赘述,但最终没能很好地解决该问题。
 
5.尝试另外一个方向
由于驱动中提到【i915】,因此联想到pxe启动参数【i915.modeset=0】。
由于该启动参数决定了后续内核中【i915】相关驱动的走向,因此尝试【i915.modeset】的另一个值【1】,这里不赘述这个参数值的具体含义和区别,有兴趣的可以自行百度一下。
采用【i915.modeset=1】pxe启动,如图所示。
启动后检查驱动打印信息
这样来看,没有报错,那就继续检查其它项目。
 
6.检查声卡信息
 
7.检查声卡相关设备信息
没有什么异常。
 
8.根据上一步中的设备信息,使用【aplay】命令(使用其它可以指定声卡及设备的命令也可以),验证具体声音输出设备是其中的哪一个
【aplay -D plughw:0,0 /media/sda1/8ch.1k2k.wav】命令的意思是,使用【card 0】【device 0】播放【/media/sda1/8ch.1k2k.wav】。
 
9.经过上一步中一轮验证后,发现所有设备都不发声,因此使用【alsamixer -c 0】命令检查音频配置
【alsamixer -c 0】的意思是查看【card 0】的音频配置。
【alsamixer -c 0】命令后发现都是【MM】的状态,【MM】代表静音,因此改变该状态,如果不知道每个配置怎样修改才正确的话,可以考虑使用【alsactl init】命令直接将alsa配置初始化。
使用【alsactl init】初始化后,【alsamixer -c 0】的配置如下图所示
 
10.音频配置修改后再次验证【步骤8】中内容,使用【aplay】命令(使用其它可以指定声卡及设备的命令也可以),验证具体声音输出设备是其中的哪一个
最终验证发现:
耳机输出设备:card 0,device 0
HDMI输出设备:card 0,device 7
 
11.设定HDMI为默认音频输出设备
文件系统中,【/etc】目录下创建一个文件【asound.conf】,在文件中写入如下内容
内容的意思是将HDMI音频输出设备【card 0,device 7】指定为默认音频输出设备。
 
12.此时再次使用程序播放视频
视频播放有画面,有声音,因此声音方面问题解决了。
但是同时查看【VGA】和【HDMI】可以发现,两者显示不同,并且同时接入时【VGA】会出现只显示画面的一部分的现象,如果只接入【VGA】,画面似乎是正常的。
 
13.根据上一步中发现的问题,正式开始从解决声音问题转向解决视频问题
对于上一步的现象,经过研究发现
同时接入【VGA】和【HDMI】时,使用的显示模式为【克隆模式】。
【i915.modeset=1】时,如果将【VGA】和【HDMI】同时接入的话,分辨率会以【HDMI】的分辨率为准,但是如果只接入【VGA】自己的话,就以【VGA】的为准。
【i915.modeset=0】时,如果将【VGA】和【HDMI】同时接入的话,【VGA】和【HDMI】各自以自己的分辨率为准,互不影响。
 
14.在与Intel技术支持沟通的途中得到启发,尝试修改X(Xorg)服务的分辨率
执行命令【xrandr --output HDMI1 --mode "1024x768"】。
命令很好理解,分辨率修改为【1024*768】。
最终【VGA】和【HDMI】显示均正常。
 
四、结语
其实这里记录的很多东西都做了一定的简化,实际探索过程比这里描述的要复杂的多太多,现在将探索过程留在这里,希望以后遇到类似问题时可以更快地解决,毕竟探索过程很多时候真的很让人绝望。

分类:

技术点:

相关文章:

  • 2021-09-04
  • 2021-12-08
  • 2021-10-29
  • 2021-12-13
  • 2021-11-17
  • 2021-12-31
  • 2021-12-24
  • 2021-12-04
猜你喜欢
  • 2021-09-25
  • 2021-04-18
  • 2021-10-12
  • 2018-04-18
  • 2021-05-19
  • 2021-09-09
  • 2021-12-12
相关资源
相似解决方案