By Gavin L. Rebeiro
Contents
Cover
Copyright
1
Acknowledgements
2 YOU ARE HERE ☞
Introduction
2.1 Prerequisite Knowledge
2.2 Apparatus
3
Fundamentals
3.1 Communication
3.2 Kernel Ring Buffer
3.3 Drivers
3.4 Operating Systems
3.5 Special Files
4
Doing The Task
4.1 Preparing The Boot Media
4.2 Connecting Physical Components
4.3 Using Picocom
4.4 OS Installation
5
Thanks
6
OpenPGP Key
A
Malicious Hardware
B
Linux Kernel Source Tree Analysis
C
Digital Multimeter Tests
Summary: Following Part I, published a few hours ago, let's examine what happened from a technical perspective and what can be done about it technically
We don’t want to be spied on; what happens when we’re faced with an operating system that spies on people? We throw it in the trash where it belongs! I am boycotting the Raspberry Spy myself (you’re free to join me in doing so) but I don’t want people to waste hardware that they already have. So we’re going to walk through an interesting path of installing a different operating system on the Raspberry Spy; I want to show you a few things that will empower you to take greater control over your computing.
We’ll gently walk through and explore the following: how to install an operating system on an embedded device (a Raspberry Spy, in this case) over a USB-to-UART bridge (UTUB). This is the main project we’ve got on our hands. Don’t worry if you’ve never touched embedded systems before; everything here is accessible to people with a modest set of prerequisite knowledge and some basic apparatus.
We’ll delve into things with more depth as we move forward with our project; if you don’t understand something when you first encounter it, just keep reading.
2.1 Prerequisite Knowledge
There’s not much prerequisite knowledge required. Here’s what you need to know:
● A basic grasp of how to operate a shell on a GNU/Linux system. GNU Bash is an example. You don’t need to know how to write shell scripts. Knowledge of how to use the shell interactively will suffice.
That’s it. Really. Anything else you need you will pick up on the way.
2.2 Apparatus
You will need the following apparatus:
● A Raspberry Spy. I’ve got the Raspberry Spy Model 3 B+ so that’s what I’ll be using in this project.
● A working Internet connection.
● A USB thumb drive (used as boot media) for the Raspberry Spy.
1
● A power supply for the Raspberry Spy.
● A USB-to-UART bridge (UTUB). I’ve got a CP2104 from Silicon Labs; this is widely available and you can pick it up from an online retailer. You want a module that has all the necessary pins and peripherals already packaged into one, neat, unit. I believe the specific module I have is by WINGONEER.
● 3 female-to-female jump wires.
● A computer with any recent GNU/Linux installed on it. The computer needs to have a working USB port.
● A generic microSD card reader/writer. I have an Anker AR200.
It’s likely that you already have the apparatus to operate your Raspberry Spy. Just acquire the additional bits that you don’t already have. The list here is just for completeness.
Here’s some extra equipment that will make your life easier:
● When you’re dealing with electronics, you should heed the old idiom of “two is one and one is none”. Get spares of whatever you can, as a rule.
● A digital multimeter (DMM) with spare fuses for the multimeter. Being able to do some quality control (QC) before you hook up your UTUB to your hardware is going to give you peace of mind. Don’t skimp on the spare fuses for the DMM; it’s easy to forget how much current you’ve got flowing through a circuit and fry the DMM’s fuse by accident
2.
● A 2M or longer USB extension cable. Male-to-female is what you want here. You plug in the male part to your computer and the female part is open for receiving the UTUB. This makes life a lot easier (and safer).
● Nitrile gloves. Helps keep you safe.
● Safety goggles. Again, doesn’t hurt to be careful.
You should now have everything you need to get started!
⬆
_____
1 If you’ve got a Raspberry Spy that can only accept an SD card as boot media, you don’t need to fret too much. The procedure is the same; you just write the OS image to an SD card instead of a USB thumb drive. Fixing quirks of SD card installations are, however, out of scope of this project; you should refer to the relevant documentation, IRC chats, and mailing lists. I will provide links to boot-media-specific information, when we discuss boot media; this should give you a starting point to troubleshoot issues.
2 Real fuses were harmed during the making of this document.