当前位置:Linux教程 - Linux - 如何驱动i810显卡

如何驱动i810显卡

fjxufeng(风过留枫) 译


本文将详细说明如何在你的Linux系统上使用Intel i810和i810E芯片组的显卡。本文是基于Redhat Linux撰写的,所以也许在其它发行版本上可能会失效。

软件需求:

XFree86* 3.3.5
Kernel version 2.2.X
Glibc 2.1
gcc

内核配置:

1.检测你的内存

Linux内核2.2.x版存在一个缺陷,它无法认到系统中的所有的RAM。这将使你的系统看起来十分缓慢。我们可以通过在命令行执行以下命令来检查:
cat /proc/meminfo
然后观察类似于以下的行:
MemTotal: XXXXX kb
如果这个数字明显小于机器RAM总数,则你就需要告诉Linux内核,你拥有多少RAM。注意,这里显示出来的可能会比系统实际RAM少1-2M。这是因为显卡会占用了1-2M的RAM,用作帧缓冲区。

2.说明RAM的总数

为了让Linux内核能够知道你的系统中有多少RAM可用,你可以通过在启动Lilo时加上内核启动参数来实现。具体来说,就是出现“LILO”提示符时,我们通常是输入内核的名称(这个名称是在配置Lilo时配置的),当你输入Linux系统的内核名称(默认是linux)时,在后面添上mem=xxM。(xx就是你的实际RAM大小,别忘了还要减去被显卡用掉的1M,否则你的系统将经历一次痛苦的启动过程)。例如:
LILO: linux mem=127M
如果刚才的工作能使Linux成功地工作的话,你就可以将它加入/etc/lilo.conf文件中。打开这个文件,将类似以下一行加在“label=linux”一行的后面:
append=""mem=128M""
存盘退后,在命令行输入以下命令重新生成lilo:
/sbin/lilo


安装X Server:

1.检测当前系统中Xfree86的版本

你可以在命令行状态下执行以下命令,来检测当前安装的Xfree86的版本:
X -version

2.安装Xfree86 3.3.5

如果你还没有Xfree86 3.3.5,则你必须先安装它。如果你拥有的Xfree86的版本是3.3.5以前的,则你必须升级它。如果你无法在光盘上找到安装版或升级版,你可以到Xfree86的主页:www.Xfree86.org上下载。
当你安装了Xfree86以后,你先使用vga16 server。使用这个“兼容”的server将获得640*480*16色的分辨。当你成功地运用了vga16 server以后,就可以通过升级成为新安装的XFCom-I810 X server而获得更高的分辨率。

3.下载XFCom-I810和agpgart

从http://support.intel.com/support/graphics/intel810/上下载XFCom-I810和agpgrat,这里有RPM包格式的,也有tar包格式的,根据你的Linux版本选择合适的。若是Redhat Linux则下载以下两个文件:
XFCom-i810-glibc2.1-1.0.0-rh60.i386.rpm(或XFCom-i810-glibc2.1-1.0.0.tar.gz)
I810Gtt-0.1-4.src.rpm(或I810Gtt-0.1-4.src.tar.gz)

4.安装XFCom-I810

以root用户登录linux系统执行以下命令:
1)如果你下载的是RPM格式的包,则执行:
rpm -Uvh XFCom-i810-glibc2.1-1.0.0-rh60.i386.rpm
2)如果你下载的是TAR格式的包,则执行:
tar -zxpvf XFCom-i810-glibc2.1-1.0.0.tar.gz
cd XFCom-i810-glibc2.1-1.0.0
./INSTALL

5.编译安装内核模块

在内核模块安装之前必须先编译。日后如果你升级了你的内核,则需要重新编译、安装这个内核模块,因此你最好将它的源文件放在安全的地方。
同样,我们以root用户登录linux系统执行以下命令:
1)如果你下载的是RPM格式的包,则执行:
rpm --rebuild I810Gtt-0.1-4.src.rpm
注意:执行这个命令后,你需要观察它生成了什么rpm文件,这个文件在后一个 命令中将使用。
rpm -Uvh /usr/src/redhat/RPMS/i386/i810Gtt-0.1-4.i386.rpm
2)如果你下载的是TAR格式的包,则执行:
mkdir temp_i810
cd temp_i810
tar -zxpvf /path to tar/I810Gtt-0.1-4.src.tar.gz
make
make install

6.编辑XF86Config文件

以root用户登录系统,使用你喜欢的文本编辑器编辑/etc/X11/XF86Config文件。在这个文件中增加一个如下所示的device小节。也许你会发现在这个文件中已经存在类似的小节,如果是这样,你也无需修改其它的device小节,只需增加进去就行了。
Section ""Device""
Identifier ""i810""
EndSection
然后增加如下所示的screen小节,你应将其它svga screen小节删除。注意,不要删除vga16 screen小节。你必须编辑Monitor那一行,使其与你所拥有的显示器相吻合。你也可以通过在这个文件中的其它screen小节,获得Monitor的值。注意,如果你的显示器无法支持以下指定的分辨率,则略去不支持的分辨率,否则将可能损坏你的显示器。
Section ""Screen""
Driver ""svga""
Device ""i810""
Monitor """"
Subsection ""Display""
Depth 8
Modes ""640x480"" ""800x600"" ""1024x768"" ""1152x864"" ""1280x1024"" ""1600x1200""
ViewPort 0 0
EndSubsection
Subsection ""Display""
Depth 16
Modes ""640x480"" ""800x600"" ""1024x768"" ""1152x864"" ""1280x1024"" ""1600x1200""
ViewPort 0 0
EndSubsection
Subsection ""Display""
Depth 24
Modes ""640x480"" ""800x600"" ""1024x768"" ""1152x864"" ""1280x1024""
ViewPort 0 0
EndSubsection
EndSection
注意:你应该根据自己需要的色深和分辨率修改modes语句。在这个配置中你的桌面将采用mode行指定的最大的分辨率。你的可视范围可能会小于整个桌面(也就是说桌面的某些部分在显示器显示范围的外面)如果你对这个部分感到十分困难,请参考XFree86 FAQ或相关书籍。

7.设置X server链接

以根用户登录系统,执行:
ls -l /etc/X11/X
你会发现,这时X是链接到vga16 server上的,我们必须修改它。
ln -sf /usr/X11R6/bin/XFCom_i810 /etc/X11/X
将X链接到XFXom_i810上。

8.启动X server

如果你已经运行了X,则你必须退出它,然后重启。如果你的系统是一启动就启动X的话,则按组合键“CTRL+ALT+Backspace”重启X。如果你还没有启动X,则执行命令:
startx -- -bpp 16
参数“-bpp 16”将告诉X server启动16位色深(也就64K色),你可以使用“-bpp 8”或“-bpp 24”启动8位色深、24位色深。启动后,你可以使用组合键“CTRL+ALT+小键盘上的+”和“CTRL+ALT+小键盘上的-”来调整当前色深下的分辨率。更多的内容可以参考XFree86 FAQ和相关书籍。