Debian中启用Radeon KMS

2863阅读 0评论2010-02-12 blue_stone
分类:LINUX

很早就想启用Radeon的KMS来试一下, 可是长期以来Debian一直不支持启用radeon显卡的KMS, 只好继续等着. 前些日子libdrm-radeon1进入了unstable, 我就觉得有些盼头了, 现在终于可以启用radeon显卡的KMS了.

目前只有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, 只需要安装相应的软件包即可, 不需任何额外设置.
上一篇:今日的心情
下一篇:新年快乐