Intel Linux 显卡驱动安装指南
1. 简介
通常情况下, Intel 显卡驱动已经被集成在 Linux 发行包里面了,用户无需单独安装。
这篇指导是为那些自己从头开始编译最新版本驱动的人而写的。当你想订制显卡驱动或者了解更多的时候,这篇文章就会管用。
本篇第 3 部分对 2D 图形驱动的编译作了介绍。因为有些人可能只对 2D 图形感兴趣,他们想要了解一些 2D 的新特性以及哪些 bug 被修正了。第 4 , 5 部分则介绍了整个代码的编译,其中也包括了 3D 图形驱动。
2. 获取源代码
要使 Intel 显卡芯片组工作起来,以下组件是必需的:
1) 内核模块 agpgart 和 drm ;
内核驱动模块的源码在 Linux 内核中。
2) libdrm ;
libdrm 被包含在 freedesktop drm 的源码里;
3) Xorg 2D 驱动: xf86-video-intel ;
4) Mesa 和 3D 驱动;
要获得上述组件详细的下载地址,可以参考:
http://intellinuxgraphics.org/download.html.
3. 2D 驱动编译
要测试或者使用最新的 Intel X 驱动,你不需要更新其它的组件,比如 Mesa 或 DRM 驱动。要编译驱动,你需要安装一些开发包(下面的列表是以 Fedora 平台下的驱动编译需求为例)。
- autoconf
- automake
- libtool
- hwdata (for PCI IDs)
- xorg-x11-server-Xorg >= 1.3.0.0-6
- xorg-x11-server-sdk >= 1.3.0.0-6
- libXvMC-devel
- mesa-libGL-devel >= 6.5-9
- libdrm-devel >= 2.0-1
如果上面的软件包都有了,那么编译就非常的简单了:
$ ./autogen
$ make
$ sudo -c "make install"
注意:上面的环境取决于你的 Linux 发行版本,你可能需要一些额外的编译选项,比如 --prefix=, --exec-prefix=, --libdir=, --sysconfdir= 等等,还取决于你的 X server 的安装。(更多详细信息,可以通过 ./configure –help 获得)
一旦安装了新的驱动,要确保 xorg.conf 文件(通常在 /etc/X11 目录下)指向了新的驱动,它的名字可能是 intel 或是 i810 ,前提是 make install 那一步创建了正确的链接。
4. 所有代码编译
这里我们认为你已经下载了涉及到的全部组件到 $DOWN_ROOT 目录,除了内核以外。
4.1 Linux 内核
大多数情况下,使用当前最新的内核就可以了,如果需要的话你也可以在上面定制自己的内核。
4.2 libdrm
编译和安装 libdrm :
$ cd $DOWN_ROOT/drm
$ ./autogen.sh
注意: libdrm 默认会被安装到 /usr/local/lib 目录,要安装到 /usr/lib 目录可以运行:
$ ./autogen.sh --prefix=/usr --exec-prefix=/
$ make
$ make install
这样 libdrm 会被安装到 /usr/lib 目录下。
4.3 Xorg 2D 驱动
如果你安装 xorg 到其他目录了( $XORG_DIR ),而不是覆盖了发行版中自带的 xorg ,那么你需要设定两个宏定义:
$export PKG_CONFIG_PATH=${XORG_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH
$ export ACLOCAL ="aclocal -I ${ XORG_DIR }/share/aclocal"
当然,如果你安装了 xserver 到不同的目录,你需要编译所有 xorg 模块。要获得编译 xserver 和 xorg 模块的详细信息,可以参考
《 Xorg Modular Developers' Guide 》
注意:你可能需要最新的 Xorg 和 Xserver 来和最新的 intel 驱动保持同步。
编译 2D 驱动也很简单:
$ cd $ DOWN_ROOT /xf86-video-intel
$ ./autogen.sh --prefix=${ XORG_DIR }
$ make && make install
2D 驱动库文件 intel_drv.so 会被编译到 $ XORG_DIR /lib/xorg/modules/drivers/ 目录下。
4.4 Mesa 和 3D 驱动
你可以参考 http://wiki.x.org/wiki/Development/git 获得最新的编译过程,这里不再作详细的描述。
如果你只需要 Intel 驱动,可以在运行 autogen.sh 的时候添加参数直接指定:
--with-dri-drivers="i915 i965"
5. 所有代码配置
5.1 加载驱动模块
如果 agpgart 和 drm 没有被编译进内核,当系统启动的时候,你需要加载一下模块: agpgart , intel-agp , drm and i915 。
要想在系统启动时候自动加载内核,那么需要编辑文件 /etc/modules( 在 Debian/Ubuntu 系统下 ) ,添加模块的名称;或者编辑文件 /etc/rc.local ,添加下面的内容比如: modeprobe agpgart 。
5.2 打开 Intel 驱动
确定 Intel 驱动在 Xorg 配置文件里被用到了 ( 通常是 /etc/X11/xorg.conf) :
Section "Device"
Identifier "name"
Driver "intel"
Entries...
EndSection
5.3 打开 DRI
DRI ( Direct Rendering Infrastructure ,直接渲染架构)是一个框架,它允许在 X 窗口系统下以一种安全有效的方式直接存取图形硬件设备。这里需要在 xorg.conf 中打开 DRI 。
首先,确保 GLX 和 DRI 模块已经被加载了:
Section "Module"
# ...
Load "glx"
Load "dri"
# ...
EndSection
接着,合理地设置 DRI 的权限,允许任意使用 DRI :
Section "DRI"
Mode 0666
EndSection
最后,重新启动 X server 之后,你可以检查 DRI 是否已经工作了,运行 glxinfo ,它应该显示:
direct rendering: Yes
6. 参考文献
[1] http://intellinuxgraphics.org/testing.html - Intel Linux graphics website.
[2] http://wiki.x.org/wiki/Development/git - Document about building and installing whole stack.
[3] http://wiki.x.org/wiki/ModularDevelopersGuide - Document about building and installing Xorg.