The Linux Kernel is responsible for a client’s hardware compatibility with CloneDeploy when using the Linux Imaging Environment. If your client freezes while loading the kernel or cannot find a hard drive or network card, then your kernel needs changed. CloneDeploy already comes with a selection of different kernels that can be assigned to your image profile. You should try them all first before attempting to create a custom kernel. This guide was written for Ubuntu 12.04 but should work for newer versions.

I. Install Necessary Packages

apt-get install build-essential subversion libqt4-dev bison flex gettext texinfo zlib1g-dev uuid-dev git

II. Download Kernel and Kernel Config

  • Grab a 32 or 64 bit config file to use as a starting template
    32config.txt
    64config.txt
  • Download a kernel to build from kernel.org
  • Extract kernel tar xf linux-x.xx.x.tar.xz
  • cd linux-x.xx.x and copy the starting template config file here
  • rename template config file to .config
  • git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

III. Build Kernel

  • make xconfig
  • Make any changes you want and save the config
  • To build 32 bit kernel:
    make ARCH=i386 bzImage
  • To build 64 bit kernel:
    make bzImage
  • The resulting file is located at arch/x86/boot/bzImage or arch/x86_64/boot/bzImage – Rename it to something like the model of the machine that isn’t working
  • Copy to your CloneDeploy Tftp Directory \ kernels
  • Set your Image Profile to use that kernel
in Additional Help