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