Bug#859310: xserver-xorg-video-nvidia-legacy-304xx: Failed to load module nvidia (module does not exist, 0) No drivers available.

A. F. Cano afc at shibaya.lonestar.org
Sat Apr 8 19:18:12 UTC 2017

On Thu, Apr 06, 2017 at 12:44:32AM +0100, Luca Boccassi wrote:
> ...
> The problem is that your dpkg alternative is set to use mesa rather
> than nvidia to provide glx. That's why the symlink was missing.
> You can fix this manually by running:
> sudo update-glx --config glx

Mmm...  Running this returns:

There is only one alternative in link group glx (providing
/usr/lib/glx): /usr/lib/mesa-diverted
Nothing to configure.
Processing triggers for glx-alternative-mesa (0.7.4) ...
Processing triggers for libc-bin (2.24-9) ...

I wonder what else I need.  Libg11-nvidia-legacy-304xx-glx is
installed (version 304.135)

> And by choosing /usr/lib/nvidia at the selection menu.
> I see you mention you had to fix things up "manually" when moving from
> nouveau to nvidia. I assume that's where things went wrong, as this is
> normally done automatically when installing through the nvidia-driver
> package.
> Do you have a log with the exact steps you've taken after the upgrade?

>From my notes at the time:

In Jessie I was using the nvidia driver 304.131.  After the upgrade to
stretch was done, the nvidia driver 304.135 was installed and the X
server didn't start.

Not knowing what had happened, I started looking around and noticed that
there was "libnvidia-legacy-304xx-compiler" which was not installed, so
installed it.  It made no difference.  Then did:

dpkg-reconfigure nvidia-legacy-304xx-kernel-dkms

which unloaded the current driver, recompiled and re-installed it again.
but it made no difference.

Up to this point, /etc/X11/xorg.conf had a line to use the "nvidia"

Thinking that the 304 driver was not the right one, I uninstalled it
(via aptitude) and tried to use the nouveau driver (set xorg.conf to
use "nouveau" instead of "nvidia") that I hoped had been fixed enough
to work (it didn't before even in Jessie).

I had a good screen until it went blank because of the screen saver and
then it never reappeared.  I did realize I didn't have kde installed so
instlled kde-full (via aptitude) as that was what was installed in
Jessie - not sure why the upgrade to Stretch got rid of kde.

After I switched to "nouveau" in /etc/X11/xorg.conf I got a screen that
worked but the new kde didn't recognize any of the settings I had under
Jessie, so I had to manually re-configure just about everything to get it
to look like it did before, and I'm still not done.  It seems almost
impossible to get the same look.  Many of the  panel apps I had don't
seem to be available any more.

Furthermore, the nouveau driver had almost constant video artifacts,
like big triangles with apex at the top left corner that covered almost
the whole screen until I gave focus to different konsole windows and
then they went on top; and lock-ups which would require a reboot after
getting in via ssh.

When I realized that the 304xx driver was the correct one and noticed
that after the upgrade some packages for 340xx were installed, I removed
all the 340xx packages.

Then did:

dpkg-reconfigure nvidia-legacy-304xx-kernel-dkms

and it failed because the kernel headers were not installed (for kernel
4.9.0-2-686-pae),  Had to install linux-headers-686-pae.  This probably
happened because the kernel was upgraded at some point and the headers
were not.  After running the dpkg-reconfigure above, nouveau was still
being loaded.  The file /etc/nvidia/nvidia-blacklists-nouveau.conf
contains "blacklist nouveau" but it says in the comment I need to run
update-intiramfs -u, so I did.  No difference, the nouveau driver is
still being loaded.  This is probably a real bug; maybe the
nvidia-blacklists-nouveau.conf file is not referred to by the package
that needs to know about it?

Created /etc/modprobe.d/blaclist.conf and put in it:

blacklist nouveau

and that did it, now the nvidia driver was loaded per lsmod but the X
server still didn't see it.

It was then that I figured out I needed the symlink:

ln -s /usr/lib/nvidia/legacy-304xx/nvidia_drv.so

which was what made it work.

I have noticed other issues, like selecting the "tiny" border for
windows doesn't give borders any smaller than the normal ones.  Also
some fonts are extremely small and can't be changed.  I wonder if these
issues are related.

> Kind regards,
> Luca Boccassi

Thank you for replying.  If there are other things I should try please
let me know.


More information about the pkg-nvidia-devel mailing list