You're hired at the latest startup as a hardware engineer and required to build the firmware which will run on "The Greatest Next Generation Appliance" (GNA). The GNA boots, prints a message and interacts with a device (in this case an LED).
In this workshop we cover how a person with an interest and a focus on hardware can make progress with the software side by using the NetBSD operating system and the features it offers to save considerable time and effort.
- NetBSD supports a wide & diverse range of systems & CPU architectures.
- Support for cross compilation is offered by default and works out of the box.
- There is a high level language interface to interact with the system internals.
- File integrity verification support to detect tampering of binaries and preventing execution is builtin.
- An instance of the kernel can be run as a user process on different operating systems where rapid development can take place.
Things we will cover:
- An introduction to cross-compilation with build.sh and constructing an image to boot on your hardware.
- Interacting with the system using Lua (which is embedded in the kernel, avoiding having to write C or have knowledge of OS internals) to e.g. access GPIO.
- Preventing the execution of tampered or unauthorised binaries with veriexec.
- Using rump kernel for rapid development away from a potentially slow dev board.
Note: Due to budgeting cuts, "The Greatest Next Generation Appliance" has not yet been purchased, so, the workshop will target the development of the firmware on a Raspberry Pi or BeagleBone Black.
You will need to bring:
- Your own laptop (running Windows, Linux or Mac OS X);
- A Raspberry Pi or BeagleBone Black;
- An appropriate SD card for your board;
- USB card reader to write a new OS image onto said SD card;
- An ethernet cable to connect board to laptop and/or a USB UART/FTDI adapter to access the board via the serial console.
Any questions shuold be directed to the discussion list.
Sevan Janiyan is founder of Venture 37, which provides system administration & consultancy services. As a fan of operating systems and computers with different CPU architectures, in his spare time he maintains builds of open source software on a variety of systems featuring PowerPC, SPARC and armv7l CPUs. He hopes to own a NeXTcube & OMRON LUNA-88K2 one day.
Note: Please aim to arrive by 17:15 as the workshop will start at 17:30 prompt.