SDB:nomodeset: Work Around Graphic Upgrade & Installation Obstacles
- You tried to install Tumbleweed or Leap, but as soon as you struck the Enter key to proceed from the openSUSE Installation screen, or shortly after, the screen turned black, after which the display showed "No signal, entering the power saving mode", or similar language, or just black.
- You tried several of the latest snapshots but the result was always the same.
- Is your graphics "card" both Intel and AMD or NVidia? Is the word Optimus on a sticker or in the manual?
- Did you just change or add a gfxcard, and then get a black screen or out of range message after making a Grub menu selection?
If any combination of these is true, successful installation may require extra steps to complete, and extra steps as follow-up on your first boot from the new installation.
The first thing to do is to ensure your boot media isn't at fault. Try it on another PC or laptop to ensure it is in fact bootable. Details on that are out of scope here.
Once that is done, it may be time to give the special boot option nomodeset a try. nomodeset is the primary reason for what you read here. nomodeset is intended primarily as a troubleshooting tool, a bandaid to enable a display to function, but in a crippled mode, operating slowly, but well enough to allow testing, data collection and needed configuration adjustments to be made.
Here's how to test with nomodeset:
Once the installation is complete and you've booted it the first time, examine /etc/default/grub. Likely nomodeset will be included on the GRUB_CMDLINE_LINUX_DEFAULT= line. It will severely handicap performance of whichever desktop or window manager you use, as it is intended to be a troubleshooting parameter. Its application blocks use of all competent FOSS DDX and DIX display drivers appropriate for AMD, Intel and NVidia gfxchips by disabling kernel modesetting (KMS).
OTOH, nomodeset is a required parameter with some non-FOSS (aka proprietary) display drivers, historically those for NVidia. If you already know with certainty you are going to be installing a non-FOSS display driver, consider what follows as information only, as you will need to follow whatever instructions are provided for your particular gfxcard's driver. The same applies if you have Optimus or other dual-graphics hardware - alternate installation instructions for your dual-graphics must be followed.
A generic FOSS default DIX display driver named "modesetting" is provided by the xorg-x11-server package. It's actually the preferred display driver to replace the bulk of the major brand hardware-specific DDX drivers, which are:
- "amdgpu", provided for non-ancient AMD by the xf86-video-amdgpu package,
- "radeon", provided for ancient AMD/ATI by the xf86-video-ati package,
- "intel", provided mainly for ancient Intel by the xf86-video-intel package, and
- "nouveau", provided for NVidia by the xf86-video-nouveau package, and not to be confused with the same name nouveau device driver provided by the kernel.
There is no Intel-specific display driver provided primarily for non-ancient Intel GFX. Intel pays its Linux driver developers to put most of their effort into the FOSS modesetting DIX display driver. The xf86-video-intel DDX is in maintenance mode, having had no official new release since 2015.
Even though modesetting is the default display driver, most installations include all xf86-video-* packages, thus overriding the technical default. This is mainly because there are no simple enough rules as to which display driver works best with particular hardware. Installers would be grossly bloated by any attempt to include code and database just to attempt an ideal choice. So, next step is to evaluate performance. Among DDX display drivers, the amdgpu is the most likely to outperform the modesetting DIX, and the nouveau the least likely. If you are happy with the current state, nothing more needs to be done. Go and have a lot of fun!
If performance seems poor, or what should be a login screen is nothing but black except for a mouse pointer, or worse, next step is to test boot with the nomodeset boot option removed. Do this by striking the "e" key at the bootloader menu as you did when installing, but this time, remove nomodeset before proceeding. If boot proceeds normally, excellent. After you login, open YaST Bootloader, remove nomodeset, then save, and then the change will remain for successive boots.
If you experience no improvement, or if the improvement seems to fall short of expectations, or if you just want to know how the other display driver performs, switch. Usually the easiest way to switch to the modesetting driver is to remove the xf86-video- package in current use, then restart the server or reboot. If already the modesetting DIX is in use because the xf86-video-* package applicable to your hardware is not installed, install it and restart. Simply installing the xf86-video-* package does not always suffice. In /etc/X11/xorg_pci_ids/modesetting.ids a PCI ID that matches your gfxcard might exist. That line can be removed to switch off the modesetting DIX preference, or if not already present, one can be added to switch it on. Implementing a display driver switch is also possible via a Driver line in 'Section "Device"' in /etc/X11/xorg.conf or /etc/X11/xorg.conf.d/50-device.conf.
To determine which display driver is or has been last used, either the output from inxi -G or the file /var/log/Xorg.0.log can be examined. In inxi output the in-use or most recent display driver is the first named following the server version on the line that begins with "Display:", and is followed by "unloaded". In the log, the name of the in-use xf86-video- driver will be repeated countless times in succession with "(0):" or similar appended to it.
If you still experience no improvement, or if the improvement still seems to fall short of expectations, you can try changing the graphical boot process to a textual one of varying degrees. To test, again strike the "e" key at the bootloader menu, as when removing nomodeset, but this time make one or more of the following changes:
- remove quiet, and/or
- remove splash=silent, and/or
- append plymouth.enable=0
If any combination of these changes produce a satisfactory result, return to YaST Bootloader to make the deletions permanent as with nomodeset. Rather than making plymouth.enable=0 permanent in the bootloader, disk space and updates bandwidth can be saved by removing the plymouth software with YaST or Zypper, if it is not otherwise made necessary, e.g. by disk encryption.
If still not satisfactory, open an issue in one of the forums or the opensuse-support mailing list. Supporters will need you to supply information to determine what to do next.