Black Screen after Login. Need to reset screen resolution

System: Acer Nitro 5
The QOS411 recommended auto screen resolution for my laptop: 1920x1080 @144Hz
Since the font size was very small even after setting dpi from general settings, I tried resetting screen resolution through settings>Display>Res: to 1600:900. This resulted in a black screen for a few seconds followed by resolution resetting to 1920x1080 without any message, reason, or option.

To force the resolution, I set it to 1600x900, and clicked ENTER, assuming that there is a message behind the black screen asking to keep the changes. This time QOS411 didn’t reset it back to 1920x1080 but got stuck at the black screen.

Restarting QOS411 works till login, and then gets stuck at the black screen after logging in.

A bit of researching showed that the shell can be accessed by connecting in tty mode during login using CTRL + ALT + F5.
At shell, I have tried:
1. $ xrandr and related commands
Can’t open display, because it expects to be run inside an Xsession
2. $ export DISPLAY=:0
(and eDP-1, VGA-1 for monitor ID)
$xrandr --listmonitors
always results in “Can’t open display ___”
3. gtf 1920 1080 144
gives the modeline string output for this resolution and frequency
4. startx
a light blue screen briefly appears, and xserver connection gets lost with the following message:
xauth: file /root/.serverauth.xxxxx does not exist…

Internal error: Could not resolve keysym XF86FullScreen
Errors from xkbcomp are not fatal to the X server
Failed to import environment: Process org.freedesktop.systemd1 exited with status1
xinit: connection to X server lost.

Am not even sure if I am asking the question in the right way.

QUESTION: Is there any file where screen resolution is set in dom0? How do I reset the screen resolution to 1920x1080 @144 in tty mode where I have access to shell for user at dom0?

Perhaps configure and save a custom xorg.conf file at /etc/X11?

I don’t know the exact anwer, but Dom0 (in 4.1) runs Fedora 32, so you could try to search for an answer for Fedora. In other words, it doesn’t look like a Qubes-specific question.

Thanks for responding. You are probably right. And it might be related to nvidia graphics card NVIDIA Corporation GA104M [GeForce RTX 3070 Mobile / Max-Q] and the nouveau driver.
I have tried a few things including trying to setup a xorg.conf file in /etc/X11 as well as placing the same file named as 20-monitor.conf under /etc/X11/xorg.conf.d/ to try to override the current settings. The sections include Device, Monitor and Screen.
Every time a .conf file is placed, the boot escapes to a terminal output and gets stuck at
"Starting Light Display Manager…
Starting Hold until boot process finishes up"

CTRL + ALT + F2/F5 at this juncture gives access to tty2 and tty5 that allows login and root access/tinkering with files in the root partition, but cannot open display or use xrandr.

Also checked Xorg.0.log files which essentially spew out the same “No Screens Found” with the .conf files with various changes.
Deleting the .conf files gets the boot until login, and a black screen after login that responds to the brightness keys (Fn+BrightnessUp/Down) but without any display, lol. This shows that these file configurations/drivers probably have nothing to do with the problem.

startx on tty2/tty5 as root, without any custom conf files gives the following message:
The XKEYBOARD keymap compiler (xkbcomp) reports:
Internal error: Could not resolve keysym XF86FullScreen
Errors from xkbcomp are not fatal to the X server
The XKEYBOARD keymap compiler (xkbcomp) reports:
Internal error: Failed to import environment: Process org.freedesktop.systemd1 exited with status (1)
xinit: connection to Xserver lost

Checking for light display manager status, shows the lightdm service is active. Invoking lightdm as root in shell brought the mouse arrow on the black screen with the tty prompt.

Since the display was working until the change I introduced, and based on the above error message, I think it is a tiny detail that needs to be corrected manually. Not able to get that information anywhere online.
I am hoping somebody can point out where to change/override the display settings for the dom0 gui.

Some commands that might be useful to retrieve information (NN for number):
vbeinfo
hwinfo --framebuffer
gtf x y refreshrate
(gtf - calculate VESA GTF mode lines eg., gtf 1920 1080 144)
journalctl --list-boots
journalctl --no-hostname -b -NN
(use number from previous command to check kernel version)
journalctl -b
journalctl -xe
lspci -k
lspci -k | grep -EA3 ‘VGA|3D|Display’
lshw -C video
dmidecode --type system
systemctl -n999 status lightdm
#lightdm
at # on tty2/tty5
$ export DISPLAY=:0
xrandr --listmonitors
xrandr command-parameters-here

Locations/files:
/var/log/Xorg.0.log
/etc/X11/
xorg.conf
/etc/X11/xorg.conf.d/
NN-monitor.conf
/usr/lib64/xorg/modules/drivers

Tried many other useless tricks as well that is not worth mentioning here.
Will try to get more info and post if this is resolved.

1 Like

This problem can be only from two sources, in this case:

  1. Incorrect settings in Display manager (unlikely)
  2. Kernel-Display driver conflict that got accentuated when the new resolution was set.

(1). To test the first, I deleted lightdm from Qubes, which deleted these specific packages (~2MB) in dom0 user shell via tty.
$sudo systemctl -n999 status lightdm
$sudo systemctl stop lightdm.service
$sudo systemctl disable lightdm.service
$sudo dnf remove lightdm

Package
lightdm-1.30.0-9.fc32.x86_64
Dependent Package
lightdm-gtk-2.0.7-1.fc32.x86_64
qubes-gui-dom0-4.1.23-1.fc32.x86_64
Unused Dependencies
accountsservice-0.6.55-2.fc32.x86_64
lightdm-gobject-1.30.0-9.fc32.x86_64
qubes-gui-daemon-4.1.23-1.fc32.x86_64

Re-installation does not work with dnf install command.
$sudo qubes-dom0-update lightdm
This installed ~277MB of packages. the qubes related dependencies had to be separately installed.

I also installed kde, sddm, plasma-workspace, latte-dock, dolphin through:
$sudo qubes-dom0-update plasma-workspace latte-dock dolphin sddm
This also installs dependencies usually, else install separately.
The original instructions for kde installation at qubes-os.org/doc/kde do not work. ($sudo qubes-dom0-update @kde-desktop-qubes)

After reinstalling lightdm as well as sddm, I tried the sddm service first.
$sudo nano /etc/sddm.conf
Added the line as per qubes-os.org/doc/kde
[XDisplay]
ServerArguments=-nolisten tcp -background none

$sudo systemctl enable sddm.service
$sudo systemctl start sddm.service

Three sessions were available: Deepin, Plasma, Xfce
Xfce failed as before. So did Deepin.
Plasma showed the same black screen, but with a mouse arrow and dropdown qubes window for disk usage at a corner; practically nothing else was working. Tried shortcuts to access display settings, and found win+E gave explorer access and from there I obtained terminal access in dom0.

xrandr output (to check resolution and alias for the next commands) showed the following:
Screen 0: minimum 320x200, Current 1920x1080, Maximum 16384x16384
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 193mm

I used xrandr to set new mode 1920x1080_144.00 after gtf output for the modeline for this setting.

#xrandr --newmode “1920x1080_144.00” xyz.xx 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
#xrandr --addmode eDP-1 “1920x1080_144.00”
if it doesn’t work, force with
#xrandr --output eDP-1 --mode "1920x1080_144.00"

Navigating to a folder containing jpg file, I used right click to force open through settings app to obtain access to the settings display window which had resolution dropdown fixed at 1920x1080 at 144Hz.

No matter the changes after login into the session, the display problem stubbornly remained.

So, this was not a DM/service problem.

(2). To check whether kernel was the problem, I checked kernel versions. 5.15-52 and 5.15-57, with the latter currently activated. Kernel was temporarily reset to previous version via editing during boot. This allowed Plasma session to function decently (with a dashboard, taskbar and all usual widgets with access to qubes applications), but not xfce session.

Plasma display settings showed that there was a driver conflict with kernel upgrade, by defaulting to OpenGL2.0 instead of xrenderer.

I have set default kernel used by all qubes to 5.15-52.

My next tasks:

  1. Revert default kernel version for dom0 to 5.15-52, and retain it. Remove 5.15-57. Prevent system from updating kernels.
  2. Reset drivers to previous versions, if required, to rescue Xfce.

Finally managed to resolve this issue. (Also see previous messages in this post)
First I cleared out all the config files for xfce4. The folders I checked were
/home/user/.local/share
/home/user/.config

I also renamed all gtk related files in /etc/ and /etc/gtk3.0, because of the following error message in display settings on plasma-kde.

Also, /home/user/.xsession-errors file had shown an error with GTK warning.
xfce error: Gtk-WARNING **: n: Theme parsing error: colors.css:n: Invalid number for color value
I used the solution from:

Then I did a dom0 update from plasma-kde and rebooted.

Now I am able to login both xfce/plasma-kde.

In the course of finding a solution to this problem, I learnt many things. lol.
First of all, try to find the source of the error. Looking in xsession-errors was a good recommendation from one of the sites.

Plasma-KDE is also very good to use. Can run on the same lightdm.service. Look for Kde-colors.sh to make magic colors work on kde.
If you get a black screen after login, CTRL+ALT+F1 to F6 will land you in tty mode and give access to shell login as root. At shell,
systemctl -n999 status lightdm.service #shows if the service is active. Works for lightdm, gdm, kdm, sddm etc
systemctl restart lightdm.service #jumps to login screen.

In this case, the issue was corrupted XFCE configuration files and possibly gtk. Also check kernel version/drivers/and case specific clues to close in on the solution.
Hope this helps anyone with the same problem.

1 Like