两个显示器1个linux操作系统
我现在有两个液晶显示器,一个linux操作系统,请问有相关软件能让我在两个显示器同时显示我得linux操作系统吗? nv可以的 设置nvidia显卡的双屏显示最近随着大屏幕平板电视的降价,购买用户也增多了。如果能通过这个大屏幕电视观看DVD、HDTV或者玩3D游戏一定会获得很好的观感。即便只是使用老式的CRT电视也要比十几寸的显示器看电影的效果好。下面就说明如何在linux下实现N卡双屏显示的方法
NVIDIA从GeForce2 MX开始在自己的显卡中增加了名为Twinview的双头显示功能,可以支持数字平板(例如液晶显示器)、CRT、TV的双屏显示。目前绝大多数显卡都具备此项功能,具体信息可以查阅显卡的说明书,或者观察显卡的输出接口。硬件连接就不多说了,你需要跟据你的第二台显示设备支持的接口选择相应的连接线,例如D-SUB、DVI、S-Video。需要的话还要选用相应的转接头
以下所有操作都需要先安装NVIDIA提供的显卡驱动,并且用“root”用户登录进行操作
1.Twinview配置说明
在/etc/X11/xorg.conf文件的“Section "Device"”小节增加如下的信息
Option "TwinView" "True" # 打开Twinview双屏显示功能。默认值为"False",即关闭。必须设置为"True",否则就无法使用双屏显示
Option "SecondMonitorHorizSync" "NUM" # 设置第二个显示设备的水平扫描频率。NUM为一具体数字或范围。具体信息可以查阅显示设备的说明书。如果你连接的显示设备是一台电视的话,通常设置为“30-50”即可
Option "SecondMonitorVertRefresh" "NUM" # 设置第二个显示设备的垂直扫描频率。NUM为一具体数字或范围。具体信息可以查阅显示设备的说明书。如果你连接的显示设备是一台电视的话,通常设置为“60”即可
Option "UseEdidFreqs" "True" # 这个选项使Xserver使用显示设备内部的EDID(Extended Display Identification Data)中指定的水平和垂直扫描频率(若有的话)。如果显示设备不能提供EDID,或EDID不能指定水平或垂直刷新范围,那么Xserver就会使用“Monitor section”小节中提供的水平和垂直扫描频率。设置了这个选项后X会忽略“Monitor section”小节中指定的水平和垂直扫描频率。也不用再设置上面两个“SecondMonitor……”Option。但是有一些显示设备没有这项功能或者支持的不够完善,就会造成X从EDID获得的数据不够准确,此时就必须指定扫描频率。默认为"False",即关闭。
注:EDID (Extended Display Identification Data ) 扩展显示识别码,会依据视频输出的解析度,自动调整显示的解析度品质。也就是说,使用者不必特别麻烦地调整输出设备的解析度去配合想要介接的个人电脑,机器将会自动地将两者不同解析度的品质设定成相同的解析度。
Option "MetaModes" "<mode0>,<mode1>;<mode2>,<mode3>" # 设置每台显示设备的分辨率。mode0,mode1……分别为一具体数字,用于指定显示设备使用何种分辨率。规则如下:<mode0>用于指定第一台显示设备在第一种模式下的分辨率,<mode1>为此时第二台显示设备的分辨率,两台设备的分辨率之间用英文的逗号“,”隔开。<mode2>用于指定第一台显示设备在第二种模式下能够使用的分辨率,<mode3>为此时第二台显示设备的分辨率。不同模式之间用英文的分号隔开“;”,以此类推。例如:
Option "MetaModes" "1280x1024,1024x768; 800x600,1024x768" # 当第一台显示设备的分辨率为1280x1024的时候,第二台的分辨率设置为1024x768;当第一台显示设备的分辨率为800x600的时候,第二台的分辨率设置为1024x768。
如果某台分辨率不想设置的话,就使用"NULL"。例如:
Option "MetaModes" "1600x1200, NULL; NULL, 1024x768"
或者使用空格
Option "MetaModes" "1600x1200; , 1024x768"
当x不能准确确定哪台显示设备是第一、哪台是第二的时候,可以在这条“Option”其中添加设备名。例如:
Option "MetaModes" "CRT-0: 1600x1200,DFP-0: 1024x768;CRT-0: 1024x768,DFP-0: 800x600" # 此时系统连接了两台显示设备,分别是CRT-0和DFP-0。当显示设备CRT-0使用1600x1200的分辨率时,数字平板显示器DFP-0使用1024x768的分辨率,当显示设备CRT-0使用1024x768的分辨率时,数字平板显示器DFP-0使用800x600的分辨率。
Option "TwinViewOrientation" "String" # 设置第二台显示设备显示的画面相对在第一台显示设备的方位。可选值为
"RightOf" # 设置第二台显示设备显示的画面相对于第一台显示设备向右扩展
"LeftOf" # 设置第二台显示设备显示的画面相对在第一台显示设备向左扩展
"Above" # 设置第二台显示设备显示的画面相对在第一台显示设备向上扩展
"Below" # 设置第二台显示设备显示的画面相对在第一台显示设备向下扩展
"Clone" # 设置第二台显示设备显示的画面和第一台显示设备的完全一样
如果Twinview不能准确识别哪台显示设备是第一、哪台是第二的时候,会造成显示混乱,此时需要在它们的相对位置前后分别指定显示设备名。类似于
"CRT-0 RightOf DFP-0" # 显示设备名为DFP-0的数字平板显示器所显示的画面在CRT-0的右边
注:你的显示设备的名称。可以执行 “#cat /var/log/Xorg.0.log|grep -i display” 查看
Option "ConnectedMonitor" "String" # 设置连接显示设备的类型。通常情况下都不需要设置此项。如果你的显示设备不能使用DDC协议自动探测到的话,就需要用这个Option详细指明。两个设备名之间用英文逗号“,”分隔。
详明规则如下:"第一台显示设备类型-显示设备号,第二台显示设备名-显示设备号"。显示设备有3种类型:DFP数字平板显示器,例如液晶显示器;CRT普通的阴极射线管显示器;TV电视。设备号从“0”开始。例如,第一台液晶显示器为DFP-0, 第二台液晶显示器为DFP-1,第一台电视为TV-0……以此类推
2.Twinview配置实例
以笔者的系统为例。一台17#的CRT显示器,一台29#的TV,显卡为FX5200。FX5200有DVI、CRT和S-Video这3个输出接口。CRT用做主显示器,TV做为副显示器。用S-Video视频线连接显卡和TV
在已经配置好并能正常使用第一台显示器CRT以后,修改/etc/X11/xorg.conf文件的“Section "Device"”小节,增加如下的信息
Option "TwinView" "True" # 打开Twinview双屏显示功能
Option "TwinViewOrientation" "CRT-0 RightOf TV-0" # 指定设备名为TV-0的设备所显示的画面相对在名为CRT-0的设备右边
Option "SecondMonitorHorizSync" "30-50" # 副显示器TV的扫描频率
Option "SecondMonitorVertRefresh" "60" # 副显示器TV垂直扫描频率
Option "MetaModes" "CRT-0:1024x768,TV-0:800x600;CRT-0:800x600,TV-0:800x600" # 当CRT-0使用1024x768的分辨率时,TV-0使用800x600的分辨率;当CRT-0的分辨率设置为800x600的时候,TV-0使用800x600的分辨率
Option "ConnectedMonitor" "CRT-0,TV-0" 指定已经连接的设备为CRT-0和TV-0
重新启动X以后,将电视切换到SVHS频道即会显示桌面,如图:twinview-rightof.png
副显示器相对主显示器在其它位置时分别如图:twinview-above.png、twinview-below.png、twinview-leftof.png
如果此时运行“nvidia-settings”命令的话便会显示两台显示器以及调整功能。如图:twinview-1.png、twinview-2.png
现在你就可以一边用电脑显示器上网,一边通过大屏幕电视播放从网上下载的HDTV、DVD格式的大片给家人看了 ^__^ http://xorg.freedesktop.org/wiki/FAQMiscellaneous#head-088b7637bc5bb1e8c452e6989cf1cc6bb71fc602
How do I set up a multihead configuration?
I think there was a multihead FAQ someplace. I wonder where that's at? <br> Basically, you can have in the xorg.conf file:
monitor section for that monitor.
device sections. One for each card. Use the !BusID token to specify which card is which.
screen sections. Each referencing the separate card, but both can reference the single monitor section.
server layout section that references both screens, eg:
Section "ServerLayout"
Identifier "DualHead"
Screen 0"Screen0" 0 0
Screen 1"Screen1" RightOf "Screen0"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Start with a working single head configuration and create the second device and screen sections by cutting and pasting but assigning different Identifiers and, in the case of the device sections, different !BusIDs. Change the layout section to something like above. <br> If you have a single card with one chipset but two (or more) display connectors you have to create device sections for each connector with identical busID. To distinguish between the connectors you need to add the line
Screen n
where n is replaced by the number of the connector. (ie. n0,1,2...=). 最新的ATI 驱动有控制面板了
你可以直接在面板中选择两个显示器及其显示方式
不过没有试过,偶只有一个显示器.....
如何实现异步双屏显示呢?
上面的文章都是实现同步显示的在Linux下要实现双屏异步显示功能,即主板分别接一个VGA和一个LCD,在VGA上显示程序A的操作界面,LCD上显示程序B的界面,比如用mplayer播放影碟。
查找了一下资料,发现了Xinerama,但它只是实现将两个显示器组合成一个“更大的”显示器的功能,显示的是同一个程序的画面。这个不是我需要的。
各位可否给些“异步显示”的提示?谢谢! 据我所知,目前通过nv的驱动还是只能实现双显示器水平/垂直叠加或者完全复制
至于X有什么特殊工具或者软件就不知道了
关于楼上说的一个屏幕显示mplayer播放影碟,一个做其他工作。用水平延伸完全可以做到
页:
[1]