注意:本文描述的内容仅限于Gnu/Linux操作系统,Windows系统的解决方案不在本文讨论范围之内。
笔记本带了Nvidia的独立显卡,支持HDMI输出,1080P的高清视频当然要输出到高清电视的大屏幕上才够过瘾。
Amazon上买了飞利浦的HDMI线,到手之后兴冲冲将笔记本接上电视,却发现只有画面,声音依旧从电脑的扬声器中发出,顿时就郁闷了,没有声音,再好的戏也出不来啊。
第一次用HDMI接口,之前都是通过VGA+音频输出的方式连接笔记本和电视的。音、视频各行其道,互不干扰,这很好理解。HDMI使用一根线传输所有的音、视频信号,而HDMI接口只从显卡接出,想必显卡也是带音频模块的,嗯,又长知识了。
放狗一阵乱搜,找到了解决方案,原文是英文,现将主要部分介绍如下,如想阅读原文,请移步这里:
在开始之前,先安装Nvidia官方驱动,大致步骤呢,无非就是:
sudo aptitude install linux-headers-`uname -r` build-essential
然后停掉GDM运行驱动程序进行安装,完了之后,重启机器,然后开始设置HDMI。
首先,检查系统是不是能识别显卡自带的音频模块,执行:
aplay -l
在我的电脑上,执行结果输出如下:
yjsword@debian:~$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Intel [HDA Intel], device 1: Conexant Digital [Conexant Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Intel [HDA Intel], device 3: NVIDIA HDMI [NVIDIA HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0
结果显示,0号卡上的设备3是NVIDIA的HDMI声卡,0和1都不是,话说……2去哪了?
接着,运行:sudo alsamixer -c 0
-c 指定设备,我们是card 0,当然用0当参数了。
在AlsaMixer调节界面中,按左右方向键选择某一个选项,按“M”键来On/Off它,如果状态显示“MM”代表该项处于“Off”状态,“00”表示“On”状态。
需要特别关注的是:“S/PDIF”、“S/PDIF D”、“S/PDIF 1”这三项,我的做法是把它们都打开。
完了之后按“Esc”退出。
将电脑接上电视,用下面的命令测试刚刚的设置:
aplay -D plughw:0,3 /usr/share/sounds/alsa/Front_Center.wav
plughw:0,3的含义很明确了,就是刚才列出的card 0、device 3,后面这个wav文件可以是任意的wav格式的音频文件。
如果上面的操作步骤都OK的话,应该会从电视扬声器中有一个优美的女声说:Front Center
如果以上操作都顺利,那么我们离成功还剩下最后的步骤了。
编辑/etc/asound.conf文件,这个文件本来不存在的,没关系,新建一个就好。然后输入下面的内容保存:
pcm.!default {
type hw
card 0
device 3
}
重启电脑,开始你的高清之旅吧。
sudo patch -p1 -d home username Alsa-1.0.22.1 alsa-driver-1.0.22.1 sound alsa nvidia gt220.patch patching file pci hda patch nvhdmi.c..Then proceed to Compiling and Installing ALSA .. sudo patch -p1 -d home username Alsa-1.0.22.1 alsa-driver-1.0.22.1 sound alsa nvidia.patch patching file pci hda patch nvhdmi.c..