Monday, July 14, 2008

My own OS!

I've decided to build my own Linux clone. I'm doing it mostly for the experience. Hope to document the process on this blog. Watch this space!

Saturday, April 12, 2008

Mannga Thoppu

Getting hooked onto Kashmir Stone, thanks to aganti

Sunday, March 30, 2008

Ahh... gPXE!

I have been trying to get back to the Etherboot project for a while now. There were a bunch of distractions - grad school, holidays, work, etc. - but I finally managed to get my hands dirty again. Here is a quick description of how to boot LTSP on a diskless machine.

I used VMware for my setup. I put two virtual machines on a virtual LAN segment. Although I compiled gPXE from souce, you can configure, build and download your ROM image from the wonderful site Marty maintains. I setup the client VM to boot into the virtual disk, and that's where I copied the gPXE code.

Now, I'm not a 100% clear as to how the whole process works, but from my understanding, the BIOS (post POST :) ) scans the available devices for a bootable sector. The first sector of the virtual harddisk (the gPXE bootloader) meets the specifications, and the BIOS loads gPXE's bootloader into low mem, and makes a far call into it. gPXE does the usual - switch from real to protected, set up the stack for C apps, and tried to download the kernel. This would effectively make gPXE the first bootloader (this is the part I'm not very sure about).

Setting up the server VM was a little more involved. I had to setup a DHCP server (sudo apt-get install dhcp3-server, edit /etc/dhcpd/dhcpd.conf, and sudo /etc/init.d/dhcpd restart), a TFTP/HTTP and copied the ltsp image into the TFTP/HTTP server's root directory. Edit the configuration of the dhcp server to provide the boot filename.

Once you set it up, start up the client VM. You should see the following:

1. client VM boots up


2. contacts DHCP... gets IP address, TFTP/HTTP server location, boot filename


3. attempts to boot from the kernel


4. ta-daa! :)


I've been experimenting with trying to get this to work over a webserver. Anyway, more updates coming up.