Radeon HD 2000、3000、4000 在 Ubuntu 12.04.2 及更高版本上:fglrx(遗留)不受支持,该怎么办?

升级到12.10量子版后,打包的fglrx驱动不再起作用。我发现这是因为HD 2k-4k系列卡有一个单独的“遗留”fglrx驱动程序,但它与12.10上的xorg服务器不兼容。
这是HD 2000到HD 4000系列卡的最新驱动程序版本。您不能使用非遗留的fglrx驱动程序,但如果您喜欢您的WM合成效果滞后,并且您的YouTube视频播放效果像Pentium MMX系列一样,您可以使用开源的radeon驱动程序。

http://support.amd.com/us/kbarticles/Pages/catalyst126legacyproducts.aspx

通常情况下,可以通过以下方式安装此驱动程序,这是必要的,因为apt-get install fglrx会引入非遗留驱动程序。
wget http://www2.ati.com/drivers/legacy/amd-driver-installer-12.6-legacy-x86.x86_64.zip
unzip amd-driver-installer-*
sudo sh ./amd-driver-installer-*.run --buildpkg Ubuntu/quantal
sudo dpkg -i fglrx*.deb
sudo aticonfig --initial -f

如果您使用的是不同版本的fglrx(例如,不支持这些显卡的更新版本12.9),那么最后一个命令将会给出一个错误信息未检测到支持的硬件或类似的提示。然而,在此时一切都正常工作,并且您将得到一个合理的xorg.conf文件。
... other stuff

Section "Device"
        Identifier  "aticonfig-Device[0]-0"
        Driver      "fglrx"
        BusID       "PCI:1:5:0"
EndSection

... other stuff

此时,您应该重新启动,一切都将与fglrx驱动程序正常工作。然而,在重新启动时,当fglrx尝试加载时,您将在Xorg.0.log中遇到以下错误提示:
(EE) Failed to load /usr/lib/xorg/modules/drivers/fglrx_drv.so: /usr/lib/xorg/modules/drivers/fglrx_drv.so: undefined symbol: noXFree86DRIExtension

一些搜索会显示,这是遗留的ATI驱动程序不支持xserver 1.13或更高版本的问题。 (Arch Linux thread)ATI已经为其最新的(HD 5000系列或更高版本)卡发布了修复后的驱动程序,但尚未为“遗留”卡发布。旧卡不能使用非遗留ATI驱动程序。

一个使用这些HD 2000-4000系列卡的Ubuntu用户应该怎么办?

  1. 等待更新的“遗留”ATI驱动程序,以便与xserver 1.13正常工作?
  2. 降级回到使用xserver 1.11的12.04 Precise?
  3. 尝试将12.10 Quantal上的xserver降级到1.12,这可能会破坏Unity和GNOME?
  4. 强制升级到HD 5000系列或更高版本的显卡?(集成显卡无法实现...)
  5. 其他1337操作,可以轻松解决此问题?

【我在相关主题的回答】(http://askubuntu.com/questions/203960/high-temperature-on-my-laptop-with-radeon-mobility-hd4670/204359#204359)。可能会对你有所帮助。 - Glutanimate
http://askubuntu.com/questions/78906/ati-amd-proprietary-fglrx-graphics-install-fails-how-can-i-resolve-the-problem/97564#97564 - Gerard Roche
10个回答

如果使用AMD/ATI GPU驱动程序:运行以下命令来移除它们,并重新启动:
sudo apt-get purge fglrx

不要将它们重新安装为ATI显卡(而是AMD Catalyst),因为目前不支持Unity-3D。
至于你的选择,我建议选择方案1:等待AMD/ATI赶上。

1我使用的是12.04版本,自从今年夏天开始,我一直在使用RADEON驱动程序,在gnome-shell下进行正常桌面使用时效果相当不错。我的显卡是:(--) RADEON(0): 芯片组:"ATI Radeon HD 2400 Pro" (芯片ID = 0x94c3) - Rmano
@Rmano,我自己在12.04上使用ATI Radeon驱动程序时没有任何问题。但是,在12.10上,这些驱动程序非常糟糕。导致这种情况的原因有:a. 12.10中出现了新的Unity变体。b. 12.10取消了Unity-2D。 - TomKat
这是一个严重的消息。你知道Radeon驱动是否与Gnome Shell兼容吗?我在阅读这个消息之前就已经把手放在了"更新"按钮上。 - Rmano
1@Rmano Radeon显卡驱动程序(称为fglrx)与gnome-shell兼容性良好,但与新的xserver不兼容。然而,我相信目前使用开源驱动程序应该不会有问题。你也可以通过它们来进行相当不错的游戏体验。只需等待AMD发布类似于更新或补丁的内容,或者等待Canonical或其他FOSS社区/开发者发布相关内容。我也放弃了fglrx,改用开源驱动程序进行12.10升级,对此毫不后悔。 - TomKat
嗯,我指的是开源驱动程序,就像Radeon(因为这是它们在Xorg日志中的标识),与专有的fglrx相对立...也许我搞错了。不过,你试过12.10版本的开源驱动程序吗?它们能和gnome-shell一起使用吗?谢谢! - Rmano
1是的,开源驱动程序与xserver、Unity (3D)和gnome-shell完美兼容。 - TomKat

我有一台ATI Mobility 4650 HD显卡,从Tomasz Makarewicz的AMD Catalyst Legacy PPA安装后,我的Unity和OpenGL都出了问题。我通过在2012年Ubuntu论坛帖子无法在12.10中安装ATI专有驱动程序。Unity不见了中找到解决方法,使它们重新正常工作了。
sudo sh /usr/share/ati/fglrx-uninstall.sh
sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*

sudo rm /etc/X11/xorg.conf

sudo apt-get install --reinstall xserver-xorg-core libgl1-mesa-glx libgl1-mesa-dri libgl1-mesa-glx libgl1-mesa-dri
sudo dpkg-reconfigure xserver-xorg

sudo reboot

我希望这能帮到您,直到ATI发布官方驱动程序。

我觉得你遇到了相反的问题。这会有所帮助,因为ATI不再支持5000以下的显卡。这个方法有效是因为你清除了专有驱动程序,让更好的内置开源驱动程序发挥作用。在从12.04升级到14.04后,我的桌面完全没有显示,而这个方法解决了我的所有问题。 - Cerin

有一个ppa:makson96/fglrx PPA提供了传统驱动程序。它还会降级您的内核和X服务器到旧版本,因为传统驱动程序与新版本的内核和X服务器不兼容。但是,请阅读链接中的发布说明,因为该驱动程序与Ubuntu 13.04中使用的Unity不完全兼容。
如果您想使用PPA,请从终端运行以下命令来降级内核和X服务器,并安装传统驱动程序:
sudo add-apt-repository ppa:makson96/fglrx
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fglrx-legacy

我有一台Compaq Presario CQ56,配备了ATI Mobility Radeon HD 4250。尝试使用ppa存储库(如lienmeat所提到的),结果使用了旧版驱动程序导致系统崩溃。
实际上,降级Xserver效果不错,但fglrx不行。事实上,Ubuntu无法检测到我的显卡,因此我甚至无法下载操作系统一直建议我的“专有驱动程序”。
换句话说,我不建议使用上述方法安装旧版驱动程序,最好的选择是等待修复。
(对不起,我的英语不好,我来自哥斯达黎加,我的英语不如我的西班牙语好 xD)

不要下载操作系统建议的驱动程序。安装我在原始问题中提供链接的Catalyst 12.6 Legacy驱动程序,然后使用命令进行安装。 - Andrew Mao
如果使用12.10版本,就不要安装ATI驱动程序。在我尝试过的所有12.10系统上,它们都失败了。不过,在12.04版本中运行得非常好。新的xserver和Unity不受fglrx支持,并且Unity-2D已经停止维护。 - TomKat

开源驱动对我来说也可以,即使性能比fglrx差一些,只要它有适当的功耗管理。
我有戴尔Inspiron 1545笔记本,配备ATi Radeon 4350显卡,不幸的是开源驱动似乎无法管理GPU散热器状态。无论系统/图形负载如何,散热器总是开着并且噪音很大。后来我降级了X服务器到1.12.3,并安装了遗留驱动,就像Fglrx on Launchpad(和lienmeat建议我们做的一样)。这样一来,GPU散热器只在需要时才工作。感谢你,散热器的寂静。
然而,如果AMD发布支持更新X服务器的遗留驱动程序,那将是很棒的,尽管现在我不确定他们是否真的在意。

哎呀,我的笔记本电脑就是这个:http://forum.notebookreview.com/acer/481690-acer-5738g-bottom-vent-built-closed.html 真是糟糕的设计。现在我的显卡温度是temp1: +57.0°C(临界值=+90.0°C),就算只是打开火狐浏览器什么都不做,温度还是比关闭驱动高了10多度。而且这还是在一直处于“最低”电源设置下,如果切换到“中等”设置,有时候在开始几分钟内就会崩溃(一个正在进行文件数据库的过程)。 - i30817

我在13.04上有一张旧的Radeon Mobility HD 2600显卡。安装上述存储库(makson)对我来说不够,因为在检查Xorg -version时,它没有降级Xorg。
最后我做的是重启进入恢复模式,删除所有xorg软件包(这导致删除了ubuntu-desktop软件包),然后再次安装这些软件包。这样就可以从存储库中获取这些软件包了。
类似于:
sudo apt-get remove xserver-*
sudo apt-get autoremove
sudo apt-get install ubuntu-desktop

玩弄它一番!之后我进入了一个高分辨率的桌面。只需重置Unity,在ccsm中启用OpenGL插件,我们就可以开始了!

我有一张ATI Radeon HD 4770显卡,开源驱动程序运行得非常好。我不知道你用的是哪种显卡,但你可能会比使用fglrx驱动和降级xorg更幸运。我多年来一直使用fglrx,今年夏天转向了开源驱动程序,从此没有回头过。
当然,使用开源驱动程序时,Compiz中的一些效果会变慢。此外,没有fglrx时,3D游戏明显变慢。然而,对于大多数桌面使用来说,开源驱动程序比fglrx更容易使用,并且还有实际支持的额外优势。
(顺便说一句,12.10版本中打包的Gnome Shell与开源驱动程序非常兼容,比Compiz/Unity要快得多!)

我有一颗集成的Radeon HD 4290芯片组,急需fglrx驱动。我认为对于像您的4770这样更强大的显卡来说,开源驱动程序可能还有一些余地,并且混合效果仍然可以很好地工作...但对于我这种低端集成显卡来说情况并非如此。 - Andrew Mao


1虽然理论上这个回答是正确的,但最好还是在这里包含答案的要点,并提供链接供参考。 - fossfreedom


2欢迎来到Ask Ubuntu!虽然这理论上可以回答问题,但最好在这里包含答案的关键部分,并提供链接作为参考。 - fossfreedom
这个帖子帮助我在使用上面推荐的方法后修复了fglrx-legacy的安装问题。通过执行以下操作:sudo apt-get purge fglrx-amdcccle-legacy fglrx-legacy-dev fglrx-legacy sudo rm -R /usr/lib/fglrx sudo rm -R /usr/share/ati - gare

兄弟们,如果你们遇到了图形分辨率的问题。
只需打开「更新管理器-->附加驱动-->选择默认驱动程序」然后重启即可。

你可能想告诉大家如何在没有 GUI 的情况下完成此操作,因为正是没有 GUI 才让他们首次到达这里。 - Dale E. Moore