Radeon驱动程序:在两台AMD R9 280X Tahiti显卡的MacPro6,1上无法运行“nomodeset”

Ubuntu Gurus,

我有一个罕见的配置2016 MacPro6,1配有两个AMD Radeon R9 280X Tahiti显卡,以及三个通过DisplayPort / Thunderbolt端口连接的4K显示器。

系统安装成功,但LiveCD(用于安装)和已安装的系统都需要“nomodeset”选项,否则启动过程将挂起黑屏。

使用“nomodeset”系统检测并仅在一台显示器上工作,通过HDMI连接。 通过DisplayPorts连接的所有显示器都保持空白。

我尝试了不同版本的Ubuntu(14.04.4,14.04.5,15.10,16.04,16.04.1,16.10),都有这个问题,还有几个版本的Linux Mint,结果相同。 我还在Ubuntu 16.04.1上尝试了更新的上游内核(4.6,4.7.3,4.8),结果相同。

但是我发现了一个名为KaOS( https://kaosx.us/ )的Linux发行版在我的硬件上运行正常。 对接后不久,它成功检测并打开通过显示端口连接的所有三台显示器,然后在所有三台显示器上显示普通的宽KDE桌面。

我比较了Ubuntu和KaOS靴子的日志条目,似乎KaOS成功检测并激活了两张AMD卡,然后继续正常启动。 它使用开源“radeon”驱动程序。

另一方面,Ubuntu(上面列出的所有版本和内核),使用相同的“radeon”驱动程序仅检测到第一张卡,并在第二张卡上失败,这会导致“radeon”驱动程序立即关闭,并且启动过程挂起那。

这是来自期刊的相关信息。 附件中提供完整的日记日志。

卡奥斯:

第一张牌:

[drm] radeon kernel modesetting enabled. [drm] initializing kernel modesetting (TAHITI 0x1002:0x6798 0x106B:0x0128 0x00). [drm] register mmio base: 0xA0700000 [drm] register mmio size: 262144 [drm] ACPI VFCT contains a BIOS for 02:00.0 1002:6798, size 65536 [drm:radeon_get_bios] ATOMBIOS detected ATOM BIOS: Tahiti [drm] Loading tahiti Microcode [drm] Initialized radeon 2.45.0 20080528 for 0000:02:00.0 on minor 0 fb: switching to radeondrmfb from EFI VGA ..... 

第二张牌:

 [drm] ACPI VFCT contains a BIOS for 02:00.0 1002:6798, size 65536 [drm] ACPI VFCT table is not for this card radeon 0000:06:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0x0000 radeon 0000:06:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0x0000 [drm:radeon_get_bios] ATOMBIOS detected ATOM BIOS: Tahiti [drm] Loading tahiti Microcode [drm] radeon: dpm initialized [drm] Initialized radeon 2.45.0 20080528 for 0000:06:00.0 on minor 1 

(请注意这些“无效的PCI ROM标头签名”错误,但卡尽管已成功初始化,并且KaOS开发人员确认,这些错误对于ATI卡是正常的,并且是无害的)

Ubuntu的:

第一张牌:

 [drm] radeon kernel modesetting enabled. [drm] initializing kernel modesetting (TAHITI 0x1002:0x6798 0x106B:0x0128). [drm] register mmio base: 0xA0700000 [drm] register mmio size: 262144 [drm] ACPI VFCT contains a BIOS for 02:00.0 1002:6798, size 65536 [drm:radeon_get_bios] ATOMBIOS detected ATOM BIOS: Tahiti [drm] Loading tahiti Microcode [drm] radeon: dpm initialized [drm] Initialized radeon 2.43.0 20080528 for 0000:02:00.0 on minor 0 fb: switching to radeondrmfb from EFI VGA 

第二张牌:

 [drm] initializing kernel modesetting (TAHITI 0x1002:0x6798 0x106B:0x0127). [drm] register mmio base: 0xA0600000 [drm] register mmio size: 262144 [drm] ACPI VFCT contains a BIOS for 02:00.0 1002:6798, size 65536 [drm] ACPI VFCT table is not for this card radeon 0000:06:00.0: Invalid ROM contents radeon 0000:06:00.0: Invalid ROM contents [drm:radeon_get_bios [radeon]] *ERROR* Unable to locate a BIOS ROM radeon 0000:06:00.0: Fatal error during GPU init [drm] radeon: finishing device. radeon: probe of 0000:06:00.0 failed with error -22 

注意相同的错误“无效的ROM内容”(略有不同的消息,但我已经检查了它们的意思相同 – 意外的ROM签名)这些错误后radeon / drm驱动程序失败并出现错误无法找到BIOS ROM,然后“完成设备。”

KaOS使用较新的内核4.7.3-1,但我在Ubuntu上尝试了4.6,4.7.3,4.8,但没有成功。

我在期刊上注意到的另一件事:KaOS udev规则在内核模式设置之前加载,但在Ubuntu上 – 在模式设置之后。 这可能是个原因吗?

显卡信息:

 lspci | grep VGA 02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] 06:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] 

完整的“lspci -vvv”和“lshw”输出也是完整的。

我真的需要让这个工作站在Linux下工作,不想满足于MacOS。

如果有人能够看到这个并给出一些建议,我会非常感激。

谢谢,Heigh

2016年11月8日更新:

嗨,尼克,

谢谢你的回复,我会尝试radeon.pm = 0选项。

但我找到了一个适用于我的解决方法或解决方案,也可能适合您。

需要使用systemd-boot bootloader(或者任何其他支持UEFI引导)引导系统

当我在MacPro上使用标准安装Ubuntu时,在安装grub2期间安装,radeon驱动程序不会检测通过Display Ports连接的外部显示器。

但是当我使用Arch Linux(或KaOS)安装的systemd-boot启动系统时,它会正常检测显示,并且正常工作,支持所有外部显示。

我认为这与硬件的某些方面有关,这些方面没有在BIOS引导模式下暴露,并且在EFI / UEFI引导模式下暴露。

如果可能,首选解决方案是在BIOS模式下使用radeon驱动程序,或者,如果不可能,系统日志中的一些有意义的消息将解释某些function(例如,通过显示端口的外部监视器)将不被支持,除非系统启动EFI / UEFI模式。

我向radeon bugzilla提交了一个错误: https ://bugs.freedesktop.org/show_bug.cgi?id = 98523

希望这将在某些时候开箱即用。

谢谢你,Heigh

我见过的一个问题是radeon电源管理(你可以在grub中用radeon.pm=0关掉它)显然会在启动时关闭第二个gpu。

我用两台D700运行基本的radeon驱动程序。 它仅适用于一个显示端口显示。

我试图让我的两台D700与多台显示器配合使用,到目前为止还没有运气。