目前只有experimental中的mesa和xserver-xorg-video-radeon才能够支持radeon kms, 所以在apt的sources.list 必须包含experimental源. 当前我的系统中相关的软件包版本如下:
$ dpkg -l |grep libdrm ii libdrm-dev 2.4.17-1 Userspace interface to kernel DRM services - ii libdrm-intel1 2.4.17-1 Userspace interface to intel-specific kernel ii libdrm-radeon1 2.4.17-1 Userspace interface to radeon-specific kerne ii libdrm2 2.4.17-1 Userspace interface to kernel DRM services - dpkg -l |grep mesa ii libgl1-mesa-dev 7.7-3 A free implementation of the OpenGL API -- G ii libgl1-mesa-dri 7.7-3 A free implementation of the OpenGL API -- D ii libgl1-mesa-glx 7.7-3 A free implementation of the OpenGL API -- G ii libglu1-mesa 7.7-3 The OpenGL utility library (GLU) ii libglu1-mesa-dev 7.7-3 The OpenGL utility library -- development fi ii mesa-common-dev 7.7-3 Developer documentation for Mesa ii mesa-utils 7.7-3 Miscellaneous Mesa GL utilities liang@guoliangc:~$ dpkg -l |grep xserver-xorg-video-radeon ii xserver-xorg-video-radeon 1:6.12.99+git20100201.a887818f-1 X.Org X server -- ATI Radeon display driver $ dpkg -l |grep linux-image ii linux-image-2.6.32-2-amd64 2.6.32-7 Linux 2.6.32 for 64-bit PCs ii linux-image-2.6.32-trunk-amd64 2.6.32-5 Linux 2.6.32 for 64-bit PCs ii linux-image-amd64 2.6.32+23 Linux image on 64-bit PCs $ uname -a Linux xxx 2.6.32-2-amd64 #1 SMP Thu Feb 4 01:59:06 UTC 2010 x86_64 GNU/Linux |
radeon kernel module的modeset参数默认为0, 也就是不启用kernel mode setting(KMS), 如需启用KMS, 则可以使用如下三种方法之一:
1 在grub的启动命令中, 增加如下内容
radeon.modeset=1 |
2 在/etc/modprobe.d/下建立一个以conf结尾的文件, 其中包括
options radeon modeset=1 |
3 在运行modprobe或insmod时指定modset=1
由于radeon内核模块必须在X启动之前插入内核, 否则可能由于, 而需要重启X才能使用radeon KMS, 我写了脚本/etc/init.d/radeon, 内容如下:
guoliangc:/etc/init.d# more radeon #!/bin/sh -e ### BEGIN INIT INFO # Provides: radeon # Required-Start: $local_fs # Required-Stop: # Default-Start: S # Default-Stop: # Short-Description: Load radeon module before X startup ### END INIT INFO # vbetool vbestate save > /tmp/vbesave echo 0 > /sys/class/vtconsole/vtcon1/bind /sbin/modprobe radeon vbetool vbestate restore < /tmp/vbesave echo 1 > /sys/class/vtconsole/vtcon1/bind rm /tmp/vbesave |
然后运行update-rc.d radeon defaults让radeon内核模块在X启动之前装入内核.
目前有一个小问题是, 启动图形后, 无法使用Ctrl+Alt+Fn 切换到虚拟终端. 不过我一般不使用虚拟终端, 这个对我的影响比较小.
和不启用kms相比, 启用kms后, radeon的3d加速更稳定, 我都在考虑使用compiz代替kde的默认窗口管理器了.
2010-4-14日更新:
目前unstable中的mesa和xserver-xorg-video-radeon君已支持kms,不再需要使用experimental中的源.
目前unstable中的udev已经可以很好的加载这些模块, 不再需要手动设置.
现在, 在unstable中启用radeon kms, 只需要安装相应的软件包即可, 不需任何额外设置.