Nvidia repo broken, X doesn't start

It seems to be that the nVidia repo at http://download.nvidia.com/opensuse/13.1/ is somehow broken. It just returns “file not found”, and Yast cannot find anything there. This means it cannot update the nVidia drivers.

This has been so for some time now, but for some strange reason I cannot find any info anywhere about this, not even in this very forum. I don’t really understand what’s going on.

The thing is, I have stumbled across the problem that X is not starting because of some kind of conflict with the nVidia driver. This doesn’t seem to be exclusive to my system, but it also seems something that’s not discussed on the internet almost at all. I found one single opensuse email discussion where a few people discussed about this.

My situation is actually a bit more complicated than that. I had OpenSuse 12.3, and after a certain nVidia driver update X stopped working. Not knowing what to do, I reverted to an earlier version of the driver. This made Yast do something strange, as it downloaded and installed the default kernel (in addition to the existing desktop kernel). Booting to either one appeared in the booting options. Booting to the default kernel made X work once again (I assume because it was using the earlier version of the nVidia driver).

Then a new update for the nVidia driver appeared. Suse installed it, and I tried booting to it, and lo and behold, it worked. So I thought that the problem had been fixed.

A few months went by, and the kernel was updated a few times, and for some reason OpenSuse retains all the previously installed kernels, so the grub boot list was getting ridiculously large. Perhaps against common sense, I decided to clean it up a bit and uninstall the old kernels, leaving only the latest desktop kernel. And guess what happened: X wouldn’t start, once again. Cursing my lack of following the “if it works, don’t fix it” principle, I tried to see if updating the nVidia driver would help. That’s when I noticed that the nVidia repository wasn’t working at all. There’s nothing there. So I’m left with a non-working X, and no idea how to fix it.

Given that OpenSuse 12.3 is pretty old by now, I decided to upgrade to 13.1 to see if it would fix it. The upgrade was successful, but X is still not working, the old nVidia drivers are still there, and the nVidia repo is broken. I’m still stuck with a non-working X, and I have no idea what to do. (I’m writing this in failsafe mode, which does start X, but it’s naturally pretty unusable this way.)

Perhaps the nouveau drivers could fix this issue? However, I am not sure at all how to replace the nVidia drivers with it, using Yast (or anything else).

Also I read somewhere that the nouveau drivers may work with some nVidia cards but not with others, so I’m not sure if they will work with mine. I have a Geforce GTX 770.

Some help would be really appreciated.

Asus GTX770-DC2OC-2GD5To use Nouveau, uninstall nvidia-gfx* and x11-video-nVidia* packages (either via zypper rm or via yast) and restart the system, that should get you up and running with the open source drivers.

There have been some mentions that nVidia (that hosts the drivers) have been having some issues - if you cannot find them via http, you can opt to add: ftp://download.nvidia.com/opensuse/13.1/ as the repository. In any case you should remove the old drivers and boot to Nouveau before you install the new ones - you’ll want the G03.

Edit:
Nouveau boots with the 770, I have the Asus GTX770-DC2OC myself but you won’t get full performance (power management etc) with the Nouveau.

I have always used FTP, not HTTP, and FTP continues to work as usual.

I uninstalled all the nvidia drivers, leaving the nouveau ones. In a sense, it’s even worse now: It still fails to start X, just leaving a black screen, but now it won’t even respond to ctrl-alt-del (even though previously it would). Caps lock still toggles the led, so it’s not 100% locked, but if ctrl-alt-del isn’t working there’s something seriously wrong. I had to hard-reset.

Either way, I tried to install the newest nvidia drivers, but for some reason yast isn’t seeing them, even after I disabled the http repository and added the ftp one. I mean, it’s seeing some drivers, but they are the wrong version. For example, it says that the available version for x11-video-nvidiaG03 is 331.79-27.1, but there is no such version in the ftp repository (the version that’s there is x11-video-nvidiaG03-331.89-28.1). I don’t understand where it’s getting that old version from. Moreover, if I try to install the version it suggests, it simply complains that it can’t find it in the ftp repo (well, duh).

I don’t understand where I could see which repository it’s getting that old version info from. If I look in the technical data, the closest thing I can see is the Vendor field, which says “obs://build.suse.de/home:sndirsch:drivers”, but I don’t understand what that means.

Edit: I think the repodata in the ftp repository is listing the wrong version numbers…

No it doesn’t.

The repo metadata is outdated (the driver have been updated, the metadata not), regardless whether you access it via http or ftp.

See also: Access Denied

I installed the nvidia drivers directly with nvidia’s own installer, and now everything seems to be working.

(Well, at least working like it used to be. mplayer is still unable to vsync if KDE’s compositing effects are enabled for some reason, which is annoying, but that’s a question for another thread…)

Yes, the repo metadata hasn’t been updated when the driver’s were updated on Friday.
See my previous post.

You could download the RPM packages yourself via ftp (with a web browser or FTP client) and install them manually with rpm/zypper.

Or, if you can, wait until this is fixed.

“Recovery Mode” should work for you, right?

Regarding your problem with nouveau:
Have you uninstalled all nvidia packages?
(x11-video-nvidiaG03, nvidia-gfxG03-xxx, nvidia-uvm-gfxG03-xxx, nvidia-computeG03, nvidia-glG03)

Check that you have NO_KMS_IN_INITRD=no in /etc/sysconfig/kernel.
If it is “yes”, set it to no and run “sudo /sbin/mkinitrd”. Earlier versions of the nvidia driver packages set this to “yes”, but they don’t reset it to no when you uninstall them, giving problems with nouveau.

This is why I hate nVidia hosting these **** drivers - I build my own ones in a repo but still, this is such a pain in the god **** ass.

Meanwhile, the nvidia repo should be fixed AFAICS.

Frankly, I’m getting utterly tired of OpenSuse constantly breaking. I have learned to dread kernel updates. It’s extremely rare that a kernel update won’t break X.

Yesterday there was a kernel update. Well, surprise surprise, X doesn’t start anymore. Black screen, nothing happens. Frankly, it’s pissing me off really bad at this point.

In the past, when this happened, reinstalling the display drivers helped. This time it did not. I reinstalled the Nvidia display drivers, and now it doesn’t get stuck on a black screen, yay! Except that no yay. X just won’t start, period. It just drops me to console login. In other words, this time the kernel update broke X to an unprecedented extent that hasn’t happened to me before.

In safety mode X starts ok. In normal mode it doesn’t. How do I proceed from here?

Kernel updates never broke anything here on several systems.

Yesterday there was a kernel update. Well, surprise surprise, X doesn’t start anymore. Black screen, nothing happens. Frankly, it’s pissing me off really bad at this point.

In the past, when this happened, reinstalling the display drivers helped. This time it did not. I reinstalled the Nvidia display drivers, and now it doesn’t get stuck on a black screen, yay! Except that no yay. X just won’t start, period. It just drops me to console login. In other words, this time the kernel update broke X to an unprecedented extent that hasn’t happened to me before.

If you installed the nvidia driver via the .run file from the nvidia homepage, you have to re-install the nvidia driver each time there is a kernel update.
Also other updates (xorg-x11-server, Mesa-libGL1) break the nvidia driver in this case, as the nvidia installer just overwrites system files with its own incompatible versions, and when there are updates, the original versions will get installed again.

To prevent all those problems, use the packages from the nvidia repo.

In safety mode X starts ok. In normal mode it doesn’t. How do I proceed from here?

First of all, boot to recovery mode after a failed boot and post /var/log/Xorg.0.log.old.

Then try to run “sudo /sbin/mkinitrd” after you reinstalled the nvidia driver. Maybe even set NO_KMS_IN_INITRD=“yes” before, but that shouldn’t be necessary.

Or what I would rather recommend: uninstall the nvidia driver completely and install it from the repo.
But be careful to install the correct packages. Especially if you uninstalled it once already, YaST/zypper might pick the wrong ones.
You need:
nvidia-gfxG03-kmp-desktop, nvidia-uvm-gfxG03-kmp-desktop, x11-video-nvidiaG03, nvidia-computeG03, nvidia-glG03.
That’s if you use kernel-desktop of course.

The last update here installed the default kernel and also the default NVIDIA stuff. I removed these before rebooting so I saw no problem but I wonder why these extra things are being installed???

I don’t know if it would have caused me a problem. Since I pay attention to updates I caught it and removed the default packages before I rebooted.

Looks like at least some people are getting additional incorrect packages on updates.

Good question.
That should not happen.
And it didn’t happen for me.

I don’t know if it would have caused me a problem.

Probably not, if all corresponding kernel module packages you need are installed for kernel-default as well.
It would definitely be a problem if it was a xxx-base flavor though.

But I’m not sure whether grub2 would prefer to boot kernel-desktop or kernel-default if both were installed.

Looks like at least some people are getting additional incorrect packages on updates.

Well, as I wrote a few times already, this can be caused by libzypp’s “SoftLocks” feature that got removed in Factory some months ago.
I.e. if you uninstall a package with YaST/zypper it gets added to the “SoftLocks” file which marks it as unwanted. libzypp will then not install it automatically any more. In order to be able to satisfy dependencies it might then have to install kernel-default (or any other flavor) instead.
(note that you don’t have to have uninstalled kernel-desktop for this to happen, just uninstalling any kmp package can trigger this)

I don’t know of course whether that was indeed the reason in your case.

The OP clearly stated that he installed the nvidia driver manually though.

@Warp:
You might also try to boot the older kernel (“Advanced Options” in the boot menu).
Does X work then?

Can you see those locks in GUI or CLI?

Can you “simply uninstall” without placing those locks? It sounds more like a bug to me.

cat /var/lib/zypp/SoftLocks

or similar.

Can you “simply uninstall” without placing those locks? It sounds more like a bug to me.

Not that I know of.

But as I wrote, this feature has been removed a few months ago (in Factory), because it can cause unexpected behavior like this.
Its purpose was of course that recommended/suggested packages don’t get re-installed again and again automatically after you uninstalled them manually.

In my case I got the expected desktop packages + the default
I noticed and removed before reboot. Note that I could not stop the default (it came as some meta package) only I’d have had to abort the update completely so I did the update then removed the default packages. Note that you can’t remove parts of a meta package update
This 13.1 was installed only about 6-8 weeks ago and I’m reasonably sure I never installed/removed any other kernels until now. I have of course gotten a couple of updates. I did see the wrong, default I believe, NVIDIA package come in at least once in the past but not the kernel. I did not see this kind of thing in 12.3

The problems seem to be centered around NVIDA stuff.

Don’t like spooky stuff :stuck_out_tongue:

I followed these instructions, and now everything seems to be working fine once again. Thank you.

Yesterday I tried using the nvidia ftp repository, but it was giving me the same error as earlier, so I assumed it was still misconfigured. Today, however, it worked. Maybe zypper hadn’t refreshed the repo info properly or something yesterday.

Hopefully from now on kernel updates won’t break X again.

(Btw, is it really necessary for OpenSuse to keep all the old kernels? It didn’t do that prior to version 12 or such. It’s making the grub boot list longer and longer with each update, and I’m not sure I should simply remove the entries manually…)

It not keep all the old kernels. By default it is set to keep only the previous. But until you successfully boot to the newest you can have 3 kernels. once the newest is booted the oldest is removed.leaving 2. If you have more then 3 you have a miss configured zypper file.

You will find the file here

/etc/zypp/zypp.conf

There is a line that define the multiversion behavior

How many and what kernels do you have installed?

openSUSE should only keep two kernels with the default settings (since 12.3).
This is configurable in /etc/zypp/zypp.conf, look for the options “multiversion” and “multiversion.kernels”.

The default grub2 hides them in “Advanced Options” anyway.

If you have more than two kernels installed, check that purge-kernels.service is enabled, either in YaST->System->Services Manager, or via:

systemctl status purge-kernels.service

You can of course manually uninstall specific kernel versions if you want to. In YaST use the “Versions” tab, or specify the exact version to zypper/rpm, e.g.:

zypper rm kernel-desktop-3.11.6-4.1
rpm -e kernel-desktop-3.11.10-21.1

What “meta package”?

An update shouldn’t install additional packages unless they are required.
I do not know why it would have done that on your system.

I can imagine one possible scenario:
Maybe you uninstalled some xxx-kmp-desktop package that is recommended by another package. Since it is soft locked then, libzypp would install xxx-kmp-default instead, which requires kernel-default.
Of course I do not know whether this is what happened.

As a side-note: if all necessary kmps for kernel-default have been installed as well, it should have worked though and would not have given you any problem, even if you booted it. And the “old” kernel-desktop would have still been installed either.