We're hiring!
*

Debian Jessie on Raspberry Pi 2

Sjoerd Simons avatar

Sjoerd Simons
February 03, 2015

Share this post:

Reading time:

Apart from being somewhat slow, one of the downsides of the original Raspberry Pi SoC was that it had an old ARM11 core which implements the ARMv6 architecture. This was particularly unfortunate as most common distributions (Debian, Ubuntu, Fedora, etc) standardized on the ARMv7-A architecture as a minimum for their ARM hardfloat ports. Which is one of the reasons for Raspbian and the various other RPI specific distributions.

Happily, with the new Raspberry Pi 2 using Cortex-A7 Cores (which implement the ARMv7-A architecture) this issue is out of the way, which means that a a standard Debian hardfloat userland will run just fine. So the obvious first thing to do when an RPI 2 appeared on my desk was to put together a quick Debian Jessie image for it.

The result of which can be found at: https://images.collabora.co.uk/rpi2/

Login as root with password debian (Obviously do change the password and create a normal user after booting). The image is 3G, so should fit on any SD card marketed as 4G or bigger. Using bmap-tools for flashing is recommended, otherwise you'll be waiting for 2.5G of zeros to be written to the card, which tends to be rather boring. Note that the image is really basic and will just get you to a login prompt on either serial or hdmi, batteries are very much not included, but can be apt-getted :).

Technically, this image is simply a Debian Jessie debootstrap with a extra packages for hardware support. Unlike Raspbian the first partition (which contains the firmware & kernel files to boot the system) is mounted on /boot/firmware rather then on /boot. This is because the VideoCore expects the first partition to be a FAT filesystem, but mounting FAT on /boot really doesn't work right on Debian systems as it contains files managed by dpkg (e.g. the kernel package) which requires a POSIX compatible filesystem. Essentially the same reason why Debian is using /boot/efi for the ESP partition on Intel systems rather the mounting it on /boot directly.

For reference, the RPI2 specific packages in this image are from https://repositories.collabora.co.uk/debian/ in the jessie distribution and rpi2 component (this repository is enabled by default on the image). The relevant packages there are:

  • linux: Current 3.18 based package from Debian experimental (3.18.5-1~exp1 at the time of this writing) with a stack of patches on top from the raspberrypi github repository and tweaked to build an rpi2 flavour as the patchset isn't multiplatform capable :(
  • raspberrypi-firmware-nokernel: Firmware package and misc libraries packages taken from Raspbian, with a slight tweak to install in /boot/firmware rather then /boot.
  • flash-kernel: Current flash-kernel package from debian experimental, with a small addition to detect the RPI 2 and "flash" the kernel to /boot/firmware/kernel7.img (which is what the GPU will try to boot on this board).

For the future, it would be nice to see the Raspberry Pi 2 support out of the box on Debian. For that to happen, the most important thing would be to have some mainline kernel support for this board (supporting multiplatform!) so it can be build as part of debians armmp kernel flavour. And ideally, having the firmware load a bootloader (such as u-boot) rather than a kernel directly to allow for a much more flexible boot sequence and support for using an initramfs (u-boot has some support for the original Raspberry Pi, so adding Raspberry Pi 2 support should hopefully not be too tricky)

Update 2015-07-09: An updated image (20150705) is available with the latest packages from Jessie and an updated GPG key.

Original post

Related Posts

Related Posts

Comments (12)

  1. geoff:
    Feb 11, 2015 at 09:31 PM

    Having used the above image I am not sure what it has built. Please add how to build to a standard base system with networking and ssh .

    Reply to this comment

    Reply to this comment

  2. Juergen:
    Feb 26, 2015 at 05:21 PM

    Well done! How often do you plan to update your kernel repository?

    Reply to this comment

    Reply to this comment

  3. Peter Johansson:
    Mar 10, 2015 at 04:34 PM

    Thanks for the post, will try this release as i just brought the Raspi2 home.
    The main reason a found my self on collabora´s site is the search for weston/wayland/maynard support in feature releases for the Rpi2, you wouldn´t have any idea if there is any progress on that front to utilize the GPU more efficently in a desktopenviroment. Maynard on git seems somewhat dead to my great dissapointment, looked really promising.
    Anyways, lets try Jessie in the meanwhile :)
    Best Regards

    Reply to this comment

    Reply to this comment

  4. Marco Barisione:
    Mar 12, 2015 at 11:33 AM

    The Raspberry Pi Foundation recently released a new, updated and nicer looking LXDE. In the meantime we have been mainly focusing on the browser work, so that means that maynard, unfortunately, is not actively developed at the moment.

    Reply to this comment

    Reply to this comment

  5. Matthijs Kraak:
    Apr 23, 2015 at 09:34 PM

    Hi, Nice post.

    >> And ideally, having the firmware load a bootloader (such as u-boot) rather than a kernel

    There is mainline u-boot - U-Boot 2015.04 - support now for rpi2.
    but some caveats:

    if using a sd to boot (NOOBS)
    - place your boot.scr on mmc 0:1 (recovery)
    - place your kernel + dtb on mmc 0:5 (boot)
    - adjust config.txt on mmc 0:5 (boot)
    #kernel=Image
    kernel=u-boot.bin

    it boots nicely, but up to now i only get 1 core to run.
    getting 4 cores up is still work in progress

    Reply to this comment

    Reply to this comment

  6. Spencer:
    Jul 01, 2015 at 06:17 PM

    I can't find a valid gpg key. repositories.collabora.co.uk apt-key is expired. Am I missing something here?

    Reply to this comment

    Reply to this comment

  7. parobalth:
    Jul 08, 2015 at 06:37 PM

    Thanks a lot for your image!
    To add u-boot to the image read:
    https://wiki.debian.org/RaspberryPi2

    Reply to this comment

    Reply to this comment

  8. Marek Uher:
    Sep 16, 2015 at 03:00 PM

    I would like to ask whether it is planned to update the kernel from version 3.18 to version 4.1 or newer? In jessie-backports repository is already available version linux-image-4.1.0-0.bpo.1:

    https://packages.debian.org/jessie-backports/kernel/linux-image-4.1.0-0.bpo.1-armmp

    Reply to this comment

    Reply to this comment

  9. Murat Toloğlu:
    May 03, 2016 at 01:26 AM

    Did anybody test this on RPi 3?

    Reply to this comment

    Reply to this comment

    1. Sjoerd SImons:
      May 04, 2016 at 07:22 AM

      It hasn't been tested on RPi 3, as far as I'm aware. Thanks for reading!

      Reply to this comment

      Reply to this comment

  10. Gandalf_the wizard:
    Sep 13, 2016 at 11:13 AM

    Thank you to all for the opportunity to write my comments here.
    I try to copy the /boot directory from Raspbian to /boot/firmware on my SD card with Debian Jessie.
    After I can try to tune the modules and copying them from Raspbian Jessie to /lib/modules/last_kernel_version.
    Do you think that it is OK or I can have system problems?
    Thanks again
    Regards

    Reply to this comment

    Reply to this comment


Add a Comment






Allowed tags: <b><i><br>Add a new comment:


Search the newsroom

Latest Blog Posts

Automatic regression handling and reporting for the Linux Kernel

14/03/2024

In continuation with our series about Kernel Integration we'll go into more detail about how regression detection, processing, and tracking…

Almost a fully open-source boot chain for Rockchip's RK3588!

21/02/2024

Now included in our Debian images & available via our GitLab, you can build a complete, working BL31 (Boot Loader stage 3.1), and replace…

What's the latest with WirePlumber?

19/02/2024

Back in 2022, after a series of issues were found in its design, I made the call to rework some of WirePlumber's fundamentals in order to…

DRM-CI: A GitLab-CI pipeline for Linux kernel testing

08/02/2024

Continuing our Kernel Integration series, we're excited to introduce DRM-CI, a groundbreaking solution that enables developers to test their…

Persian Rug, Part 4 - The limitations of proxies

23/01/2024

This is the fourth and final part in a series on persian-rug, a Rust crate for interconnected objects. We've touched on the two big limitations:…

How to share code between Vulkan and Gallium

16/01/2024

One of the key high-level challenges of building Mesa drivers these days is figuring out how to best share code between a Vulkan driver…

Open Since 2005 logo

We use cookies on this website to ensure that you get the best experience. By continuing to use this website you are consenting to the use of these cookies. To find out more please follow this link.

Collabora Ltd © 2005-2024. All rights reserved. Privacy Notice. Sitemap.