Pokemon OS, it just works! ™
by BenV on Aug.05, 2009, under Software
Or… not. Oh, the pokemon reference comes from the brilliant webcomic XKCD.
Usually I have little problems getting stuff to work on it, but as hardware gets older and support gets worse thing get more interesting.
First things first: I have no issues with ubuntu, they’re doing great work. In fact, the machine worked fine after installation, except for I can’t live with 800×600, so I wanted a better video driver.
Needless to say that means NON OPEN SOURCE GARBAGE FROM NVIDIA (ATI is just as bad btw). Although their binary driver usually ‘works’, you’re royally screwed if your system doesn’t meet their requirements.
So after installing ubuntu karmic, and more specific: kunbuntu karmic, everything kinda worked. In the system tray was a “hardware” icon indicating that there might be better but proprietory drivers for my hardware. *clickety*. “Yes sure, you can have my children and life and eternal soul and whatever the hell you believe making me check this checkbox will accomplish” (idiots).
Maybe I should start using wget with something like wget --referer "By allowing this download you grant me all possible rights including the rigth to blasphemy your company into the ground and also the right to take your software and rape it as I see fit. All clauses included in the software downloaded are automatically null and void and are superseded by this contract" $file
…. probably has about the same value as those checkboxes.
Anyway, after the checkboxes the karmic koala downloaded some stuff and then barfed up some errors, none of them were helpful.
Digging a bit deeper it appeared that the dkms system wasn’t able to compile a kernel module. Oooh, why didn’t you say so… nvidia cruft scores again!
More specific:
In file included from /var/lib/dkms/nvidia/96.43.10/build/nv-linux.h:112,
from /var/lib/dkms/nvidia/96.43.10/build/nv.c:14:
include/linux/highmem.h: In function âzero_user_segmentsâ:
include/linux/highmem.h:149: warning: pointer of type âvoid *â used in arithmetic
include/linux/highmem.h:149: warning: pointer of type âvoid *â used in arithmetic
include/linux/highmem.h:149: warning: pointer of type âvoid *â used in arithmetic
include/linux/highmem.h:149: warning: pointer of type âvoid *â used in arithmetic
include/linux/highmem.h:152: warning: pointer of type âvoid *â used in arithmetic
include/linux/highmem.h:152: warning: pointer of type âvoid *â used in arithmetic
include/linux/highmem.h:152: warning: pointer of type âvoid *â used in arithmetic
include/linux/highmem.h:152: warning: pointer of type âvoid *â used in arithmetic
/var/lib/dkms/nvidia/96.43.10/build/nv.c: In function ânvos_proc_createâ:
/var/lib/dkms/nvidia/96.43.10/build/nv.c:502: error: âstruct proc_dir_entryâ has no member named âownerâ
/var/lib/dkms/nvidia/96.43.10/build/nv.c:503: error: âstruct proc_dir_entryâ has no member named âownerâ
/var/lib/dkms/nvidia/96.43.10/build/nv.c:504: error: âstruct proc_dir_entryâ has no member named âownerâ
/var/lib/dkms/nvidia/96.43.10/build/nv.c:524: error: âstruct proc_dir_entryâ has no member named âownerâ
/var/lib/dkms/nvidia/96.43.10/build/nv.c:537: error: âstruct proc_dir_entryâ has no member named âownerâ
/var/lib/dkms/nvidia/96.43.10/build/nv.c:548: error: âstruct proc_dir_entryâ has no member named âownerâ
/var/lib/dkms/nvidia/96.43.10/build/nv.c:558: error: âstruct proc_dir_entryâ has no member named âownerâ
/var/lib/dkms/nvidia/96.43.10/build/nv.c:568: error: âstruct proc_dir_entryâ has no member named âownerâ
/var/lib/dkms/nvidia/96.43.10/build/nv.c:579: error: âstruct proc_dir_entryâ has no member named âownerâ
/var/lib/dkms/nvidia/96.43.10/build/nv.c:586: error: âstruct proc_dir_entryâ has no member named âownerâ
/var/lib/dkms/nvidia/96.43.10/build/nv.c: In function ânvos_proc_add_warning_fileâ:
/var/lib/dkms/nvidia/96.43.10/build/nv.c:613: error: âstruct proc_dir_entryâ has no member named âownerâ
make[3]: *** [/var/lib/dkms/nvidia/96.43.10/build/nv.o] Error 1
make[2]: *** [_module_/var/lib/dkms/nvidia/96.43.10/build] Error 2
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make[1]: *** [module] Error 1
make: *** [install] Error 2
Well, that’s a very cute error. Better buy intel next time… or maybe ATI when they finally get their act together with their open source drivers…
The failing piece of cardboard in this case was an Nvidia Geforce 2 MX, or as lspci said it:
01:00.0 VGA compatible controller: nVidia Corporation NV11 [GeForce2 MX/MX 400] (rev b2)
“Yeah that’s lovely, but how did you get it running?”
Simple, attach legs to it and kick it!
But seriously, there are some options, like this patch I ran into.
Don’t bother trying out the newer nvidia drivers, like the 185 series, they won’t work with a message like this:
[ 2111.806576] NVRM: The NVIDIA GeForce2 MX/MX 400 GPU installed in this system is
[ 2111.806583] NVRM: supported through the NVIDIA 96.43.xx Legacy drivers. Please
[ 2111.806585] NVRM: visit http://www.nvidia.com/object/unix.html for more
[ 2111.806587] NVRM: information. The 185.18.14 NVIDIA driver will ignore
[ 2111.806589] NVRM: this GPU. Continuing probe...
[ 2111.806601] NVRM: No NVIDIA graphics adapter found!
So the simple solution now is to use the latest driver from the nvidia site:
http://www.nvidia.com/object/linux_display_ia32_96.43.13.html
“So what’s the big deal?”
First of all, were these drivers open they would have been included by default. You can blame ubuntu for being slow or not testing all possible driver combinations, but it’s a problem on both sides.
Second, now that I have to manually install this driver, there will be guaranteed issues whenever ubuntu has a new kernel, which means more support jobs for me. (which is something I don’t like for computers that are from relatives or customers)
Third, with the drivers not being open it’s impossible to debug the bugs that are in them. Check the nvidia forums (nvnews) if you want to amuse yourself on some rants of tired customers from this department.
Oh well, at least it works for now…. more than I can say for my ancient ATI mobile M9700 chip in my old laptop… (well, it works but don’t ask how).
Update – the story continues
Obviously this was not the last pokemon OS issue I had today. After the whole nvidia cardboard disaster, lotjuh wanted to configure some garbage on the PC, including openoffice.org.
Shortly after she touched the machine she informed me about the broken state of openoffice.org:
Lotjuh: Whenever I go to options it crashes!
BenV: Did you start it from a console?
Lotjuh: *retry* … *some error pops up*
The error looked a bit like this:
X-Error: BadAlloc (insufficient resources for operation)
Major opcode: 53 (X_CreatePixmap)
Resource ID: 0xjemoeder
Serial No: 1234 (567)
Since it was a new installation it couldn’t be the profile…. some googlefo gave me almost nothing, so another good reason to add this to this post.
The most useful post I could find hinted that removing ‘openoffice.org-gtk‘ might help but leave an “ugly” openoffice. Well, indeed, after removing it not only the options page worked, it was also even more ugly. Who would have imagined that was even possible! 😉
However, lotjuh wasn’t too thrilled about the new look. Obviously my “why use openoffice anyway” argument doesn’t fly with morons that can barely handle MSWord (“What does Save do?”), so time to look into that.
Checking apt-cache against openoffice (why doesn’t apt-cache sort by default?) gave some insight…. somehow the state of the system was that openoffice.org-base was not installed.
Mighty interesting… I’m quite sure I didn’t remove that when removing openoffice.org-gtk… besides, how would it start otherwise?
Ignoring this mystery for now I installed openoffice.org-base and some junk that tagged along with it.
While I was at it I also installed the openclipart-openoffice.org and openoffice.org-style-galaxy, my guess is that one of those fixed the problem.
Yes, after that round of apt-get install it worked. Magic.