图形化的界面能让我们方便地享用Linux的强大功能,而且现在Linux的图
形化界面已经越来越完善。Linux中经常使用的图形显示系统是X-Window,但是由于其与常见的MS
Windows系统有很大的差异,所以在使用时常会遇到一些问题,比如无法驱动显卡、显示器参数错误、花屏和图形界面无法启动等。
因此,本文将在简介X-Window的基础上,介绍如何安装常见显卡和声卡的驱动程序、相关的配置文件,以及参数调整等内容。
X-Window概述
X-Window是一套显示系统,包括Server端和Client端,他们之间使用X协议互相通信。X诞生于1984年,在较短的时间内它就发布到了11个版本—X11。X11经过多年的发展,现在已经发布到X11R6。
X Client将希望显示的图形发送到X Server,X Server将图形显示在显示器上,同时为X
Client提供鼠标、键盘的输入服务。因为C/S结构,可以将X的Server和Client分别运行在两台计算机上,甚至可以安装一些软件,让
Windows作为X Server,让Linux作为Client,将KDE或GNOME等桌面环境显示到Windows主机上来。
图1所示让Windows作为X Server
使用Xmanager 1.3.9,在Windows XP上运行X Server,然后运行一台Linux主机下的startkde,将KDE桌面环境显示在Windows XP下。
使用startx命令可以启动X-Window系统。实际上,是在一台计算机上同时运行Server和Client,在运行startx之后,首先启动的
是XFree86,它是Linux平台上最常用的X
Server端;然后,又运行X的Client程序,如startkde(KDE的启动脚本)或gnome-session(GNOME的启动脚本)。
它们利用X协议连接本机的X Server,将图形显示出来。
Linux上经常使用的X
Server程序就是XFree86,它的任务是驱动显示卡、显示器、鼠标、键盘等设备,为X Client提供显示、输入服务等。
XFree86的主要文件目录如下:
XFree86文件所在的主要目录为/usr/X11R6;
XFree86的可执行程序文件目录为/usr/X11R6/bin;
XFree86自带的驱动程序所在目录为/usr/X11R6/lib/modules/drivers;
X的配置文件及启动脚本所在目录为/etc/X11;
XFree86的启动配置文件目录为/etc/X11/XF86Config或XF86Config-4,如果这两个文件都存在,XF86Config-4文件优先。
XFree86自带了一些设备的驱动,具体位置在/usr/X11R6/lib/modules/drivers,如果机器显示卡太新,无法使用X-Window,比如使用了Intel的855GM芯片组中集成的显卡无法启动X,则可以考虑升级XFree86。
当前XFree86成熟的版本是4.3,最新的版本4.4正在完善之中。从以下的链接中可获得4.3版的XFree86所支持的所有显卡列表。
XFree86官方版本下载网站是 ,中国的镜像网站是。
也可以从中科红旗网站下载。
下载后安装tgz包:
# tar zxvf XFree86_driver4.3.tgz # sh install.sh
|
安装Intel i865G芯片组显卡驱动
Intel
i865G是一种比较新的显卡芯片组,它内置了显示模块,但是安装较早的Linux版本X-Window有可能无法启动。处理这个问题的方法是,一种是直
接升级到XFree86 4.3;另一种是通过Intel官方的网站
intel.com/scripts-df/support_
intel.asp?iid=HPAGE+header_support_download&下载驱动程序。
在该链接的下载页面可以选择下载RPM包,也可以选择下载tar.gz的压缩文档。尽管这两种的安装方式略有不同,但是经过以下三步基本上可以让显卡在X-Window中正常使用。
1.安装驱动程序
(1)选择下载RPM包:
# rpm -Uvh --force intelgraphics_ 20040607_i386.rpm
|
(2)选择下载的是tar.gz压缩包要执行下面代码:
# tar xzvf IntelGraphics_060704.tar.gz # cd dripkg # ./install.sh
|
这时程序将自动安装,安装程序将更新/usr/X11R6/modules/drivers/i810_drv.o的驱动程序,使其支持新的i865G芯片组中的显卡。
图2 使用redhat-config-xfree86
2.选择驱动程序
有三种方法可以选择驱动程序:
(1)如果是Red Hat系统则可以运行下面代码:
图2显示为使用redhat-config-xfree86。这个命令可以自动侦测显卡、配置分辨率和色深,以及选择Advanced页面,然后单击
Video Card的Configure按钮,选择正确的显卡。但是,如果是Red Hat Linux
8.0之前版本,则没有这个命令,应该运行下面代码:
这样程序会一步步提示选择正确的驱动程序。
这两种方法都会将结果写入/etc/X11/XF86Config配置文件。
(2)直接更改XFree86的配置文件
直接更改XFree86的配置文件这种方法在Linux系统中比较通用,运行下面命令:
# vi /etc/X11/XF86Config 或者 XF86Config-4
|
在其中找到下面代码,将Driver后面改为i810,表示使用i810_drv.o驱动程序:
Section "Device" Identifier "Videocard0" Driver "i810" VendorName "Videocard vendor" BoardName "Intel 865" EndSection
|
该配置文件中其它需要注意的地方如下:
Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Unknown monitor" HorizSync 31.5 - 37.9 VertRefresh 50.0 - 70.0 Option "dpms" EndSection
|
上面这个部分是设置显示器的类型,不知道自己的显示器叫什么名字没关系,但需要将显示器的垂直刷新率和水平刷新率正确设置,这两个参数可以查看显示器的说明书。以上是15英寸显示器最常用的频率,如果这个参数设置错误,显示器就会花屏或黑屏。
Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 16 SubSection "Display" Depth 16 Modes "1024x768" "800x600" "640x480" //默认会使用最高的分辨率 EndSubSection EndSection
|
这里是设置显示模式的地方,包括屏幕的分辨率和色
深,默认使用最高的分辨率。如果想使用较低的分辨率,那么将高分辨率删除就可以了,在这个配置文件中显示器会使用“1024×768”分辨率,色深是16
位色。有关XF86Config文件的详解可以参看它的man page:
(3)让XFree86自己生成XF86Config文件
运行下面命令:
XFree86将自动侦测显卡及显示器,在用户的主目录下生成一个名叫XF86Config.new的文件。可以用以下命令测试这个文件运行是否正常:
# XFree86 -xf86config ~/XF86Config.new
|
这个代码是指定X Server使用 ~/XF86Config.new作为配置文件。
如果有白色X型的光标显示,就可以按“Ctrl+Alt+Backspace”结束X。然后运行下面的命令,用新的配置文件来替换系统配置文件。
# cp ~/XF86Config.new /etc/X11/XF86Config
|
3.启动X-Window
运行startx,启动X-Window。这种方式依赖于控制台(tty),将X-Window作为当前控制台的Shell子进程来运行。
另一种方法是运行桌面管理程序gdm(GNOME桌面管理程序)、kdm(KDE的桌面管理程序)或xdm(XFree86的桌面管理程序)。这种方式不依赖于当前的Shell,即使当前Shell关闭,X-Window一样会继续运行。
以上三步是Linux下安装X-Window显卡驱动程序的通常步骤,绝大多数显卡都可以经过以上的步骤正常使用,所不同的是下载地址和具体的驱动程序的生成方式可能不一样
比如,笔记本电脑上常用的Intel
815集成显卡的安装,我们同样可从Intel网站上下载815显卡部分的RPM包,网址为http:
//downloadfinder.intel.com/scripts-df/filter_results.asp?strOSs=39&strTypes=
DRV%2CARC&ProductID=797&OSFullName= Linux*&submit=Go%21。
# rpm -ivh xfcom_i810-1.2-3.i386.rpm
|
然后重复以上的第二至第三步:
# redhat-config-xfree86 //选择正确的驱动程序 # startx //启动X-Window
|
安装其它显卡的驱动
1. 安装GeForce FX 6800显卡驱动
如果购买了GeForce FX
6800显卡(包含其它nVIDIA显卡),希望玩玩刚刚发布的DOOM3,结果却发现X-Window无法启动,这时可以去nVIDIA网站http:
//下载最新的显卡驱动。
nVIDIA的Linux驱动程序做得相当精细,下载后得到文件NVIDIA-Linux-x86-1.0-6106-pkg1.run,运行它就可以看到一个tui(文本用户界面):
# chmod 700 NVIDIA-Linux-x86-1.0-6106-pkg1.run //设置执行权限 # ./ NVIDIA-Linux-x86-1.0-6106-pkg1.run. //运行安装程序
|
程序将会一步步提示安装nVIDIA的驱动。该驱动包含两部分:一部分是内核驱动,用于命令行界面的驱动,在安装这部分时,如果不是它支持的几种内核版本需要编译内核;另一部分是针对XFree86的驱动。
运行中常常出现的错误是在编译内核时找不到内核的源文件,用以下方法可以解决这个问题。先下载安装Kernel的源文件:
# rpm -ivh kernel-sourceXXX.rpm //在Red Hat安装光盘上 或者 # tar zxvf linux-2.XXX.tar.gz //可以从网上下载,比如kernel.org
|
指定源文件位置:
# ./ NVIDIA-Linux-x86-1.0-6106-pkg1.run. --kernel-source-path=
|
安装驱动程序后,如果有问题可以参考刚才安装Inter i865显示驱动的方法,来调整显卡的驱动和参数,运行
redhat-config-xfree86、XFree86
-configure或直接更改/etc/X11下的XF86Config文件。另外,如果希望直接得到nVIDIA的驱动程序,不想自动安装,可以运行
以下命令将包中的文件解开。
# ./ NVIDIA-Linux-x86-1.0-6106-pkg1.run -x
|
在./NVIDIA-Linux-x86-1.0-6106-pkg1/usr/share/doc目录下,有一个XF86Config.example的文件,如果遇到XF86Config文件配置有问题,可以直接查看该文件中的显卡驱动部分内容。
2.安装ATI 9800显卡驱动
从下面地址可以下载ATI 9800显卡驱动fglrx-4.3.0-3.11.1.i386.rpm文件,然后执行:
# rpm -Uvh --force fglrx-4.3.0-3.11.1.i386.rpm //强制升级/安装驱动程序包
|
注意,要看看是否有错误发生,如果有请仔细查看出错信息。
# fglrxconfig //使用ATI的配置工具配置驱动程序
|
该程序会提问一些问题,当问到是否创建一个XF86Config-4文件时,要回答“y”,这样就可以生成新的配置文件。
# startx //重新启动X # fglrxinfo //可以查看驱动程序是否安装成功
|
3.常见显卡驱动的下载地址
◆nVIDIA显卡驱动程序地址http://。
◆ATI显卡驱动程序地址(ATI网站访问速度较慢,可以多试几次)。
◆VIA芯片集成显卡驱动程序。
◆SIS显卡驱动程序地址。
◆Intel芯片组显卡驱动程序地址intel.com/scripts-df/support_intel.asp?iid=HPAGE+ header_support_download&。
◆Intel笔记本迅驰显示驱动程序地址intel.com/scripts-
df/filter_results.asp?strOSs=39&strTypes=DRV%2CARC&ProductID=
922&OSFullName= Linux*&submit=Go%21。
ATI系列笔记本驱动程序要升级XFree86。
如果实在找不到显卡驱动程序,可以试着按照上面的介绍升级XFree86到4.3或4.4。它自带有一些显卡驱动程序,如ATI M9000笔记本显卡、SIS显卡等驱动程序。
4.内核支持显示模式调整
在命令行界面下,可以调整内核的显示模式,让它使用较高分辨率,设置方法如下。
(1)使用GRUB作为boot loader,则运行命令:
# vi /boot/grub/grub.conf
|
在kernel /vmlinuz-2.4.21-4.EL ro
root=LABEL=/行后添加vga=0x314。这是设置显示模式,vga是Kernel的参数,0x314表示的是16进制的314换算成10进
制为788,所以vga=788跟与vga=0x314是一样的。我们把该行改为下面一行:
kernel /vmlinuz-2.4.21-4.EL ro root=LABEL=/ vga=0x314
|
这时会发现Linux启动时显示一个企鹅图标,使用的是800×600分辨率,vga参数含意如表1。
(2)使用LILO作为boot loader,则在/etc/lilo.conf文件中将append处改为如下一行:
append=" root=LABEL=/ vga=0x314"
|
之后运行下面命令:
使用新的配置文件更新MBR。
常见显卡故障的处理
当无法启动X-Window时,应该仔细查看出错信息。以下为X-Window启动不成功的常见原因。
1.当屏幕为全黑或花屏时,一般是显示器参数设置有误。首先应该按“Ctrl+Alt+Backspace”,结束X-Window。然后查看显示器说明
书,在/etc/X11/XF86Config-4或XF86Config文件中,将水平和垂直刷新率改成正确的值,或者运行redhat-config
-xfree86和XFree86-configure。
2.XF86Config文件损坏或丢失,运行redhat-config-xfree86或XFree86 -configure。
3.没有控制台所有权。比如,以shrek用户登陆,然后用命令“su - joan”切换为用户joan,这时使用startx就会出错,提示没有该控制台的所有权。这时,可以用exit退出joan的Shell,然后再运行startx。
4.硬盘没有空间。在使用KDE或GNOME时,每次启动X-Window都要占用一定空间放临时文件,如果/tmp或主目录下无法写入文件,这时X-Window就会出现一些奇怪的错误。
5.显卡驱动有问题。下载安装正确的驱动,运行redhat-config-xfree86或XFree86 -configure。
6.xfs服务没有启动。xfs是字体服务,它不启动则X-Window无法启动。使用下面命令可以启动该服务:
或者
# /etc/rc.d/init.d/xfs start
|
如果希望该服务每次自动启动,则使用下面命令:
声卡驱动程序概述
Linux下声卡的驱动是作为普通内核模块来加载的,系统内置的声卡驱动在/lib/modules/2.XXX/kernel/drivers/sound/目录下。以下是系统内置的声卡驱动模块:
# ls /lib/modules/2.XXX/kernel/drivers/sound/ ac97_codec.o cs4232.o forte.o uart401.o ac97.o cs4281 i810_audio.o via82cxxx_audio.o ad1848.o cs46xx.o maestro3.o ymfpci.o ad1889.o emu10k1 rme96xx.o audigy es1370.o soundcore.o cmpci.o es1371.o sound.o
|
结合前一篇所介绍的内容可以知道,系统在启动时会通过以下两个文件来加载模块:/etc/modules.conf和
/etc/rc.d/rc.sysinit,声卡也是在这里加载的。如果新安装了一块声卡,在Red Hat
Linux中则可以使用kudzu命令来搜索声卡,并且自动配置。如果系统中没有内置的驱动程序,则可以按以下步骤来安装(以VIA的8237南桥集成声
卡为例)。
从VIA的网站上下载最新的驱动程序LinuxAudiov230.gz。
解压缩:
# tar xzvf LinuxAudiov230.gz
|
编译src.rpm包:
# rpmbuild --rebuild viaudiocombo-2.2-3.src.rpm
|
如果没有rpmbuild命令则运行:
# rpm --rebuild viaudiocombo-2.2-3.src.rpm # cd /usr/src/RPM/RPMS/iX86 //这里的X-Window根据机器情况而不同 # rpm -ivh --force viaudiocombo-2.2-3.iX86.rpm //安装编译好的驱动程序
|
Intel主板的集成声卡一般使用的是i810_audio.o作为驱动,目前新版本Linux内置的驱动可以直接支持。
Linux“万能声卡驱动”安装
计算机中的声卡千差万别,除了Intel、VIA等大厂的声卡外,大多数声卡都没有专门写Linux下的声卡驱动程序。那么怎样在Linux中使用找不到驱动程序的声卡呢?可以试一试Linux下的“万能声卡驱动”,它可以驱动大量的声卡。
目前主要有两种万能声卡驱动:一种是ALSA(Advanced Linux Sound
Architecture),它采用GPL,针对Linux系统源代码公开,主页是;另一种是
OSS(Open Sound
System),它是商用软件,针对主流Unix系统,Linux也在它的支持之列,主页是。
1.安装ALSA驱动程序
(1)查找声卡型号
从alsa-doc/处查找是否有使用的声卡型号,如果有则一定要从此处点击后面
“details”链接来查找安装方法。这里以安装创新Soundblaster
Audigy声卡的驱动为例,其它的声卡请查看details中的具体方法。
在安装之前需要安装内核的源代码包,可以从Red Hat光盘上安装kernel-sourceXXX.rpm包,或者从kernel.org网站上下载当前系统版本的源代码包。
安装源码包:
# rpm -ivh kernel-soureXXX.rpm
|
或者
# tar zxvf kernel-2.XXX.tar.gz # cd /usr/src/linux2.XXX/ //到源代码的目录中 # cp /boot/config-2.XXX ./.config //将当前版本的内核配置文件拷贝至源码目录
|
(2)下载驱动程序
从alsa/ftp/driver/下载驱动程序alsa-dirver-
1.0.6rc1.tar.bz2;从alsa/ftp/lib/下载库文件alsa-lib
-1.0.6rc1.tar.bz2;从alsa/ftp/utils/下载工具alsa-
utils-1.0.6rc1.tar.bz2。
(3)安装驱动
# cd /usr/src # mkdir alsa # cd alsa # cp alsa* ./ # tar -xjvf alsa-driver-1.0.6rc1.tar.bz2 # cd alsa-driver-1.0.6rc1 # ./configure --with-cards=emu10k1 --with-sequencer=yes; # make # make install # chmod a+rw /dev/dsp /dev/mixer /dev/sequencer /dev/midi
|
安装lib包和utils包:
# cd .. # tar -jxvf alsa-lib-1.0.6rc1.tar.bz2 # cd alsa-lib-1.0.6rc1 # ./configure # make # make install # cd .. # tar -jxvf alsa-utils-1.0.6rc1.tar.bz2 # cd alsa-utils-1.0.6rc1 # ./configure # make # make install
|
(4)更改配置文件
# vi /etc/modules.conf alias char-major-116 snd alias snd-card-0 snd-emu10k1 # module options should go here alias char-major-14 soundcore alias sound-slot-0 snd-card-0 alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias sound-service-0-12 snd-pcm-oss
|
但是,ALSA驱动后的声卡默认是不发声的,可以用ALSA mixer来开启。直接运行以下命令可以全部开启所有的音量:
也可以使用以下命令来设置音量的大小:
# amixer -c 0 sset 'Master',0 100%,100% unmute # amixer -c 0 sset 'PCM ',0 100% unmute
|
可以编辑/etc/modules.conf文件,添加如下一行让声卡每次启动时调整音量为100%:
post-install snd-card-0 amixer -c 0 sset 'Master', 0 100%,100% unmute && amixer -c 0 sset 'PCM ', 0 100% unmute
|
2.设置OSS声卡驱动
(1)从download.cgi选择下载OSS的版本,如针对2.4内核的驱动,或者针对2.6内核的驱动。
以下是2.4内核驱动的下载地址ftp://。
(2)安装驱动程序:
# tar zxvf oss3991e-linux-x86-v24.tar.gz #./oss-install
|
将会自动安装其中包含的驱动程序。安装驱动模块前,请使用命令modprobe -r或rmmod把原有的驱动程序卸载。
以上为Linux声卡驱动的大致安装过程。因为Linux下的声卡众多,不可能有一个固定的安装步骤,但大致的步骤是,先编译出针对目前内核版本的驱动模
块,然后再使用insmod或modprobe加载上去,更多的是通过/etc/modules.conf文件自动加载。
理解/etc/modules.conf文件很重要,这是大多数Linux系统加载模块的文件,有些Linux是/etc/conf.modules文
件。如果声卡是非即插即用的,可以在/etc/modules.conf文件中使用options snd-card-0 io=0x300
irq=5来设置I/O资源及中断号。
阅读(877) | 评论(0) | 转发(0) |