Tutorials
0x53.net

Minimal Raspberry PI

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:

Boot partition layouts

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:

Raspberry PI 3B

/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:

Raspberry PI zero W

/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:

Where to obtain the files

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.