![内核模式设置挂起我的启动,但 ATI 驱动程序需要它](https://linux22.com/image/52586/%E5%86%85%E6%A0%B8%E6%A8%A1%E5%BC%8F%E8%AE%BE%E7%BD%AE%E6%8C%82%E8%B5%B7%E6%88%91%E7%9A%84%E5%90%AF%E5%8A%A8%EF%BC%8C%E4%BD%86%20ATI%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E9%9C%80%E8%A6%81%E5%AE%83.png)
我有一台 2011 年末的 MacBook Pro。它有一个集成的 Intel 显卡和一个独立的 ATI 显卡。理想情况下,我希望我的 Xorg 使用 ATI 卡和免费驱动程序(无 Catalyst)。
问题是:内核模式设置挂起我的启动(通过添加nomodeset
内核参数进行验证),我不明白为什么。但是,ATI 驱动程序需要KMS,Intel 驱动程序也是如此。我可以通过哪些选项来获取具有上述所需设置的图形?
我使用的是内核 3.13.8,Arch GNU/Linux。我还尝试过使用内核 3.10.35(又称 LTS 内核)。没有运气。正如评论中所建议的,我尝试在受影响的计算机锁定后对其进行 ping 操作。我不能确定,但看起来它完全冻结了,而不仅仅是显示屏。
我也尝试过启动 Mac OS X 并使用gfx卡状态强制使用Intel卡。这什么也没做。
为了尝试获取更多信息,我启动了 MacBook,并将以下内核参数附加到我的正常内核行(常规内核,不是 LTS 内核,并且已quiet
删除),并将 gfxCardStatus 设置为 on-the-飞行切换(这似乎会在 OS X 重新启动时自动恢复):
rootwait ignore_loglevel debug debug_locks_verbose=1 sched_debug initcall_debug mminit_loglevel=4 udev.log_priority=8 loglevel=8 earlyprintk=vga,keep log_buf_len=10M print_fatal_signals=1 apm.debug=Y i8042.debug=Y drm.debug=1 scsi_logging_level=1 usbserial.debug=Y option.debug=Y pl2303.debug=Y firewire_ohci.debug=1 hid.debug=1 pci_hotplug.debug=Y pci_hotplug.debug_acpi=Y shpchp.shpchp_debug=Y apic=debug show_lapic=all hpet=verbose lmb=debug pause_on_oops=5 panic=10 sysrq_always_enabled
当我尝试使用 ATI 或 Intel 驱动程序启动 GDM(在没有 KMS 的情况下启动)时,Xorg 失败并显示一条有关找不到合适驱动程序的消息(这是预料之中的,因为 Intel/AMD 驱动程序需要 KMS)。我也尝试过使用该xf86-video-vesa
软件包,但失败并显示一条有关有合适的驱动程序但没有合适的配置的消息 - 有关 BIOS 不正确的信息。
我尝试过使用主要的,但由于即使没有加速或任何奇特的东西我也无法让 Xorg 出现,所以xrandr
不起作用,我什至无法通过第一步。
我考虑过使用 vgaswitcheroo 或相关的东西,但我认为这不会有任何作用,因为我相信根本问题是 KMS 挂起。
我尝试的最后一件事是使用专有的 Catalyst 驱动程序,因为它有自己的 KMS 实现,但由于 Xorg 服务器版本不匹配,我无法安装它。老实说,如果可以的话,我使用专有驱动程序的愿望小于零,所以我没有非常努力。
我已经发送了 Linux 内核邮件列表一封电邮关于这一点,希望有人能回复我。
我是否可能遇到了值得报告的内核错误或 Xorg 错误?
我用谷歌搜索过,但没有找到任何有用的信息。
答案1
您没有提供 ATI 卡的版本。内置 Intel&ATI 的“2011 年末 MacBook Pro”这个名称还不够好。启动到控制台,启动 lspci -nn | grep VGA 以获得准确的版本,如下所示:
$ lspci -nn | grep VGA 01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Park [Mobility Radeon HD 5430/5450/5470] [1002:68e0]
这样你就可以在谷歌上搜索“Linux 模式设置挂在 ATI xyz 上”
尝试使用不同的内核启动到控制台,例如2.6.32、3.0.last、3.2.last、3.4.last、3.16.last。不需要检查 3.0 到 3.16 之间的每个偶数版本的内核,但在你看来,我肯定会尝试 2.6.something。如果启动顺利,则使用 startx 启动 GUI(旧方式)。 (.last 表示该内核分支的最新版本)
当您处于硬件锁定状态(使用笔记本电脑)时,如果您无法自己编写/调试 Linux 驱动程序,那么您就没有太多选择 - 您必须使用现有的可用驱动程序。我是根据长期 Linux 用户的经验来写的。因此,请使用任何可用的 ATI 驱动程序,如果没有,请使用 Intel 卡。当您提供 ATI 卡的确切版本时,希望 Google 或这里的某些用户会告诉您该卡是否能与 Linux 良好配合(因此会存在硬件错误)或否(缺乏功能驱动程序)。如果游戏不是您最关心的问题(您可能不会为了玩游戏而将 Mac OSX 换成 Linux),那么 Intel 卡应该可以正常工作,但我理解您希望在我不时使用的笔记本中拥有 Intel/NVIDIA 组合。 :)
最后,您不需要启动 UEFI:https://help.ubuntu.com/community/UEFIBooting“Apple 官方仅支持 Mac OS X 的 EFI 启动,尽管技术上可以使用 BIOS 固件启动 Mac OS X。在 Intel Mac 上使用 (U)EFI 启动 Linux 具有以下优点:...”
答案2
读这个帖子在 Gentoo 论坛上。我帮助那里的其他用户使用了相同的 NVIDIA 设置。简而言之,你不能挑选:
- 您必须使用英特尔驱动程序来“驱动”您的 XOrg 服务器。
- 您只能使用 ATI 板来渲染输出,但不能生成它。
这里有一些解释:(我很抱歉必须用 NVIDIA 来解释这一点,因为 ATI 的项目 - Ironhide - 已停止。我相信 ATI 希望您使用该CONFIG_VGA_SWITCHEROO
选项)
比我聪明的人建造了大黄蜂计划,以便与使用混合图形系统的 Optimus 系列笔记本电脑连接,就像 ATI 一样。在这两种情况下你自己找出对变压器的隐秘参考:)
继续,所有混合系统的工作方式都相同,即:
- 英特尔显卡初始化计算区域,并计算绘制多边形、屏幕等的指令。
- 如果需要,英特尔显卡会将完成的计算卸载到 ATI/NVIDIA 独立显卡上。必须安装和配置第 3 方驱动程序,以便告诉您的系统哪些应用程序可以请求英特尔显卡驱动程序卸载该特定应用程序的计算。 Bumblebee 和 Ironhide 项目相当于基于 Linux 的操作系统上的 Windows 驱动程序。
- ATI/NVIDIA 独立板没有计算处理能力。它只能接受在应用程序级别绘制输出的请求,因此您必须将 XOrg 配置为使用 Intel 驱动程序,并始终将 Intel 与 XOrg 结合使用。一旦 XOrg 启动,第 3 方驱动程序就会启动并在应用程序级别控制 XOrg。它仍然使用英特尔驱动程序进行数学计算。
当我发布上面的链接时,我知道了这一切,但只因为提供了链接而受到批评。我希望我的解释有所帮助。如果您有任何疑问,我会用新答案更新此答案/