rpi: improve documentation
Signed-off-by: Mathieu Benoit <mathieu.benoit@savoirfairelinux.com> [yann.morin.1998@free.fr: further improvements for readability and completeness] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
856294dedf
commit
7f02c73f8d
@ -4,124 +4,125 @@ Intro
|
||||
=====
|
||||
|
||||
To be able to use your RaspberryPi board with the images generated by
|
||||
Buildroot, you have a prior choice to make, will you use:
|
||||
- Volatile rootfs in RAM (The rootfs is an initramfs) or
|
||||
- Persistent rootfs on the SDCard
|
||||
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
|
||||
|
||||
Volatile rootfs
|
||||
How to build it
|
||||
===============
|
||||
|
||||
How to build it
|
||||
---------------
|
||||
Configure Buildroot
|
||||
-------------------
|
||||
|
||||
You need to use the rpi_defconfig, to do so:
|
||||
* make rpi_defconfig
|
||||
The rpi_defconfig configuration is a minimal configuration with all that
|
||||
is required to bring the Raspberry Pi. You should base your work on this
|
||||
defconfig:
|
||||
|
||||
Then, you need to select the kind of images you want:
|
||||
* make menuconfig
|
||||
* Select "Filesystem images"
|
||||
* Select "initial RAM filesystem linked into linux kernel"
|
||||
$ make rpi_defconfig
|
||||
|
||||
What is generated
|
||||
-----------------
|
||||
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
|
||||
+-- rpi-firmware
|
||||
| +-- bootcode.bin
|
||||
| +-- config.txt
|
||||
| +-- fixup_cd.dat
|
||||
| +-- fixup.dat
|
||||
| +-- start_cd.elf
|
||||
| `-- start.elf
|
||||
| +-- bootcode.bin
|
||||
| +-- config.txt
|
||||
| +-- fixup_cd.dat
|
||||
| +-- fixup.dat
|
||||
| +-- start_cd.elf
|
||||
| `-- start.elf
|
||||
`-- zImage
|
||||
|
||||
Note : rootfs.tar will only be there if you kept "tar the root filesystem"
|
||||
option selected in "Filesystem images".
|
||||
Note for Volatile: rootfs.tar will only be there if you kept
|
||||
"tar the root filesystem" option selected in "Filesystem images".
|
||||
|
||||
Where should the binaries be copied on the SDCard
|
||||
-------------------------------------------------
|
||||
Prepare you SDCard
|
||||
==================
|
||||
|
||||
Your SDCard must have its first partition using fat32 and marked bootable.
|
||||
For more information, visit
|
||||
http://elinux.org/RPi_Advanced_Setup#Advanced_SD_card_setup
|
||||
|
||||
At the root of the partition, the RaspberryPi must find the following files:
|
||||
In summary, your SDCard must have first partition in fat32 and marked bootable.
|
||||
|
||||
* bootcode.bin
|
||||
* config.txt
|
||||
* fixup_cd.dat
|
||||
* fixup.dat
|
||||
* start_cd.elf
|
||||
* start.elf
|
||||
* zImage
|
||||
|
||||
So you should copy the entire content of output/images/rpi-firmware along with
|
||||
zImage.
|
||||
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 bootable.
|
||||
is that the first partition must be using fat32 and be bootable.
|
||||
|
||||
Persistent rootfs
|
||||
=================
|
||||
Mount the partitions (adjust 'sdX' to match your SDcard device):
|
||||
|
||||
How to build it
|
||||
---------------
|
||||
$ sudo mount /dev/sdX1 /mnt/mountpointboot
|
||||
$ sudo mount /dev/sdX2 /mnt/mountpointroot (only for persistent rootfs)
|
||||
|
||||
You only need to use the rpi_defconfig, to do so:
|
||||
* make rpi_defconfig
|
||||
Install the binaries to the SDCard
|
||||
----------------------------------
|
||||
|
||||
What is generated
|
||||
-----------------
|
||||
At the root of the boot partition, the RaspberryPi must find the following
|
||||
files:
|
||||
|
||||
After building, you should obtain this tree:
|
||||
* bootcode.bin
|
||||
* config.txt
|
||||
* fixup.dat
|
||||
* start.elf
|
||||
* zImage
|
||||
|
||||
output/images/
|
||||
+-- rootfs.tar
|
||||
+-- rpi-firmware
|
||||
| +-- bootcode.bin
|
||||
| +-- config.txt
|
||||
| +-- fixup_cd.dat
|
||||
| +-- fixup.dat
|
||||
| +-- start_cd.elf
|
||||
| `-- start.elf
|
||||
`-- zImage
|
||||
For example:
|
||||
|
||||
Where should the binaries be copied on the SDCard
|
||||
-------------------------------------------------
|
||||
$ cp output/images/rpi-firmware/* /mnt/mountpointboot
|
||||
$ cp output/images/zImage /mnt/mountpointboot/zImage.img
|
||||
|
||||
Your SDCard must have its first partition using fat32 and marked bootable.
|
||||
It should also have another partition which will contain your rootfs, it should
|
||||
be partitioned as ext4.
|
||||
Note: The default name is kernel.img.
|
||||
Actually, the name is zImage and it's define in the file config.txt like:
|
||||
kernel=zImage
|
||||
|
||||
Boot partition
|
||||
~~~~~~~~~~~~~~
|
||||
If you use a volatile rootfs, Skip to "Finish", below. For a persistent
|
||||
rootfs, there are further steps to do.
|
||||
|
||||
The first partition will contain everything used to boot the RaspberryPi.
|
||||
You must copy theses files at the root of partition:
|
||||
Extract (as root!) the contents of the rootfs.tar archive into the second
|
||||
partition you created above:
|
||||
|
||||
* bootcode.bin
|
||||
* config.txt
|
||||
* fixup_cd.dat
|
||||
* fixup.dat
|
||||
* start_cd.elf
|
||||
* start.elf
|
||||
* zImage
|
||||
$ sudo tar xf rootfs.tar -C /mnt/mountpointroot
|
||||
|
||||
So you should copy the entire content of output/images/rpi-firmware along with
|
||||
zImage.
|
||||
Finish
|
||||
======
|
||||
|
||||
Rootfs partition
|
||||
~~~~~~~~~~~~~~~~
|
||||
Unmount all the partitions:
|
||||
|
||||
The second partition will contain your rootfs.
|
||||
Simply extract (as root!) the contents of the rootfs.tar archive
|
||||
into this partition.
|
||||
$ sudo umount /mnt/mountpointboot
|
||||
$ sudo umount /mnt/mountpointroot (only for persistent rootfs)
|
||||
|
||||
For example: (Assuming mountpoint is a directory and exist)
|
||||
|
||||
$ sudo mount /dev/sdXY /mnt/mountpoint
|
||||
$ sudo tar xf rootfs.tar -C /mnt/mountpoint
|
||||
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.
|
||||
|
Loading…
Reference in New Issue
Block a user