Saturday, February 26, 2005

Last two weeks I have been redoing everything since I had to install new linux - Fedora Core 3. I tried it because the problems I were getting for my MS wireless keyboard-mouse USB driver. It worked. But during some experiments I had to reinstall couple of times. Now to compile the L4, drops package and L4Linux 2.6 with the GCC 3.4.2 that comes with FC3 is a pain. So I had to downgrade all my gcc tools to lower version 3.2-7. This is giving me some troubles because of many dependencies. GCC 3.4.2 has made some syntactic checks more strict, thus barking errors in some cases instead of letting them go with warning message. I reported these on the mailing list, but they are just happy to stick with the old GUI. So that's what I am doing.

Once I get the L4 system boot, I want start experimenting with run-l4 program from linux, which executes binaries designed for L4.

Friday, February 25, 2005

Loads of ASCII arts

http://www.chris.com/ascii/

Monday, February 07, 2005

The Linux BootPrompt HOWTO

Exactly what I was looking for from yesterday

http://ldp.rtin.bz/HOWTO/BootPrompt-HOWTO.html#toc2

Friday, February 04, 2005

GRUBbing

For past two days I was stuck on this issue with GRUB. I downloaded L4Linux-Fiasco bootable CD last weekend. Running L4Linux out of the CD was very easy, considering my failed attempts with L4Linux-pistachio. But booting from the CD did not mounted the harddisk filesystem. So I reverse engineered the booting mechanism from the CD and tried to change my Grub Bootloader to load the fiasco kernel and L4Linux module. I copied these binaries from CD to my harddisk /boot.

But this was not sufficient. The booting of this kind with gnu-grub fails - but it fails gracefully giving very useful message that you need Desden's modified grub bootloader to load their kernel. So there started my GRUBbing. Out of total lack of common sense, it took me couple of days of how to download dresden's grub source code. But even after building the grub binaries, it was very hard to figure out how to install it. "make install" places the binaries in some bin, sbin directories, but I knew that it has to do something more subtle (below the file system) to install the new bootloader. I manually replaced some binaries from /boot/grub, /sbin/, /usr/local/bin etc., even after knowing that it wasn't of any use. Meanwhile I read through GRUB manual, posted on mailing list, but no use. I ran grub-install script, but still no use. You have to give to grub-install the device on which you want to load the bootloader. I naively gave /dev/hda6, the device which holds my '/' mount. Then yesterday I found this link

http://www.sims.berkeley.edu/~jhall/grub_install_hda1.html

talking about recovering the system after the person had accidently installed the grub stage1 onto his windows partition. There I found out that to reinstall the grub you need to execute grub-install with /dev/hda.

This worked...

After some twiking of grub.conf I got the machine booted with fiasco and L4Linux binaries downloaded from the CD. However this worked, the binaries are somehow tied to the CD and won't mount my hard disk file systems and won't even work without CD. So I am planning now to build all those binaries separately and boot them.

Meanwhile I will again give a shot to booting L4Linux-Pistachio with my new GRUB.

Thursday, January 20, 2005

Stumbled on hurd

Stuck in a chicken-n-egg problem on hurd front. I needed to access network through my ethernet port from Hurd. The pfinet translator won't work easily. After googling, and searching through the archives I picked up the notion that the driver for my ethernet card is not present in gnumach. (I know in microkernel implementation drivers are not part of kernel, but I found the driver code under gnumach/linux/drivers.... directory. The Space.c file does not seem to have Broadcom driver code) My ethernet controller card is "Broadcom Corporation NetXtreme BCM5702X Gigabit Ethernet". I downloaded the linux driver source code from Broadcom's site. In Space.c a *_probe() function is called. Each hardware vendor defined his own _probe() function and using some macros that particular function is called. So I had a plan to integrate Broadcom's probe function with the gnumach source code, recompile the thing and try.

But this effort has stuck in an chicken-n-egg problem as mentioned earlier. For compiling the kernel, I need gcc, make, etc. I installed make some time back, it was simple .deb file. It was hard to find .deb package for hurd-i386 for gcc. Folks on mailing lists advised me to use apt-get to install gcc. It later on occured to me that apt-get internally gets the installation packages from the internet... which in the first place I am trying to access. :(

So I tried to solve this, by means of cross compiling exercises. Yesterday I tried to compile gcc 2.95 on linux for i686-pc-gnu platform, and it is giving its own set of errors.

Alongside I have been reading about the L4 kernel and Hurd efforts of porting to L4. I am getting interested in installing L4Ka::Pistachio microkernel. So I might suspend efforts on Hurd front and might follow a new lead.

Besides in past few days, I have found some good linux stuff, that I didn't know already.

#cat /proc/pci should give you wealth of information about the hardware devices attached to your pci bus, like the IRQ info and rest of PCI info.

Learnt about this linux command strace, with which you can track the system calls and signals associated with a live running process.

It was a news to me that, there is a subdirectory under /proc for every process, named after its process id. This subdirectory contains useful info about that process. Among other things it holds an fd subdirectory, which will list all the file descriptors opened by that process.

Good stuff for debugging your system....

I am particularly impressed by the work done by Jochen Liedtke, the father of L4. Sad to know that he passed away in 2001. His paper 'On microkernel design' is a classic one. I am planning to follow whatever job he has done on microkernels.