L2200: 2.6 kernel configuration

The IBM N2200 is rather kinky when it comes to newer Linux kernels. The one I’ve had most success with is 2.6.24, so that’s the one I’ll describe in this post.

First of all, kernel configuration. (I’ll fill this in later)

And now it’s time for patching the kernel. (I’ll fix .diff patches later) Graphics are powered by the AMD Geode GX1 chip but from my experience it won’t (always) work out of the box without setting another default resolution probe. This might depend on BIOS versions, but I’ll investigate that further on. So edit the GX1 framebuffer driver like so the 640×480 is 1024×768 at the static definitions in drivers/video/geode/gx1fb_core.c

static char mode_option[32] = “1024×768-16@60″;
static int crt_option = 1;
static char panel_option[32] = “”;

Next up, root device detection. Apparently with SCSI emulation (at least), the CF card won’t be identified correctly. Or so it seems. Anyhow, I’ve personally implemented the following fallback in init/do_mounts.c on line 469 (just above mount_root();):

if (ROOT_DEV == 0)


Now just make and get a cup of coffee.

After compiling this, you will have the kernel arch/x86/boot/compressed/vmlinux (no, not bzImage or anything like that). Of course the troubles aren’t over yet! The IBM N2200 won’t be able to read this due to the ELF header count specified as 2, something I think started showing up with Linux 2.6.

Even though I prefer not editing binaries with a hex editor blindly, it seems to be the only working solution for IBM’s buggy BIOS to my (limited) knowledge. So fire up your preferred hexeditor (like hexedit) and set position 0×2C to the hexadecimal value 01 instead of 02.

Now put your patched, hexedited kernel in the root of your previously debootstrapped system. Make sure to name it kernel.2×00. Pray that it will work.

L2200: partitions and debootstrap

fdisk $CF_CARD
Setup the partitions so the first isn’t too big for the N2200 BIOS to mount. I recommend 256-512 MB for the first primary partition. Then partition further systems along your personal own conviction for /usr, /var or even /home. Remember that apt will want to cache stuff in /var/cache/apt/archives, unless you do a magic ftpfs mount of kernel.org 🙂

Following this you can re-insert the CF card (or udevadm trigger I suppose) or probe your new partitions to get UUID values for your future fstab. My list turned out to be the following. Your UUIDs and drive names will differ:

# ls -l /dev/disk/by-uuid|grep sdd
51c371e3-45ca-4ed0-ac9b-1401db7a8ce9 -> ../../sdd5
81f94c5b-4319-4c3c-b413-36634c32e708 -> ../../sdd7
cb7bbb36-b65f-4e29-88a6-e9b36f44e2a0 -> ../../sdd8
cb880d31-9509-46e2-90c6-7fc2e9189c17 -> ../../sdd6
eee1b774-5bc4-41e4-a469-8ca58dbe88b8 -> ../../sdd1


After making filesystems (use ext2 for / at least), mount it somewhere smart and debootstrap a system. Of course, you need debootstrap for this, which is in the default Ubuntu repository at least. To avoid having to create your own /dev nodes, include udev in the minbase variant of your favorite deb-based system. gpgvapt-utilscronntpdateopenssh-server as well as vim-tiny are also good for your health. To make your internet life easier, the netbase utilities, iputils-ping and a dhcp client are recommended.
debootstrap --variant=minbase --include=udev,gpgv,apt-utils,cron,ntpdate,openssh-server,vim-tiny,netbase,iputils-ping,dhcp3-client jaunty /mnt/l2200

Edit your debootstrapped system’s hostname, chroot into the environment, set the root password for future use and then open up /etc/fstab to make sure your partitions are mounted at boot. You might have to alias vim=vim-tiny.
# echo l2200 > /mnt/l2200/etc/hostname
# chroot /mnt/l2200
@l2200:/# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
@l2200:/# vim /etc/fstab

Now. Time to get your UUIDs ready and setup your /etc/fstab. An easy way to get a pastable output is the command for i in /dev/sdd?; do echo -en “#$i\nUUID=” ; sudo vol_id –uuid $i; done

# L2200 /etc/fstab config for MMN-o
proc    /proc   proc    defaults        0 0
tmp     /tmp    tmpfs   defaults        0 0
UUID=eee1b774-5bc4-41e4-a469-8ca58dbe88b8       /       auto    defaults        0 0
UUID=51c371e3-45ca-4ed0-ac9b-1401db7a8ce9       /usr    auto    defaults        0 0
UUID=cb880d31-9509-46e2-90c6-7fc2e9189c17       /var    auto    defaults        0 0
UUID=81f94c5b-4319-4c3c-b413-36634c32e708       /srv    auto    defaults        0 0
UUID=cb7bbb36-b65f-4e29-88a6-e9b36f44e2a0       /var/cache/apt/archives auto    defaults        0 0

Just to make this complete, we’ll add network settings as well. That’s in /etc/network/interfaces

# L2200 /etc/network/interfaces for MMN-o

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Running dpkg-reconfigure -p high -a (which will take a while and require some input) is a rather easy way to make your system behave without screaming about various problems related to a totally unconfigured system. If you want fanatic control over the settings, do it with -p low.

Now, all we should need is a kernel. That’s quite a bit of trickery, so it’ll need a second blog post.

Återkallar Ipred-anmälan, gör ny snart

hethane juridik
2009-07-07, Umeå



Med anledning av svarande i mål Ä5097-09 som hävdar avsaknad av uppgifter som sökes i Mikael Nordfeldths ansökan om informationsföreläggande önskar sökande återkalla ärendet.

Noteras bör dock att svarande har yttrat sig i ärendet genom den avdelning för “Speciella Utredningar” inom koncernen TeliaSonera AB med dotterbolag (inklusive svarande juridisk person) hanterar ärenden av denna typ.

Härmed återkallas Ä5097-09 från Södertörns tingsrätt av sökande part, Mikael Nordfeldth, enbart i syfte att väcka en ny ansökan om informationsföreläggande mot annan juridisk person inom samma koncern. Suck.

>¨+<` <’-|’ “^~’`*`”

Mitt Ipred-ärende

TeliaSonera AB Network Sales “innehar inte den information som sökanden begär”. TeliaSonera AB Network Sales är alltså enligt TeliaSoneras “Speciella Utredningar” fel svarande part. En annan juridisk person, som inte vet något – vilket verkar gälla inom hela TeliaSonera-koncernen eftersom samtliga jag pratat med inte kunnat svara på var ansökan bör skickas.

Enligt en rådman på Södertörns tingsrätt bör jag återkalla Ä5097/09 och lägga ett nytt ärende med en annan – korrekt – juridisk person som svarande part.

Hade jag ringt förra veckan hade Annika Östlund, som besvarade min ansökan om informationsföreläggande till tingsrätten, varit på jobbet. Jag känner mig dum i huvudet som dragit på det såhär länge.

Det som gäller nu är i alla fall som sagt att återkalla mitt existerande ärende och öppna ett nytt. TeliaSonera AB Speciella Utredningar sade på telefon nyss att jag bör kunna skicka till dem. Hade Annika Östlund inte hunnit gå på semester hade jag nog fått klarare besked. Frågan är varför de inte skrev möjlig svarande part i yttrandet…

TeliaSonera AB
Speciella Utredningar
85187 Sundsvall

I övrigt så ifrågasatte de bevisningen (som ePhone gjorde…) samt påpekade att jag ö.h.t. inte påvisat min upphovsrätt till verken i sig.

Hur bevisar man sin upphovsrätt? Ska det ens behövas? Det var ju inte direkt så att Danowsky & Co. visade att Jan Guillou verkligen hade skrivit sin bok…

I vart fall har Network Sales (trots att det är Speciella Utredningar-sektionen av TeliaSonera AB som hanterade det?) yrkat ersättning för rättegångskostnader “med ett belopp som kommer att anges senare”. Nice.

Jag lägger upp inscannat material som skickats mig från Södertörns tingsrätt på den här bloggposten framöver, om ingen hunnit gå förbi och begärt ut aktbilaga 6 från Ä5097-09 än…

PS. Vad har hänt med Ipredkoll? Har svärmen tagit semester? Föga förvånande förvisso.