Differences between revisions 1 and 26 (spanning 25 versions)
Revision 1 as of 2013-04-10 23:23:35
Size: 1529
Editor: PaulWise
Comment: initial draft
Revision 26 as of 2015-03-13 18:02:21
Size: 4752
Editor: XTaran
Comment: Same typo fix again, but elsewhere in the text
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
/!\ this page is a draft #language en
== Can I put Debian on my Raspberry Pi? ==
Line 3: Line 4:
The Raspberry Pi is a device with several issues that we recommend you do not buy. Instead, please consider one of these devices: Yes.
Line 5: Line 6:
* [[FreedomBox/TargetedHardware|FreedomBox targetted hardware]]
* <insert more lists of suitable hardware>
=== Raspberry Pi 1 (A, B, A+, B+) ===
Line 8: Line 8:
The Raspberry Pi issues include issues related to technical problems, software freedom and hype: [[ArmEabiPort|Debian armel]] will work (with a custom kernel), but will not make best use of the floating point hardware. [[ArmHardFloatPort|Debian armhf]] will not work (see below).
Line 10: Line 10:
* The CPU in the Raspberry Pi implements the ARMv6 ISA and is thus incompatible with the Debian armhf port (and ARM hardware floating-point ports for other distributions), which means that floating-point tasks will be slow when running the Debian armel port.
* The Raspberry Pi boots from its GPU and only non-free software is currently available for the GPU, even starting the machine requires a large blob of non-free, unsupportable software.
* The 3D driver for the Raspberry Pi, while free software, is just a shim that passes OpenGL commands directly to the non-free software running on the GPU. This means that any issues with OpenGL cannot be fixed nor performance improved.
* The Raspberry Pi has been hyped as an educational device but [[http://whitequark.org/blog/2012/09/25/why-raspberry-pi-is-unsuitable-for-education/|is not fit for that purpose]].
* <insert more issues>
Generally, your best bet is to use [[http://www.raspbian.org/|Raspbian]] - which is (mostly) Debian armhf rebuilt by members of Debian for the RPi's ARMv6+VFP2 ARM variant. Raspbian releases usually follow the corresponding debian release but do deviate in a handful of cases for various reasons.
Line 16: Line 12:
If you have already bought a Raspberry Pi and still want to use it, we suggest that you run [[Raspbian|http://www.raspbian.org/]] armhf on it rather than Debian armel. Raspbian armhf is a recompilation of Debian armhf that is compatible with the Raspberry Pi CPU. Be aware that the raspbian images distributed by the raspberry pi foundation contain additional packages supplied by them including updated versions of some software and the addition of non-free software including Oracle Java and Wolfram Mathematica.

=== Raspberry Pi 2 ===

[[ArmHardFloatPort|Debian armhf]] will work (with a custom kernel). See the blog posting [[http://sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/|Debian Jessie on Raspberry Pi 2]] by Sjoerd Simons of Collabora for details.


== Should I buy a Raspberry Pi? ==

That is a decision that you will have to make given your application, below are some pros and cons that you should consider.

Pros:
 * Large and active community.
 * Low price for the capabilities offered
 
Cons:
 * The Raspberry Pi 1's processor falls uncomfortably between the processor families that Debian has chosen to target. While Raspbian solves this to some degree an unofficial port will always give less certainty than an official one. (This does not count for the Raspberry Pi 2.)
 * 3D acceleration is not integrated with X or other standard mechanisms and the Raspberry pi foundation don't seem to show any interest in doing so. Therefore 3D applications will require Pi specific builds.
 * A binary blob used by the GPU must be present on the SD card for the system to boot.
 * While some hardware documentation has been released the documentation is sorely lacking.
 * While schematics are available the board design is closed and the main processor is not available for purchase by the general public.

A number of similar boards are available, generally at slightly higher prices but also usually with more powerful processors. Some examples are given below, more can be found in the [[FreedomBox/TargetedHardware|FreedomBox targetted hardware]] list.

 * [[CubieBoard|Cubieboard]] Allwinner A10 (Cortex A8, Mali400), $49 (most directly Pi-alike)
 * [[https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-WIFI/|Olimex OLinuxIno WIFI]] Cortex A8, €55
 * [[http://rhombus-tech.net/|EOMA68 modules]] (Sampling March 2013, so not in full production yet), Allwinner A10 (Cortex A8, Mali400)
 * [[http://beagleboard.org/bone|Beaglebone black]] omap3, $45
 * [[https://www.olimex.com/Products/OLinuXino/iMX233/iMX233-OLinuXino-MINI/|OlinuxIno Mini]] imx233 (ARM926, i.e Debian armel), €35

== Raspberry Pi issues ==

The Raspberry Pi issues relate to technical problems, software freedom and hype:

 * The CPU in the Raspberry Pi 1 implements the ARMv6 ISA (with VFP2) and is thus incompatible with the Debian armhf port baseline of ARMv7+VFP3 and ARM hardware-floating-point ports for other distributions, which all have the same baseline. It is compatible with Debian armel (armv4t, soft(emulated) FP), but floating-point tasks will be slow when running the Debian armel port. (This does not count for the Raspberry Pi 2.)
 * The Raspberry Pi boots from its GPU and only non-free software is currently available for the GPU, even starting the machine requires a large (2MB) blob of non-free, unsupportable software.
 * The 3D driver for the Raspberry Pi, while free software, is just a shim that passes OpenGL commands directly to the non-free software running on the GPU. This means that any issues with OpenGL cannot be fixed nor performance improved. This is better than some other GPUs because the ARM part can be rebuilt. More recently an alternative driver has become available that drives the 3D core in the GPU directly from the arm rather than passing messages to the VPU core in the GPU which in turn drove the 3D core.

== Binary blob needed to boot ==

The binary blob needed to boot the Raspberry Pi can be downloaded using the rpi-update script available from https://raw.githubusercontent.com/Hexxeh/rpi-update/master/rpi-update . It can be used with vmdebootstrap to create a bootable SD card image, according to
[[http://people.skolelinux.org/pere/blog/Teaching_vmdebootstrap_to_create_Raspberry_Pi_SD_card_images.html|a recipe from Petter Reinholdtsen]]. No known effort to reverse engineer the blob is known as of 2013-10-30.

Can I put Debian on my Raspberry Pi?

Yes.

Raspberry Pi 1 (A, B, A+, B+)

Debian armel will work (with a custom kernel), but will not make best use of the floating point hardware. Debian armhf will not work (see below).

Generally, your best bet is to use Raspbian - which is (mostly) Debian armhf rebuilt by members of Debian for the RPi's ARMv6+VFP2 ARM variant. Raspbian releases usually follow the corresponding debian release but do deviate in a handful of cases for various reasons.

Be aware that the raspbian images distributed by the raspberry pi foundation contain additional packages supplied by them including updated versions of some software and the addition of non-free software including Oracle Java and Wolfram Mathematica.

Raspberry Pi 2

Debian armhf will work (with a custom kernel). See the blog posting Debian Jessie on Raspberry Pi 2 by Sjoerd Simons of Collabora for details.

Should I buy a Raspberry Pi?

That is a decision that you will have to make given your application, below are some pros and cons that you should consider.

Pros:

  • Large and active community.
  • Low price for the capabilities offered

Cons:

  • The Raspberry Pi 1's processor falls uncomfortably between the processor families that Debian has chosen to target. While Raspbian solves this to some degree an unofficial port will always give less certainty than an official one. (This does not count for the Raspberry Pi 2.)
  • 3D acceleration is not integrated with X or other standard mechanisms and the Raspberry pi foundation don't seem to show any interest in doing so. Therefore 3D applications will require Pi specific builds.
  • A binary blob used by the GPU must be present on the SD card for the system to boot.
  • While some hardware documentation has been released the documentation is sorely lacking.
  • While schematics are available the board design is closed and the main processor is not available for purchase by the general public.

A number of similar boards are available, generally at slightly higher prices but also usually with more powerful processors. Some examples are given below, more can be found in the FreedomBox targetted hardware list.

Raspberry Pi issues

The Raspberry Pi issues relate to technical problems, software freedom and hype:

  • The CPU in the Raspberry Pi 1 implements the ARMv6 ISA (with VFP2) and is thus incompatible with the Debian armhf port baseline of ARMv7+VFP3 and ARM hardware-floating-point ports for other distributions, which all have the same baseline. It is compatible with Debian armel (armv4t, soft(emulated) FP), but floating-point tasks will be slow when running the Debian armel port. (This does not count for the Raspberry Pi 2.)
  • The Raspberry Pi boots from its GPU and only non-free software is currently available for the GPU, even starting the machine requires a large (2MB) blob of non-free, unsupportable software.
  • The 3D driver for the Raspberry Pi, while free software, is just a shim that passes OpenGL commands directly to the non-free software running on the GPU. This means that any issues with OpenGL cannot be fixed nor performance improved. This is better than some other GPUs because the ARM part can be rebuilt. More recently an alternative driver has become available that drives the 3D core in the GPU directly from the arm rather than passing messages to the VPU core in the GPU which in turn drove the 3D core.

Binary blob needed to boot

The binary blob needed to boot the Raspberry Pi can be downloaded using the rpi-update script available from https://raw.githubusercontent.com/Hexxeh/rpi-update/master/rpi-update . It can be used with vmdebootstrap to create a bootable SD card image, according to a recipe from Petter Reinholdtsen. No known effort to reverse engineer the blob is known as of 2013-10-30.