如何让我的 ATI / AMD 驱动程序与 3.2.0.x 以上的任何内核一起工作?
什么起了作用
安装了原始 AMD64 版本的 Ubuntu 12.04 ISO 映像。刻录 DVD 并安装,一开始显示内核 3.2.0-23。5.1 环绕声工作正常。从 AMD 网站为我的 Radeon HD R6870 显卡安装了 ATI(现在是 AMD)视频驱动程序。fglrxinfo 出现并报告正常。
问题
内核 3.2.0.x 一直锁死,所以我尝试了更高的内核版本。但 ATI / AMD 驱动程序无法安装在任何高于 3.2.0.x 的内核上
我尝试过的方法
我已经看过这个教程很多次了(https://help.ubuntu.com/community/BinaryDriverHowto/ATI) 并且它不能在除 3.2.0.x 之外的任何内核上运行。
我在这里遇到的问题是,ATI / AMD 驱动程序适用于内核为 3.2.0-23 和 24 的 12.04 Precise,但计算机一直锁定。虽然我的所有游戏都可以运行,但锁定是随机的并且持续发生。因此,我花了 3 天时间在网上搜索,试图找到答案,据说锁定问题只需更新内核即可解决。所以我照做了。尝试了许多内核。所有内核都没有锁定。但 AMD 网站上的受限 AMD 驱动程序无法安装。而且无论我尝试哪个内核或版本,开源 AMD 驱动程序都从未安装过。
3D 类型错误输出示例
Javax.media.opengl.GLException: glXGetConfig failed: error code GLX_NO_EXTENSION
at com.sun.opengl.impl.x11.X11GLDrawableFactory.glXGetConfig(X11GLDrawableFactory.java:651)
at com.sun.opengl.impl.x11.X11GLDrawableFactory.xvi2GLCapabilities(X11GLDrawableFactory.java:350)
at com.sun.opengl.impl.x11.X11GLDrawableFactory.chooseGraphicsConfiguration(X11GLDrawableFactory.java:174)
at javax.media.opengl.GLCanvas.chooseGraphicsConfiguration(GLCanvas.java:520)
at javax.media.opengl.GLCanvas.<init>(GLCanvas.java:131)
at haven.HavenPanel.<init>(HavenPanel.java:68)
at haven.HavenPanel.<init>(HavenPanel.java:78)
at haven.MainFrame.<init>(MainFrame.java:182)
at haven.MainFrame.main2(MainFrame.java:306)
at haven.MainFrame.access$100(MainFrame.java:34)
at haven.MainFrame$7.run(MainFrame.java:360)
at java.lang.Thread.run(Thread.java:722)
当然,这是 fglrxinfo 显示的内容:
X Error of failed request: BadRequest (invalid request code or no such operation)
Major opcode of failed request: 139 (ATIFGLEXTENSION)
Minor opcode of failed request: 66 ()
Serial number of failed request: 13
Current serial number in output stream: 13
编辑:我忘了说我确实看过这个邮政在过去的几天里,它并没有帮助。
答案1
通常有两种驱动程序选项效果较好:
- 开源
radeon
驱动程序 fglrx
来自官方存储库的软件包
在这种情况下,64 位内核通常会获得更好的支持。
你也可以尝试 12.6 测试版来自 AMD 的驱动程序。
如果你需要指南,可以尝试AMD Linux 驱动程序的非官方 Wiki。
不要在旧驱动程序包上安装新的驱动程序包。记得卸载以前的驱动程序包。
答案2
我运行的是内核为 3.2.0-26 的 Ubuntu 12.04,安装 ATI 和催化剂驱动程序时遇到了麻烦。我运行的是 Radeon hd5xxx 卡,尝试安装驱动程序但失败了。这个方法对我有用,因为我的安装已损坏,无法重新安装,并给出了相同的 DKMS 错误。
我也遵循了二进制驱动程序,但由于它依赖于卸载是否正常,而我的驱动程序却不能正常卸载,所以它毫无用处,无法修复我的驱动程序。我最终从不同的网站整合了几个修复程序,终于让我的驱动程序正常工作了。
我使用恢复控制台恢复了一些显示后执行了此操作。我当时可以访问 synaptic,所以希望您也能访问。
我做的第一件事是添加一个存储库并添加所有更新。图形正如我所料失败了。
sudo add-apt-repository ppa:gnome3-team/gnome3
这添加了主存储库中没有的一些库,并且还修复了其他一些问题。
然后:
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.BAK
- 为了安全sudo rm /usr/share/ati/fglrx-uninstall.sh
- 无需执行任何操作即可阻止清除失败。sudo apt-get remove --purge fglrx*
(有错误但继续)sudo rm -rf /usr/share/lib/fglrx
sudo rm -rf /usr/share/lib32/fglrx
打开 synaptic 并标记
fglrx
安装。这最终添加了驱动程序。- 再次使用 synaptic,添加
ATI catalyst control center
。
重启后,我的双屏出现了问题,但安装了催化剂后,我解决了这个问题,现在一切都正常了。它甚至解决了我在双屏间移动窗口或激活桌面立方体旋转时出现的闪烁问题。
答案3
新的 AMD 12.11 测试版驱动程序(发布于 2012.10.23)将与较新的内核兼容(在我的情况下,它们与 3.5 兼容)。但是,要安装它们,您必须先安装 linux-headers-generic。因此:
sudo apt-get install linux-headers-generic
每次更新内核时,您都必须从命令行重新安装它们(ctrl+alt+F1 以进入低图形模式的控制台)。
以 sudo 身份运行驱动程序,并使用 --force 选项,例如:
sudo ./amd-driver-installer-catalyst-12.11-beta-x86.x86_64 --force
PS这个脚本将消除水印。