/genkernel

[MIRROR] Kernel and initrd generator

Primary LanguageShell

# $Id$

GENERAL CONCEPT:
Genkernel's primary job is to bring up only the basic stuff needed
to mount your (block) device containing the root filesystem so that
we can hand off control to real system as soon as possible.

It's _not_ genkernel's goal to load all available modules, to start
all available devices, to unlock additional volumes, to start network
or do other fancy stuff. So don't forget to set up your normal boot
services so that the real system can finish boot and do all of the
things mentioned above.

DEPENDENCIES:
  - GCC and binutils
  - GNU Bash
  - PaX Utilities
  - Autoconf and Automake

USAGE:
  See https://wiki.gentoo.org/wiki/Genkernel or
  issue ``genkernel --help''.

PORTING:
  To port to other arches:

  # cd /usr/share/genkernel
  # cp -Rp x86_64 ${myarch}

  Modify what is needed in the /usr/share/genkernel/${myarch}
  directory, as well making a generic kernel-config.

  Check determine_real_args() function in gen_determineargs.sh
  if you need to add anything like support for your architecture's
  GCC triplet or mapping to kernel's arch.

IMPORTANT KERNEL NOTES:
  - You MUST have /dev/pts turned on.
  - To boot genkernel properly, the kernel config must have
    Initial RAM disk support.

BOOTING A KERNEL WITH INITRAMFS:

  GRUB:
    root=	needs to point to your root partition
    vga=	should be the resolution you want your screen. 0x317 is
    		1024x768 - 16bpp and you'll get a pretty splash if
    		configured properly

  GRUB 1.x EXAMPLE ENTRY:
    title Gentoo Linux
    root (hd0,0)
    kernel /vmlinuz-5.4.2-gentoo-x86_64 root=/dev/sda1 vga=0x791
    initrd /initramfs-5.4.2-gentoo-x86_64.img

  EXTLINUX (SYSLINUX) EXAMPLE ENTRY:
    LABEL genkernel-latest
        MENU LABEL Gentoo Linux (latest)
        LINUX /kernel
        INITRD /initramfs
        APPEND dolvm crypt_root=UUID=a8c5be51-bd1b-4446-a430-1d0ed576fa73 root=UUID=a2e5968c-5917-41ef-bf81-edffd54c8abd rootfs=ext4 root_trim=yes dosshd

  NOTE: The example above uses genkernel's --symlink feature and
        initramfs was built with --lvm, --luks and --ssh.