last updated: Sat Dec 6 23:59:19 EST 2014
changelog is in tarball: an few oops fixed since first release, -C
a release-time last minute change "to make args simpler" left
script exiting early after kernel.tar.gz but before .deb made
and -C wasn't easy 123 as planned. was that simpler? no
1.0.4: -H was mistaken Makefil path would not see src/linux/usr/include
gmil also can reboot new kernel, however only using lilo (grub (1.5)
menu.lst changer is disabled). why? too many boot loader config file
formats (yet few real features) (quite a problem if wishing to support)
what is: new-upgrade and debootstrp script ?
if unsure, say N, and use live USB install
it can (in many cases) install debian from a unix
system that already works without need of boot cd
includes extras: like unix password file migration
it's for almost advanced debian users only. (the truly advance
have their own debootstrap install scripts already!)
using only web download acces to
use install new debian from running unix
(ie, if new deb live cd cannot boot pc)
NAME get-make-install-linux \- one step to download kernel build pkg install
SYNOPSIS PROG [options] kernel_version -- passed to make
Can get source, build, tarball and pkg for later, and optionally do boot conf & reset all in two or one step. get-make-install-linux is otherwise similar to kernel scripts/.
# suggested for first use
$ sh -i PROG -s "k9" 2.6.38
Directions. 'gmil' downloads version if you are not alreay in a souce directory or where it's been downloaded already. A .config has your kernel menu options and if not present one will be made interactively (the -i, else auto). After build gmil makes both a tar and installable tar .deb. It will stop if there's a problem. It will be able to restart and redo. With the options below it will install locally and attempt to adjust boot configuration and reboot!
$ sh -i PROG -L -l -g -m -r -s "k9" 2.6.38 # not suggested, check first
It's suggested to read any new boot configs before rebooting, let's skip mkinitrd, and that you'll use dpkg to install .deb on some host later and use only grub. It is planned to be 2 commands.
$ sh -i PROG -g -s "k9" 2.6.38
$ sh -i PROG -C # on whichever host having the file.deb made
Gmil is intended to be able to build multiple kernel releases and in each releases directory build multiple kernel versions (ie, x86-k7), loop.gmil helps.
loop.mil(1) conveniently builds a kernel for ea. config on commandline (ea. can be from a different release or arch).
The comparison to the linux's own scripts/ is: 1) gmil works across many releases 2) the scripts/ _can do most of those steps but _don't combine them, leaving maybe allot to read and type. Details come undone can cause confusion, rebuilds, and missing kernel files.
-s arg SUFFIX / EXTRAVERSION, the -k7 in 2.5.20-k7
(does not change kernel version) It's easy and best to use unique
id's. A hyphen '-' is prefixed automatically.
-O "One Shot" to install .deb or tar after compile and CONTINUE too.
-C CONTINUE. Use this after installing a .deb package to continue
with args -l, -g, -m, -r. (params will be in /boot/PROG.opts)
(do manually after dpkg, dpkg doesn't like surprise activation)
-h this message. --help or no args produces the same.
-L local. Use 'make install'. Suggested use is packages instead.
With -L you don't need -O or -C, it is a "lesser One Shot" :)
-l lilo(8) add auto section in lilo.conf and run lilo on installing host
ALWAYS check lilo.conf before rebooting
-g grub(8) only sets default if -r, if it's easy, on installing host
-m mkinitrd(8) with /etc/mkinitrd defaults for installing hosts
-r Reboot installing host. (1/2 min sleep, 1 min wall)
-t Tests, releases 2.6.30+ only: do all make checks
-I Internal / install phase, hops over build phase is all
-f arg Do one function, arg, and exit: warning: does not work, no help.
-M arg f_dpkg_mini built-in function. Note: use of dpkg(8) is maybe wiser.
SYNOPSIS: PROG -D [install remove] file.deb
Works outside of any package or depends database paradigm.
NOTE: keep package because 'f_dpkg_mini' remove' will need it.
See also dpkg_mini(1), small script, has [skel implode explode].
-H Skip make libc headers and tar of libc headers if make possible.
You may have multiple kernels, so if you do NOT skip you can always
re-install pkg before compiling software (most use libc). On the
other hand? You may wish to keep distributor's and compile only
while using when booted of their kernel. u decide.
-d Skip make debian pkg. Should not skip, takes little time.
debian-binary pkg, no Depends, no Provides, can install with builtin
f_dpkg_mini, dpkg_mini(1), or dpkg(8), or manually via ar(1).
-D use 'make deb-pkg' 2.6.30+ Drawback is use of Dependacies which may
break if you tried to force them to boot your new kernel, also not
everybody has a working dpkg installed. The diff? Apparently only
control file and gmil's makes 1 pkg, deb-dpkg splits it as 4 pkgs.
tip: deb-pkg name[1-4].deb fall into /usr/src/linux/../
Use dpkg(8) for either is suggested, or dpkg_mini(1), ar even ar(1).
-o Skip tar-pkg. install only. not suggested. %99 of time is wait
for compiling; you may need the results saved.
-i for older releases, image name for make, ie bzImage
-p Skip proper. Use only if you are sure.
-P DISABLE proper check HACK that simply checks .config .config.old
and skips make proper if same.
- #1 consider if linux or bsd kernel / build scripts are wiser.
(this script is for building a new (not part of OS) linux kernel easily)
(i upgrade kernel before distro, which widens options of how distro installs
and what it can be installed on; insures upgrade is infact going to work!)
- insure kernel version can build using your gcc(1) version (having the latest
linux isn't necessary). (script has notes about building GCC, but don't)
- no dpkg tool? 'ar x file.deb' to extracts a .deb, then 'sh postinst'
- may have interactive questions if sh -i (ex. perms, clobber, menuconfig)
- Pipes to VER-SUFF.log will fill into tarball's LOGFILE (that's the log)
- tried on a few kernel versions [2.4.20, 2.6.38]
- lilo: note boot, disk, params must be visible to newly added section
- lilo: per kernel lines put in /boot/lilo_opts-LK_FILENAME, before using -l
- single source tree for multiple targets via mrproper (saves disk space)
- BOOT LAN / tftp is preffered to -r for [offsite] booting, see 'info grub'
- if you have lk source already run get-make-install-linux in that directory
- mkinitrd loaded extra modules from 2nd boot media disk before root filesystem
was ready, no longer an issue, and lk's initramfs is better way to have
a 'linux in a nutshell' available before the root fs is found.
- during 'make modules', in recent releases, ARCH=um is normal
- gmil pkgs libc headers not kernel headers? ok 2 download from rel., if ever.
Lastly a comment on ARCH info. (see if u start with sh -i or use 'make help'). Build a target (kernel for a selected processor and support) that will work with the linux distribution you have. You might eve want to match it exactly, though many might use an amd64 kernel on i386 bins for better performace - who knows you might run into un-expected trouble, so read up before changing ARCH that way.
The follow file names are used if necessary: ./get-make-install-linux/, /boot/vmlinus-latest, //boot/System.map, /boot/config, /boot/vmlinux-xxx, linux-xxx.tar, /etc/lilo.conf, /boot/grub/menu.lst, [.]config, Makefile[.[old,.new], control[.tar.gz], data[.tar.gz], postinst, md5sums, debian-binary, /boot/get-make-install-linux.opts
linux/README, linux/make help, migrate-kernel-config(1), loop.get-make-install-linux(1), which-conf(1), likeness(1), ck-lk-config(1), dpkg(8), dpkg_mini(1), fix_linux_include(1), lilo(8), grub(8) or grub-setup(8)