buildroot/board/raspberrypi
Yann E. MORIN 7a0c134e7c boards/raspberrypi: update instructions for Raspberry Pi 2
The instructions for the Raspberry Pi 2 (aka model B2) are the same as
the ones for the Raspberry Pi, so:
  - state so in the existing readme
  - create a symlink raspberrypi2 -> raspberrypi

Also fix typo in spelling of "Raspberry Pi" (two words, not one).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-02-26 22:43:37 +01:00
..
linux-3.18-rpi-dt.defconfig configs: add a DT-enabled Raspberry Pi defconfig 2015-01-10 15:46:42 +01:00
readme.txt boards/raspberrypi: update instructions for Raspberry Pi 2 2015-02-26 22:43:37 +01:00

Raspberry Pi

Intro
=====

These instructions apply to all models of the Raspberry Pi:
  - the original models A and B,
  - the "enhanced" models A+ and B+,
  - the model B2 (aka Raspberry Pi 2).

To be able to use your Raspberry Pi board with the images generated by
Buildroot, you have to choose whether you will use:

    * Volatile rootfs in RAM (the rootfs is an initramfs) or
    * Persistent rootfs on the SDCard

Also, a good source of information is http://elinux.org/R-Pi_Hub

How to build it
===============

Configure Buildroot
-------------------

The raspberrypi_defconfig configuration is a minimal configuration with
all that is required to bring the Raspberry Pi. You should base your
work on this defconfig:

  $ make raspberrypi_defconfig

Alternatively, if you want to test support for the Device Tree:

  $ make raspberrypi_dt_defconfig

If you want to use a persistent rootfs, skip to "Build the rootfs", below.

For a volatile rootfs, you have to slightly adjust the configuration:

  $ make menuconfig
    * Select "Filesystem images"
    * Select "initial RAM filesystem linked into linux kernel"

You may also deselect "tar the root filesystem".

Build the rootfs
----------------

Note: you will need to have access to the network, since Buildroot will
download the packages' sources.

You may now build your rootfs with:

  $ make

(This may take a while; consider getting yourself a coffee ;-) )

Result of the build
-------------------

After building, you should obtain this tree:

    output/images/
    +-- rootfs.tar                              [0]
    +-- rpi-firmware/
    |   +-- bcm2708-rpi-b.dtb                   [1]
    |   +-- bcm2708-rpi-b-plus.dtb              [1]
    |   +-- bootcode.bin
    |   +-- config.txt
    |   +-- fixup.dat
    |   `-- start.elf
    `-- zImage

[0] Note for Volatile: rootfs.tar will only be there if you kept
    "tar the root filesystem" option selected in "Filesystem images".

[1] The DTBs (Device Tree Blobs) will only be present if you setup
    Buildroot to install the DTBs from the rpi-firmware package, and
    will only be used if your kernel has support for the Device Tree.

Prepare you SDCard
==================

For more information, visit
http://elinux.org/RPi_Advanced_Setup#Advanced_SD_card_setup

In summary, your SDCard must have first partition in fat32 and marked bootable.

Create the required partitions:
  - for a persistent rootfs, 10MiB is enough memory for the boot fat32
    partition, and a second partition is required for the root filesystem
  - for a volatile rootfs, 50MiB is required for the boot fat32 partition

Note: You can create any number of partitions you desire, the only requirement
is that the first partition must be using fat32 and be bootable.

Mount the partitions (adjust 'sdX' to match your SDcard device):

  $ sudo mount /dev/sdX1 /mnt/mountpointboot
  $ sudo mount /dev/sdX2 /mnt/mountpointroot    (only for persistent rootfs)

Install the binaries to the SDCard
----------------------------------

At the root of the boot partition, the Raspberry Pi must find the following
files:

    * bcm2708-rpi-b.dtb         [2]
    * bcm2708-rpi-b-plus.dtb    [2]
    * bootcode.bin
    * config.txt
    * fixup.dat
    * start.elf
    * zImage

[2] Only needed if your kernel has support for the Device Tree.

For example:

 $ cp output/images/rpi-firmware/* /mnt/mountpointboot

If your kernel does *not* have support for the Device Tree, then install
it with:

 $ cp output/images/zImage /mnt/mountpointboot

If your kernel *does* have support for the Device Tree, then install it
with:

  $ ./output/host/usr/bin/mkknlimg output/images/zImage /mnt/mountpointboot/zImage

Note: The kernel image file name is defined in config.txt like this:
kernel=zImage

If you use a volatile rootfs, Skip to "Finish", below. For a persistent
rootfs, there are further steps to do.

Extract (as root!) the contents of the rootfs.tar archive into the second
partition you created above:

  $ sudo tar xf ./output/images/rootfs.tar -C /mnt/mountpointroot

Finish
======

Unmount all the partitions:

  $ sudo umount /mnt/mountpointboot
  $ sudo umount /mnt/mountpointroot     (only for persistent rootfs)

And eject your SDcard from your computer SDcard reader.

Insert the SDcard into your Raspberry Pi, and power it up. Your new system
should come up, now.