Linux设备配置之显卡配置1.docx
- 文档编号:4732012
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:18
- 大小:26.38KB
Linux设备配置之显卡配置1.docx
《Linux设备配置之显卡配置1.docx》由会员分享,可在线阅读,更多相关《Linux设备配置之显卡配置1.docx(18页珍藏版)》请在冰豆网上搜索。
Linux设备配置之显卡配置1
Linux设备配置之显卡配置
(1).txt大悲无泪,大悟无言,大笑无声。
我们手里的金钱是保持自由的一种工具。
女人在约会前,一定先去美容院;男人约会前,一定先去银行。
Linux设备配置之显卡配置
(1)
2011-01-1809:
40佚名互联网我要评论(0)
摘要:
显卡全称显示接口卡(Videocard,Graphicscard),又称为显示适配器(Videoadapter),显示器配置卡简称为显卡,是个人电脑最基本组成部分之一。
显卡的用途是将计算机系统所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,控制显示器的正确显示,是连接显示器和个人电脑主板的重要元件,是“人机对话”的重要设备之一。
今天就教大家来在Linux下配置显卡,请看下文。
标签:
Linux显卡
Linux下设备的配置过程是指在检测到设备类型、设备当前工作参数等信息之后,使用这些信息来配置设备的驱动程序,工作方式等,(设备的检测过程参见《如何在Linux下实现硬件的自动检测》)。
要完成这样的任务,需要做两方面的工作:
其一是需要一个详尽的设备信息文件,这个文件描述了设备标识、与设备标识对应的设备驱动程序、设备配置参数(设备选项)、设备设置的详细描述、设备配置方法描述、设备对应的别名、设备的主设备号等信息。
其二是需要根据设备的类型,以及安装的linux系统版本(不同的Linux发行版对于同一设备的配置脚本文件存在差异),设置设备对应的配置脚本文件。
窗口系统(XFree86)的配置过程
1.显示卡的描述文件介绍(CardDB)
CardDB是X配置程序使用的显示卡数据文件。
在对XFree86进行配置时,配置程序一般都需要读取其上的内容完成显示卡的配置。
它的内容与使用的XFree86的版本密切相关。
一般而言,它保存的位置是在/usr/X11R6/lib/X11/目录下。
现在我们就对XFree864.1.0的CardDB文件进行简单的介绍:
NAME
显示卡的描述名称
CHIPSET
描述显示卡使用的芯片集
SERVER
为了和3.x版本的XFree86向下兼容,由此字段指定此显示卡在XFree863.x下的X服务器,例如VGA16,SVGA等。
DRIVER
描述在4.x版本的XFree86下显示卡的驱动程序模块。
LINE
设置显示卡特定的选项信息,这样的选项信息出现在XF86Config的Device节,对应设备的Option参数。
SEE
是指此显示卡的配置信息与SEE字段所制定的显示卡完全相同,例如
NAMENumberNineGXE64withS3Trio64
SEES3Trio64(generic)
表示NumberNineGXE64的显示卡配置与S3Trio64(generic)的配置完全相同。
RAMDAC
RAM直接存取控制的控制芯片型号
DACSPEED
直接存取控制的速度
CLOCKCHIP
此显示卡的时钟芯片的
NOCLOCKCHIP
此显示卡无时钟芯片
UNSUPPORTED
此类型的显卡,此版本的XFree86不能提供支持
COMMENT
注释
例如,对于RIVATNT显卡,XFree864.1.0中的信息如下:
NAMERIVATNT
CHIPSETRIVATNT
SERVERSVGA
DRIVERnv
NOCLOCKPROBE
2.显示器信息检测
显示器的信息在XFree86系统中时非常重要的,它对应XFree86配置文件的Monitor节。
在这一节中包含监视器的水平扫描频率范围,垂直扫描频率范围,显示器支持的显示模式等信息。
同样的,显示器的自动检测也就是通过程序自动读出显示器的上述信息。
它的正确设置对于XFree86能否正常显示起到很重要的作用。
对于显示器的信息检测,要求它必须支持vbe(VESA的BIOS级扩展)。
在显示器支持此扩展时,通过系统实模式下的BIOS调用INT10H,可以取得显示器的详细信息。
可能需要的BIOS子功能调用为:
AH=0x4F00
获得关于监视器的VESA的BIOS级扩展信息
AH=0x4F01
获得监视器支持的特定显示模式
AH=0x4F02
设置当前的视频模式
AH=0x4F03
获得当前的视频模式
AH=0x4F04
保存/还原svga显示方式
AH=0x4F15
获得监视器的EDID扩展信息
一般的显示器使用上述中断的方式是:
先检查显示器是否支持VESA的BIOS级扩展,如果显示器支持BIOS级扩展,就查看显示器支持的显示模式,然后获得显示器的EDID扩展信息。
在读出的EDID扩展信息中,可以查出显示器的垂直回扫频率范围和水平回扫频率范围,也可以计算出显示器的大小,对于一部分显示器还可以从此信息中读出监视器的制造商信息。
由显示器读出的信息可以设置XF86Config的Monitor节,对于设置了正确的垂直回扫频率范围和水平回扫频率范围的显示器,X自动设置为当前显示分辨率下支持的最高扫描频率的显示模式(此显示模式要求有对应的Modeline)。
但是如果您的显示器不支持EDID扩展信息,那么您就只有根据经验来设置显示器的垂直回扫频率范围和水平回扫频率范围。
如果设置的范围高于监视器的实际支持范围,那么显示器会出现黑屏的现象。
对于编程实现,如果您要调用上述bios中断,那么必须使用lrmi这个实模式接口,并设置正确的寄存器信息,完成系统调用。
具体的检测显示器信息的例子,您可以参考Xconfigurator下ddcprobe的源程序,也可以参考Mandrake系统下的ddcxinfos命令的源程序。
3.窗口系统的配置过程
要正确的在linux下配置窗口系统,实际上就是生成正确的XFree86配置文件,这个文件一般保存在/etc/X11/下,在X版本是3.x时,它的文件名为XF86Config,在X版本是4.x时,它的文件名一般为XF86Config-4。
在现在的发行版本中,处于硬件兼容性的考虑,他们一般都让这两个版本的XFree86包共存。
因此,您也可以在/etc/X11目录下,发现这两个文件同时存在,这时使用那个文件就要看系统的X服务器的版本了。
无论是那个版本的XF86Config文件都是由许多节(Section)构成的,但是这些节描述的内容主要包括:
键盘、鼠标、显示器、显示卡、字体(颜色)等。
在X版本是3.x时,键盘和鼠标的描述分别对应Keyboard和Pointer节。
而在X版本是4.x时,键盘和鼠标的描述都对应InputDevice节,只是对应不同的驱动模块,键盘的驱动模块是keyboard,鼠标的驱动模块是mouse。
配置这两节所需要的信息可以从/etc/sysconfig/keyboard和/etc/sysconfig/mouse中获得,它们的详细内容,本文的前面章节已作了介绍。
配置显示器实际上是生成XF86Config文件的Monitor节,需要配置的信息一般包括:
水平扫描频率范围、垂直扫描频率范围、监视器支持的显示模式、制造商信息。
对于支持vbe和edid扩展的显示器,可以根据从显示器上读出的信息设置对应字段的值。
但是如果显示器不支持上述扩展,则显示卡的设置必须由用户手动完成。
如果您在配置XFree86时不指定这一节,那么XFree86会设置显示模式为640x480,垂直扫描频率为60hz的方式。
不同显示模式的扫描频率:
显示分辨率垂直扫描频率(Hz)水平扫描频率(kHz)
640x4806031.50
640x4807236.50
640x4807537.50
640x4808543.27
800x6006037.80
800x6007248.00
800x6008555.84
800x60010064.02
1024x7686048.40
1024x7687056.50
1024x7687662.50
1024x7688570.24
1024x76810080.21
1280x10246164.20
1280x10247074.59
1280x10247478.85
1280x10247681.13
1280x10248591.15
1280x1024100107.16
1600x12006075.00
1600x12007087.50
1600x12007593.75
1600x120085105.77
表6-1
从上表可以看出,您要设置显示器达到某一分辨率,那么与此相对应,它的扫描频率范围也要包含上表中此分辨率的最低扫描频率。
如果您的显示器达不到这个范围,那么XWindow将无法正常工作。
如果您设置的扫描频率高于显示器实际的扫描频率范围,由于XFree86会寻找对应分辨率下最高扫描频率进行显示,所以此时XWindow将极有可能黑屏。
在生成配置脚本时,扫描频率的范围也不是越低越好。
设置较低的扫描频率范围对于部分LCD显示器就不合适。
比如,一部分LCD显示器在800x600分辨率时,最低支持的垂直扫描频率为70Hz,那么您这时指定的水平回扫范围一定要包含48kHz。
在配置完显示器之后,您就需要生成与显示卡对应的描述了。
这样的描述信息对应XF86Config文件的Device节。
这一节主要描述的显示卡信息包括:
显示卡对应的X服务器(X版本在3.x),对应的X设备模块(X版本为4.x),显示卡的设备信息(供应商、型号、支持显存存取方式和显存大小等),以及此显示卡支持的设备选项,比如显示卡是否支持硬件加速、是否支持软光标等。
生成窗口系统的配置过程一般是先由pci的设备标识(检测过程见)获得显示卡的类型,由此在XFree86的配置文件CardDB(这个文件可在/usr/X11R6/lib/X11/目录下找到)中查得它对应的显示卡描述,由此信息可以设置此节的描述。
字体和调色板信息描述的是字体和调色板所存放的路径,您如果新加入字体时,需要在此加入正确的字体路径。
设置字体路径时,如果指定它为unix:
-1,那么就是说您在启动X服务器之前,必须首先启动字体服务器xfs,然后由字体服务器完成字体的访问请求。
在您正确的设置了上述信息之后,您必须将这些信息存放在Screen节中。
这一节描述的是完成显示对应的显示卡,显示器,分辨率和缺省深度等信息。
最后,您还必须生成ServerLayout节,由它描述整个系统所使用的显示卡配置节、监视器配置节、鼠标配置节、键盘配置节等信息。
在生成了/etc/X11/XF86Config(XF86Config-4)文件后,您就可以测试一下此配置文件是否正确了。
例如,对于XFree864.x,生成的配置文件为/etc/X11/XF86Config.test,测试使用如下命令:
XFree86-xf86config/etc/X11/XF86Config.test:
9
-xf86config/etc/X11/XF86Config.test表示使用指定的配置文件启动X服务器
:
9表示在终端9上运行X服务器
一般而言,如果是编程实现X的配置过程的话,则要以子进程的方式(系统调用fork)运行上述命令,在成功启动X服务器之后,运行一个小的图形化程序,让用户选择配置是否成功。
当然,如果您不能得到显卡的详细的设备参数的话,您也可以使用probeonly选项获得显示卡的详细信息。
例如,对于XFree864.x测试使用如下命令:
XFree86-probeonly:
9
对于正常的启动XFree86之后,系统输出的信息,您可以通过读取/var/log/XFree86.x.log获得。
x是指XFree86启动的终端,一般设置此x为0。
在XF86Config文件配置之后,您可以使用startx启动XFree86。
这个文件会运行您的登录目录下的.xinitrc文件来修改XWindow系统的初始显示状态。
这个文件是一个脚本文件。
如果这个文件不存在,系统就会默认使用/usr/X11R6/lib/X11/xinit/xinitrc。
同时,startx还要查找/etc/X11/X,这个文件是一个链接文件,它指向真正的X服务程序,现在这个程序一般都指向Xwrappers,它?
嵌訶服务程序的封装。
当然,这个文件也可以直接指向X服务程序XFree86。
4.支持FrameBuffer方式的显卡的配置过程
帧缓冲(FrameBuffer)设备是指一种不带视频加速的X11支持设备。
启动此方式的优点主要有三点:
其一是在控制台方式工作时,您能设置更大的控制台显示区,比如设置1024x768分辨率大小的控制台;其二是可以在其上启动XF86_FBDev(对于XFree864.x下,使用启动模块fbdev);其三是可以在启动时显示启动徽标(一只胖胖的企鹅)。
在有时显示卡对应的XFree86驱动程序不能正常工作时,而您又需要比较丰富的色彩时,启动FrameBuffer往往是必须的选择。
启动FrameBuffer时,XFree86启动的分辨率由FrameBuffer的启动模式决定。
能够启动FrameBuffer的设备是intel结构下与vesa2.0标准兼容显卡的帧缓冲设备,但是现在不能在支持vesa1.2的显卡上支持FrameBuffer。
这是因为vesa1.2不支持线性帧缓冲(线性帧缓冲意味着CPU能访问显卡的每一位)。
您可以下载补丁,以使vesafb支持vesa1.2的显卡,比如一些较老的s3系列显卡。
现在支持vesa2.0的显卡主要有:
ATIPCIVideoExpression2MB(max.1280x1024@8bit)
ATIPCIAll-in-Wonder
MatroxMillenniumPCI-BIOSv3.0
MatroxMillenniumIIPCI-BIOSv1.5
MatroxMillenniumIIAGP-BIOSv1.4
MatroxMillenniumG200AGP-BIOSv1.3
MatroxMystique&Mystique220PCI-BIOSv1.8
MatroxMystiqueG200AGP-BIOSv1.3
MatroxProductivaG100AGP-BIOSv1.4
AllRiva128basedcards
DiamondViperV330PCI4MB
GenoaPhantom3D/S3ViRGE/DX
HerculesStingray128/3DwithTVoutput
HerculesStingray128/3DwithoutTVoutput-needsBIOSupgrade(freefrom
support@)
SiS6326PCI/AGP4MB
STBLightspeed128(NvidaRiva128based)PCI
STBVelocity128(NvidaRiva128based)PCI
JatonVideo-58PET6000PCI2MB-4MB(max.1600x1200@8bit)
Voodoo22000
主板集成显示卡:
TridentCyber9397
SiS5598
启动FrameBuffer必须设置内核的启动显示模式,设置这个参数是通过内核参数vga=实现的。
比如,设置启动之后的分辨率为640x480下的16位色时,传递的参数为vga=785(十进制数)。
您也可以在/etc/lilo.conf文件中设置此参数,由lilo传递内核参数。
内核支持的FrameBuffer显示模式如下表:
显示深度640x400640x480800x6001024x7681152x8641280x10241600x1200
4bits0x302
8bits0x3000x3010x3030x3050x1610x3070x31C
15bits0x3100x3130x3160x1620x3190x31D
16bits0x3110x3140x3170x1630x31A0x31E
24bits0x3120x3150x3180x31B0x31F
32bits0x164
表6-2
向内核传递vesa选项还包括:
video=vesa:
option,多个选项之间可用逗号隔开;
可接受的选项:
ypan
使用vesa保护模式接口显示,可视屏幕是视频内存的一个窗口。
pro
快速的整屏卷滚,允许回滚。
kontra
部分卷滚,可产生一些闪动效果。
ywrap
比ypan速度快,但是兼容性差。
redraw
缺省使用,通过重绘受影响的屏幕区进行重画。
vgapal
缺省使用,标准的vga调色版寄存器。
pmipal
使用保护模式的调色版接口。
例如,下面的操作设置FrameBuffer设备的显示:
exportFRAMEBUFFER=/dev/fb1
fbset-fb/dev/fb1-vyres600
fbset-fb$FRAMEBUFFER1024x768@60
startx--:
0-bpp16vt06
在虚拟控制终端6以16为颜色深度启动X服务器。
如果您要对帧缓冲设备编程,则可以象使用/dev/mem一样,读、写、定位以及mmap()此设备。
不同的是,您此时操作的设备内存位于视频设备内存中。
/dev/fb*设备也支持几种ioctl操作,由此可以获得或设置设备信息。
颜色表的处理使用ioctl()。
5.XF86Config文件格式(版本为4.x系列)
5.1文件的基本组成
文件的每节都是由下述的部分组成:
Section"SectionName"
SectionEntry
…
EndSection
SectionName包括:
Files文件路径名
ServerFlags服务器标志
Module动态模块加载
InputDevice输入设备描述
Device图形设备描述
VideoAdaptorXv视频卡描述
Monitor监视器描述
Modes视频模式描述
Screen屏幕配置
ServerLayout全面的层叠
DRIDRI特定的配置
Vendor供应商特定的配置
出于向下兼容的目的,下列项虽已废除但是配置文件仍能识别。
在新的配置文件中,应使用新的InputDevice项。
Keyboard键盘配置
Pointer指针/鼠标配置
老的XInput节已经被废除。
ServerLayout在最高层。
它们绑定的输入输出设备会在这一节里使用。
输入设备由InputDevice描述,输出设备通常有多个独立的组件组成。
多个组件组成Screen节。
每个Screen节将图形板和监视器绑定在一起。
显示卡由Device节描述,监视器由Monitor节描述。
5.2Files节
Files节指定X服务器的字体路径、调色板路径和模块路径。
*FontPath"path"
设置字体的查询路径。
对于字体服务器的表示采用下述的形式:
/:
指定与字体服务器连接的传输类型(unix,tcp)。
若此节不指定,则缺省的字体路径是:
/usr/X11R6/lib/X11/fonts../misc/
/usr/X11R6/lib/X11/fonts/Speedo/
/usr/X11R6/lib/X11/fonts/Type1/
/usr/X11R6/lib/X11/fonts/CID/
/usr/X11R6/lib/X11/fonts/75dpi/
/usr/X11R6/lib/X11/fonts/100dpi/
一般而言,推荐的字体路径是:
/usr/X11R6/lib/X11/fonts/local/
/usr/X11R6/lib/X11/fonts../misc/
/usr/X11R6/lib/X11/fonts/75dpi/:
unscaled
/usr/X11R6/lib/X11/fonts/100dpi/:
unscaled
/usr/X11R6/lib/X11/fonts/Type1/
/usr/X11R6/lib/X11/fonts/CID/
/usr/X11R6/lib/X11/fonts/Speedo/
/usr/X11R6/lib/X11/fonts/75dpi/
/usr/X11R6/lib/X11/fonts/100dpi/
*RGBPath"path"
rgb颜色数据库的路径,缺省值为:
/usr/X11R6/lib/X11/rgb。
*ModulePath"path"
设置可加载的X服务器模块的查找路径。
5.3ServerFlags节
ServerFlags节用于指定全局的X服务器选项,在一般情况下这个部分是空的。
*Option"NoTrapSignals""boolean"
此选项可以阻止X服务器捕获未期待的致命信号并干净的退出。
X服务器退出并擦除core文件。
*Option"DontZap""boolean"
打开此选项之后,可以禁止Ctrl+Alt+Backspace的使用。
*Option"DontZoom""boolean"
打开此选项,可以禁止键Ctrl+Alt+Keypad-PlusandCtrl+Alt+Keypad-Minus来切换视频模式。
*Option"DisableVidModeExtension""boolean"
可以用来禁止VidMode扩展。
*Option"AllowNonLocalXvidtune""boolean"
打开允许xvidtune客户从其他的主机连接。
*Option"DisableModInDev""boolean"
关闭可以禁止XFree86-Misc扩展(可用于动态修改输入设备的设置)。
*Option"AllowNonLocalModInDev""boolean"
允许客户连接另一台主机并且在运行的服务器上改变键盘和鼠标的设置。
*Option"AllowMouseOpenFail""boolean"
即使鼠标设备不能被打开/初始化也允许X服务器启动。
*Option"VTInit""command"
在服务器所用的VT被打开之后运行命令。
此命令被传到"/bin/sh-c",以与此VT设置的stdin和stdout相同的真正用户id运行。
*Option"VTSysReq""boolean"
使非SYSV系统的VT能支持SYSV风格的切换序列。
这意味着在Alt-SysRq之后紧接着功能键(Fn)。
这阻止X服务器捕获用于缺省VT的切换序列键(已使客户能够存取它们)。
*Option"BlankTime""time"
设置黑屏屏保的超时时间。
time以分钟为单位,缺省10分钟。
(xset进行动态设置)
*Option"StandbyTime""time"
*Option"SuspendTime""time"
*Option"OffTim
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 设备 配置 显卡