Learning operating system development using Linux kernel and Raspberry Pi

View on GitHub

Prerequisites

1. Raspberry Pi 3 Model B

Older versions of Raspberry Pi are not going to work with this tutorial because all lessons are designed to use a 64-bit processor that supports ARMv8 architecture, and such processor is only available in the Raspberry Pi 3. Newer versions, including Raspberry Pi 3 Model B+ should work fine, though I haven’t tested it yet.

2. USB to TTL serial cable

After you get a serial cable, you need to test your connection. If you never did this before I recommend you to follow this guide It describes the process of connecting your Raspberry PI via a serial cable in great details.

The guide also describes how to power your Raspberry Pi using a serial cable. RPi OS works fine with such kind of setup, however, in this case you need to run your terminal emulator right after you plug in the cable. Check this issue for details..

3. SD card with installed Raspbian OS

We need Raspbian to test USB to TTL cable connectivity initially. Another reason is that after installation it leaves the SD card formatted in the right way.

4. Docker

Strictly speaking, Docker is not a required dependency. It is just convenient to use Docker to build source code of the lessons, especially for Mac and Windows users. Each lesson has build.sh script (or build.bat for windows users) This script uses Docker to build source code of the lesson. Instructions how to install docker for your platform can be found on the official docker website

If for some reasons you want to avoid using Docker, you can install the make utility as well as aarch64-linux-gnu toolchain. If you are using Ubuntu you just need to install gcc-aarch64-linux-gnu and build-essential packages.

Previous Page

Contribution guide

Next Page

1.1 Kernel Initialization: Introducing RPi OS, or bare metal “Hello, world!”