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

Re: The "debian" way (was: kernel-source-2.2.18pre21)



>>"Xucaen" == Xucaen  <xucaen@yahoo.com> writes:

 Xucaen> BTW, where is the best place to look for docs on
 Xucaen> how to do this? (I assume that debian must have a
 Xucaen> HOWTO on this, so I will search debian.org for
 Xucaen> it..)

	zless /usr/share/doc/kernel-package/*; man make-kpkg; 
 man kernel-pkg.conf; man kernel-img.conf

 Xucaen> Now for my curiosity to kick in: what are the advantages to
 Xucaen> doing it the "debian" way? What is the advantage/disadvantage
 Xucaen> to doing it the "regular" way? Is the debian way
 Xucaen> smoother/easier/cleaner than the "regular" way?  Do other
 Xucaen> distros have their own way of compiling kernels? Have any of
 Xucaen> you don't it the "debian" way? comments? opinions?

 /usr/share/doc/kernel-package/Rationale.gz (except this version has
 not yet been uploaded ;-)

		    Advantages of using make-kpkg
	            ---------- -- ----- ---------

	I have been asked several times about the advantages of using
 the kernel-package package over the traditional Linux way of hand
 compiling kernels, and I have come up with this list. This is off the
 top of my head, I'm sure to have missed points yet. Any additions
 welcomed.

     i) Convenience. I used to compile kernels manually, and it
        involved a series of steps to be taken in order;
        kernel-package was written to take all the required steps (it
        has grown beyond that now, but essentially, that is what it
        does). This is especially important to novices: make-kpkg
        takes all the steps required to compile a kernel, and
        installation of kernels is a snap.
    ii) It allows you to keep multiple version of kernel images on
        your machine with no fuss.
   iii) It has a facility for you to keep multiple flavours of the
        same kernel version on your machine (you could have a stable
        2.0.33 version, and a 2.0.33 version patched with the latest
        drivers, and not worry about contaminating the modules in
        /lib/modules)
    iv) It knows that some architectures do not have vmlinuz (using
        vmlinux instead), and other use zImage rather than bzImage,
        and calls the appropriate target, and takes care of moving the
        correct file into place.
     v) Several other kernel module packages are hooked into
        kernel-package, so one can seamlessly compile, say, pcmcia
        modules at the same time as one compiles a kernel, and be
        assured that the modules so compiled are compatible.
    vi) It enables you to use the package management system to keep
        track of the kernels created. Using make-kpkg creates a .deb
        file, and dpkg can track it for you. This facilitates the task
        of other packages that depend on the kernel packages.
   vii) It keeps track of the configuration file for each kernel image
        in /boot, which is part of the image package, and hence is
        the kernel image and the configuration file are always
        together.
  viii) It allows you to specify a directory with config files, with
        separate config files for each subarchitecture (even allows
        for different config files for 2386, i486, etc). It is really
        neat for people who need to compile kernels for a variety of
        sub architectures.
    ix) It allows to create a package with the headers, or the
        sources, also as a deb file, and enables the package
        management system to keep track of those (and there are
        packages that depend on the package management system being
        aware of these packages)
     x) Since the kernel image package is a full fledged Debian
        package, it comes with maintainer scripts, which take care of
        details like offering to make a boot disk, manipulating
        symbolic links in / so that you can make boot loader scripts
        static (just refer to the symbolic links, rather than the real
        image files; the names of the symbolic links do not change,
        but the kernel image file names change with the version)
    xi) There is support for the multitudinous sub architectures that
        have blossomed under the umbrella of the m68k and powerpc
        architectures.
   xii) There is support there for optionally applying patches to the
        kernel provided as a kernel-patch .deb file, and building a
        patched kernel auto-magically, and still retain an UN-patched
        kernel source tree
  xiii) Allows one to compile a kernel for another computer, for
        example using a fast machine to compile the kernel for
	installation on a slower machine. This is really nice since
	the modules are all included in the .deb; and one does not
	have to deal with modules manually.
   xiv) The postinst looks at a configuration file on the installation
        machine (as opposed to the machine that the image was compiled
        on), and allows the local admin to decide on issues of
        symbolic links, and whether the vbood loader stuff must be
        run, and whether one wants to create a boot floppy or not. 
    xv) The postinst and the postrm scripts allow the local admin on
        the installation machine to add a script into run time hooks;
        this can allow, amongst other things, grub users to add and
        remove kernel image stanzas from the grub menu (example
        scripts to do this are in the package).

		   Disadvantages of using make-kpkg
		   ------------- -- ----- ---------

      i) This is a cookie cutter approach to compiling kernels, and
         there are people who like being close to the bare metal.
     ii) This is not how it is done in the non-Debian world. This
         flouts tradition. (It has been pointed out, though, that this
         is fast becoming Debian tradition)
    iii) It forces you to use fakeroot or sudo or super or be root to
         create a kernel image .deb file (this is not as bad as it
         used to be before fakeroot)

	manoj
-- 
 Santa's elves are just a bunch of subordinate Clauses.
Manoj Srivastava   <srivasta@debian.org>  <http://www.debian.org/%7Esrivasta/>
1024R/C7261095 print CB D9 F4 12 68 07 E4 05  CC 2D 27 12 1D F5 E8 6E
1024D/BF24424C print 4966 F272 D093 B493 410B  924B 21BA DABB BF24 424C



Reply to: