[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Which kernels to include on ISOs? (Was: Re: Netboot Xen images for amd64)



On Thursday 04 June 2009, Ian Campbell wrote:
> On Thu, 2009-06-04 at 01:10 +0200, Frans Pop wrote:
>
> [...snipped a bunch of good points which I won't contest...]

:-)

> > But there is one image that might exactly fit the bill: the
> > i386/amd64/ppc multi-arch netinst CD. Current size (Lenny): 488MB.
> > For that it does not matter if it would grow a bit, and it's targeted
> > exactly at your users: (semi-)professional sysadmins.
>
> That sounds ideal, thanks for the suggestion. Am I right in thinking
> that a netinst CD includes the base system but not any of the other
> stuff? (as opposed to just including the installer itself)

Correct. But if you implement it correctly, building a "Xen businesscard 
image" (multi-arch or not) should automatically be supported too.

> > Only problem is that implementing adding Xen to just that image will
> > require a fair few changes in debian-cd. In configuration, but I
> > think also in code (you'll need to introduce a concept of variants
> > within arches for D-I tasks). It'll not be trivial to implement that
> > cleanly, though it should certainly be possible.
> Do you have any specific guidance regarding the direction you'd like to
> see me take with this or shall I just dive in and see what I come up
> with? Initially from the debian-cd end I'm thinking along the lines of
> adding "-DMULTIARCH=1" (where appropriate) to the preprocessor when
> generating the package lists.

That sounds wrong. The condition is not "am I building multiarch?".
It should be "please build a multi-arch image, but add Xen variations".
I.e, building a "normal" m-a image should still be possible and should be 
default. The challenge is to find a way to specify that _optionally_ the 
bits needed for Xen should be added on top of the normal image.

There are three things you need to accomplish:
1) include the kernel udebs for 686-bigmem on the image
2) include the 686-bigmem kernel-image deb (+ maybe headers packages?)
3) support it in build scripts on farbror (d-cd buildd) and possibly
   the easybuild script (recommended for testing!)

For 1) you need to somehow ensure the 686-bigmem udebs do *not get 
excluded* for only (!) the m-a netinst CD (see tools/generate_di_list and 
data/squeeze/exclude-udebs-i386), but not for other images.

Similar challenge for 2). Kernel packages get included through the script 
ools/generate_di+k_list, which currently does not allow for variations 
within an architecture.

Ignore the tasks directory: that is only used for full CD and DVD images, 
not for netinst and businesscard.

For 3) you can find the current build scripts used on farbror at [1]. 
The "please add Xen support" option should be set in the cronjob.daily 
script in the bit starting with:
    for arch in $ARCHES; do
        echo "Building $arch:"
        if [ "$arch" = "multi-arch" ] ; then
            echo "  i386/amd64/ppc sid netinst"
    [...]
            echo "  i386/amd64/ppc squeeze netinst"

IMO it should be something like adding 'VARIANT=xen', which should 
automatically only result in changes for arches that support the variant 
(the m-a CD also includes powerpc, which does not support Xen, and thus 
should build without any differences with or without the VARIANT option 
passed).

Bonus points if it can be implemented in such a way that
'VARIANT=foo,bar,baz' would be supported too (but that might be tricky 
with the exclude-udeb files; maybe those need a different implementation 
anyway?).

Such a variant option could be included in the default CONF.sh (commented 
out by default) and could also be added in the easybuild.sh script 
(either commented out by default or activated with a new parameter).

All the above is subject to comments from Steve McIntyre. Please check 
your planned solution with him (by mailing d-cd list).

Cheers,
FJP

[1] http://svn.debian.org/wsvn/debian-cd/setup/#_setup_


Reply to: