nVidia fix for KDM not starting

If you’re like me and you updated your Linux desktop to find Xorg (because of nVidia) no longer played with XDM, KDM, or GDM then you’ve hit the hilarious ignoreABI bug.

For some people, editing their /etc/X11/xorg.conf works:

Section "ServerFlags"
	Option		"IgnoreABI" "True"
EndSection

Not me. No matter what flags I tried to pass in via xorg.conf, it wouldn’t go. Probably because sometimes the GUI is looking for the configuration, othertimes it’s not. According to /var/log/kdm.log it was, but it cowardly refused to honor that directive.

The fact that the ubuntu guys call it a “good driver” just means the typical ubuntu user has no idea what a good driver looks like.

Finally someone with half a brain ran into this on Xorg 1.5 and their new nVidia card. You can read their fix here, it’s basically what you would expect. Shim out /usr/bin/Xorg with a script, have the script call the other Xorg.0 executable and pass all the arguments with -ignoreABI. Incidentally something really strange is happening here because editing /etc/X11/xinit/xserverrc to add -ignoreABI to the args line doesn’t get passed to Xorg.

I Hate nVidia

I have a dirty confession – I’ve always liked ATI stuff except for when the GeForces first came out and they were cheap as heck. Buying two of them would buy you a high end 3DFX card or ATI card and it would still outperform them. Also these were the college days when AGP was still new and having two videocards meant one less thing to kill your PC. Then again this was drexel, and we had the Kelly Hall heat wave that year, and it killed my motherboard.

ATI fought and fought hard to get back to the top, and it was only after AMD bought out the last of the DEC stuff for really awesome 64bit support and then gobbled up ATI that things got good again. Frankly it was a great move since graphics are almost all math, so having a 64bit (or even 128bit) pipe with multipath and short-lines is just great.

The came the licensing wars.

Linus (correctly) said that kernel shims were OK so long as they’re open source. He’s no dummy, kernel shims let the kernel load blobs, but being open source they replace the linking and once you’ve got the linking objects you’re most of the way to having a driver since you can see what the card is being sent and you can see what the kernel is sending. Open source drivers followed, but some of the really exotic stuff only recently caught up.

nVidia has always, always been a pain in the ass in Linux. The shim wouldn’t build when it first came out and required users to edit the Makefile, certain gcc versions produced drivers which were slow or had unintended consequences depending on how they did memcpy and other low level functions. Installing nVidia was mostly a one way ticket to either kernel lock-in or building it by hand. To further add insult to injury, nVidia never offered a unified driver and always had three versions. Now this was OK up until recently – They kept a list of cards so you generally knew if you needed nv, nvidia-G01 or nvidia-G02. Now the bad news: nVidia has decided to drop updates for older cards. I realize they can’t update them forever, but what’s missing? Open sourcing the drivers.

ATI hasn’t really offered up any open source drivers, but they did offer unified drivers. Download one, build it, you win! The build process is pretty seamless. ATI hasn’t moved to quash open source drivers either, to the point where the open source drivers are so stable that they are now officially merged to MESA. If you’re wondering what MESA is, MESA provides openGL functionality to the system in a common package. To have drivers in it for a major manufacturer like ATI means you simply install MESA and 3D just works. No more diddling around with drivers, third party crap, and the ATI clock tray icon (unless you want to).

Now if you’re like me, you’re running OpenSuSE. You’re probably not like me but you might be running Linux. Windows users should have stopped reading six paragraphs ago. I upgraded to 11.3 from 11.1 (which I needed to run to hack the novell client from SuSE 10 into working because novell doesn’t even update their own stuff) and what broke? Oh, the nvidia drivers. Given that this is a work PC, I have no sway in my videocard. I went to fire up sax2 and I was told it was deprecated because of XOrg updating their autodetection routines. The new XOrg is nice, the new SuSE is nice, but with no new nVidia release my KDM login manager doesn’t work. Weirdly enough I can log in on the console and do a startx which does work, but it would be nicer to have a GUI running. (Then again having an ominous text console keeps the n00bs off my PC). After hacking on this most of the last few days, it’s definitely a problem in how nVidia does the initialization and it’s directly related to the fact I am running nvidia-G01. Way to go nVidia.

My laptop (ATI)? Runs great, and it’s a radeon mobility 600. Hardly new. Guess we know who’s videocard I’ll be buying in the future.

What the Hell. Seriously.

Todays happy fun UNIX error message:

/etc/X11/xim: Checking whether an input method should be started.
/etc/X11/xim: line 72: You can write a small letter to Grandma in the filename.: command not found
sourcing /etc/sysconfig/language to get the value of INPUT_METHOD
INPUT_METHOD is not set or empty (no user selected input method).
Trying to start a default input method for the locale en_US.UTF-8 ...
There is no default input method for the current locale.
Dummy input method "none" (do not use any fancy input method by default)

Tertullian was born in Carthage somewhere about 160 A.D.  He was a
pagan, and he abandoned himself to the lascivious life of his city
until about his 35th year, when he became a Christian .... To him is
ascribed the sublime confession: Credo quia absurdum est (I believe
because it is absurd).  This does not altogether accord with historical
fact, for he merely said:

 "And the Son of God died, which is immediately credible because
 it is absurd.  And buried he rose again, which is certain
 because it is impossible."

Thanks to the acuteness of his mind, he saw through the poverty of
philosophical and Gnostic knowledge, and contemptuously rejected it.
 -- C. G. Jung, in Psychological Types

(Teruillian was one of the founders of the Catholic Church).

startkde: Starting up...
kdeinit4: preparing to launch /usr/lib64/libkdeinit4_klauncher.so
kdeinit4: preparing to launch /usr/lib64/libkdeinit4_kded4.so
kdeinit4: preparing to launch /usr/lib64/libkdeinit4_kbuildsycoca4.so
kbuildsycoca4 running...

And so on. I was trying to connect from my XOrg host running KDE to a Sun (Solaris 7) box running X11R3 with CDE. I have no idea how jesus got involved.