Linux Kernel 3.1.9 for Raspberry Pi Released & Build Instructions

Raspberry Pi has just announced the release of a fork a linux kernel 3.1.9. The source code with patches is available at

If you just want to download the patch, I’ve created one: r-pi_linux_3.1.9.patch.gz

The code related to Broadcom BCM2835 processor is referred as bcm2708 in the kernel and I can see committed related to the watchdog timer, the framebuffer,  the VCHIQ driver (the driver sending messages to the GPU) and general commits for bcm2708.

For those interested in the messages used to communicate between userspace and the GPU, the VCHIQ driver code is located at drivers/misc/vc04_services in the tree. I haven’t studied it yet, but as the platform should support graphics standards such as OpenGL and OpenMAX IL, most people should not really care about this interface as I suppose the OpenGL library (Mesa?) uses this driver.

Here are the build instructions for Raspberry Pi kernel. I cross-compiled it in Debian Squeeze with the Emdebian armel toolchain.

  1. In a terminal window, get the source code with git (Update: Added –depth=1 to speed up checkout following Dave Higham comment):
  2. Configure the kernel for the Raspberry Pi:

    go to “General Setup —>Cross-compiler tool prefix” to set your compiler prefix. I used “arm-linux-gnueabi-” with the Emdebian toolchain. Then exit and save.
  3. Build the kernel:
  4. Build the kernel modules:

Update: Thanks to commenters and some research with Google, I found out that the Raspberry Pi boots with a file called kernel.img generated with tool. Here’s how to generate it.

  1. Download tool:
  2. Extract it in the directory where you ran git clone above:
  3. Run

Now you should get 2 new files:

  • first32k.bin
  • kernel.img

kernel.img is a concatenation of first32k.bin (first 32KB) and linux/arch/arm/boot/Image.

Support CNX Software - Donate via PayPal or become a Patron on Patreon

Leave a Reply

11 Comment threads
2 Thread replies
Most reacted comment
Hottest comment thread
5 Comment authors
파즈베리파이 커널 빌드 | Home LinuxEmdebian Grip 2.0: Debian For Embedded Systems | CNXSoft – Embedded Software DevelopmentThe Raspberry Pi: A Review « I Am, Therefore I ThinkBennycnxsoft Recent comment authors
newest oldest most voted
Notify of

Thanks for the tips.

Alterations for Ubuntu Lucid:
# before you get started
sudo add-apt-repository ppa:linaro-maintainers/toolchain
sudo apt-get update
sudu apt-get install gcc-arm-linux-gnueabi


Just checking: is it correct that the git clone command will process more than 1GB of data? See the quote below:

“Receiving objects: 25% (577464/2274574), 280.50 MiB | 1.56 MiB/s”

Dave Higham
Dave Higham

git clone –depth 1
Cloning into ‘linux’…
remote: Counting objects: 52569, done.
remote: Compressing objects: 100% (44465/44465), done.
remote: Total 52569 (delta 14187), reused 26753 (delta 7504)
Receiving objects: 100% (52569/52569), 120.83 MiB | 755 KiB/s, done.
Resolving deltas: 100% (14187/14187), done.

I usually like to run these, just in case compiled uploaded
make clean
make mrproper
make bcmrpi_cutdown_defconfigmake
make uImage modules

Then there is the python tool to create kernel.img out of uImage


Any chance to make this 3.1.9 kernel run under Qemu (as you describe it in another post with the 3.0.4 kernel)?

Since the 3.1.9 kernel is not configured for the Versatile Family but for the Broadcom BCM2708 (System type -> ARM system type -> …) the config dependencies don’t allow to enable PCI and the PCI-SCSI adapter (SYM53C8XX).

Any help is appreciated.


Small typo: Instead of “make ARCH=arm bcmrpi_cutdown_defconfigmake” it should read “make ARCH=arm bcmrpi_cutdown_defconfig”.


[…] yet supported by the mainline kernel. The patches and full source for Linux 3.1.9+ are available here for those who want to build a custom kernel. I’m keeping my fingers crossed that the patches […]


[…] Leave a comment Go to commentsI’ve used Emdebian ARM toolchain for several things such as building Raspberry Pi kernel, or cross-compiling VMWare-View, but I must have not paid attention enough, as I only discovered […]


[…] Send to Twitter :라즈베리 파이, 빌드, 커널 No comments for this entry yet… […]