Debian Nvidia driver issue with legacy card, solved.

Posted on 2013/11/04


On my Debian testing (jessie) computer, I usually perform a weekly “aptitude safe-upgrade“. This desktop has an old Nvidia GeForce 7300 GS card, and I’m using the “nvidia-kernel-dkms” package to provide proprietary drivers. On the last upgrade, Debian decided to install new packages with “nvidia-legacy-304xx” in their name. Other than that, a message appeared during upgrade:

nvidia-graphics-drivers (310.14-1) unstable; urgency=low
LEGACY GPUs: If you have a GeForce 6xxx, GeForce Go 6xxx, GeForce 7xxx,
GeForce Go 7xxx, Quadro NVS 110/120/210/285/440, Quadro FX 350/540/550/560,
Quadro FX 1400/Go1400/1500/2500/3400/3450/3500/4000/4500/5500, nforce 4xx,
nforce 6xx, i.e., any GPU based on the NV40/NV41/NV42/NV43/NV44,
C51/C61/C67/C68/C73, or G70/G71/G72/G73 chips or a variant thereof,
Use the nvidia-legacy-304xx-driver, nvidia-legacy-304xx-kernel-dkms
packages instead.
-- Andreas Beckmann Tue, 16 Oct 2012 18:00:49 +0200

I checked my video card with “lspci” that shows that my card is indeed interested by this change:

01:00.0 VGA compatible controller: NVIDIA Corporation G72 [GeForce 7300 GS] (rev a1)

I let the upgrade end, and I was a bit puzzled because I had both drivers installed. I decided to reboot the machine, and instead of the graphical login screen I was greeted by a blue “ncurses” screen telling me that X server did not start.
I logged in as root on the command line, and tried to examine the problem. It seems that both drivers are installed, and that the non-legacy one is used, which apparently has no support for my old GeForce. I noticed some “alternative” packages were installed automatically, such as “nvidia-legacy-304xx-alternative“, that instructed me to use “update-alternatives --config nvidia” to select a version. I then run it and chose the legacy driver. On next reboot, the graphical login screen appeared correctly, and the issue was solved.

This setup seems to work, but I wanted to keep only the working one on my system, removing the default one. Since the legacy driver was installed automatically by the default driver, I needed to tell Debian package manager aptitude that I wanted to keep it installed even after I removed the default driver, so I ran:

# aptitude unmarkauto nvidia-legacy-304xx-driver

After that I could remove the nvidia default packages:

# aptitude remove nvidia-driver nvidia-glx nvidia-kernel-dkms xserver-xorg-video-nvidia nvidia-alternative

I re-ran “update-alternatives --config nvidia” to finish the cleanup.

I wish they developed an automatic procedure to choose legacy or default driver given the graphic card that is actually inserted in the computer, but since it’s not the case, I wanted to write somewhere the manual procedure that I used to recover from this issue. Be aware that this is possibly not the ideal procedure or one that works with any setup.

Posted in: Software