You are not logged in.
One thing I don't understand is that even when lightdm is disabled, why does the video monitor appear to change graphics modes on startup between grub+startup log message, and the tty login? That's the point where the monitor loses the signal when the "nvidia_drm.modeset=1 nvidia_drm.fbdev=0" kernel options are not given.
https://wiki.archlinux.org/title/Kernel … _KMS_start
Why does it change graphics modes just to show the tty login?
It doesn't - the mode switch comes w/ the KMS takeover, in doubt by the simpledrm device.
The reason is mostly "wayland".
Hence keeps the parameters.
appeared to have no effect other than
nb. that edits to /etc/default/grub are inert until you run grub-mkconfig
Try
GRUB_GFXPAYLOAD_LINUX=text
instead
Offline
Thanks - based on that link I enabled this line in /etc/mkinitcpio.conf
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
which prevented the graphics mode change just prior to the tty login prompt.
Why does it change graphics modes just to show the tty login?
It doesn't - the mode switch comes w/ the KMS takeover, in doubt by the simpledrm device.
The reason is mostly "wayland".
Hence keeps the parameters.
This is my current GRUB_CMDLINE_LINUX_DEFAULT:
GRUB_CMDLINE_LINUX_DEFAULT="nvidia_drm.fbdev=0"
This appears to be necessary otherwise it shows HDMI No Signal on startup after grub and before the login tty prompt.
I'm leaving out "nvidia_drm.modeset=1" because I'm not able to distinguish what effect it has.
appeared to have no effect other than
nb. that edits to /etc/default/grub are inert until you run grub-mkconfig
Yes I have always been running "sudo grub-mkconfig -o /boot/grub/grub.cfg" after editing /etc/default/grub, and "sudo mkinitcpio -P" after editing /etc/mkinitcpio.conf.
Try
GRUB_GFXPAYLOAD_LINUX=text
instead
Tried - wasn't able to see any difference between that and GRUB_GFXPAYLOAD_LINUX=keep.
Summary:
Setting MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm) removes the graphics change flickering during startup (which I thought might help with the graphics mode<->console tty changes in general) but the monitor still loses the signal when logging out of the desktop. (This is not critical but concerned it is indicative of an incorrect setting that might manifest in other ways.)
Offline
I'm leaving out "nvidia_drm.modeset=1" because I'm not able to distinguish what effect it has.
https://wiki.archlinux.org/title/NVIDIA … de_setting and it also will block the simpledrm device.
Tried - wasn't able to see any difference between that and GRUB_GFXPAYLOAD_LINUX=keep.
Do you get an 80x25 console w/ GRUB_GFXPAYLOAD_LINUX=keep ??
stty size
Offline
I'm leaving out "nvidia_drm.modeset=1" because I'm not able to distinguish what effect it has.
https://wiki.archlinux.org/title/NVIDIA … de_setting and it also will block the simpledrm device.
To be sure I understand: According to the above link:
Starting from nvidia-utils 560.35.03-5, DRM defaults to enabled.
Since I'm using version 560.35.03-18 it is ok to leave that option out.
Tried - wasn't able to see any difference between that and GRUB_GFXPAYLOAD_LINUX=keep.
Do you get an 80x25 console w/ GRUB_GFXPAYLOAD_LINUX=keep ??
stty size
I can see no difference between GRUB_GFXPAYLOAD_LINUX=keep or text (always running grub-mkconfig after changes.) In both cases, the grub menu does appear in the middle section of the monitor which looks like it may be a 80x25 console box. In the same box it shows the filesystem info with the last line being "Loading initial ramdisk ..."
Shortly after that, staying in the same graphics console mode, it goes fullscreen with the first line in the upper left being ":: running early hook [udev]" following by log lines, and then clears the screen with the login console prompt in the far upper left. Logging in, stty size shows "48 128".
The grub setting that seems to be responsible for centering the grub menu into a 80x25 box was when this line was uncommented:
# Uncomment to disable graphical terminal
GRUB_TERMINAL_OUTPUT=console
When that is commented out, the grub menu appears in the far upper left, seeming to make use of the full 128x48 console rather than the center 80x25 (which I'm estimating/guessing).
Offline
Since I'm using version 560.35.03-18 it is ok to leave that option out.
No, it's still required to block the simpledrm device, esp. when disabling fbdev.
sudo journalctl -b | grep -i simple
Why are we having a discussion about this?
Shortly after that, staying in the same graphics console mode, it goes fullscreen with the first line in the upper left
You're trying to prevent that change.
Offline
Since I'm using version 560.35.03-18 it is ok to leave that option out.
No, it's still required to block the simpledrm device, esp. when disabling fbdev.
Confirmed. Without nvidia_drm.modeset=1:
$ sudo journalctl -b | grep -i simple
Oct 29 09:56:27 fractal kernel: [drm] Initialized simpledrm 1.0.0 for simple-framebuffer.0 on minor 0
Oct 29 09:56:27 fractal kernel: simple-framebuffer simple-framebuffer.0: [drm] fb0: simpledrmdrmfb frame buffer device
With nvidia_drm.modeset=1:
$ sudo journalctl -b | grep -i simple
Oct 30 08:48:51 fractal kernel: The simpledrm driver will not be probed
I'll leave that option in.
Why are we having a discussion about this?
Because https://wiki.archlinux.org/title/NVIDIA … de_setting says:
Starting from nvidia-utils 560.35.03-5, DRM defaults to enabled. For older drivers, set the modeset=1 kernel module parameter for the nvidia_drm module.
That suggests that setting nvidia_drm.modeset=1 is the same as not including it with the current driver. If that is true but there are still other reasons to include the option anyway, would it be worthwhile updating that in the wiki?
In both cases:
$ sudo cat /sys/module/nvidia_drm/parameters/modeset
Y
Shortly after that, staying in the same graphics console mode, it goes fullscreen with the first line in the upper left
You're trying to prevent that change.
Here is the current grub config:
$ grep ^GRUB /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="nvidia_drm.fbdev=0 nvidia_drm.modeset=1"
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
GRUB_TIMEOUT_STYLE=menu
GRUB_TERMINAL=console
GRUB_GFXMODE=auto
GRUB_GFXPAYLOAD_LINUX=text
GRUB_DISABLE_RECOVERY=true
I've tried all 4 combinations of:
Comment in/out: GRUB_TERMINAL=console
GRUB_GFXPAYLOAD_LINUX=keep/text
but in all cases with lightdm disabled:
The startup log messages starting with ":: running early hook [udev]" uses the entire console screen starting in far upper-left corner of monitor.
startxfce4 successfully starts the graphical desktop, but Logout loses the signal to the monitor. An ssh session can successfully start the lightdm login screen.
The only change GRUB_TERMINAL=console appears to make is that the grub menu is confined to a centered 80x25 box on the screen when it's enabled, and expands to the full screen when it is commented out. In both cases, after it shows "Loading initial ramdisk ...", the screen is cleared and shows the startup logs starting with ":: running early hook [udev]" in the upper-left corner of the monitor. In both cases the graphics mode appears to remain the same: no font size change or screen flicker.
I haven't seen any change made with GRUB_GFXPAYLOAD_LINUX set to "keep" or "text".
Last edited by mattbbs (2024-10-30 13:51:15)
Offline
would it be worthwhile updating that in the wiki?
Possibly but the entire simpledrm situation is weird and not accurately addressed, see eg. https://wiki.archlinux.org/title/Kernel … figuration
(I'd frankly just disable it, but that's besides the point)
So on topic:
* remove/comment GRUB_GFXPAYLOAD_LINUX=text
* boot the multi-user.target and
* before starting X11 check "fbset -s -i"
* start X11
* stop X11 (you're now in front of a black screen)
* ssh into the system
* check the updated status of "fbset -s -i" and
* try to set a different mode, eg. "fbset -a -xres 1024 -yres 768"
Does the resolution change achieve anything?
Offline
* remove/comment GRUB_GFXPAYLOAD_LINUX=text
Done, and "sudo grub-mkconfig -o /boot/grub/grub.cfg" was run.
* boot the multi-user.target
I didn't change anything, but confirmed it is active via:
$ systemctl get-default
graphical.target
$ systemctl is-active multi-user.target
active
* before starting X11 check "fbset -s -i"
$ fbset -s -i
mode "1024x768-76"
# D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
geometry 1024 768 1024 768 32
timings 12714 128 32 16 4 128 4
rgba 8/16,8/8,8/0,8/24
endmode
Frame buffer device information:
Name : EFI VGA
Address : 0xb0000000
Size : 3145728
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 0
YPanStep : 0
YWrapStep : 0
LineLength : 4096
Accelerator : No
* start X11
Started with startxfce4.
* stop X11 (you're now in front of a black screen)
* ssh into the system
* check the updated status of "fbset -s -i"
Same as above.
* try to set a different mode, eg. "fbset -a -xres 1024 -yres 768"
Does the resolution change achieve anything?
No, it doesn't appear to. I tried
fbset -a -xres 640 -yres 480
fbset -a -xres 1024 -yres 768
fbset -a -xres 3840 -yres 2160
After each case "fbset -s -i" reports the same mode "1024x768-76" as above (the stdout of each call to "fbset -s -i" was captured and diffed.) I tried the "fbset -a ..." with sudo as well with no effect. It doesn't respond with anything on the command line.
p.s. The recent nvidia driver update to 565.57.01-1 didn't help either.
Last edited by mattbbs (2024-11-01 13:34:51)
Offline