I had a smoothly running openSUSE 15.6 environment. I followed the upgrade root advised by openSUSE, namely using the migration tool, and now the machine won’t go into the graphical login screen. Grub allows me to select which environment to boot, Plymouth does its swirling circle bit, then I get a black screen bar one line of text at the top of the screen and a flash of colour at the bottom of the screen.
Since in recovery mode I seem to have a functional Linux I don’t think the errors produced in the boot script are the issue, rather the problem is with the graphics. But just in case, the one line at the top of the screen says
x86/cpu: VMX (outside TXT) disabled by BIOS
lscpu gives
Itlb multihit: KVM: Mitigation: VMX unsupported
and
egrep -c ‘(vmx|svm)’ /proc/cpuinfo
gives 0.
On the other hand, when I look at the CPU specs in the BIOS I see
Intel VT-x Technology Supported
Intel SMX Technology Not supported
If the BIOS is disabling VT-x then I can’t see where in the various BIOS screens I can enable it, if it even matters here.
dmesg | grep error produces
EDAC sbridge: Failed to register device with error -19
journalctl -xb produces a number of lines of the form
/etc/udev/rules.d/80-canon_mfp.rules:<integer> Invalid key ‘SYSFS’
where the integer ranges from 10 to 72. Perhaps that’s to do with the driver for the Canon printer.
journalctl -b | grep -i “kernel parameter” produces no output.
Please understand that although I’ve been using this distro since version 8 I am not a learned Linux sysop: I spent hours yesterday searching the web for a fix to the black screen and those were some of the test commands that I came across.
The main two culprits for a black screen seem to be selinux and Nvidia drivers. I tried adding selinux=0 nomodeset to the linux line at Grub boot screen but it made no difference. To avoid having to do that repeatedly I added security selinux=0 to the /etc/default/grub line GRUB_CMDLINE_LINUX_DEFAULT then did
grub2-mkconfig -o /boot/grub2/grub.cfg
which also made no difference.
So I concentrated on the graphics drivers. I read that openSUSE 16.0 only supports G06 generation Nvidia cards. I searched all over to see what generation my Nvidia GTX Titan X card was but couldn’t find an answer. I noticed that when the migration tool was running it deleted a number of Nvidia driver packages then installed some new ones. When I checked all but one were G05 and that one was G06. I can’t list them here because I did
zypper rm ‘*nvidia*’
In retrospect that might not have been a good choice because when I checked for the nouveau drivers I found that they were also installed:
S | Name | Summary | Type ---+----------------------------+--------------------------------------------------------------+-------- i | libdrm_nouveau2 | Userspace interface for Kernel DRM services for NVIDIA chips | package i+ | libvdpau_nouveau | VDPAU state tracker for Nouveau | package i+ | libvdpau_nouveau-debuginfo | Debug information for package libvdpau_nouveau | package i | xf86-video-nouveau | Accelerated Open Source driver for nVidia cards | package
As far as I know I had the nouveau drivers blacklisted in 15.6 but now they are installed and two were, apparently, deliberately installed. Maybe the migration tool overrode the blacklisting and installed them. In the past when I’ve had no graphics at boot time I have solved the problem by deleting the Nvidia drivers, booting with the nouveau drivers, then re-installing the Nvidia and deleting the nouveau drivers. It hasn’t worked this time.
A likely bigger problem though is that the addresses of the repositories seem to be a big mess. In other discussion threads the response always seems to be “you must have changed the repositories.” No, no, no: the only thing I did was run the migration tool, the version that is in the 15.6 repository and which I had hoped would be well and truly debugged by now. If the addresses of the repositories are wrong then it was the migration tool what dun it.
Although all the repositories I had previously used were still listed, the only ones enabled were:
# | Alias | Name | Enabled | GPG Check | Refresh ---+--------------------------------------+--------------------------------------+---------+-----------+-------- 8 | NVIDIA:repo-non-free | repo-non-free (16.0) | Yes | (r ) Yes | Yes 16 | google-chrome | google-chrome | Yes | (r ) Yes | Yes 24 | openSUSE:repo-openh264 | repo-openh264 (16.0) | Yes | (r ) Yes | Yes 25 | openSUSE:repo-oss | repo-oss (16.0) | Yes | (r ) Yes | Yes
When I did
zypper se ‘*nouveau*’
I got the list above but before zypper printed that list it printed this:
Refreshing service 'NVIDIA'. Refreshing service 'openSUSE'. Retrieving repository 'repo-non-free (16.0)' metadata [.error] Repository 'repo-non-free (16.0)' is invalid. [NVIDIA:repo-non-free|<Nvidia's URL>] Failed to retrieve new repository metadata. History: - [|] Error trying to read from '<Nvidia's URL>' - Download (curl) error for '<Nvidia's URL>': Error code: Connection failed Curl error (6) Error message: Could not resolve host: <Nvidia's URL> Please check if the URIs defined for this repository are pointing to a valid repository. Warning: Skipping repository 'repo-non-free (16.0)' because of the above error. Retrieving repository 'google-chrome' metadata [.error] Repository 'google-chrome' is invalid. [google-chrome|<Google chrome's URL>] Failed to retrieve new repository metadata. History: - [|] Error trying to read from '<Google chrome's URL>' - Download (curl) error for '<Google chrome's URL>': Error code: Connection failed Curl error (6) Error message: Could not resolve host: <Google chrome's URL> Please check if the URIs defined for this repository are pointing to a valid repository. Warning: Skipping repository 'google-chrome' because of the above error. Retrieving repository 'repo-openh264 (16.0)' metadata [.error] Repository 'repo-openh264 (16.0)' is invalid. [openSUSE:repo-openh264|<codec's URL>] Failed to retrieve new repository metadata. History: - [|] Error trying to read from '<codec's URL>' - Download (curl) error for '<codec's URL>': Error code: Connection failed Curl error (6) Error message: Could not resolve host: <codec's URL> Please check if the URIs defined for this repository are pointing to a valid repository. Warning: Skipping repository 'repo-openh264 (16.0)' because of the above error. Retrieving repository 'repo-oss (16.0)' metadata [.error] Repository 'repo-oss (16.0)' is invalid. [openSUSE:repo-oss|<repo-oss's URL>] Failed to retrieve new repository metadata. History: - [|] Error trying to read from '<repo-oss's URL>' - Download (curl) error for '<repo-oss's URL>': Error code: Connection failed Curl error (6) Error message: Could not resolve host: <repo-oss's URL> Please check if the URIs defined for this repository are pointing to a valid repository. Warning: Skipping repository 'repo-oss (16.0)' because of the above error. Some of the repositories have not been refreshed because of an error.
The forum doesn’t like all the repository web addresses in the zypper output so here is a screenshot:
In summary, there are some errors during boot but they probably have nothing to do with the problem at hand, namely no graphics and so no login screen. The two main fixes I’ve found searching the web are to set selinux=0 and nomodeset in the grub configuration. These make no difference here. The Nvidia drivers could be a problem if the card is not supported by opensuse 16.0 but removing them made no difference here. It could have been that there was a clash because both Nvidia drivers and nouveau drivers seem to have been installed although the graphics should work with the nouveau drivers but don’t. The repositories seem to be in a corrupted state.
Where do I go from here?
