KernelKit

Free GNU/Linux live CD for embedded Linux systems and Linux device drivers developers.

Caution: KernelKit discontinued!

Though KernelKit can still be useful is several situations, we are no longer maintaining it. In our training sessions, we are using the original Ubuntu distribution instead. Here are the main reasons:

  • KernelKit was based on Knoppix, which was a mix of Debian unstable and testing. After a few months of use, it was getting very difficult to add new packages without making huge upgrades to the whole system, potentially breaking already installed packages.
  • Rather than giving a custom GNU/Linux distribution to our customers, we prefer to show them what packages to install in a standard distribution. That’s much closer to what happens in real life.
  • Knoppix releases are unpredictable and not frequent enough.

Description

KernelKit is a Knoppix GNU/Linux derivative targetting the development of Linux kernel and drivers, as well as Free Sofware embedded systems. It was used in our Embedded Linux Training sessions.

Differences with standard Knoppix GNU/Linux:

  • Removed applications not related to Linux kernel, drivers and embedded systems: games, office applications…
  • Added tools and libraries for kernel and software development, in particular cross-compiling toolchains for many different architectures

Usefulness

  • Embedded Linux trainings: provide all the needed tools in a tested configuration. No need to install a GNU/Linux distribution. No need to check installed package versions prerequisites.
  • Embedded Linux demonstration: helps to discover, try and demonstrate useful tools in this technical area.
  • Kernel, driver and embedded application development: toolkit to get the job done quickly and efficiently. Useful for support people away from their regular desktop, or for people who are not allowed to install software by themselves.

2 kinds of deliverables

  • Live CD format, like Knoppix. Easy to use without any hard disk installation.
  • Root filesystem archive. Can be used within an existing GNU/Linux install, in an extra tool directory, or through a chroot.

    Our archives are compressed with 7-zip, which compresses 20% better than bzip2 in our case. Example command line to uncompress them: 7z x -so | tar xf -.
KernelKit banner

Screenshots

Downloads

Once more, we don’t maintain KernelKit any more. We just make the last release available.

Applications available in KernelKit

Compiling and cross-compiling

  • uClibc toolchains: cross-compiling toolchains for all the following architectures: arm, armeb, i386, ppc, m68k, mips, mipsel and sh4!
  • sstrip: a “super strip” program to strip an ELF executable to the very strict minimum.

Booting

  • Grub, LILO: bootloaders for i386 systems
  • mkimage: kernel and initrd image postprocessor for the U-Boot bootloader.
  • tftp-hpa: tftp server for targets booting from the network.
  • syslinux: a x86 bootloader from network and removable devices.

System and device information

Kernel development / version control systems

  • git: the new kernel source management system.
  • cogito: a git front-end.
  • gitk: a tcl/tk revision tree visualizer.
  • Mercurial: a Source Control Management system for distributed projects. Compatible with git.
  • Ketchup: a tool for updating or switching between versions of the Linux kernel source.
  • sparse: a static type checker for Linux kernel sources.
  • Monotone: a version control system.

Emulation

  • QEMU: a cpu and system emulator for several platforms. Great to experiment with i386 or ppc embedded systems.
  • SkyEye. An emulator for several popular ARM boards.
  • GXemul: a CPU and system emulator, supporting mainly MIPS, ARM, and PPC platforms.

Performance analysis

  • Linux Trace Toolkit”: user space tools for analyzing system performance. Note that you can only analyse results so far, and not produce data, as the current KernelKit kernel doesn’t have support yet for LTT.
  • Valgrind: memory debugger and performance analysis tool for x86 Linux.
  • KCacheGrind: profile data visualization tool.

System development and analysis

  • ddd, insight, KDbg: graphical front-ends to debuggers.
  • hexedit, khexedit, biew: binary file viewers and editors.
  • calcc: a command line calculator for 32 and 64 bit numbers. Very useful for hexadecimal conversions!
  • clink: compacts directories by replacing duplicate files by symbolic links.
  • finddup: a tool to find duplicate files.
  • dupmerge: replaces duplicate files by hard links.

Lightweight applications for embedded systems

  • Dillo: a very light and fast web browser.
  • e3: a microscopic editor supporting several interface types (vi, emacs…).

Source management

  • KDevelop: Integrated Development Environment for Unix/X11. Can be used to create Linux kernel modules.
  • cscope: source code indexer, can be used with the Linux kernel.
  • kscope: graphical cscope front-end.

Software development

  • ccache: a C/C++ compiler cache. Can save a lot of time when you compile the kernel over and over again.
  • doxygen: a documentation system.
  • ElectricFence: a malloc() buffer-overrun debugger.
  • SCons: a Software construction tool. A strong alternative to autoconf / automake / make.
  • Splint: static C code checker.

Filesystems

  • mtd-tools: tools for creating and handling mtd filesystems: flash_erase, mkfs.jffs2…
  • cramfsprogs: tools for the cramfs filesystem
  • squashfs-tools: tools for the Squashfs filesystem.

Unix learning help

  • fish: the Friendly Interactive SHell makes it much easier to use the Unix command line. The best way to start for beginners.
  • vimtutor: part of the vim package. Very nice way to learn vi in 30 minutes!

Misc utilities

  • gkermit: a serial communication utility.
  • Psyco: a kind of Just In Time compiler for Python. Useful for running the BitBake / OpenEmbedded tool faster.
  • xvncviewer: a VNC client. Sometimes useful to display target graphics on the host system.
  • 7-zip: the best compression utility. Achieves up to 20% better than bzip2.

Licenses

As a Knoppix GNU/Linux derivative, the CDROM contents are released according to the licenses of each individual software package.

Unlike Knoppix GNU/Linux, KernelKit only ships Free Software packages. This guarantees your freedom to use, (re)distribute, study and modify this software distribution.

The Adelie Penguin picture is Copyrighted by Ron Taylor from R&C Photography. Ron has kindly granted us the right to distribute and modify this photograph, for the only purpose of this Free Software project, and provided the Copyright statement is kept. Many thanks to Ron!

Any other files created specifically for KernelKit are released under the GNU General Public License.

Known issues

Bad screen resolution (KernelKit 0.5.0 and later)

Knoppix 5.0.1 is known to have issues with some graphics cards, in particular the Intel 810 (i810) ones. You get a reduced resolution (640×480).

If this happens, you can try to boot the cdrom with the below boot command line:

knoppix xmodule=i810

Comments are closed.