Very difficult to login after kernel upgrade and before Nvidia driver install.

Hi,

Using Tumbleweed, there are quite often kernel upgrades. But I’m also using the NVidia closed-source driver, which isn’t automatically installed. Until about 3 months ago, sddm would segfault due to the missing driver, after which I would simply reinstall the driver and restart sddm.

But now, sddm tries to be clever and retries to start the login screen after each failure. The result is shown below:



Dec 21 08:41:56 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:56 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:56 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:56 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:57 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:57 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
Dec 21 08:41:58 z440 display-manager[1849]: /usr/bin/xauth: (stdin):1:  bad "remove" command line
Dec 21 08:41:58 z440 display-manager[1849]: /usr/bin/xauth: (stdin):2:  bad "add" command line
Dec 21 08:41:58 z440 sddm[1919]: QProcess: Destroyed while process ("/usr/lib/sddm/sddm-helper") is still running.
...


The interesting thing is the time: this process is repeated about 16 times per second. The display is flickering and you can barely type anything on the console. Characters are skipped, making it nearly impossible to login again and kill sddm (with sudo, requiring another password entry).

Therefore, where can I change this behaviour ? Or maybe sddm needs to be fixed ?

Rgds,

J.

In the grub menu screen before allowing the auto selection of tumbleweed, press “e” on the keyboard. You’ll be able to edit the grub entry. Go to the end of the linux (or vmlinuz) line add space 3 and press F10. This takes to a console screen (no X or gui), login from there and update Nvidia. Then reboot.

You could also just install Bublebee’s dkms nvidia driver package. That saves you from doing everything manually. Driver gets downloaded/rebuilt after kernel update. It does take a while but eventually you will see the login screen. I have not used nvidia’s download package manually in ages.

@markdd, If I understand you correctly, there will be no problems in updating system in tumbleweed
if Bublebee’s dkms nvidia driver is installed?

Could you kindly show how to install the Bublebee’s dkms nvidia driver package exactly?

I am working on the a computer with GTX950 (desktop, only nvidia graphic card)with open source driver nouveau.

I have three tumbleweed systems with this setup, all using different nvidia dkms driver versions (because of different chipsets, some no longer supported by latest driver version). Works quite nicely. Of course, if a kernel is too new and breaks module build, you are on your own. But then, this would also affect manual install.

Here is what I usually do on first install of nvidia dkms:

  • go to the regular nvidia driver download page and fill in the fields for your card, OS does not matter, I usually say Windows, Official Drivers | NVIDIA
  • that will propose a driver version, your GTX950 desktop says 376.33
  • now head over to Opensuse package search https://software.opensuse.org and search for nvidia
  • dkms-nvidia will be one of the first hits, click it, it brings up the list of OS versions
  • click the “show unsupported versions” link at the bottom, select tumbleweed
  • find the driver version nearest (but below) nvidia’s proposal, ie 375.26
  • click the home:Bumblebee link to the left of the version number
  • then click on tumbleweed in build results on the right hand side
  • click on “Go to download repository”
  • right-click the .repo entry in the list and copy link to clipboard
  • open a terminal and type

cd /etc/zypp/repos.d
sudo wget <paste insert the link you copied above, ie http://download.opensuse.org/repositories/home:/Bumblebee-Project:/nVidia:/375.26/openSUSE_Tumbleweed/home:Bumblebee-Project:nVidia:375.26.repo>
sudo zypper ref
sudo zypper in dkms-nvidia-375.26 x11-video-nvidia-375.26
sudo chkconfig dkms on

Give it some time because it will download nvidia’s package and build the kernel mod. Now, on kernel update, the dkms service which gets installed as a dependency will rebuild the kernel module. That may take a while so do not panic on a blank screen. Log in on the terminal and see via top or htop that dkms is actually rebuilding the module. When that is finished the login screen will come up.

good luck

@markdd, thanks very much for the details!!!

Before I install the dkms nvidia driver, do I need to manually blacklist the nouveau as suggested in this page:
https://en.opensuse.org/SDB:NVIDIA_the_hard_way#Blacklist_nouveau

When I used Leap 42.1, there are four packages for nvidia drivers:
sudo zypper in x11-video-nvidiaG04 nvidia-gfxG04-kmp-default nvidia-glG04 nvidia-computeG04

Here you suggested two:
zypper in dkms-nvidia-375.26 x11-video-nvidia-375.26

Are these two packages enough?

I think the dkms nvidia package does the blacklisting, check in /etc/modprobe.d after install, there should be a file having blacklist nouveau as content. And the two packages should be enough unless you want to do cuda compute stuff. Just try it. You may have to do some reboots until nouveau is finally blacklisted and removed from initrd. And if all goes wrong, simply uninstall the packages. That is why I prefer rpms over manual things because the latter are much harder to track and much easier to forget.