Subject: Re: [vserver] Debian Support
From: "Michael S. Zick" <mszick@morethan.org>
Date: Wed, 30 Sep 2009 09:34:09 -0500

On Wed September 30 2009, Michael S. Zick wrote:
> On Wed September 30 2009, Eugen Leitl wrote:
> > On Wed, Sep 30, 2009 at 03:17:05PM +0200, Laurent Spagnol wrote:
> > 
> > > In fact, we don't have to run after the latest kernel releases, and in 
> > > most of the cases the security holes comes from userland applications ...
> > > 
> > > So:
> > > - i build my own kernels (IPv6, 'pseudo' loopback,  and some new 
> > > features that are usefull for me),
> > > - i take stability and updates from Debian,
> > > - and i continue to use my favorite distribution ;)
> > 
> > Do you have this SOP documented somewhere? I'm afraid I have
> > to do it myself (currently using stock Debian vserver kernels
> > and stock vserver-utils, which kinda, sorta work, but do suck)
> > in future.
> > 
> 
> The kernel build system has a deb-pkg make target.
> 
> The result will be a 'generic' debian kernel package, installable by dpkg -i ...
> 
> Now, the fun part - -
> Where I quoted 'generic' above, I mean without the initial ramFS (a.k.a: initrd)
> creation.
> The kernel package is the same across the systems using the *.deb packaging -
> The creation, scripting included and use at boot time of the initrd varies -
> both by distribution and by local options.
> 
> But I presume that the end-user has the update-initramfs set of script tools installed.
> All of the *.deb based distributions have such an animal, although perhaps with a
name change.
> 
> So installing the kernel from the package made by the deb-pkg target is a two step
process:
> 1) dpkg -i <package name here>
> 2) update-initramfs -c -k <kernel version name here> (this is the same name found
under /lib/modules)
> 
> It is step 2 that builds the initrd with the distribution specific included scripting
> and the user's local options.
> 
> Although not a Linux-VServer patched kernel, here is a worked example of the end-user
directions:
> http://forum.netbookuser.com/viewtopic.php?id=907
> 
> Mike
> 
> 

Ah, and you where asking about the build side magic:
It is 99% the same as building for yourself.

On (host):
wolf-c2q ~ # uname -a
Linux wolf-c2q 2.6.27.10-vs2.3.0.36.2 #2 SMP PREEMPT Tue Apr 7 11:37:56 CDT 2009 x86_64
Intel(R) Core(TM)2 Quad CPU Q9300 @ 2.50GHz GenuineIntel GNU/Linux

Running:
wolf-c2q ~ # vserver-stat
CTX   PROC    VSZ    RSS  userTIME   sysTIME    UPTIME NAME
14156    2   7.5M   1.6M   0m00s35   0m00s63  33m54s43 deb-wolf
14158    5    20M   7.4M   0m01s60   0m01s78  33m54s43 gen2-32

Do the usual preliminaries:
ssh gen2-32
download or 'git' the kernel source of your choice
download the Linux-Vserver patch of your choice
apply the patch (adjusting the release string as required)
copy your /boot/config-whatever file of choice to .config
make oldconfig
adjust configuration to suit with menuconfig
make -j5 deb-pkg 

That will produce both the kernel and firmware *.deb packages -
It is my habit to also post, with similar names, the configuration
file, a tar-ball of any patches applied.
That way an end-user can either use the binaries produced as-is or
can download what I used to produce them (patch-set and config) so
that they can make any local changes required.

A worked example of such a posting announcement:
http://forum.netbookuser.com/viewtopic.php?id=950

Along with any end-user specific directions:
http://forum.netbookuser.com/viewtopic.php?pid=7520#p7520

= = = =

I follow the KISS standard of kernel packaging - -
But this is how I support multiple *.deb based distributions (Debian, Ubuntu)
with a single kernel build / package.

Mike