Where was I?

Had another job to do but I’m back again. I’m in the process of trying to compile xen-4.0.0 on my fresh install of Ubuntu 10.04 LTS. Downloaded and extracted the source code and started on the README file, as you do. This time I have taken much more care to ensure I have the pre-requisites listed. Mind you, this is a bit of an art in itself…asking for a development install of x11 translates into which packages exactly?

I’ve been using the Synaptic Package Manager on Ubuntu and it’s built-in search function to make educated guesses about what was required. I have saved the log file of what I chose, to be thorough.

So continuing with a “make world” trundles along for a while before failing because of /bin/sh: git: not found. This is an easy fix by installing git-core package. Guess the README missed that one.

After it’s done all it’s git stuff it stops again, this time with the prompt

Enable support for Xen PCI passthrough devices (XEN_PCI_PASSTHROUGH) [N/y/?] (NEW).

Lets give that a whirl, and the next one

Paravirtualization layer for spinlocks (PARAVIRT_SPINLOCKS) [N/y/?] (NEW)

followed by

Xen PCI Frontend (XEN_PCIDEV_FRONTEND) [N/m/y/?] (NEW)

I’m typing these in as they crop up. How many more I wonder? Makefile must be slightly out of date.

SCSI tape drive support for Smart Array 5xxx (CISS_SCSI_TAPE) [N/y/?] (NEW)
Fusion MPT ScsiHost drivers for FC (FUSION_FC) [N/m/y/?] (NEW)
Maximum number of scatter gather entries (16-128) (FUSION_MAX_SGE) [128] (NEW)
Fusion MPT misc device (ioctl) driver (FUSION_CTL) [N/m/y/?] (NEW)
Fusion MPT logging facility (FUSION_LOGGING) [N/y/?] (NEW)
Net channel 2 support (XEN_NETCHANNEL2) [N/m/y/?] (NEW)

OK, this is getting tedious, skip the rest except to say I chose Virtual PCI for the backend.

The next error is

*** check_uuid_devel FAILED: missing uuid headers (package uuid-dev)

which doesn’t stop it in it’s tracks swiftly followed by

*** check_xgettext FAILED: can't find xgettext

shortly after which it stops.

Both the above easy to rectify by installed uuid-dev package and gettext package. More minus points for the README file.

I’ve re-typed make at this point (not make world because I don’t want to answer all those questions again). Soon falls over again though in the firmware section with

Require dev86 rpm or bin86 & bcc debs version >= 0.16.14 to build firmware!

That can be fixed by installing the bcc package and it’s dependency.

Next stop, need to Download and install Intel ACPI CA

Which is fixed by installing the iasl package.

This next one looks a bit more tricky. All kinds of confusion following from xen/lowlevel/xc/xc.c:7:20:error: Python.h: No such file or directory

Running a find for Python.h reveals one in /usr/include/python3.1/Python.h. There is a /usr/include/python2.6 directory but there was no Python.h in there. Thanks to Google that is quickly solved by installing the python2.6-dev package.

Next it complains that makeinfo is missing, fixed by installing the texinfo package.

And there at last we seem to have it! Although LateX is required for the documentation, it says.

I started this session at 20:46 and it is now 23:31 so that’s how long it took me to build Xen. Haven’t tested it yet though 🙂

Back again

So, back from holiday and turning on the computer again.

What I’ve done is re-cut my 2G USB stick (using Unetbootin on my PC) with the Centos5.5 DVD .iso, effectively making the Centos Live USB. For some reason it died over the holiday.

Now booting with the “Live USB” and plugging in a second USB stick I followed the instructions http://lists.centos.org/pipermail/centos/2010-April/093806.html to make a bootable install USB stick (call this the Install USB). Usefully, the “livecd-iso-to-disk” command lives in the LiveCD folder on the Live USB stick.

Booting from the Install USB stick allows me to specify a disk-based install, using the second partition on the Install USB stick. This time I chose the “Server GUI” and “Virtualisation” modules and opted to install grub on the Install USB stick, as I know from experience that grub2 will not boot Centos.

And, yes, booting from the Install USB does boot Centos from the hard drive.



Some progress

I have made some progress and can now boot Centos! Typically though, I did not solve the grub2/centos kernel interaction bug but worked my way round it. I discovered slightly different symptoms by installing a different Centos kernel:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0).

I tried several install experiments with different kernel and boot loader options and finally realised I could install the Centos grub bootloader on the USB stick, which is where the installer wanted to put it anyway.

So it’s cheating a bit because I still have to boot from USB and then boot Centos from the partition on the hard drive. But I don’t care ‘cos it works. Booting from the disk will still load grub2 from the MBR but it’s pretty useless as it can only boot Ubuntu. Maybe it will have more luck with OpenSolaris when I get to it.

Now, one final thing I have to do is re-make my Centos USB stick because I want to install the virtualisation kernel. I no longer boot the installer since it has been over-written with grub. Also I must point at the instructions I used as a starting place http://lists.centos.org/pipermail/centos/2010-May/094933.html or I will forget how I did it. And I will post my version too.

Grub2 pain

I’ve been busy with other things but have spent a few minutes every day for the last several days trying to fix grub2. This program is really annoying me now. I have it courtesy of Ubuntu but will it boot Centos? No.

I have the grub2 menu configured to boot Centos directly, grub2 detects Centos and makes a menu entry for it. This gives “Invalid magic number” when invoked. I also have a menu entry to chainload the Centos grub which gives “Grub disk error”.

There are no useful posts on the fora so I am still stuck.