nVidia S-Video Out on TV with Fedora 8 and atrpms

Boy, it sure is confusing navigating the variety of graphics drivers available for nVidia cards on linux. I’m using the atrpms repo, as suggested by Jared Wilson’s MythTV HOWTO, but it’s about Fedora Core 6 and I’m on Fedora 8 now, so it’s a bit different.

My output hardware is:
06:00.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 4000] (rev c1)

And the final list of RPM’s that actually works is:

rpm -qa | grep nvidia
nvidia-graphics96.43.01-kmdl-2.6.23.9-85.fc8-96.43.01-92.fc8
nvidia-graphics96.43.01-libs-96.43.01-92.fc8
nvidia-graphics96.43.01-96.43.01-92.fc8
nvidia-graphics-helpers-0.0.22-23.fc8
nvidia-graphics-devices-1.0-6.fc8

The real trick was getting the correct version of the kmdl package installed. It installs an i586 module by default, which on an i686 kernel says:

FATAL: Error inserting nvidia_96_43_01 (/lib/modules/2.6.23.9-85.fc8/updates/drivers/video/nvidia/nvidia-96_43_01.ko): Invalid module format

when you try to modprobe nvidia. dmesg will tell you about that:

nvidia: version magic '2.6.23.9-85.fc8 SMP mod_unload 586 4KSTACKS ' should be '2.6.23.9-85.fc8 SMP mod_unload 686 4KSTACKS '

see – it’s 586 instead of 686.

So how the heck do you get yum to install the right version? yum list truncates the package names at a fixed column width and documentation is sparse. After much fiddling, I found this was acceptable:

yum install  nvidia-graphics96.43.01-kmdl-2.6.23.9-85.fc8-1:96.43.01-92.fc8.i686

And now X will start. Current xorg.conf (needs some more work, but it starts):

Section "ServerLayout"
        Identifier     "single head configuration"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        ModulePath   "/usr/lib/xorg/modules/extensions/nvidia"
        ModulePath   "/usr/lib/xorg/modules/extensions"
        ModulePath   "/usr/lib/xorg/modules"
EndSection

Section "Module"
        Load  "glx"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us+inet"
EndSection

Section "Monitor"
        Identifier   "Monitor0"
        HorizSync    30.0 - 50.0
        VertRefresh  60.0 - 60.0
EndSection

Section "Device"
        Identifier  "Videocard0"
        Driver      "nvidia"
        Option      "TVStandard" "NTSC-M"
        Option      "TVOutFormat" "SVIDEO"
        BusID       "PCI:6:0:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        Monitor    "Monitor0"
        DefaultDepth     24
        SubSection "Display"
                Depth     24
                Modes    "1024x768" "800x600" "640x480"
        EndSubSection
EndSection