Kernel

Note: This page concerns itself with the release kernel that is used in Raspbmc itself, not the kernel used for the installer or the QEMU emulation kernel.

The Raspbmc ‘kernel’

Because they are so tightly dependent on each other, the following components are referred to generically as the kernel:

  • /opt/vc
  • boot partition components, such as start.elf and bootcode.bin.
  • kernel modules (/usr/lib/)
  • and of course, the kernel itself

Note: The Raspberry Pi foundation refer to the above components as firmware.

Thus, a kernel update will update all of these parts of Raspbmc, rather than just an image and modules.

The Raspbmc kernel is built from the Raspberry Pi Linux Git repository, available here.  The Raspbmc boot partition components and the contents of the /opt/vc directory are available here.

Features

There are some noticeable differentiations from the official Raspberry Pi kernel. These include:

  • performance
  • greater module support
  • LIRC patches
  • IO optimisations
  • task scheduler optimisations
  • hard floating point

Schedule

All kernels must be approved by the testing team before they are pushed via the update system.

Current version

The configuration for the kernel you are currently running is accessible at /proc/config.gz. You can get the latest kernel configuration from the testing branch from here.

Building

Building a kernel requires the Raspbmc builders root filesystem. You can learn more about that here

A script is available that will build the latest Raspbmc kernel. Please see SVN:(testing/release)/kernel/build_kernel.sh. You can also specify the number of threads make should use. For example, to build the latest testing kernel with 4 threads:

wget http://svn.stmlabs.com/svn/raspbmc/testing/kernel/build_kernel.sh
sh build_kernel.sh 4