From a9afb247ced5127f9930e06f4b59b62324ac7f7f Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Fri, 10 Jan 2020 18:06:37 +0100 Subject: Initial commit Signed-off-by: David Oberhollenzer --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..820fd17 --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# Building a small Raspberry Pi System from Scratch + +What you are looking at right now is a collection of instructions on how to +bootstrap a tiny system for a Raspberry Pi 3 board. + +We will bootstrap the system by building our own cross compiler toolchain +and then using it to cross compile everything we need for a working Linux +based OS. + +In contrast to similar guides, I try to explain why we are doing the things +the way we are doing them, instead of just throwing a bunch of copy-paste +command lines around (I'm looking at you, LFS). + +This guide is divided into the following parts: + +* [Building a cross compiler toolchain](crosscc.md). +* Cross compiling a statically linked BusyBox and the kernel. The kernel has + a built-in initrd containing our BusyBox. We will make it boot on the + Rapsberry Pi and explore some parts of the Linux boot process. +* Building a more sophisticated userland. The userland will be packed into a + SquashFS image. The BusyBox based initrd is modified to mount it and switch + into it. -- cgit v1.2.3