readme.txt
1Raspberry Pi
2
3Intro
4=====
5
6These instructions apply to all models of the Raspberry Pi:
7 - the original models A and B,
8 - the "enhanced" models A+ and B+,
9 - the model B2 (aka Raspberry Pi 2)
10 - the model B3 (aka Raspberry Pi 3).
11 - the model B4 (aka Raspberry Pi 4).
12 - the model CM4 (aka Raspberry Pi Compute Module 4 and IO Board).
13
14How to build it
15===============
16
17Configure Buildroot
18-------------------
19
20There are two RaspberryPi defconfig files in Buildroot, one for each
21major variant, which you should base your work on:
22
23For models A, B, A+ or B+:
24
25 $ make raspberrypi_defconfig
26
27For model Zero (model A+ in smaller form factor):
28
29 $ make raspberrypi0_defconfig
30
31For model 2 B:
32
33 $ make raspberrypi2_defconfig
34
35For model 3 B and B+:
36
37 $ make raspberrypi3_defconfig
38
39or for model 3 B and B+ (64 bit):
40
41 $ make raspberrypi3_64_defconfig
42
43For model 4 B:
44
45 $ make raspberrypi4_defconfig
46
47or for model 4 B (64 bit):
48
49 $ make raspberrypi4_64_defconfig
50
51For model CM4 (on IO Board):
52
53 $ make raspberrypicm4io_defconfig
54
55or for CM4 (on IO Board - 64 bit):
56
57 $ make raspberrypicm4io_64_defconfig
58
59Build the rootfs
60----------------
61
62Note: you will need to have access to the network, since Buildroot will
63download the packages' sources.
64
65You may now build your rootfs with:
66
67 $ make
68
69(This may take a while, consider getting yourself a coffee ;-) )
70
71Result of the build
72-------------------
73
74After building, you should obtain this tree:
75
76 output/images/
77 +-- bcm2708-rpi-b.dtb [1]
78 +-- bcm2708-rpi-b-plus.dtb [1]
79 +-- bcm2709-rpi-2-b.dtb [1]
80 +-- bcm2710-rpi-3-b.dtb [1]
81 +-- bcm2710-rpi-3-b-plus.dtb [1]
82 +-- bcm2711-rpi-4-b.dtb [1]
83 +-- bcm2711-rpi-cm4.dtb [1]
84 +-- boot.vfat
85 +-- rootfs.ext4
86 +-- rpi-firmware/
87 | +-- bootcode.bin
88 | +-- cmdline.txt
89 | +-- config.txt
90 | +-- fixup.dat [1]
91 | +-- fixup4.dat [1]
92 | +-- start.elf [1]
93 | +-- start4.elf [1]
94 | `-- overlays/ [2]
95 +-- sdcard.img
96 +-- Image [1]
97 `-- zImage [1]
98
99[1] Not all of them will be present, depending on the RaspberryPi
100 model you are using.
101
102[2] Only for the Raspberry Pi 3/4 Models (overlay miniuart-bt is needed
103 to enable the RPi3 serial console otherwise occupied by the bluetooth
104 chip). Alternative would be to disable the serial console in cmdline.txt
105 and /etc/inittab.
106
107How to write the SD card
108========================
109
110Once the build process is finished you will have an image called "sdcard.img"
111in the output/images/ directory.
112
113Copy the bootable "sdcard.img" onto an SD card with "dd":
114
115 $ sudo dd if=output/images/sdcard.img of=/dev/sdX
116
117Insert the SDcard into your Raspberry Pi, and power it up. Your new system
118should come up now and start two consoles: one on the serial port on
119the P1 header, one on the HDMI output where you can login using a USB
120keyboard.
121
122How to write to CM4 eMMC memory
123===============================
124
125For CM4 modules without eMMC memory see above for booting from SD card,
126for CM4 moduels with eMMC memory proceed as following:
127
128- fit jumper on IO Board header J2 to disable eMMC boot
129- connect IO Board micro USB port (J11 USB slave) to your host linux system
130- power up CM4/IO Board (lsusb command should show a '0a5c:2711 Broadcom Corp.
131 BCM2711 Boot' device)
132- run 'sudo ./host/bin/rpiboot', output should look like the following:
133 Waiting for BCM2835/6/7/2711...
134 Loading embedded: bootcode4.bin
135 Sending bootcode.bin
136 Successful read 4 bytes
137 Waiting for BCM2835/6/7/2711...
138 Loading embedded: bootcode4.bin
139 Second stage boot server
140 Loading embedded: start4.elf
141 File read: start4.elf
142 Second stage boot server done
143
144- a USB mass storage device should show up (the CM4 eMMC memory), proceed
145 as described above to copy sdcard.img to it
146- power down CM4/IO Board
147- remove jumper on IO Board header J2 to re-enable eMMC boot
148- power up CM4/IO Board
149