ubuntu上的HDMI数据线带来的音频视频问题
Posted 王玉成的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu上的HDMI数据线带来的音频视频问题相关的知识,希望对你有一定的参考价值。
我自己家用的电脑是一个笔记本,最大分辨率到1366x768,带HDMI接口。
自己太喜欢大屏幕了,入手了一台23英寸的IPS显示器。带HDMI接口。
视频和音频的配置就麻烦起来了。
1. 视频
安装包
我的笔记本上用的是NVIDIA的GT630M的显示芯片。自己从nvidia的官网上下了最新版的linux 64bit的驱动。
把二进制包(我的二进制包的名字NVIDIA-Linux-x86_64-310.19.run)下载下来后,加上可执行权限。
由于nvidia的显卡驱动不能在x server环境下安装。于是切到任何一个控制台界面下(不要在X环境下)
[ycwang@ycwang-asus:desktop]$ sudo stop lightdm
[ycwang@ycwang-asus:desktop]$ sudo ./NVIDIA-Linux-x86_64-310.19.run
[ycwang@ycwang-asus:desktop]$ sudo start lightdm
下面我安装完成后的信息。
[ycwang@ycwang-asus:desktop]$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 310.19 Thu Nov 8 00:52:03 PST 2012
GCC version: gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
3D加速问题
安装包后,用命令gfxinfo [ycwang@ycwang-asus:desktop]$ glxinfoname of display: :0.0
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Error: couldn't find RGB GLX visual or fbconfig
也就是3D加速用不了,在virtualbox的显卡配置里不能启用3d。可以查看这篇文章: http://superuser.com/questions/484991/nvidia-graphics-driver-in-ubuntu-12-04
这篇文章里的核心步骤: For 32 bit Reinstall xorg completely
sudo apt-get install --reinstall xserver-xorg-core libgl1-mesa-glx:i386 libgl1-mesa-dri:i386
For 64 bit Reinstall xorg completely
sudo apt-get install --reinstall xserver-xorg-core libgl1-mesa-glx:amd64 libgl1-mesa-dri:amd64
the OS info (32 bit/64 bit) can be verified using uname -a
Then Reconfigure Xorg
sudo dpkg-reconfigure xserver-xorg
sudo reboot
等重启过后,再用命令查看
[ycwang@ycwang-asus:desktop]$ glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_OML_swap_method, GLX_SGI_swap_control, GLX_SGIS_multisample,
GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group,
GLX_INTEL_swap_event
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
。。。。。。。。。。。。。。。。。。。。。。
后面的信息不用再贴了。
可以看到几个屏幕都正常了。
然后在virtualbox里开启3D加速,在virtualbox的windows里进入安全模式,装上guest installtions,可以选择3D支持。然后正常进入window,这时3D加速OK。
多屏切换
笔记本自带的屏,一个VGA接口,一个HDMI接口。如何在这三个屏中自由的切换?
使用ubuntu的多屏管理软件
[ycwang@ycwang-asus:desktop]$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
LVDS1 connected (normal left inverted right x axis y axis)
640x480 59.9
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 510mm x 290mm
1920x1080 60.0*+
1680x1050 60.0
1280x1024 60.0
1280x960 60.0
1152x864 60.0
1024x768 60.0
800x600 60.3
640x480 60.0
DP1 disconnected (normal left inverted right x axis y axis)
这个信息告诉我,LVDS1,VGA1,HDMI1,DP1这四块屏。以及连接的屏幕的最大分辨率是多少。
但是这个信息有问题。由于我的笔记本自带的屏是1366x768的分辨率,而它这个640x480 59.9 。无语。
造成这种情况的原因是由于NVIDIA的显卡驱动启用了xorg.conf文件。里面一大堆老式的配置。ubuntu的lightdm并没有用这个文件。
那么直接删除这个配置文件。
[ycwang@ycwang-asus:desktop]$ sudo rm /etc/X11/xorg.conf
然后再看一下分辨率的情况。
[ycwang@ycwang-asus:desktop]$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
LVDS1 connected (normal left inverted right x axis y axis)
1366x768 60.0 +
1360x768 59.8 60.0
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 510mm x 290mm
1920x1080 60.0*+
1680x1050 60.0
1280x1024 60.0
1280x960 60.0
1152x864 60.0
1024x768 60.0
800x600 60.3
640x480 60.0
DP1 disconnected (normal left inverted right x axis y axis)
这次正常。的确是1366x768的分辨率。
由于grub默认是切换到笔记本自己的屏幕LVDS1上去。而我想只显示在HDMI1的屏幕上。
可以编写一个脚本
#!/bin/bash
#use command xrandr to display
result=$(xrandr | grep "HDMI1 connected")
if [[ $result == "" ]]
then
xrandr --output LVDS1 --auto --output HDMI1 --off
else
xrandr --output HDMI1 --auto --output LVDS1 --off
fi
然后把脚本放在ubuntu的Startup Applications..中执行。
具体可参考http://hi.baidu.com/sicceer/item/634dee0c3ba8af1aebfe3867
中间加上一个条件语句是为了HDMI拨掉的情况下,在LVDS1上输出。
声音控制
三种声道,笔记本自带的耳机,笔记本自带的扬声器,还有HDMI的音频输出。
打开ubuntu自带的音频设置
HDMI的情况下:
如果是笔记本上的音箱或者耳机输出
然后在output标签里改一下耳机还是音箱即可。
以上是关于ubuntu上的HDMI数据线带来的音频视频问题的主要内容,如果未能解决你的问题,请参考以下文章