在 Virtual console 中用
# startx
命令启动 xfce4
Virtual console 消失,屏幕变为黑色
约2秒后,屏幕中间出现光标
系统失去响应,包括
<C+M+fn> 无法打开新的 tty
<C+M+DEL> 无法关闭 x server
无法通过 ssh 连接电脑
bumblebee
mesa
xf86-video-intel
nvidia
xfce4
~/.local/share/xorg/Xorg.0.log
关键信息
$ 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
关键信息
$ 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
关键信息
$ 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
关键信息
$ 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 中得到与黑屏错误相关的信息。我怀疑是双显卡没有正常工作导致的。
如果需要提供进一步的信息,请回复。
离线
少了(至少)一个xorg的配置文件吧,还是说那个配置文件是被bb管理的?不过看你列出的这些信息似乎是想选择i卡的样子?
synaptics: bcm5974: Synaptics driver unable to detect protocol,这个东西看起来像是另一个错误,但似乎很重要。建议先完全把n卡禁掉,用i卡开xserver试一下触控板。
最后和黑屏相关的报错是这条
Failed to load module "fbdev"。如果你想用的是n卡的话这条就很怪了。
ecmascript是世界上最好的语言
离线
按说应该是双显卡你没有执行那两句 xrandr 的问题,但是 ssh 连不上去就不应该了啊。
在线
少了(至少)一个xorg的配置文件吧
的确不存在 /etc/X11/xorg.conf 文件。
还是说那个配置文件是被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
建议先完全把n卡禁掉,用i卡开xserver试一下触控板
我用 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
然后根据 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
并且移除了 70-synaptics.conf 文件
$ sudo mv /etc/X11/xorg.conf.d/70-synaptics.conf /etc/X11/xorg.conf.d/70-synaptics.conf.bak
再次执行
$ startx
出现的错误和之前一样,系统将彻底失去响应,只能长按电源键关机。
但是再次启动电脑后 ~/.local/share/xorg/Xorg.0.log 为空。
$ cat ~/.local/share/xorg/Xorg.0.log
如果仅启用 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"
离线
按说应该是双显卡你没有执行那两句 xrandr 的问题,但是 ssh 连不上去就不应该了啊。
谢谢你的回复,但是“两句 xrandr 的问题”指的是什么,“ssh 连不上去” 又可能是什么原因,我需要提供进一步的信息吗?
离线
为什么你「sh ~/.xinitrc」能「仅启用 server 而不启动任何 client」?不应该是反过来吗?
另外你能不能发个完整的日志……
在线
为什么你「sh ~/.xinitrc」能「仅启用 server 而不启动任何 client」?不应该是反过来吗?
另外你能不能发个完整的日志……
完整日志在超链接中提供了,请仔细看一下
离线
依云 说:为什么你「sh ~/.xinitrc」能「仅启用 server 而不启动任何 client」?不应该是反过来吗?
另外你能不能发个完整的日志……完整日志在超链接中提供了,请仔细看一下
看到了,情况有点怪……五分钟之后你干了什么?
另外检查一下系统日志,特别是内核日志。
在线
抱歉现在才回复。
五分钟之后你干了什么?
当时我插入了我的鼠标,测试鼠标是否能够移动。
另外检查一下系统日志,特别是内核日志。
完整的日志
$ sudo journalctl -b -36
在这里 https://dpaste.com/F3NQD4YNN
内核日志
$ sudo journalctl -kb -36
离线
其他疑问:
为什么
$ sudo journalctl --list-boots
只显示了标号从 -34 到 0 的启动条目,而显然上面我定位到 -36 次启动。
而且打印出来的启动时间都不正确。
是否应该直接在回复中粘贴代码。因为上传至 dpaste.com 的代码只能保存 7 天,而且不便于其他人的检索。
离线
看来你黑屏的时候内核啥的都还活着,不能 ssh 具体是什么情况?
日志里没看到多少关于 X 的东西。你把 startx 的日志记一下?
list-boots 有问题我也不清楚。
太长了,直接粘搞不好这页面就加载不出来了……而且直接贴的,我想全选中复制非常麻烦。你可以找个保留时间更长的 pastebin。
在线
看来你黑屏的时候内核啥的都还活着,不能 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.log(https://dpaste.com/2JZ87DLG2)不算 startx 的日志吗?如果不算的话我需要用什么命令来得到日志?
离线
我前面给出的 ~/.local/share/xorg/Xorg.0.log(https://dpaste.com/2JZ87DLG2)不算 startx 的日志吗?如果不算的话我需要用什么命令来得到日志?
你这个时间没法对上啊。你试试 systemd-cat startx?
ssh 连接超时呢。你 ping IP 地址呢?
另外尽量带上时间,不然没法对上。
在线
时间对不上是因为 #1 里给出的日志是两天前的,而 ssh 测试是今天做的。
现在我重新进行了测试。
如我之前所说,不知道为什么电脑 hard reset 后 ~/.local/share/xorg/Xorg.0.log 为空。而且 systemd-cat startx 不能正常捕获到输出:有时 journal 中完全没有 startx 的输出信息,有时候仅有部分几行。
但是我用了一个 trick 来获得想要的信息。操作过程是这样的:
启动本机,另一台主机通过 ssh 登录(对应日志中 23:26:12)。
systemd-cat startx
(对应日志中 23:26:27)
电脑黑屏,但是光标仍没有出现。
这时可以按下 <C+M+f2> 打开 tty2。(对应日志中 23:26:31)
此时一切正常。
此时 journal 中有完整记录 startx 的输出,
同时 ~/.local/share/xorg/Xorg.0.log 非空。
切换至 tty1,光标出现。
电脑立即失去响应,ssh 断开,ping 失败,无法切换至 tty2。
hard reset。获取日志文件。
最近编辑记录 airmh (2020-07-29 01:41:32)
离线
~/.local/share/xorg/Xorg.0.log
这个log的最后显示你的device全部被remove了,VT 也suspend了,估计网络也是因为suspend被close了。
journalctl最后好像是没有记录到你切换到tty1的日志,很奇怪
离线