内核模式设置挂起我的启动,但 ATI 驱动程序需要它

str*_*gee 13 ati kms hybrid-graphics

我有一台 2011 年末的 MacBook Pro。它有一个集成的英特尔显卡和一个独立的 ATI 显卡。理想情况下,我希望我的 Xorg 使用带有免费驱动程序(没有 Catalyst)的 ATI 卡。

问题是:内核模式设置挂起我的启动(通过添加nomodeset内核参数验证),我不知道为什么。但是,ATI 驱动程序需要KMS,英特尔驱动程序也是如此。获得具有上述所需设置的图形的选项有哪些?

我使用的是内核 3.13.8,Arch GNU/Linux。我也尝试过使用内核 3.10.35,也就是 LTS 内核。没运气。正如评论中所建议的那样,我尝试在受影响的机器锁定后对其进行 ping 操作。我不能肯定,但它似乎完全冻结,而不仅仅是显示。

我还尝试启动到 Mac OS X 并使用gfxCardStatus强制使用 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
Run Code Online (Sandbox Code Playgroud)

启动过程日志的最后 启动日志的整个结尾

当我尝试使用 ATI 或 Intel 驱动程序启动 GDM 时,在没有 KMS 的情况下启动,Xorg 失败并显示一条关于找不到合适驱动程序的消息(预期,​​因为 Intel/AMD 驱动程序需要 KMS)。我也尝试过使用该xf86-video-vesa软件包,但失败并显示一条关于有合适的驱动程序但没有合适的配置的消息 - BIOS 不正确。

我试过使用PRIME,但由于即使没有加速或任何花哨的东西我也无法让 Xorg 出现,xrandr所以不起作用,我什至无法通过第一步。

我已经考虑过使用 vgaswitcheroo 或相关的东西,但我认为这不会做任何事情,因为我相信潜在的问题是 KMS 挂起的事实。

我尝试的最后一件事是使用专有的 Catalyst 驱动程序,因为它有自己的 KMS 实现,但由于 Xorg 服务器版本不匹配,我无法安装它。老实说,如果我能提供帮助,我对使用专有驱动程序的愿望不到零,所以我并没有很努力地尝试。

我已经向 Linux 内核邮件列表发送了一封关于此的电子邮件,希望有人能回复我。

是否有可能我遇到了值得报告的内核错误或 Xorg 错误?

我已经谷歌搜索,但没有任何有用的出现。

eyo*_*100 1

在 Gentoo 论坛上阅读这篇文章。我帮助那里的其他用户使用了相同的 NVIDIA 设置。简而言之,你不能挑选:

  1. 您必须使用英特尔驱动程序来“驱动”您的 XOrg 服务器。
  2. 您只能使用 ATI 板来渲染输出,但不能生成它。

这里有一些解释:(我很抱歉必须用 NVIDIA 来解释这一点,因为 ATI 的项目 - Ironhide - 已停止。我相信 ATI 希望您使用该CONFIG_VGA_SWITCHEROO选项)

比我更聪明的人构建了Bumblebee 项目,以便与使用混合图形系统的 Optimus 系列笔记本电脑连接,就像 ATI 一样。在这两种情况下你自己找出对变压器的隐秘参考:)

继续,所有混合系统的工作方式都相同,即:

  1. 英特尔显卡初始化计算区域,并计算绘制多边形、屏幕等的指令。
  2. 如果需要,英特尔显卡会将完成的计算卸载到 ATI/NVIDIA 独立显卡上。必须安装和配置第 3 方驱动程序,以便告诉您的系统哪些应用程序可以请求英特尔显卡驱动程序卸载该特定应用程序的计算。Bumblebee 和 Ironhide 项目相当于基于 Linux 的操作系统上的 Windows 驱动程序。
  3. ATI/NVIDIA 独立板没有计算处理能力。它只能接受在应用程序级别绘制输出的请求,因此您必须将 XOrg 配置为使用 Intel 驱动程序,并始终将 Intel 与 XOrg 结合使用。一旦 XOrg 启动,第 3 方驱动程序就会启动并在应用程序级别控制 XOrg。它仍然使用英特尔驱动程序进行数学计算。

当我发布上面的链接时,我知道了这一切,但只因为提供了链接而受到批评。我希望我的解释有所帮助。如果您有任何疑问,我会用新答案更新此答案/