浪费之后很多尝试让 Radeon HD2600 工作的时间太长了,我放弃了,买了两块 Geforce 7800GT。到目前为止,尝试一次使用一个 GPU 来运行,开箱即用的 LiveCD 14.04 甚至无法启动,屏幕会冻结。经过大量研究和尝试几种不同的方法,在 grub 中设置 nomodeset 成功了。最后得到了一个桌面,但两个显示器都处于克隆模式,而且看起来甚至无法识别第二台显示器。我本来希望不要使用二进制 nvidia,但看起来我可能不得不走那条路。如果我使用 Windows,一切都会在一周前启动并运行,而现在我正努力在 5 年旧的 GPU 上开箱即用地启动
$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation G70 [GeForce 7800 GT] (rev a1)
$ sudo lshw -c video
*-display UNCLAIMED
description: VGA compatible controller
product: G70 [GeForce 7800 GT]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:01:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list
configuration: latency=0
resources: memory:fd000000-fdffffff memory:d0000000-dfffffff memory:fc000000-fcffffff ioport:bc00(size=128) memory:fe7e0000-fe7fffff
$ xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1280 x 1024, maximum 1280 x 1024
default connected primary 1280x1024+0+0 0mm x 0mm
1280x1024 0.0*
1024x768 0.0
800x600 0.0
640x480 0.0
$ grep EE /var/log/Xorg.1.log
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 484.141] (EE) open /dev/dri/card0: No such file or directory
[ 484.141] (EE) open /dev/dri/card0: No such file or directory
[ 484.141] (EE)
[ 484.141] (EE) Backtrace:
[ 484.141] (EE) 0: X (xorg_backtrace+0x48) [0x7f8d03923c78]
[ 484.141] (EE) 1: X (0x7f8d0377b000+0x1ac969) [0x7f8d03927969]
[ 484.141] (EE) 2: /lib/x86_64-linux-gnu/libpthread.so.0 (0x7f8d02878000+0x10340) [0x7f8d02888340]
[ 484.141] (EE)
[ 484.141] (EE) Segmentation fault at address 0x0
[ 484.141] (EE)
[ 484.141] (EE) Caught signal 11 (Segmentation fault). Server aborting
[ 484.141] (EE)
[ 484.141] (EE)
[ 484.141] (EE) Please also check the log file at "/var/log/Xorg.1.log" for additional information.
[ 484.141] (EE)
答案1
/dev/dri/card0: No such file or directory
此错误消息是因为您使用 禁用了内核模式设置nomodeset
。Nouveau 需要 KMS 才能正常工作。从全新故障排除
Xorg 启动失败,并显示“(EE) [drm] 无法打开设备”
您的 DDX 无法与当前内核和/或 libdrm 配合使用。至少有三个可能的原因:未加载 nouveau DRM 内核模块、Nouveau DRM 和 libdrm 版本不匹配、或 KMS 被禁用。
首先检查 lsmod 命令是否列出了 nouveau。如果没有,请执行 modprobe nouveau 来加载 nouveau DRM 内核模块,并检查内核日志以查找可能的错误。
如果根据 lsmod 命令加载了内核模块 nouveau,但根本没有关于 nouveau 的内核消息,则很可能是 Nouveau KMS 被禁用了。这会导致驱动程序完全无法工作。可以禁用 KMS 的地方有:
- 内核命令行:nomodeset、drm.modeset=0、nouveau.modeset=0 或类似
- modprobe.conf 或 modprobe.d/ 添加模块选项 drm modeset=0 或 nouveau modeset=0
- initramfs 携带上述模块选项
检查并删除所有您找到的,然后重试。