ATI 驱动程序阻止 Ubuntu 在其他装有其他显卡的电脑上启动

ATI 驱动程序阻止 Ubuntu 在其他装有其他显卡的电脑上启动

我在 USB 3.0 外置硬盘上安装了 Ubuntu 13.04 Raring Ringtail(最终版本)。目标是能够在任何具有 USB 3.0 端口的计算机上使用它。我已成功安装了 ati 13.4 图形驱动程序 - 这是为我的台式机安装的,它配有 Radeon HD 7950 显卡。我还想在配有 Intel HD 4000 集成显卡的 Mac 上使用这个 Ubuntu。Ubuntu 在我的台式机上使用 ati 驱动程序,因为它配有 ati 显卡,但是它给了我一个“低图形模式”警告;我选择了“重置图形”选项并重新启动。Ubuntu 启动了(登录屏幕正常),但 Unity 不再显示状态,因此我没有窗口边框、没有侧边栏或顶部菜单。我可以右键单击并显示菜单,我可以使用热键打开终端,但除此之外什么都没有。

请记住:Ubuntu 仍可在配备 ATI 显卡的台式机上运行,​​但无法在配备英特尔 HD 4000 集成显卡的 Mac 上运行。之前它可以在两种电脑上运行,但由于缺少专有驱动程序,台式机上存在严重延迟。

感谢您对如何让 Unity 在 Mac 上启动提供的任何帮助!

答案1

您必须完全卸载 Ubuntu 的 ATI 驱动程序才能开始使用完整的图形支持,因为 ATI(以及 NVIDIA)软件包将您的 openGL 库链接到专有的非 mesa 实现。这与基于 mesa 的英特尔驱动程序不兼容。

我的解决方案是制作一个 init 脚本,在启动时检测显卡并根据需要安装/卸载驱动程序。不过,当你从一台电脑切换到另一台电脑时,它可能会使启动延迟几秒钟。

将这些行放在文件/etc/init/lightdm.conf末尾。应该可以解决问题,但尚未完全测试,因此请小心。如果您在启动时遇到问题,只需删除这些行并告诉我。

pre-start script
    # Determine if plymouth is available
    if [ -x /bin/plymouth ] && /bin/plymouth --ping ; then
            PLYMOUTH=/bin/plymouth
    else
            PLYMOUTH=":"
    fi
    # Checks if AMD card is present
    lshw -c display 2>/dev/null | grep AMD &>/dev/null
    if [ $? -eq 0 ] ; then
        # AMD graphics card found
        $PLYMOUTH message --text="AMD Graphics card found. Installing and configuring driver..." || :
        apt-get install -y fglrx-updates
        amdconfig --initial
    else
        # AMD graphics card not found
        $PLYMOUTH message --text="AMD Graphics card not found. Purging driver..." || :
        apt-get purge -y fglrx-updates
        rm -f /etc/X11/xorg.conf
    fi
end script

在进行实际测试之前,请确保lshw -c display 2>/dev/null | grep AMD在您的 AMD 显卡计算机上至少返回一行。如果没有,请查看lshw -c display并调整它grep AMD,使其只匹配该计算机上的内容。

相关内容