Xorg nv driver problems after etch upgrade

After I upgraded my Debian Testing (etch) machine in late July, I experienced problems with font display in firefox. Only the first word of a phrase would be displayed, as shown by the screenshot below.

google shot

At first, I thought this was a font/freetype problem; when I turned on antialiasing in the .fonts.conf file, the text was rendered correctly.

Eventually (after much headbanging) I discovered that if I used the vesa Xorg driver, the text was ok, even with antialiasing turned off. Turning off hardware acceleration in the nv driver also worked (but the display speed was unacceptably slow). I'm now using the binary driver from nvidia (legacy version), which works fine.

The card I have is pretty old now. For reference, here's the lspci -v entry for the card:

02:03.0 VGA compatible controller: nVidia Corporation NV11 [GeForce2 MX/MX 400]
 (rev b2) (prog-if 00 [VGA])
        Subsystem: Micro-Star International Co., Ltd. Unknown device 8834
        Flags: bus master, 66MHz, medium devsel, latency 248, IRQ 18
        Memory at ed000000 (32-bit, non-prefetchable) [size=16M]
        Memory at e0000000 (32-bit, prefetchable) [size=128M]
        [virtual] Expansion ROM at ec010000 [disabled] [size=64K]
        Capabilities: <access denied>

The nvidia driver version I'm using is NVIDIA-Linux-x86-1.0-7182-pkg1.run. Due to changes in the structure of xorg, which the nvidia install/build script is unaware, the following command line is required to tell it where to put the nvidia driver binaries:

  sh NVIDIA-Linux-x86-1.0-7182-pkg1.run --x-module-path=/usr/lib/xorg/modules/

Later, I discovered (from the debian-user mailing list) that the issue (disappearing text in pango applications) was caused in the version of libcairo2 installed by the upgrade, that is 1.2.0-3. Upgrading this library to a later version (1.2.4-1) fixes the problem - nv works just fine.

Changing xmms menu fonts

Fonts in xmms seemed to have been affected by something as well. The main menu font was ugly (and too large). This can be fixed by creating the file ~/.xmms/gtkrc with the contents:

  style "user-font"

  widget_class "*" style "user-font"

Later, I found that this problem was caused by the ordering of FontPath directives in /etc/X11/xorg.conf. The directive for Type1 was not specified last. I moved the Type1 FontPath directive to the end of the stanza, and the bad xmms fonts went away, without any need for the .xmms/gtkrc file.

Other problems (connected to upgrade?)

I'm still using the 2.6.8 kernel, but discovered that make xconfig has stopped working, even if I used the gcc-3.3 compiler. This I tracked down to the absence of libqt3-mt-dev, as this seems to have replaced libqt3-dev. I'm not sure why libqt3-dev disappeared, but it maybe due to an over-enthusiatic use of deborphan.

This still didn't solve the problem, as the library sought by the 2.6.8 Makefile was -lqt. The new package installs a library called libqt-mt. Figuring that a later kernel version might have compensated for this, I installed linux-source-2.6.16 (note the name change from kernel-source). make xconfig worked, but needed gcc-4.1 to compile successfully.

I went ahead and built and installed the new kernel version using the debian way. Note that kernel versions 2.6.15 and later require a current version of udev (if you are using it), which handles /dev/ and hotplug stuff. I don't use udev, so this was not an issue. Then (using the debian way):

  cd /usr/local/src/linux-source-2.6.16
  # use oldconfig to just ask new questions on kernel configuration
  make oldconfig
  make-kpkg clean
  fakeroot make-kpkg --revision=gold.1.0 kernel-image
  cd ..
  dpkg -i linux-image-2.6.16_gold.1.0_i386.deb