解决Archlinux下ati显卡3D硬件加速失效的问题

问题描述

  • 症状

    进入gnome3桌面环境后很卡,不动还好,一动gnome-shell进程cpu占用就直奔100%。

  • dmesg异常日志

    radeon_cp: Failed to load firmware "radeon/R520_cp.bin"
    radeon 0000:01:00.0: failed initializing CP (-2).
    radeon 0000:01:00.0: Disabling GPU acceleration
    

解决办法

sudo ln -s /usr/lib/firmware /lib/
sudo reboot

经验总结

出现问题时网上不一定能找到你要的答案,像这个问题,网上的论坛里有无数个建议,一个一个试下去其实很浪费时间,试几次之后还没能解决就应该尝试主动分析解决,像这里稍微留意到括号里的-2,就能发现其实它是个错误码, perror一下就知道意思是“找不到文件或目录”,联想到最近几次升级archlinux在把/lib里的东西往/usr/lib下移,其中就包括firemware,这样手工在旧的firmware位置建一个软链接就解决了这个问题。

备注

这个问题应该是由于之前glibc升级时未全部完成引起的,archlinux现在把/lib改为/usr/lib的软链接了,可以手工进行设置为软链接这一步骤来修复。