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
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|