您尚未登录。

#1 2020-07-26 15:29:30

airmh
会员
注册时间: 2020-06-28
帖子: 29

双显卡 +xorg 启动 xfce4 后黑屏

问题
  1. Virtual console 中用

    # startx

    命令启动 xfce4
     

  2. Virtual console 消失,屏幕变为黑色

  3. 约2秒后,屏幕中间出现光标

  4. 系统失去响应,包括
       

    • <C+M+fn> 无法打开新的 tty

    • <C+M+DEL> 无法关闭 x server

    • 无法通过 ssh 连接电脑

已安装的包
  • bumblebee

  • mesa

  • xf86-video-intel

  • nvidia

  • xfce4

xorg相关的配置文件

~/.local/share/xorg/Xorg.0.log

https://dpaste.com/2JZ87DLG2

关键信息

$ cat Xorg.0.log | grep "(EE)"
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   424.845] (EE) Failed to load module "fbdev" (module does not exist, 0)
[   425.860] (EE) systemd-logind: failed to take device /dev/input/event7: No such file or directory
[   425.860] (EE) synaptics: bcm5974: Synaptics driver unable to detect protocol
[   425.860] (EE) PreInit returned 11 for "bcm5974"

~/.xinitrc

https://dpaste.com/3E79WKTK4

关键信息

$ cat .xinitrc | grep "^[^#]"
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi
if [ -f "$userresources" ]; then
    xrdb -merge "$userresources"
fi
if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 done
 unset f
fi
exec startxfce4

/etc/X11/xorg.conf.d/70-synaptics.conf

https://dpaste.com/6YM2NERRE

关键信息

$ cat 70-synaptics.conf | grep -e "^[^#]"
Section "InputClass"
        Identifier "touchpad"
        Driver "synaptics"
        MatchDevicePath "/dev/input/mouse0"
        MatchIsTouchpad "on"
EndSection

~/.local/share/xorg/Xorg.0.log.old

https://dpaste.com/HS38QPQ34

关键信息

$ cat Xorg.0.log.old | grep "(EE)"
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   911.615] (EE) Failed to load module "fbdev" (module does not exist, 0)
[   912.711] (EE) systemd-logind: failed to take device /dev/input/event7: No such file or directory
[   912.711] (EE) synaptics: bcm5974: Synaptics driver unable to detect protocol
[   912.711] (EE) PreInit returned 11 for "bcm5974"
[  1240.422] (EE) intel(0): Failed to set backlight intel_backlight for output eDP1, disabling
我的分析

我无法从 Xorg.0.log 中得到与黑屏错误相关的信息。我怀疑是双显卡没有正常工作导致的。
如果需要提供进一步的信息,请回复。

离线

#2 2020-07-26 15:52:38

yw662
大会员
所在地: localhost
注册时间: 2018-10-10
帖子: 424

Re: 双显卡 +xorg 启动 xfce4 后黑屏

少了(至少)一个xorg的配置文件吧,还是说那个配置文件是被bb管理的?不过看你列出的这些信息似乎是想选择i卡的样子?

synaptics: bcm5974: Synaptics driver unable to detect protocol,这个东西看起来像是另一个错误,但似乎很重要。建议先完全把n卡禁掉,用i卡开xserver试一下触控板。

最后和黑屏相关的报错是这条
Failed to load module "fbdev"。如果你想用的是n卡的话这条就很怪了。


ecmascript是世界上最好的语言

离线

#3 2020-07-26 15:56:54

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: 双显卡 +xorg 启动 xfce4 后黑屏

按说应该是双显卡你没有执行那两句 xrandr 的问题,但是 ssh 连不上去就不应该了啊。

离线

#4 2020-07-26 22:59:34

airmh
会员
注册时间: 2020-06-28
帖子: 29

Re: 双显卡 +xorg 启动 xfce4 后黑屏

xorg 配置文件
yw662 说:

少了(至少)一个xorg的配置文件吧

的确不存在 /etc/X11/xorg.conf 文件。

yw662 说:

还是说那个配置文件是被bb管理的

相关配置文件存在于 /etc/bumblebee/bumblebee.conf。

内容如下(完整内容)

$ cat bumblebee.conf | grep -e "^[^#]"
[bumblebeed]
VirtualDisplay=:8
KeepUnusedXServer=false
ServerGroup=bumblebee
TurnCardOffAtExit=false
NoEcoModeOverride=false
Driver=
XorgConfDir=/etc/bumblebee/xorg.conf.d
[optirun]
Bridge=auto
VGLTransport=proxy
PrimusLibraryPath=/usr/lib/primus:/usr/lib32/primus
AllowFallbackToIGC=false
[driver-nvidia]
KernelDriver=nvidia
PMMethod=auto
LibraryPath=/usr/lib/nvidia:/usr/lib32/nvidia:/usr/lib:/usr/lib32
XorgModulePath=/usr/lib/nvidia/xorg,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia
[driver-nouveau]
KernelDriver=nouveau
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau
禁用 nvidia 显卡
yw662 说:

建议先完全把n卡禁掉,用i卡开xserver试一下触控板

  1. 我用 bbswitch确认 nvidia 显卡没有启用

    $ cat /proc/acpi/bbswitch
    0000:01:00.0 OFF

    需要额外说明的是,我执行了

    sudo pacman -Syyu bbswitch

    来安装 bbswitch,这一过程中我的内核从 5.7.9-arch1-1 变为了 5.7.10-arch1-1。因为仅仅执行

    sudo pacman -S bbswitch

    将会把 bbswitch 安装到形如 /lib/modules/5.7.10-arch1-1 的目录中,这将导致 bumblebee 报错:

    modprobe: FATAL: Module bbswitch not found in directory /lib/modules/5.7.9-arch1-1-ARCH
  2. 然后根据 Wiki 内容添加了文件 /etc/X11/xorg.conf.d/20-intel.conf

    $ cat /etc/X11/xorg.conf.d/20-intel.conf
    Section "Device"
      Identifier "Intel Graphics"
      Driver "intel"
    EndSection
  3. 并且移除了 70-synaptics.conf 文件

    $ sudo mv /etc/X11/xorg.conf.d/70-synaptics.conf /etc/X11/xorg.conf.d/70-synaptics.conf.bak
错误
  1. 再次执行

    $ startx

    出现的错误和之前一样,系统将彻底失去响应,只能长按电源键关机。

    但是再次启动电脑后 ~/.local/share/xorg/Xorg.0.log 为空

    $ cat ~/.local/share/xorg/Xorg.0.log
     
  2. 如果仅启用 server 而不启动任何 client

    $ sh ~/.xinitrc

    将不会出现任何错误。此时

    • 屏幕变为黑屏

    • <C+M+fn> 可以打开新的 tty

    • <C+M+DEL> 可以关闭 x server

    • 可以通过 ssh 连接电脑

    此时日志文件非空(完整内容)如下

    $ cat ~/.local/share/xorg/Xorg.0.log | grep "(EE)"
            (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    [   218.004] (EE) systemd-logind: failed to take device /dev/input/event15: No such file or directory
    [   218.005] (EE) synaptics: bcm5974: Synaptics driver unable to detect protocol
    [   218.005] (EE) PreInit returned 11 for "bcm5974"

离线

#5 2020-07-26 23:04:33

airmh
会员
注册时间: 2020-06-28
帖子: 29

Re: 双显卡 +xorg 启动 xfce4 后黑屏

依云 说:

按说应该是双显卡你没有执行那两句 xrandr 的问题,但是 ssh 连不上去就不应该了啊。

谢谢你的回复,但是“两句 xrandr 的问题”指的是什么,“ssh 连不上去” 又可能是什么原因,我需要提供进一步的信息吗?

离线

#6 2020-07-27 11:27:40

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: 双显卡 +xorg 启动 xfce4 后黑屏

为什么你「sh ~/.xinitrc」能「仅启用 server 而不启动任何 client」?不应该是反过来吗?
另外你能不能发个完整的日志……

离线

#7 2020-07-27 12:47:04

airmh
会员
注册时间: 2020-06-28
帖子: 29

Re: 双显卡 +xorg 启动 xfce4 后黑屏

依云 说:

为什么你「sh ~/.xinitrc」能「仅启用 server 而不启动任何 client」?不应该是反过来吗?
另外你能不能发个完整的日志……

完整日志在超链接中提供了,请仔细看一下

离线

#8 2020-07-27 13:42:32

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: 双显卡 +xorg 启动 xfce4 后黑屏

airmh 说:
依云 说:

为什么你「sh ~/.xinitrc」能「仅启用 server 而不启动任何 client」?不应该是反过来吗?
另外你能不能发个完整的日志……

完整日志在超链接中提供了,请仔细看一下

看到了,情况有点怪……五分钟之后你干了什么?
另外检查一下系统日志,特别是内核日志。

离线

#9 2020-07-28 18:15:07

airmh
会员
注册时间: 2020-06-28
帖子: 29

Re: 双显卡 +xorg 启动 xfce4 后黑屏

抱歉现在才回复。

依云 说:

五分钟之后你干了什么?

当时我插入了我的鼠标,测试鼠标是否能够移动。

依云 说:

另外检查一下系统日志,特别是内核日志。

完整的日志

$ sudo journalctl -b -36

在这里 https://dpaste.com/F3NQD4YNN

内核日志

$ sudo journalctl -kb -36

在这里 https://dpaste.com/GHX7W335S

离线

#10 2020-07-28 18:21:41

airmh
会员
注册时间: 2020-06-28
帖子: 29

Re: 双显卡 +xorg 启动 xfce4 后黑屏

其他疑问:

  1. 为什么

    $ sudo journalctl --list-boots

    只显示了标号从 -34 到 0 的启动条目,而显然上面我定位到 -36 次启动。
    而且打印出来的启动时间都不正确。

  2. 是否应该直接在回复中粘贴代码。因为上传至 dpaste.com 的代码只能保存 7 天,而且不便于其他人的检索。

离线

#11 2020-07-28 19:56:03

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: 双显卡 +xorg 启动 xfce4 后黑屏

看来你黑屏的时候内核啥的都还活着,不能 ssh 具体是什么情况?
日志里没看到多少关于 X 的东西。你把 startx 的日志记一下?
list-boots 有问题我也不清楚。
太长了,直接粘搞不好这页面就加载不出来了……而且直接贴的,我想全选中复制非常麻烦。你可以找个保留时间更长的 pastebin。

离线

#12 2020-07-28 21:53:59

airmh
会员
注册时间: 2020-06-28
帖子: 29

Re: 双显卡 +xorg 启动 xfce4 后黑屏

依云 说:

看来你黑屏的时候内核啥的都还活着,不能 ssh 具体是什么情况?

我在另一台 Windows 电脑上使用 ssh 连接的结果是这样的。

PS C:\Users\AIERXUAN> ssh air@192.168.124.12
...
# air @ AIR-ARCH-PC in ~ [20:20:39]
$ Connection to 192.168.124.12 closed by remote host.
Connection to 192.168.124.12 closed.
PS C:\Users\AIERXUAN> ssh -v air@192.168.124.12
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
debug1: Connecting to 192.168.124.12 [192.168.124.12] port 22.
debug1: connect to address 192.168.124.12 port 22: Connection timed out
ssh: connect to host 192.168.124.12 port 22: Connection timed out

能看到当我运行 startx 后 ssh 就会断开连接并且无法再次连接。

依云 说:

日志里没看到多少关于 X 的东西。你把 startx 的日志记一下?

我前面给出的 ~/.local/share/xorg/Xorg.0.loghttps://dpaste.com/2JZ87DLG2)不算 startx 的日志吗?如果不算的话我需要用什么命令来得到日志?

离线

#13 2020-07-28 22:23:22

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: 双显卡 +xorg 启动 xfce4 后黑屏

airmh 说:

我前面给出的 ~/.local/share/xorg/Xorg.0.loghttps://dpaste.com/2JZ87DLG2)不算 startx 的日志吗?如果不算的话我需要用什么命令来得到日志?

你这个时间没法对上啊。你试试 systemd-cat startx?

ssh 连接超时呢。你 ping IP 地址呢?

另外尽量带上时间,不然没法对上。

离线

#14 2020-07-29 00:10:30

airmh
会员
注册时间: 2020-06-28
帖子: 29

Re: 双显卡 +xorg 启动 xfce4 后黑屏

时间对不上是因为 #1 里给出的日志是两天前的,而 ssh 测试是今天做的。

现在我重新进行了测试

如我之前所说,不知道为什么电脑 hard reset 后 ~/.local/share/xorg/Xorg.0.log 为空。而且 systemd-cat startx 不能正常捕获到输出:有时 journal 中完全没有 startx 的输出信息,有时候仅有部分几行。

但是我用了一个 trick 来获得想要的信息。操作过程是这样的:

  1. 启动本机,另一台主机通过 ssh 登录(对应日志中 23:26:12)。

  2. systemd-cat startx

    (对应日志中 23:26:27)

  3. 电脑黑屏,但是光标仍没有出现。
    这时可以按下 <C+M+f2> 打开 tty2。(对应日志中 23:26:31)
    此时一切正常。
    此时 journal 中有完整记录 startx 的输出,
    同时 ~/.local/share/xorg/Xorg.0.log 非空。

  4. 切换至 tty1,光标出现。
    电脑立即失去响应,ssh 断开,ping 失败,无法切换至 tty2。

  5. hard reset。获取日志文件。

完整的日志文件

最近编辑记录 airmh (2020-07-29 01:41:32)

离线

#15 2020-07-29 11:08:44

matrikslee
会员
注册时间: 2017-04-21
帖子: 442
个人网站

Re: 双显卡 +xorg 启动 xfce4 后黑屏

~/.local/share/xorg/Xorg.0.log
这个log的最后显示你的device全部被remove了,VT 也suspend了,估计网络也是因为suspend被close了。

journalctl最后好像是没有记录到你切换到tty1的日志,很奇怪

离线

页脚