我创建了一个/etc/X11/xorg.conf使用aticonfig --initial
如下所示:
Section "ServerLayout"
Identifier "aticonfig Layout"
Screen 0 "aticonfig-Screen[0]-0" 0 0
EndSection
Section "Module"
EndSection
Section "Monitor"
Identifier "aticonfig-Monitor[0]-0"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
EndSection
Section "Device"
Identifier "aticonfig-Device[0]-0"
Driver "fglrx"
BusID "PCI:11:0:0"
EndSection
Section "Screen"
Identifier "aticonfig-Screen[0]-0"
Device "aticonfig-Device[0]-0"
Monitor "aticonfig-Monitor[0]-0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
当我尝试启动 lightdm 时,它崩溃了。查看 /var/log/lightdm/x-0.log,它告诉我无法找到 PCI 设备:
fglrx: 没有匹配的设备部分(BusID PCI:0@11:0:0)
因此我查找了所使用的 PCI 设备lspci
,发现 11:0:0 实际上不是 GPU,而是 PCI 桥接设备:
...
00:11.0 PCI bridge: VMware PCI bridge (rev 02)
...
0b:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Hawaii XT [Radeon R9 290X]
似乎 ATI 的工具无法配置 PCI 桥接设备后面的 GPU。所以,没什么大不了的,只需修复 PCI BusID 以匹配实际的 GPU BusID,对吗?所以我将 xorg.conf 中的行更改为:
BusID "PCI:b:0:0"
然后尝试使用 重启 lightdm sudo service lightdm restart
。猜猜怎么了?同样的错误!它再次告诉我,这是无法找到 PCI 设备 11:0:0 即使 xorg.conf 告诉它使用设备 b:0:0!我可以说它正在使用 /ext/X11/xorg.conf 中的 xorg.conf,因为日志是这样的:
(==) Using config file: "/etc/X11/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(WW) fglrx: No matching Device section for instance (BusID PCI:0@11:0:0) found
所以下一个猜测是,最终那个桥接器造成了麻烦,所以我使用了未连接到桥接器的 PCI BusID,只是为了看看日志输出是否发生变化——当然没有。
那么:有谁知道为什么我的 /etc/X11/xorg.conf 中的配置似乎被完全忽略了,但日志仍然报告使用它?我在哪里可以找到实际使用的 xorg.conf,以便我可以修复错误的 PCI BusID?
更新: /var/log/Xorg.0.log 报告了一些有趣的内容:
[ 11.894] (II) AMD Proprietary Linux Driver Build Date: Feb 27 2015 03:27:32
[ 11.894] (WW) Falling back to old probe method for fglrx
[ 11.918] (II) Loading PCS database from /etc/ati/amdpcsdb /etc/ati/amdpcsdb.default
[ 11.920] ukiDynamicMajor: found major device number 251
[ 11.920] ukiOpenByBusid: Searching for BusID PCI:b:0:0
[ 11.920] ukiOpenDevice: node name is /dev/ati/card0
[ 11.920] ukiOpenDevice: open result is 9, (OK)
[ 12.165] ukiOpenDevice: open result is 9, (OK)
[ 12.165] ukiOpenByBusid: ukiOpenMinor returns 9
[ 12.165] ukiOpenByBusid: ukiGetBusid reports PCI:11:0:0
[ 12.166] ukiOpenDevice: node name is /dev/ati/card1
[ 12.166] ukiOpenDevice: open result is -1, (No such device)
[ 12.166] ukiOpenDevice: open result is -1, (No such device)
[ 12.166] ukiOpenDevice: Open failed
...
[ 12.169] (WW) fglrx: No matching Device section for instance (BusID PCI:0@11:0:0) found
似乎它正在搜索 b:0:0 并成功找到它。然后出于某种原因,它搜索了所有 PCI 设备,还发现 - 其中包括 - 11:0:0 不是有效的 GPU - 但 fglrx 仍尝试使用它。
更新 切换到 gdm 也无济于事。现在甚至登录屏幕都保持黑色。但是,切换到 gdm 后,我从 Xorg.0.log 中获得了一些更有意义的输出:
[ 28.219] ukiOpenByBusid: Searching for BusID PCI:11:0:0
[ 28.219] ukiOpenDevice: node name is /dev/ati/card0
[ 28.219] ukiOpenDevice: open result is 9, (OK)
[ 28.219] ukiOpenByBusid: ukiOpenMinor returns 9
[ 28.219] ukiOpenByBusid: ukiGetBusid reports PCI:11:0:0
[ 28.224] (--) Chipset Supported AMD Graphics Processor (0x67B0) found
[ 28.224] (WW) fglrx: No matching Device section for instance (BusID PCI:0@11:0:1) found
...
[ 28.235] (EE) fglrx(0): DAL initialization failed!
[ 28.235] (EE) fglrx(0): Display Infrastructure Failed
[ 28.235] (EE) fglrx(0): PreInit failed
...
28.244] (EE) Screen(s) found, but none have a usable configuration.
[ 28.244] (EE)
Fatal server error:
[ 28.244] (EE) no screens found(EE)
似乎 aticonfig --initial 生成的 xorg.conf 不起作用?有什么想法吗?
答案1
您是否尝试过这个:
sudo apt-get install --reinstall unity
sudo dpkg-reconfigure unity
dconf -reset /etc/X11/xorg.conf
这样也许能很好地发挥作用。