早就据说开源驱动现在已经不错了,就试着把系统里面的闭源驱动(fglrx)切换成开源驱动。
首先,先卸载闭源驱动:emerge -C x11-drivers/ati-drivers,因为现在用的xorg.conf是通过ati的命令生成的,先干掉。
然后,在make.conf中的VIDEO_CARDS环境变量中,将原来的fglrx改成radeon,重新emerge xorg-server和libdrm。
为了开启kms,需要重新改下内核,具体的做法可以参照官方的文档。需要注意的是,要将原来的framebuffer驱动都去掉(Device Drivers->Graphics support->Support for frame buffer devices中的所有驱动),然后将Device Drivers->Graphics support->Direct Rendering Manager和它下面的ATI Radeon和Enable modesetting on radeon by default这两个子项编译入内核(启动Enable modesetting on radeon by default是ATI Radeon的子项)。对于radeon,还有特别重要的一点,就是要将固件编译入内核。首先要确保已经安装了x11-drivers/radeon-ucode这个包,然后在内核中,Device Drivers->Generic Driver Options中选中Include in-kernel firmware blobs in kernel binary,在下面的External firmware blobs to build into the kernel binary中,填入radeon/R600_rlc.bin radeon/R700_rlc.bin(我的显卡是HD 3400 Series),在Firmware blobs root directory中填入/lib/firmware,然后就可以重新编译内核了。
重新编译、安装完内核之后,就是要编辑grub.cfg文件了,去掉原来为splash使用的initrd,直接使用新内核。
重新启动,可以看见字符界面中,已经自动使用了1280×800的分辨率。不过进入kde之后,图形界面非常卡,kde还因为速度慢自动关闭了混成特效。后来发现是mesa没有重新emerge,重新安装了mesa然后重新登陆,原先kwin的效果仍然可以使用,大功告成。