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:
- 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.
There are some noticeable differentiations from the official Raspberry Pi kernel. These include:
- greater module support
- LIRC patches
- IO optimisations
- task scheduler optimisations
- hard floating point
All kernels must be approved by the testing team before they are pushed via the update system.
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 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