The following shows how set up the minimal firmware and boot partition layout to get Raspberry PI's to boot a Linux kernel. This is mainly for the case that someone wants to use a minimal system on a Raspberry PI instead of using the full blown Debian provided by default.
Initially, the kernel and firmware have to be obtained:
The boot partition needs to be at the beginning of the storage media and formatted as FAT-32 or vFAT.
Following is a visualisation of the minimal required files, afterwards an explanation where to obtain them:
/path/to/mounted/boot/partition
├── bcm2710-rpi-3-b.dtb
├── bootcode.bin
├── cmdline.txt
├── config.txt
├── fixup.dat
├── fixup_cd.dat
├── kernel7.img # if using 32bit
├── kernel8.img # if using 64bit
├── overlays
│ ├── act-led.dtbo
│ ├── adafruit-st7735r.dtbo
│ └── ...
├── start.elf
└── start_cd.elf
Linux Firmware(see above) to compile into the kernel for WIFI support:
brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt
brcm/brcmfmac43430-sdio.bin
brcm/brcmfmac43430-sdio.clm_blob
/path/to/mounted/boot/partition
├── bcm2708-rpi-zero-w.dtb
├── bootcode.bin
├── cmdline.txt
├── config.txt
├── fixup.dat
├── fixup_cd.dat
├── kernel.img
├── overlays
│ ├── act-led.dtbo
│ ├── adafruit-st7735r.dtbo
│ └── ...
├── start.elf
└── start_cd.elf
Linux Firmware(see above) to compile into the kernel for WIFI support:
brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt
brcm/brcmfmac43430-sdio.bin
brcm/brcmfmac43430-sdio.clm_blob
The files
bcm*.dtb,
bootcode.bin,
fixup.dat,
fixup_cd.dat,
start.elf,
start_cd.elf
and the directory
overlays
are part of the Raspberry Pi firmware
linked above.
kernel*.img
is the archive created by compilation of the
Linux kernel, it can be found at
./arch/@ARCH@/boot/Image
relative to the kernel source.
cmdline.txt and config.txt
may be empty and everything should work,
the possible settings for config.txt
are documented
here.