Another 'vmlinuz' for OLPC test

I recompiled the one-file Quirky, this time I configured the kernel for the Geode GX1 CPU.

Download here:

Note, I also turned off MTRR register support in the kernel, as I don't know if the Geode GX1 has those registers. I think that Xorg needs those registers.
Anyway, see if this boots, and I can do another compile with MTRR enabled.

I had a quick look at Geode specs, I see that the GX1 doesn't even have the MMX instructions, but the GX2 does. If I recall rightly, even the i486 has MMX instructions.
I think that some applications compiled for a i486 are not going to work with a Geode GX1.

I don't know whether the first XO's have a GX1 or GX2, hopefully not the former.

Posted on 15 Jan 2010, 11:51


Posted on 15 Jan 2010, 14:23 by mavrothal
OLPC'x XO-1 is using a Geode LX700 CPU.
Recent OLPC kernels are i586.

Posted on 15 Jan 2010, 15:44 by BarryK
Geode GX
Ok. I got my information about the GX from wikipedia:

The One Laptop per Child project originally used the GX series Geode processor in the OLPC XO, but it has since moved to the Geode LX.

However, I think that I saw a comment somewhere that the GX may have only been in pre-production models, but I'm not sure about that.

Posted on 15 Jan 2010, 15:49 by aarf
vmlinuz15jan failed to boot
md5sum ok
setting up layered file system failed
mounting: mounting /dev/sda3 on /mnt/data failed
<3>FAT codepage cp437 not found

quirky4 was ok.

Posted on 15 Jan 2010, 16:06 by BarryK
Geode: no MTRR
I found where the Geode CPU (LX and GX) is identified not to have MTRR:

The second link is a discussion about problems with Xorg due to this. Xorg.conf can have:

Option "NoMTRR"

...but apparently there are still issues.

Posted on 15 Jan 2010, 16:09 by BarryK
Geode only
This one-file Quirky is compiled for the Geode GX1 CPU. It may crash and burn on other systems.

Posted on 15 Jan 2010, 16:13 by BarryK
XO 1.5
I think that ttuuxxx said he has a XO 1.5, which I guess has an "i586" CPU, so this Quirky kernel probably won't work. But I think Raffy has an older XO with Geode CPU.

Posted on 15 Jan 2010, 16:20 by BarryK
XO 1.5
Ah, the XO 1.5 has a Via C7-M CPU. In that case, the previous one-file Quirky that I uploaded (now removed) should be fine for ttuuxxx.

Posted on 15 Jan 2010, 16:30 by mavrothal
ttuuxxx has XO-1. XO-1.5 did not start production yet (needs a final? board revision).

Here you can find a DOTconfig that works on the XO-1 for both Fedora 11 and playdayz' uPup451 (full install) on the XO.

Posted on 15 Jan 2010, 18:45 by pakt
Starbox boot attempt
Barry, I have a Starbox SB-800 with a Geode LX800 CPU.

It started to boot vmlinuz-15JAN2010.t00 but hung at this point (copied lines from screen):

Loading the 'quirky-004.sfs' main file...
Setting up the layered filesystem...
Dumping last lines of /tmp/bootinit.log
FATAL: Error inserting aufs (/lib/modules/ Invalid module format
FATAL: Error inserting fuse (/lib/modules/ Invalid module format
mount: mounting /dev/loop0 on /pup_ro2 failed
mount: mounting unionfs on /pup_new failed
Dumping last lines of kernel log...
<4>nls_iso8859_1: disagrees about version of symbol module_layout
<4>aufs: disagrees about version of symbol module_layout
<4>fuse: disagrees about version of symbol module_layout
<6>input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input1
Pausing for 60 seconds...
Performing a 'switch_root' to the layered filesystem...Kernel panic - not syncing: Attempted to kill init!

Posted on 15 Jan 2010, 22:06 by technosaurus
geode target
If you already have a T2 setup, I recall there being a specific geode target. Also I think the GX1 refers to the last NSC geode chips - whereas the XO used the AMD geodes (GX2 then LX)

... I think this is what was used in previous versions of T2 as the target for geode:
CFLAGS=" -march=i586 -mtune=i586 -mmmx -m3dnow "

... The proper target for newer gcc versions should be something like -march=geode -mtune=geode (but I think the kernel has a geode specific option as well)

... I do not think this has been updated in T2 as of yet since the option only came out in gcc-4.3 and T2 just recently upgraded that package - maybe because it would require an additional build step (bootstrap) if you were starting from a system with gcc < 4.3

I wonder if the "Invalid module format" is related to a former bug in busybox or if it is just from being gzipped?

Posted on 16 Jan 2010, 2:12 by prehistoric
I'm afraid your memory of ancient processor designs may have failed you. MMX was touted as a major Pentium advantage at the time it was introduced, though it may have been back-ported into later 486 versions. Fortunately, you have people in the community who remember chipping early silicon designs out of natural stone.

Posted on 16 Jan 2010, 2:36 by Raffy
Only GX2 and LX
Only GX2 and LX Geodes are in the miniPC and industrial PCs since the time of OLPC.

My GX2 466 runs just fine like a Pentium PC (see the specs). It runs Puppy 2.13 well!

Posted on 16 Jan 2010, 8:36 by BarryK
Module loading
This error message:

FATAL: Error inserting aufs (/lib/modules/ Invalid module format

...bothers me very much! 'depmod' and 'modprobe' in the initramfs are able to handle gzipped modules. All the puppies we are currently running work this way. I'm running Quirky 004 right now, which loaded the gzipped modules in the initramfs.