A couple of corrections...
I don't actually have kernel-xen-source... (since that package doesn't even exist) RPM installed, I just have kernel-source... RPM installed. And I think I understand what you're saying - you must have the source for the architecture for which you're trying to build the image. That makes sense. What I don't understand is this: if that's the case, why is the kernel source included in the kernel-source RPM already patched for XEN? If you're not supposed to be able to build it for the XEN architecture, why does the source include the patches that make it possible?
I actually did get the kernel to build. It seems that a couple of the files in the /usr/src/linux-2.6.11.4-21.9 directory related to XEN are not patched correctly. Copying the files from the xen-2.0 linux-2.6 patch tree seems to fix this problem and allows the kernel to build (now I just have to see if it will actually run). The fact that these files are not patched correctly causes the errors that I described in the first e-mail when trying to build the .tmp_vmlinux1 piece of the kernel (undefined functions).
Nick Couchman Systems Integrator SEAKR Engineering, Inc. 6221 South Racine Circle Centennial, CO 80111 Main: (303) 790-8499 Fax: (303) 790-8720 Web: http://www.seakr.com
>>> On 2005/12/14 at 08:40:46, in message <43A03CFE.1030809@xxxxxxxxxxxx>, Robbie Dinn <robbie@xxxxxxxxxxxx> wrote:
Nick Couchman wrote: > Yeah - I have both the kernel-source and kernel-xen packages installed. The > kernel builds fine, for the most part, right up until the .tmp_vmlinux1 where it > fails with those errors.
I didn't explain myself very well.
There are 'source' RPM's and 'binary' RPM's.
I believe you are trying to build a xen kernel from the source tree that comes with the kernel-source-{2.6.11.4-20a,2.6.11.4-21.8}.i586.rpm 'binary' RPM. That does not work. That source tree is just for building the kernel-default-{2.6.11.4-20a,2.6.11.4-21.8}.i586.rpm 'binary' RPM.
In an ideal world you would be able to build all the different kernel architecture from the source one tree, but in practice that is not the case.
Instead you have to start with the 'source' RPM ( kernel-source-{version}.src.rpm ), using the appropriate spec file for the architecture you want to build (i386 xen in your case?).
Background...
If you look at your installation media (CDROM, DVD, FTP mirror site) there is a binary RPM in ./suse/i586/kernel-source-2.6.11.4-20a.i586.rpm
That RPM is a 'binary' RPM, that happens to contain just the kernel sources. Specifically these are kernel sources that were used to build the kernel-default-2.6.11.4-20a.i586.rpm 'binary' RPM
Note how these RPM's both end in '.i586.rpm'.
Both these binary RPM's were created from a 'source' RPM found in ./suse/src/kernel-source-2.6.11.4-20a.src.rpm
This source RPM contains kernel.org kernel, plus architecture specific patches (xen, uml, ppc, s390, itanic), plus architecture independant fixes, plus build instructions (spec files, scripts, Makefile).
This is all described in much more detail and more accurately than I have done in the documentation found in /usr/share/doc/pakages/kernel-source/README.SUSE
One thing that the above documentation file does not mention is that kernel-source-{version}.src.rpm file alone is not sufficient. You also need a kernel-source-{arch}-{version}.nosrc.rpm file too. (except when you are building the kernel-default).
If you want to build the kernel-xen-2.6.11.4-21.9 binary RPM, you need to fetch:
ftp://your.suse.mirror/pub/suse/i386/update/9.3/rpm/src/kernel-source-2.6.11.4-21.9.src.rpm
ftp://your.suse.mirror/pub/suse/i386/update/9.3/rpm/src/kernel-xen-2.6.11.4-21.9.nosrc.rpm
Read up on 'man rpm' and 'man rpmbuild' for installing and building RPM files.
It will be difficult to build 2.6.11.4-21.8 because that is now gone from the suse site and its mirrors.
If you want to use a SuSE kernel and xen 3.0, then you will have to use the source RPM's (or binaries) that Kurt Garloff distibutes. His page is http://www.suse.de/~garloff/linux/xen/
and follow the link that reads 'SUSE Linux 10.0 RPMs' I haven't tried running a SuSE 10.0 kernel with a SuSE 9.3 install though. It may work.
Alternatively, you could use the kernel source that comes from the xensource.com or www.cl.cam.ac.uk sites. That might be much less effort too. You only really need to bother with the SuSE sources if you want a kernel that is as close as possible to something that SuSE ships.
|