![当我将显示器插入显卡时,启动失败并显示“无法分配 usb_device”](https://linux22.com/image/11069/%E5%BD%93%E6%88%91%E5%B0%86%E6%98%BE%E7%A4%BA%E5%99%A8%E6%8F%92%E5%85%A5%E6%98%BE%E5%8D%A1%E6%97%B6%EF%BC%8C%E5%90%AF%E5%8A%A8%E5%A4%B1%E8%B4%A5%E5%B9%B6%E6%98%BE%E7%A4%BA%E2%80%9C%E6%97%A0%E6%B3%95%E5%88%86%E9%85%8D%20usb_device%E2%80%9D.png)
我有一个具有以下规格的系统:
- 母板:华硕 ROG STRIX B350-F 游戏 AMD 锐龙 AM4 DDR4 HDMI DisplayPort M.2 USB 3.1 ATX B350
- 处理器:AMD Ryzen 5 2400G(带 Radeon RX Vega Graphics)4 核 8 线程,3.6 GHz 基础
- PCI-E 显卡:EVGA NVIDIA GeForce GTX 1050Ti (4GB)
一切都很好,直到我订购了 NVIDIA 显卡并安装了它。当尝试使用插入 NVIDIA 卡的一台或两台显示器进行启动时(甚至启动到实时 USB 映像以安装新发行版),启动会失败并显示以下输出:
无论如何,我正在安装 Linux Mint,但我们也无法让其他发行版正常工作,但每个发行版的错误消息都不同。在这种情况下,我可以启动到实时USB映像,选择我要启动Linux Mint,Mint徽标出现一段时间,然后出现此错误。
我可以用集成显卡的显示器启动,然后切换它们,但是当我点击鼠标或按键盘上的按键时,会有大约5-10秒的延迟,所以计算机基本上无法使用。
基本上,我不知道为什么将显示器插入显卡会产生“无法分配 usb_device”错误。似乎认为插入的 USB 设备超过 127 个,这绝对不是事实。
答案1
事实证明,解决方案是添加amd_iommu=off
到内核的启动参数。
为了在启动实时 USB 映像时执行此操作,我在启动菜单中点击了“e”,找到了以“linux”开头的行,并添加到该行末尾的最后amd_iommu=off
一个之前(紧接在 后面)。--
quiet splash
安装 Mint 后,我重新启动,但出现了相同的错误,因为该修复对于该单一启动来说只是暂时的。为了使修复永久有效,我在重新启动电源后反复按 Esc 键,直到出现 grub 提示符。我键入normal
加载 grub 菜单,然后重复上述步骤以暂时禁用 amd_iommu。一旦启动,我通过编辑/etc/default/grub
和修改顶部附近的一行GRUB_CMDLINE_LINUX_DEFAULT
将其永久化GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amd_iommu=off"
(每这些说明)。
我听说这有一些安全隐患。然而,设置amd_iommu=fullflush
导致启动挂起并最终失败。
这永久解决了这个问题;显示器仍插入 NVIDIA 卡。
(为自己记录其余部分,以防我稍后需要再次执行此操作,但问题略有不同......)但是:我有两台 LG 4K 显示器,只有 1 台以 60Hz 运行;另一种是 30Hz,没有可用的 60Hz 选项 ( xrandr
),尽管显卡有能力。一个位于 DisplayPort 上,另一个位于 HDMI 上。 HDMI 显示器卡在 30Hz。我通过使用显示器的控件进入“菜单”->“快速设置”->“比率”并将其设置为“原始”而不是“宽”来解决此问题。下次我跑步时xrandr
,可以使用 60Hz 选项。我通过运行启用了该速率xrandr --output HDMI-O --mode 3840x2160 --rate 60
。但由于这只是一个临时修复,我修改了~/.config/monitors.xml
它的字段并将其更改<rate>
为 60。现在每次启动时它都会变为 60Hz。
呼。我被打败了——花了一周时间才弄清楚这一点。感谢耐心帮助的同事。