I wanted to do a regular upgrade of xserver-xorg-core in Debian ‘testing’. Unfortunately, dpkg complained about a file ./usr/lib/xorg/modules/extensions/libglx.so not being present, although Nvidia’s installer had placed it right there and it was still present. Because of that broken upgrade my X server couldn’t start anymore. Removal of Nvidia or xorg didn’t change anything on this situation. With Google I saw that someone found a solution by installing nvidia-glx-legacy temporarily. Here’s what to do:
- Remove Nvidia by calling sh /path/to/NVIDIA-$SOMETHING --uninstall.
- Install nvidia-glx-legacy. This package depends on a linux-image-2.6.18-n-486, what will therefore be installed and will replace your current symlinks /vmlinuz and /initrd.img.
- Install/upgrade xserver-xorg-core. (The top-dependency would be xorg).
- Remove nvidia-glx-legacy and the above mentioned linux-image-$SOMETHING again and purge their configuration files (Key “_” in aptitude).
- Restore your original symlinks /vmlinuz[.old] and /initrd.img[.old]. You’ll have to run lilo. Run lilo. Did I mention to run lilo?
- Reinstall Nvidia and restart gdm.
Recently, I had another issue with the Nvidia installer: It didn’t work anymore due to the activated paravirtualization feature in Debian’s default kernel what conflicts with the GPL-incompatible module nvidia.ko. Here’s a solution I found in the web:
- Install linux-source-2.6.xx-n-686.
- Uncompress /usr/src/linux-source-2.6.xx-n-686.tar.bz2.
- Delete the symlink /lib/modules/2.6.xx-n-686/build and make it new by ln -s /usr/src/linux-source-2.6.xx /lib/modules/2.6.xx-n-686/build.
- Copy .config from headers to sources by cp /usr/src/linux-headers-2.6.xx-n-686/.config /usr/src/linux-source-2.6.xx.
- In the sources dir make menuconfig and disable paravirtualization in section ‘processor features’.
- make prepare.
- make scripts.
- Now compile and install Nvidia with its own installer.