=====
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
+-------------------
+
+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:
+
+ $ make rpi_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
+----------------
-You need to use the rpi_defconfig, to do so:
- * make rpi_defconfig
+Note: you will need to have access to the network, since Buildroot will
+download the packages' sources.
-Then, you need to select the kind of images you want:
- * make menuconfig
- * Select "Filesystem images"
- * Select "initial RAM filesystem linked into linux kernel"
+You may now build your rootfs with:
-What is generated
------------------
+ $ 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".
-
-Where should the binaries be copied on the SDCard
--------------------------------------------------
+Note for Volatile: rootfs.tar will only be there if you kept
+"tar the root filesystem" option selected in "Filesystem images".
-Your SDCard must have its first partition using fat32 and marked bootable.
+Prepare you SDCard
+==================
-At the root of the partition, the RaspberryPi must find the following files:
+For more information, visit
+http://elinux.org/RPi_Advanced_Setup#Advanced_SD_card_setup
- * bootcode.bin
- * config.txt
- * fixup_cd.dat
- * fixup.dat
- * start_cd.elf
- * start.elf
- * zImage
+In summary, your SDCard must have first partition in fat32 and marked bootable.
-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
-=================
-
-How to build it
----------------
+Mount the partitions (adjust 'sdX' to match your SDcard device):
-You only need to use the rpi_defconfig, to do so:
- * make rpi_defconfig
+ $ sudo mount /dev/sdX1 /mnt/mountpointboot
+ $ sudo mount /dev/sdX2 /mnt/mountpointroot (only for persistent rootfs)
-What is generated
------------------
+Install the binaries to the SDCard
+----------------------------------
-After building, you should obtain this tree:
+At the root of the boot partition, the RaspberryPi must find the following
+files:
- output/images/
- +-- rootfs.tar
- +-- rpi-firmware
- | +-- bootcode.bin
- | +-- config.txt
- | +-- fixup_cd.dat
- | +-- fixup.dat
- | +-- start_cd.elf
- | `-- start.elf
- `-- zImage
+ * bootcode.bin
+ * config.txt
+ * fixup.dat
+ * start.elf
+ * zImage
-Where should the binaries be copied on the SDCard
--------------------------------------------------
+For example:
-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.
+ $ cp output/images/rpi-firmware/* /mnt/mountpointboot
+ $ cp output/images/zImage /mnt/mountpointboot/zImage.img
-Boot partition
-~~~~~~~~~~~~~~
+Note: The default name is kernel.img.
+Actually, the name is zImage and it's define in the file config.txt like:
+kernel=zImage
-The first partition will contain everything used to boot the RaspberryPi.
-You must copy theses files at the root of partition:
+If you use a volatile rootfs, Skip to "Finish", below. For a persistent
+rootfs, there are further steps to do.
- * bootcode.bin
- * config.txt
- * fixup_cd.dat
- * fixup.dat
- * start_cd.elf
- * start.elf
- * zImage
+Extract (as root!) the contents of the rootfs.tar archive into the second
+partition you created above:
-So you should copy the entire content of output/images/rpi-firmware along with
-zImage.
+ $ sudo tar xf rootfs.tar -C /mnt/mountpointroot
-Rootfs partition
-~~~~~~~~~~~~~~~~
+Finish
+======
-The second partition will contain your rootfs.
-Simply extract (as root!) the contents of the rootfs.tar archive
-into this partition.
+Unmount all the partitions:
-For example: (Assuming mountpoint is a directory and exist)
+ $ sudo umount /mnt/mountpointboot
+ $ sudo umount /mnt/mountpointroot (only for persistent rootfs)
- $ 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.