[Fedora-ia64-list] fedora-xen-ia64 first pass

Aron Griffis aron at hp.com
Sat May 20 19:34:35 UTC 2006


Hello,

I've made a first pass at modifying the Fedora Rawhide xen and kernel
rpms to support ia64.  There is still a lot of work to do before this
would be suitable for inclusion in Fedora, but hopefully this
represents a proof-of-concept that can be improved to that point.

If you'd like to browse or contribute, the bits are available as
mercurial repositories at:

    http://free.linux.hp.com/~agriffis/

There are 5 repositories presently:

    fedora-xen-rpm      Tracks xen.src.rpm from rawhide.

    fedora-xen-ia64     Pulls from fedora-xen-rpm, contains
                        (trivial) modifications for ia64

    fedora-kernel-rpm   Tracks kernel.src.rpm from rawhide.

    fedora-kernel-ia64  Pulls from fedora-kernel-rpm, contains
                        modifications for ia64

    xen-ia64-unstable-2.6.17    Forward port of xen-ia64-unstable
                                sparse tree from 2.6.16.13 to 2.6.17,
                                generates linux-2.6-xen.patch for
                                fedora-kernel-ia64

Here is my non-comprehensive list of notes/issues for
fedora-kernel-ia64:

1. Upstream xen is presently based on 2.6.16.13.  Fedora kernel is (or
   was yesterday) based on 2.6.17-rc4-git5.  To port xen forward, the
   most maintainable method seems to be to do the port in the context
   of a xen-ia64-unstable mercurial clone (xen-ia64-unstable-2.6.17
   above).  Using this method makes it relatively easy to:

    (a) port forward to a new kernel at any time using the
        sparse-merge script

    (b) pull new changes from upstream xen and avoid most manual
        merging

    (c) extract a patch at any time that represents the forward-port
        of xen to a new kernel

    (d) generate a patch at any time that adds xen support to the
        fedora kernel (linux-2.6-xen.patch generated with "make
        mkpatches")

   The only caveat here is that I probably didn't do the forward port
   perfectly.  In particular I know I bungled the TPM stuff because
   there are lots of changes going into kernel.org and xen
   simultaneously.  Additionally I didn't pay a lot of attention to
   other architectures for the moment.

   Hopefully 2.6.17 will pop any day now, then xen upstream will move
   to it, and we won't have to carry the forward port in the Fedora
   patch.  If by some chance this doesn't happen, then my forward
   porting work will need to be revisited.

2. This first pass was created using the xen-ia64-unstable repo
   instead of the xen-unstable repo.  This is because xen-unstable is
   broken recently on ia64.  When the two have been resynced upstream,
   and xen-unstable works on ia64, we should move this prototype to
   using xen-unstable (which is what the current Fedora Xen patch is
   based on).

3. The bare metal config is built for Generic.  The xen0 and xenU
   configs are built for DIG-Compliant.  It seems that the kernel
   won't build for Generic with CONFIG_XEN enabled.  Using
   DIG-compliant for the xen kernels is probably okay for now, but it
   would be good to get Generic building.

4. After applying patch700 (linux-2.6-xen.patch), the spec file
   executes xen-mkbuildtree-pre if it exists for the architecture.
   In effect, this is applying an ia64-specific patch, even though it
   looks more generic in the spec.  The special modifications being
   made by xen-mkbuildtree-pre need to be folded into
   linux-2.6-xen.patch to prevent architecture-specific maintenance
   headaches in the stack of Fedora kernel patches.

5. My forward port broke the exec-shield patch application.  Juan has
   this resolved in his version, but that's based on an older
   xen-unstable changeset.  I commented out patch810-812 for the
   moment.

6. The xen patch is missing some function prototypes.  (I believe this
   is a problem in xen upstream not something introduced by my port.)
   The Fedora kernel build normally turns on
   -Werror-implicit-function-declaration in patch1018
   (linux-2.6-debug-Wundef.patch).  I commented out this patch for the
   moment.

7. The hypervisor doesn't build on ia64 with "debug=y verbose=y
   crash_debug=y".  For the moment it builds with default flags on
   ia64 instead.

8. /sbin/new-kernel-pkg doesn't handle installation of the hypervisor
   to the EFI partition.  This should be a trivial fix.

9. Various other rpms need trivial updates to build/install on ia64,
   for example libvirt.

10. Anaconda needs updates to handle installation of xen on ia64
    (interaction with elilo, etc)

11. After finally getting a full build, I tested it once on my rx2620.
    The hypervisor booted, but the console didn't get hooked up for
    xen0, and eventually the machine reset.  Hopefully these are
    trivial configuration or elilo.conf updates, but there may be more
    work involved.

If you'd like to build these rpms for yourself, here's the quick and
dirty guide (thanks Anil):

    hg clone http://free.linux.hp.com/~agriffis/fedora-kernel-ia64
        # or http://free.linux.hp.com/~agriffis/fedora-xen-ia64
    cd fedora-kernel-ia64
    mkdir -p BUILD RPMS/ia64
    source bashrc-snippet  # might want this in your ~/.bashrc
    cd SPECS
    rpmbuild -ba kernel-2.6.spec

Regards,
Aron




More information about the Fedora-ia64-list mailing list