Comments: Build and Boot

Andrew Alexander <[email protected]> Tue, 26 Jan 2010 23:59:03 -0500
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Message-ID <[email protected]>
Hello,
I found the l4ka project and thought I'd take a poke at it.  Here is a
general outline of my endeavors, which should produce a bootable cd image of
i4ka-amd64.  These are my notes, so they are kind of messy, as its a cross
between commands and my actions

Main System:
Intel Core i7
Windows 7 64bit

Compiling Platform:
Virtualized with VirtualBox
Ubuntu-9.10-server-amd64

Test System:
Virtualized with VirtualBox

Build :

//****** Main
Install hg
install gcc
install g++
grabbed the kernel: hg clone http://hg.l4ka.org/l4ka-pistachio

//****** Kernel
went into the kernel directory
make BUILDDIR=<some nonexistance directory>
went into the new directory

make menuconfig
   Hardware:
      x86, 64bit, Pentium4, PC99
      Use APIC+IOAPIC, 2 IO Apics, 1000 Timer Tick
   Kernel:
      Enable Debugging mode
   Debugger:
     Nothing
   x to save and quit

// I didnt use SMP, I will need to go back later and mess with it my
virtualmachine has 2cpus for testing this

make
// kernel was called x86-kernel  not sure if this is correct, some of the
online documentation says it should be amd64-kernel


//****** User
// user contains other useful things required to make this work

install autoconf2.59    // the default package was autoconf 2.64 but it
doesnt work
went into the user directory
autoheader
autoconf

went into the kernel directory i built the kernel in (~/k)  and made a user
directory
also made a directory for userheaders and such (not sure its purpose yet)
also made a directory for userbins (useful stuff)

went into the user directory (~/k/user)
~/l4ka-pistachio/user/configure --host=amd64 --prefix=<userheaders>
--libexecdir=<userbins>

// I had to use --host=amd64 because the default was i86_64 and it didnt
like that for some reason...

make
make install

// userbins should now have files



//****** Boot Image

All the documentation on the site, some of the projects and even the grub
site talk about an older version of grub, now refered to as Grub Legacy..
This is confusing because the version isnt really indicated.  Anything
mentioning grub.conf or menu.lst seems to be old.. the new config file is
grub.cfg

I used the version that came with Ubuntu - 1.97~beta4

install genisoimage

made a directory ~/k/bootimage
copied x86-kernel into bootimage
copied kickstart, pingpong, sigma0 from userbins into bootimage
made a directory ~/k/bootimage/boot
made a directory ~/k/bootimage/boot/grub

created a ~/k/bootimage/boot/grub/grub.cfg with the following text (between
the -------------------------------)
-------------------------------
set timeout=10
set default=0
menuentry "PingPong" {
   multiboot /kickstart
   module /x86-kernel
   module /sigma0
   module /pingpong
}
-------------------------------

grub-mkrescue --overlay=~/k/bootimage/  --image-type=cdrom  test.iso

// test.iso should be created which can be mounted as a cdrom in VirtualBox
or burned to CD.



Thats about it.. I've included a screenshot of it booted.  There are some
errors present that I need to work out, but if you get something
similar, you've gotten at least as far as me.

Also, the faq link on the site no longer works, but I found it on
archive.org  it helped confirm a few things for me
http://web.archive.org/web/20080729224613/i30www.ira.uka.de/~l4hq/cgi-bin/research/pistachio-faqwiz/faqw.py?req=all

Hope this helps.
pistachio-booted.jpg (image/jpeg, 107 KB) - not displayed