You are not logged in.
Not sure when this started, but for the last maybe month or two, if I have x11 running my desktop environment and suspend the system to ram (eg, with systemctl suspend) then when it comes back up, instead of the display manager coming backup it comes back to a blank virtual terminal (Empty black screen except a single underscore in the top left).
I noticed recently that if I ctrl+alt+f2 to get a different virtual terminal and then chvt back to X11, the same thing happens.
If I cleanly exit X11 by logging out (I use i3, so if I just exit x11 it goes back to a terminal) and then systemctl suspend, it restores just fine.
Xorg.0.log: https://0x0.st/K11X.txt
Last edited by scott_fakename (2025-10-25 21:54:22)
Offline
Get rid of "nvidia_drm.fbdev=0", also remove every single xf86-video-* package.
If you still have the problem afterwards, post an updated xorg log that covers the framebuffer loss (chvt forth and back)
Offline
There were a few xf86 packages that are dependencies of other things, they didn't go.
$ sudo pacman -Rnsuv $(pacman -Qq | grep xf86)
Root : /
Conf File : /etc/pacman.conf
DB Path : /var/lib/pacman/
Cache Dirs: /var/cache/pacman/pkg/
Hook Dirs : /usr/share/libalpm/hooks/ /etc/pacman.d/hooks/
Lock File : /var/lib/pacman/db.lck
Log File : /var/log/pacman.log
GPG Dir : /etc/pacman.d/gnupg/
Targets : lib32-libxxf86vm libxxf86vm xf86-input-libinput xf86-video-fbdev xf86-video-vesa
checking dependencies...
warning: removing libxxf86vm from target list
warning: removing lib32-libxxf86vm from target list
warning: removing xf86-input-libinput from target list
Package (2) Old Version Net Change
xf86-video-fbdev 0.5.1-1 -0.03 MiB
xf86-video-vesa 2.6.0-2 -0.03 MiB
Total Removed Size: 0.07 MiB
:: Do you want to remove these packages? [Y/n]
:: Processing package changes...
(1/2) removing xf86-video-vesa [########################################################] 100%
(2/2) removing xf86-video-fbdev [########################################################] 100%
:: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Cleaning pacman cache...
==> no candidate packages found for pruningxf86-input-libinput is required by xorg-server, so I can't remove that without removing xorg ![]()
The other ones are required by other important things too, so I can't easily remove them either without breaking my system.
Xorg log: http://0x0.st/K15F.txt
The nvidia_drm.fbdev=0 thing is loadbearing for something unreleated; without it the tty font shows up huge which is annoying and I haven't found a fix for it other than that. I've removed it for this boot, though.
Offline
I forgot to mention: I chvt'd to TTY2 at about an uptime of 135 seconds; then I waited a few seconds before hitting the power button.
It didn't print anything into the log; I ran a `journalctl -b-1` and around that time the only interesting thing looked to be this:
Oct 19 19:42:53 neptune-bot.uraxa.lan systemd[1617]: Starting Xfce configuration service...
Oct 19 19:42:53 neptune-bot.uraxa.lan systemd[1617]: Started Xfce configuration service.
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/ldac
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSink/aptx_hd
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/aptx_hd
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSink/aptx
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/aptx
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSink/aac
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/aac
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSink/opus_g
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/opus_g
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSink/sbc
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/sbc
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/aptx_ll_1
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/aptx_ll_0
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_1
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_0
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/faststream
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/faststream_duplex
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSink/opus_05
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/opus_05
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSink/opus_05_duplex
Oct 19 19:43:35 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint unregistered: sender=:1.24 path=/MediaEndpoint/A2DPSource/opus_05_duplex
Oct 19 19:43:36 neptune-bot.uraxa.lan systemd[1617]: Reached target Sound Card.
Oct 19 19:43:36 neptune-bot.uraxa.lan systemd-logind[1473]: Watching system buttons on /dev/input/event8 (Keychron Keychron Q6 System Control)
Oct 19 19:43:36 neptune-bot.uraxa.lan systemd[1]: Started Getty on tty2.
Oct 19 19:43:38 neptune-bot.uraxa.lan systemd-logind[1473]: Watching system buttons on /dev/input/event8 (Keychron Keychron Q6 System Control)
Oct 19 19:43:38 neptune-bot.uraxa.lan wireplumber[1870]: default: Failed to get percentage from UPower: org.freedesktop.DBus.Error.NameHasNoOwner
Oct 19 19:43:38 neptune-bot.uraxa.lan wireplumber[1870]: spa.bluez5.midi: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.bluez.Error.AlreadyExists: Already Exists
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/ldac
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSink/aptx_hd
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/aptx_hd
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSink/aptx
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/aptx
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSink/aac
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/aac
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSink/opus_g
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/opus_g
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSink/sbc
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/sbc
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/aptx_ll_1
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/aptx_ll_0
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_1
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_0
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/faststream
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/faststream_duplex
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSink/opus_05
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/opus_05
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSink/opus_05_duplex
Oct 19 19:43:38 neptune-bot.uraxa.lan bluetoothd[1466]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource/opus_05_duplex
Oct 19 19:43:45 neptune-bot.uraxa.lan systemd-logind[1473]: Power key pressed short.
Oct 19 19:43:45 neptune-bot.uraxa.lan systemd-logind[1473]: Powering off...So, starting xfce, a bunch of bluetooth stuff, starts getty on tty2, then a wireplumber issue talking to bluez, back to bluetooth garbo, poweroff. Nothing that looks obviously like an issue to me.
I'm kinda stumped how even to debug it.
One interesting thing I noticed: One time when I chvt'd away from x11, then when I chvt'd back, i heard a click in my headphones that sounded like the power to the headphone output being cut, as happens when I turn off the computer. I don't know if that's a cause or an effect; seems most likely that it'd be the latter.
Offline
remove every single xf86-video-* package
Nothing else!
The nvidia_drm.fbdev=0 thing is loadbearing for something unreleated; without it the tty font shows up huge which is
because you're no longer running on the simpledrm device - but apparently that doesn't help?
Try "sudo journalctl -b", that looks thin for a system journal (or did you pre-filter the "interesting" parts? Please don't.)
There's https://bbs.archlinux.org/viewtopic.php?id=309532 - while the symptoms aren't exactly the same, do you run picom next to i3wm?
Offline
I excerpted everything between when i chvt'd away and back and when it shut down; here's the full log: http://0x0.st/KjJ_.txt
Offline
You're running startx/xinit?
Please post your xinitrc (resp. see the last link below)
Offline
My xinitrc is pretty short:
#!/bin/sh
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
# Set DPI
xrandr --dpi 96
# merge in defaults and keymaps
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
# start some nice programs
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
feh -z --bg-scale ~/Documents/Wallpapers/
numlockx on
setxkbmap -option compose:caps
blueman-applet &
# If no arguments, CD to home and start i3.
[ "$#" -eq 0 ] && cd "${HOME}" && exec i3
# Otherwise just start whatever else was requested, wherever we were.
exec "$@"startx is itself called with no arguments, via a short python script that just ensures i have a network connection and then calles startx alone with no arguments.
Last edited by scott_fakename (2025-10-22 02:06:19)
Offline
You have the relevant bits:
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
There's https://bbs.archlinux.org/viewtopic.php?id=309532 - while the symptoms aren't exactly the same, do you run picom next to i3wm?
Offline
No, I don't run picom; In my /etc/X11/xinit/xinitrc.d i only have:
40-libcanberra-gtk-module.sh* 50-systemd-user.sh*It seems like x11 is failing to come back up, or something, because it looks like a blank tty with a cursor in the upper corner when coming back up from suspend, or just frozen with whatever was on the screen before and the whole system locked up if I chvt from another tty. But, IDK.
Maybe my best hope is to just wait and hope it fixes on its own eventually.
Last edited by scott_fakename (2025-10-24 04:10:44)
Offline
It seems like x11 is failing to come back up
From the other TTY
DISPLAY=:0 xrandr -qor
DISPLAY=:0 xdpyinfoDo those get you errors?
It's more likly nvidia's framebuffer handling.
then I waited a few seconds before hitting the power button.
Try to wait like 5 minutes (get a cup of coffee) to be sure - the nvidia driver is very slow at those framebuffer changes.
Offline
This problem is quite similar to:
https://bbs.archlinux.org/viewtopic.php?id=308377
TLDR: Try to unplug your Keychron mouse and/or Asus (?) keyboard (or switch to another one) and check whether this is a source of your problem.
BTW: After I fixed problem with my keyboard, I had the same problem with Yubikey 5 NFC. Udev rule removing tag (TAG-="uaccess") solved it for Yubikey, so you can try this as well if it turns out that your device is a problem.
Unfortunately, my problem is only similar to yours - I have not seen Input/Output errors in your Xorg logs (but maybe this does not matter).
Offline
Oh my stars, that's amazing -- it worked!
If I change to tty2 log in and then do sleep 3; chvt 1 and then unplug (actually, turn off my KVM switch) then it chvts properly. Likewise if I suspend to ram, turn off the KVM switch, and then turn back on the computer by hitting the power button.
I would never have thought to check this, that's incredible!
I did a cursory lsusb and my keychron only showed up as one device in that but I'll have to investigate further.
Thank you, that is super helpful!
Offline
I would never have thought to check this
+1
Please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.
Offline
I thought Keychron Q6 was a mouse, but it is a keyboard!
Subdevices (maybe device interfaces is a better name) are listed in your Xorg logs (above) and in kernel logs. Q6 is advertised as Keyboard, Mouse, Consumer Control and System Control.
You can try to find them:
# brief list
xinput
# or (as a root maybe?, details with tags and envs)
udevadm info /sys/class/input/* BTW from your xorg log:
[ 95.219] (**) Keychron Keychron Q6 System Control: always reports core events
[ 95.219] (**) Option "Device" "/dev/input/event8"
[ 95.221] (II) event8 - Keychron Keychron Q6 System Control: is tagged by udev as: Keyboard Joystick
[ 95.221] (II) event8 - Keychron Keychron Q6 System Control: device is a keyboard
[ 95.221] (II) event8 - Keychron Keychron Q6 System Control: device removed
[ 95.221] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:08.1/0000:0c:00.4/usb5/5-2/5-2.2/5-2.2:1.2/0003:3434:0161.0007/input/input9/event8"
[ 95.221] (II) XINPUT: Adding extended input device "Keychron Keychron Q6 System Control" (type: KEYBOARD, id 16)
[ 95.222] (II) event8 - Keychron Keychron Q6 System Control: is tagged by udev as: Keyboard Joystick
[ 95.222] (II) event8 - Keychron Keychron Q6 System Control: device is a keyboard
[ 95.224] (II) config/udev: Adding input device HID 413d:2107 (/dev/input/event11)My keyboard's System Control is tagged now as Keyboard not as Keyboard Joystick.
Offline
Yep, it's solved. Here's the step by step instructions for future problem-havers:
0 - Confirming the problem is your keyboard by doing ctrl+alt+f2 to switch to tty 2, then logging in and running:
sleep 3 && chvt 1... And then immediately unplugging the keyboard before it runs chvt. If it works, then the keyboard is the problem.
1 - Identify your keyboard's vendor ID and product ID:
$ udevadm info /sys/class/input*Find your keyboard. In that list will be something like:
P: /devices/pci0000:00/0000:00:08.1/0000:0c:00.4/usb5/5-2/5-2.2/5-2.2:1.2/0003:3434:0161.0007/input/input11/event10
M: event10
R: 10
J: c13:74
U: input
D: c 13:74
N: input/event10
L: 0
S: input/by-path/pci-0000:0c:00.4-usbv2-0:2.2:1.2-event-kbd
S: input/by-id/usb-Keychron_Keychron_Q6-if02-event-kbd
S: input/by-path/pci-0000:0c:00.4-usb-0:2.2:1.2-event-kbd
E: DEVPATH=/devices/pci0000:00/0000:00:08.1/0000:0c:00.4/usb5/5-2/5-2.2/5-2.2:1.2/0003:3434:0161.0007/input/input11/event10
E: DEVNAME=/dev/input/event10
E: MAJOR=13
E: MINOR=74
E: SUBSYSTEM=input
E: USEC_INITIALIZED=51360857
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_BUS=usb
E: ID_MODEL=Keychron_Q6
E: ID_MODEL_ENC=Keychron\x20Q6
E: ID_MODEL_ID=0161
E: ID_SERIAL=Keychron_Keychron_Q6
E: ID_VENDOR=Keychron
E: ID_VENDOR_ENC=Keychron
E: ID_VENDOR_ID=3434
E: ID_REVISION=0105
E: ID_TYPE=hid
E: ID_USB_MODEL=Keychron_Q6
E: ID_USB_MODEL_ENC=Keychron\x20Q6
E: ID_USB_MODEL_ID=0161
E: ID_USB_SERIAL=Keychron_Keychron_Q6
E: ID_USB_VENDOR=Keychron
E: ID_USB_VENDOR_ENC=Keychron
E: ID_USB_VENDOR_ID=3434
E: ID_USB_REVISION=0105
E: ID_USB_TYPE=hid
E: ID_USB_INTERFACES=:030101:030000:
E: ID_USB_INTERFACE_NUM=02
E: ID_USB_DRIVER=usbhid
E: ID_PATH_WITH_USB_REVISION=pci-0000:0c:00.4-usbv2-0:2.2:1.2
E: ID_PATH=pci-0000:0c:00.4-usb-0:2.2:1.2
E: ID_PATH_TAG=pci-0000_0c_00_4-usb-0_2_2_1_2
E: LIBINPUT_DEVICE_GROUP=3/3434/161:usb-0000:0c:00.4-2
E: DEVLINKS=/dev/input/by-path/pci-0000:0c:00.4-usbv2-0:2.2:1.2-event-kbd /dev/input/by-id/usb-Keychron_Keychron_Q6-if02-event-kbd /dev/input/by-path/pci-0000>
E: TAGS=:power-switch:
E: CURRENT_TAGS=:power-switch:Yours will obviously look different. But, take ID_VENDOR_ID (that's your vendor ID) and ID_MODEL_ID (that's your product ID.
2 - Create a hwdb override file at /etc/udev/hwdb.d/70-keyboard.hwdb. It should have these contents:
id-input-modalias:input:*v${ID_VENDOR_ID}p${ID_MODEL_ID}*
ID_INPUT_JOYSTICK=3 - Update your hwdb. Run:
$ sudo systemd-hwdb update -sIf it exits nonzero everything worked. Try chvt and back.
Offline