Personal tools
Document Actions

KernelKit

last modified 2008-01-11 13:56

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

Description

KernelKit is a Knoppix GNU/Linux derivative targetting the development of Linux kernel and drivers, as well as Free Sofware embedded systems. It is currently being 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

More will be available soon!

Downloads

To download very recent releases that several users could be downloading in parallel, your best option is to use a BitTorrent client if you can. You enjoy the upload bandwidth of our free-electrons.com server, plus the upload bandwidth of other people downloading. In your turn, you also share your upload bandwith and everybody gets the files faster.

See our ChangeLog for details about each release and changes made to the Knoppix releases. You can use Freshmeat.net to get automatic notifications of new releases.

Applications available in KernelKit

KernelKit is still very new. Lots of new features will be added in the next weeks and months.

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

Anything missing or broken?

Do not forget that you can make changes to any file in the system even when you are running it from the CDROM (changes will be lost after rebooting though). For example, to install a package:

apt-get update
apt-get install <package>

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 (640x480).

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

knoppix xmodule=i810

Bad screen resolution (for KernelKit < 0.5.0)

You may bump into a well-known problem which happens with some graphics cards: the resolution that you get is unusable, typically 640x480.

If this happens, here's a workaround that can work to achieve at least 1024x768:

  • In a terminal, switch to the root user: su -
  • Start the X configuration helper program: xf86cfg &
  • After a few trials, the screen should be redrawn with a correct resolution. Press the Quit button. Click on Yes twice to accept the default location for the setup files generated by xf86cfg.
  • Restart the X server: killall -9 XFree86
  • You should then get a display with a correct resolution. However, the color depth should be very poor (8 bit) and could cause some colors to flash. However, having just 256 colors is not an issue in our case.

Feedback

For anything that is not KernelKit specific, make sure you get in touch with the Knoppix or Debian communities.

We are interested in your comments, bug reports, suggestions and contributions. Please send any of these to community@free-electrons.com


Powered by Plone, the Open Source Content Management System

Linux is a registered trademark of Linus Torvalds