StackExchange 上有许多关于 AMDGPU-PRO 的帖子(例如这里,和这里),但似乎有许多变量可能会出错,就我的情况而言,我在这里或其他地方找到的所有帖子都无法帮助我。为了帮助那些可能步我后尘的人,我认为我应该记录下来以供后人参考。
操作系统:Debian 10 GPU:AMD/Radeon rx580,也有英特尔集成显卡
很久以前,我买了一个 GPU,希望能进行一些挖矿。我刚开始学习编程,不知道如何让它运行,所以它最终闲置了一段时间。鉴于最近硬件方面的一些成功,我决定试试我的旧 GPU。我使用这精彩的教程,使用 Mesa 设置 GPU。(这是在他们专门针对 Debian 10 发布一篇文章之前,这篇文章在后来的回答中挽救了局面)测试套件(和噪音)证实 GPU 正在运行。耶!但我想能够挖矿,并很快发现挖矿程序都使用不同的驱动程序 - AMDGPU-PRO。我认为这不会太难,并从 AMD 的网站下载了最新版本(以后可能很重要)。
安装并不太糟糕,我重新启动了。
我甚至没有看到启动画面。
我可以判断计算机正在运行,因为我有一个外部驱动器连接到系统服务,它的闪烁指示灯表示它正在按预期进行读写。有时我会看到一个加载屏幕,上面显示以下内容:
[ OK ] Started GNOME terminal...
但是,在我给出的示例之后,它就会挂起。我尝试盲目登录(为了卸载驱动程序),但无法正常工作。我的硬盘灯根本不闪烁,这让我认为我的键盘命令根本不起作用。
启动到我的 BIOS 菜单不会在屏幕上显示任何内容,但由于我的外部硬盘无法启动,所以我认为它会加载 BIOS 菜单。
经典的做法是在启动时按住 SHIFT 或 ESC 键以进入命令行,但根据我的无限智慧,我使用无线键盘。我还没有拿到 PS2 键盘,虽然我借用了 USB 键盘,但无法用它进入 GRUB。
我曾考虑尝试从实时 USB 启动,但显然我的 BIOS 不优先考虑 USB 启动。不错的尝试。
就这样,没有屏幕,没有键盘。我该如何让我的电脑工作?我尝试了 IRC(从我的另一台机器),并被建议清除所有内容并重新开始。但我不确定我该怎么做。
答案1
因此,我最终采用了一种技术含量较低但非常有效的方法来重新控制我的屏幕并卸载 AMDGPU-PRO。我拔掉了我的 GPU(实际上是拔掉了 PCI 线)。然后我能够看到启动画面,但如果我尝试正常加载 GNOME,它会像以前一样挂起。不过,我也有 Debian 加载菜单,所以我能够进入恢复模式并卸载 AMDGPU-PRO。对于那些不知道的人,命令是:
amdgpu-pro-uninstall
重启后,我的屏幕恢复了(集成显卡上的 HDMI 有点问题,但 VGA 可以正常工作)。我还没有尝试使用其他线程中的一些建议重新安装,也没有检查 Mesa 是否仍然有效。与此同时,我只是报告我的屏幕恢复了。
我希望没有人需要这个建议,但如果你需要,我希望它会有所帮助!
更新:
我。
我通过集成显卡获得了 HDMI。sudo amdgpu-pro-uninstall
但还不够。我使用了:
sudo apt purge amdgpu*
并且还自动删除了未使用的软件包(apt-get autoremove
如果我没记错的话)。我相信这杀死了 Mesa,但我确实恢复了集成显卡,并且我重新插入了 AMD GPU,它并没有完全劫持一切。一个奇怪的副作用是我又失去了启动画面,但从用户屏幕开始就没问题了。
我对接下来的一些步骤很感兴趣,如果有任何进展,我计划在这里更新。
二.
好吧,我鼓起勇气回到这个问题上。我从 AMD 重新下载了 AMDGPU-PRO 驱动程序,主要遵循了这教程,除了我没有./amdgpu-pro-install
这样做,而是用这很好的建议,并且做到了:
amdgpu-pro-install --opencl=legacy,pal --headless
奇迹出现了,我的电脑在安装后仍然可以使用。lsmod
显示amdgpu
已加载。我没有从中获取任何屏幕图形 - 我怀疑我在安装程序上设置的标志阻止了它处理显示图形,但我觉得这是一种进步。
三
上面的标签--headless
表示 GPU 仅用于计算,而不是图形。尽管我是通过挖矿接触到这个的,可能不需要图形,但我感觉被这个错误所困扰,我想让这个东西完全正常工作。我决定再试一次,重新安装 AMDGPU-PRO,省去--headless
:
amdgpu-pro-install --opencl=legacy,pal
我又无法让桌面环境正常工作了。我现在已经是这方面的老手了,所以我断开了 GPU 的连接,需要转到模拟,并尝试将 BIOS 主显卡敲入onboard
(而不是PCI Express
),尽管当我通过 HDMI 插入集成显卡时,我没有看到启动画面,但我可以让屏幕处于恢复模式(或者如果我尝试加载桌面环境,它会显示一些加载,但它不会切换到显卡,并且一直显示已加载但不显示)。我发现现在我甚至可以在插入 GPU 的情况下执行此操作,可能是因为我更改了主显卡。这使我可以在恢复模式下玩一些游戏。
apt install amdgpu*
显示有两个依赖项无法安装,这两个依赖项都导致包amdgpu-lib-hwe
无法安装:
xserver-xorg-hwe-amdgpu-video-amdgpu
libgl1-amdgpu-pro-ext-hwe
第二个我可以只使用apt install
,但是第一个xserver-xorg-hwe-amdgpu-video-amdgpu
给我它需要的:
xserver-xorg-hwe-18.04
但是我收到此错误(使用apt
非免费和东西和apt-get
):
Package xserver-xorg-hwe-18.04 is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source
E: 'xserver-xorg-hwe-18.04' has no installation candidate
在网上搜索后发现,xserver-xorg-hwe-18.04
Ubuntu repo 中有这个这里以及启动板页面这里。我觉得在 Debian 上安装 Ubuntu 软件包应该是很常规的事情,但是我目前遇到了足够的阻力来发布这篇文章。
四
好的,我们开始吧。
我找到了它所在的位置xserver-xorg-hwe-18.04
,然后对其进行了跟踪wget
。dpkg -i
(想到这一点我有点自豪。新手 Linux 的乐趣。)结果发现它xserver-xorg-hwe-18.04
与 有冲突xserver-xorg-core
。这听起来很糟糕。这是我在周末把它放在那里的。
当我回来时,令我惊讶的是,我能听到 GPU 旋转的声音。为了好玩,我重新启动到图形模式,只是想看看重新启动是否能神奇地修复所有问题。结果并没有,但 GPU 确实在旋转。我对这一刻的进步迹象感到兴奋,这可能证实我已经无可救药地越过了不归路。我再次重新启动进入恢复,然后执行另一次apt install amdgpu*
。同样,有两个软件包无法安装。一个是xserver-xorg-hwe-amdgpu-video-amdgpu
旧的罪魁祸首,但第二个是新的。您会记得,上面卸载的依赖项阻止了amdgpu-lib-hwe
安装。这个阻止了amdgpu-pro
它自己:
amdgpu-pro: Depends: libgl1-amdgpu-pro-ext but it is not going to be installed
我尝试apt
安装它,但发现安装时libgl1-apdgpu-pro-ext-hwe
卸载了它。这让我意识到,似乎hwe
库是这里所有问题的罪魁祸首,我开始研究是否有办法不安装amdgpu-lib-hwe
。我的意思是,风扇在旋转。这一定意味着什么。
研究表明 HWE 是 Ubuntu 图形套件。我猜 Debian 中没有它,因此会造成问题。我发现旧版本没有amdgpu-pro
库hwe
,现在想知道我是否应该降级到古老的驱动程序。不过,这可能是另一个问题的材料。
五、
我找不到任何拥有amdgpu-pro
在没有hwe
库的情况下进行构建所需智慧的人,所以我退后一步,尝试让 Mesa 再次工作。我能够得到一些帮助这样一来,现在我的屏幕不但恢复了,GPU 甚至还可以继续运行。
总结一下,基本要点不是使用apt purge
而是apt remove
,并重新安装libdrm-amdgpu1
和xserver-xorg-video-amdgpu
,但请参阅上面的链接以获取额外的好东西(Vulkan!)。
虽然我还没有领先,但至少没有落后,但我不会轻易放弃,我仍然想解决专有驱动程序的问题。我的主要理由是,我玩过的挖矿程序无法识别只有 Mesa 的 GPU。我想,此时问题的重新表述就是如何在 2019 年使用 AMD rx580 进行挖矿。我看到两个选项:
- 看看我是否能得到无头选项与 Mesa 协同工作,看看这是否足以进行挖矿
- 了解如何让完整
amdgpu-pro
软件包在 Debian 10 上运行- 最好的路径可能是古老的
amdgpu-pro
驱动程序,或者是他们在 2017 年底发布的测试版区块链驱动程序
- 最好的路径可能是古老的
我现在没精力再投入到 Debian 上的 AMD 专有技术的熔炉中,所以我只是在这里记录基本选项,以防我的常识发挥作用,而我只是保持原样。