Bonum Certa Men Certa

How To Deal With Your Raspberry Spy -- Part IV: Doing The Task

By Gavin L. Rebeiro

Contents



Cover

Copyright

1 Acknowledgements

2 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 YOU ARE HERE ☞ 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: We now spell out the steps taken to actually replace the Raspberry Pi OS with something more trustworthy (for background see Part I, Part II, and Part III)

We’ve now covered enough ground to make the installation of NetBSD on our Raspberry Spy (over our UTUB) a relatively painless matter.



Let’s go through the process in little steps.

4.1 Preparing The Boot Media

I’m going to grab the appropriate NetBSD image by taking hints from the following:

NetBSD/evbarm on Raspberry Pi tells us everything we need to know to pick the right image. All the sections here related to booting are worth reading at least once. Also read sections about consoles and serial consoles at least once.

Raspberry Pi boot modes is useful if you want to dig deeper into the booting mechanisms of the Raspberry Spy. USB mass storage boot is particularly useful for booting off USB. Trust me, you don’t want to muck around with SD cards; they’re a nightmare.

NetBSD/evbarm can be referenced for general information about NetBSD on ARM boards.

The above links should give you a good idea of what’s going on and what needs to be done with regards to putting a NetBSD on a boot media that goes into a Raspberry Spy.

Let’s go through a concrete example.

My Raspberry Spy is of the model “3 B+” variety so I’m dealing with an ARM64 CPU architecture. We’ll follow along the instructions outlined in Installation procedure for NetBSD/evbarm; pay close attention to the section “NetBSD/evbarm subdirectory structure”; I follow these instructions as I explore Index of pub/NetBSD/NetBSD-9.1/evbarm-aarch64/.

I grab the appropriate image like so:

$ mkdir ~/Downloads/netbsd
$ cd ~/Downloads/minted
$ wget https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.1/evb c
 → arm-aarch64/binary/gzimg/arm64.img.gz


Now that we’ve got the image, we can write it to our boot media. I’m going to assume you have an appropriate reader already plugged into your GNU/Linux box. I’ve got my USB thumb drive as “/dev/sdg” on my system. Use the right block device file on your system1. We base our procedure along the lines of “Installation for ARMv7 and AArch64 devices with U-Boot” section from Installation procedure for NetBSD/evbarm:

$ gzip --decompress --keep arm64.img.gz
# dd if=arm64.img of=/dev/sdg bs=1M conv=sync
 → status=progress
$ lsblk -f | grep sdg


We’re going to ignore the minutiae of writing to block devices, bootloaders, and other adjacent topics related to the utilities we just used; that’s left for another time. We care about learning how to use a serial console in this project so we must stay focused on our primary target.

We’re going to have a look at how to make a serial install possible via some editing of the “cmdline.txt” file that now resides in the boot media (on the boot partition which is of type “vfat”):

# mkdir /media/netbsd_image
# mount /dev/sdg1 /media/netbsd_image
# grep "console" < cmdline.txt
# root=ld0a console=fb
# grep "enable_uart" < config.txt
# enable_uart=1


The “console=fb” part is to get out OS image to use the HDMI output. We will get rid of that string from the file “cmdline.txt”. Who needs that anyway? One way to do it2:

# ed cmdline.txt
21
,p
root=ld0a console=fb
1
root=ld0a console=fb
s/console=fb//
,p
root=ld0a
wq
11
# echo ",p" | ed cmdline.txt
11
root=ld0a





Remember to check your edits!

We also ensure that “enable_uart=1” is set in the file “config.txt":

# echo ",p" | ed config.txt
82
arm_64bit=1


kernel=netbsd.img
kernel_address=0x200000
enable_uart=1
force_turbo=0


Everything looks good! Additional useful information on the Raspberry Spy UART can be found in UART configuration. Pretty self-explanatory. That wasn’t so hard. Was it? Note that the following links document the files we’ve been messing around with:

The Kernel Command Lineconfig.txt

It’s a good idea to back up the state of your image, at this point3. We can now safely unmount our boot media and get on with the project:

# cd ~
# umount /media/netbsd_image


We change directory, before we unmount, so that we don’t get any “device busy” errors.

We’ve now got our boot media ready. Onwards!

4.2 Connecting Physical Components

Before you power up your UTUB, you should really check that the pins are working properly. The very basic test you should do is to check that the right voltage is being supplied. Check out Appendix C.

The pins on our UTUB and Raspberry Spy that we’re interested are the following:

● Raspberry Spy: Pin6 (Ground), Pin8 (GPIO14, TXD), Pin10 (GPIO15, RXD). You can find the layout in the official GPIO page.

● UTUB: I’ve got a CP2104 UTUB so I’ve got to only worry about the pins marked TX, RX, and GND. I have other pins on the module but they’re not relevant for this task.

We won’t be using any of the voltage pins on the boards because it’s more prone to errors. Just use the USB power supply that comes with your Raspberry Spy.

Don’t plug anything into power for the following sequence. Connect the jump-wires like so:

● Ground on UTUB to Ground (Pin6) on Raspberry Spy.

● TX on UTUB to RX (Pin10) on Raspbery Spy.

● RX on UTUB to TX on (Pin8) Raspberry Spy.

"We won’t be using any of the voltage pins on the boards because it’s more prone to errors."Don’t make the rookie mistake of matching TX with TX and RX with RX; TX always goes to RX and RX always goes to TX. Keep this in mind, always, when working with UARTs. Colour-coding your jump-wires helps.

We’ll just go over the order of attaching the stuff to do with power on our devices:

● Attach the USB power adapter to the Raspberry Pi without plugging the adapter into the power outlet.

● Attach the UTUB to your GNU/Linux box.

● Attach your USB power adapter to your power outlet.

The logic for the above procedure is that you can ensure that your serial interface is up and running before you start getting input from your Raspberry Spy.

4.3 Using Picocom

Using picocom(1) is simple. All we need to do is select the correct baud rate and give the right device file as a parameter to picocom(1).

I’ll give you an extract from the manual page to enlighten you:

In effect, picocom is not an "emulator" per-se. It is a
simple program that opens, configures, manages a serial
port (tty device) and its settings, and connects to it
the terminal emulator you are, most likely, already
→ using
(the terminal window application, xterm, rxvt, system
console, etc).
When picocom starts it opens the tty (serial port)
given as its non-option argument. Unless the
--noinit option is given, it configures the port to
the settings specified by the option-arguments (or
to some default settings), and sets it to "raw"
mode. If --noinit is given, the initialization and
configuration is skipped; the port is just opened.
Following this, if standard input is a tty, picocom
sets the tty to raw mode. Then it goes in a loop
where it listens for input from stdin, or from the
serial port. Input from the serial port is copied
to the standard output while input from the standard
input is copied to the serial port. Picocom also
scans its input stream for a user-specified control
character, called the escape character (being by
default C-a). If the escape character is seen, then
instead of sending it to the serial-device, the
program enters "command mode" and waits for the next
character (which is called the "function
character"). Depending on the value of the function
character, picocom performs one of the operations
described in the COMMANDS section below.


We use “C-a C-x” (Ctrl+a followed by Ctrl+x)4 to tell picocom(1) to exit; for more, RTFM; in particular, pay close attention to the “COMMANDS” section.

Make sure you’ve set up all the physical connections, as advised. It’s time to attach our UTUB to our GNU/Linux box and then make sure we invoke picocom(1) correctly:

# picocom --baud 115200 /dev/ttyUSB0
picocom v3.1



port is : /dev/ttyUSB0 flowcontrol : none baudrate is : 115200 parity is : none databits are : 8 stopbits are : 1 escape is : C-a local echo is : no noinit is : no noreset is : no hangup is : no nolock is : no send_cmd is : sz -vv receive_cmd is : rz -vv -E imap is : omap is : emap is : crcrlf,delbs logfile is : none initstring : none exit_after is : not set exit is : no

Type [C-a] [C-h] to see available commands Terminal ready


It really is that simple. You’ve now got a serial terminal ready and listening.

4.4 OS Installation

Now that you’ve got a serial terminal operational, all we have to do to install NetBSD on the Raspberry Spy is to plug the USB power adapter into the power outlet. Keep a close eye on what goes on in the output of your serial terminal:

...
[   7.4246937] root device:
[  11.6252523] use one of: mue0 sd0[a-p] ddb halt reboot
[  11.6252523] root device: sd0
[  13.9755661] dump device (default sd0b):
[  15.7257992] file system (default generic):
...


You should be promoted to pick a root device. I pick “sd0” as it’s the first ’disk’ offered by NetBSD (which can only be my boot media)5. I go for the suggested defaults, for everything else. No need to overcomplicate things, at this point.

You will probably see your Raspberry Spy reboot once or twice during the OS install process. Just pass the same parameters for the boot device, and you should be good to go.

Eventually, you should be met with the following:

...
NetBSD/evbarm (arm64) (constty)
...



login:


If you login as “root”, you should have a nice login shell presented to you.

And we are done! You’ve successfully done some tinkering over a serial terminal. That wasn’t so hard. Was it? You can shutdown your device (halt the OS) like so:

# shutdown -p now
...
[   910.5814809] The operating system has halted.
[   910.5814809] Please press any key to reboot.


You can now disconnect the power supply from your Raspberry Spy. Then just send “C-a C-x” to picocom(1); after which, you should see:

...
Terminating...
Thanks for using picocom
#


Welcome to the world of serial terminals; hack your heart out! ____ 1 The command lsblk -f should help you out here. Don’t wipe the wrong device by accident. 2 If you use another text editor, that’s fine. You really should learn ed(1) at some point though, especially if you want to get into embedded systems. 3 At least keep track of the files that you tweaked. If you use some sort of version-control-system, you get bonus points. 4 I don’t know why the manual doesn’t bother to explicitly mention that these are GNU-Emacs-style key sequences. 5 See the NetBSD sd(4) manpage for details.

Recent Techrights' Posts

Machine-Generated Legal Documents, Over 2,000 Pages Sent to Us Today Alone
We now know that the papers we receive are produced using bots (algorithms)
2026 Microsoft Mass Layoffs in So-called 'AI' Datacentres, Why Doesn't the Mainstream Media Cover The News?
What does this tell us about the state of the media?
"Over 1,100 Law Firms Gone in Five Years" in the United Kingdom (UK) Alone
There are basically way too many lawyers (looking for "business", e.g. threats and lawfare) and not enough positions to fill
Microsoft FUD From Microsoft Site Helps Distract From Actual Microsoft Back Doors
Published on a Sunday
IBM is Killing Red Hat's Portfolio - Including Linux - to Prop Up Ponzi Scheme ("AI")
IBM is killing Red Hat
Gemini Links 02/03/2026: Weird Phone Calls, Small Phones, and Exploring Racket
Links for the day
 
Tomorrow should be sunny (at long last!) and a generally productive dayProductive Week Ahead
Tomorrow should be sunny (at long last!) and a generally productive day
Only One Slopfarm Seems to Have Targeted "Linux" Today
It certainly does feel like the slop hype is reaching the "late life crisis" and companies that benefited from this bubble are overdue for a day of reckoning
Microsoft Mass Layoffs: Being Sacked at 1AM in the Morning
Watch what happens to Microsoft employees who get pregnant
Links 02/03/2026: More Social Control Media Bans, Climate Change Woes, and "Journalist With Germany's Deutsche Welle Arrested in Turkey"
Links for the day
Gemini Links 02/03/2026: Small Phones, "I 3D Printed My Brain", and "Managing 5 Servers at Once with tmux"
Links for the day
IBM is Trying to Hide Mass Layoffs, Not Only With NDAs and 'Scripted' LinkedIn Posts
From what we can gather (screenshot above), today many people leave IBM and Red Hat
Richard Stallman is Giving a Public Talk This Week (Friday in Lucerne School of Computer Science and Information Technology)
His birthday is just around the corner.
Windows Falls to New Low in World's Largest Population (India)
Windows is now down to 7%
Never Miss a Good Opportunity to Shut Up and Drink Coffee
Threats come at a cost; each time you issue a threat you stigmatise yourself as a bully
Last Month Matthew Garrett Said Ridiculous Things After His Spouse Had Called Him a "Rapist", Now He's Trying to Take the Site Offline and Put My Family in Prison
The real issue of concern to him (and his alleged reputation) is the spouse and the matter is to be dealt with in America, not the UK
Reporting to Our Politicians/MPs the Failure of the SRA to Stop Hired Guns Who Help Americans (Men Who Attack Women and Nowadays Also Attack British Reporters)
About a month ago my wife wrote to politicians to get the ball rolling
The Topic Many People Don't Want to Talk or Write About
"DEI" is inherently about making racial and gender patterns better reflect society's
XBox is Virtually Dead Already, What Next Will Die at Microsoft?
Now that there are mass layoffs at Microsoft datacentres it is not premature to speculate about what dies after XBox
For the First Time, statCounter Measures Internet Explorer at 0.01% "Market Share"
What Microsoft replaced it with is just a Chrome clone with extra spyware
Was a Lot of "Windows" and "Unknown" in Iran Just GNU/Linux in Disguise?
more than 1 in 10 desktop/laptop requests is estimated to be GNU/Linux
"Here in the UK, GNU/Linux rose to all-time high at Windows' expense"
Will this entail Software Freedom as well? This depends on all of us
Links 02/03/2026: Claude Code Causes a Mexican Government Cyberattack, "London Repair Week" Noted
Links for the day
Don't Fall for "Top X Law Firms" in "Discipline Y", They Pay $Z to Get False Endorsement/s
It's a scheme, a scam, an elaborate fraud
More Publishers Have Turned From Slop Boosters Into Slop Sceptics and Critics
There's a "hidden cost" when one participates (for profit) in "pump and dump" schemes
TeX Live Has New Release, But Planet Debian Won't Tell You That
It 'unpersoned' the developer
LLM Slop Does Not Know People (It Knows Nothing) and Cannot Distinguish Between People. It's a Recipe for Disaster.
no way of knowing who's who
Free Software Foundation Needs to Become More Active in Europe to Avoid Impersonation by Microsoft-Sponsored Groups
So far we've hardly seen the FSF saying anything at all about the US president
Links 02/03/2026: "Not Envious of Billionaires" and Palantir SLAPPs "Swiss Magazine For Accurately Reporting That The Swiss Government Didn't Want Palantir"
Links for the day
There Has Never Been a Better Time to Quit Social Control Media
Those networks are selling something. And that something is not peace because peace does not sell "attention".
Microsoft Users Drowning in Slop, If They Complain Microsoft Censors Them
Like an authoritarian regime
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Sunday, March 01, 2026
IRC logs for Sunday, March 01, 2026
Speed of Sites Matters
Being easily accessible all the time matters to us
Dr. Andy Farnell on "Good Tech"
in the age of "rent everything" and "own nothing"
Gemini Links 01/03/2026: Simpler Software and Announcing OFFLFIRSOCH (OFFLine-FIRst SOftware CHallenge) 2026
Links for the day
EPO "Cocaine Communication Manager" - Part V - Jobs at the EPO for Those Connected to Cocaine Addicts (Skills Not Required)
EPO management is trying to shoot the messenger
Booz Allen Hamilton, the Former Employer of Edward Snowden (NSA Contractor), is Drowning in Debt
Can Supreme Leader Cheeto bail it out like he does slop companies?
On the Concept of "Protected Class" (or Race) at IBM
It's self-harming as in practice it imperils the company and harms the reputation/brand
The Mass Layoffs at Microsoft That Nobody in the "News Industry" Wants to Talk About (and TheLayoff.com Censored, Then It Censored the Evidence of the Censorship)
They basically cover up how they censored the news about Microsoft layoffs
Richard Stallman to Give at Least Three Talks in Switzerland, Starting This Week
No mention (yet) of the Bern talk
On Who 'Speaks for' Techrights
typically a case of misrepresenting the site
'FSFE' an Imposter in Europe, Paid by GAFAM to Represent GAFAM Interests
The Microsoft-sponsored 'FSFE', which violates the terms of use of its name, is causing confusion [...] formally-recognised institutions got tricked into thinking that the Microsoft-sponsored 'FSFE' is the FSF
Lots of Lies From the Slop Industry
The slop industry relies on fake news to give a notion or fake demand
Links 01/03/2026: American Plutocrats Buy American Media While American Constitution Shredded
Links for the day
Teaser: The Next Series About the SRA, Which Would be Just as Effective as It Is Right Now If It Had Zero Employees
the lapdog (of the "litigation industry") that is meant to be perceived as a watchdog
Solicitors Regulation Authority (SRA) Inaction and Incompetence - Part I - Introduction
The SRA is a sham. Many people know this already, but we want to document our own experiences with it.
Live Simply, Live Better
Life isn't about "collecting" possessions; it's about doing things that matter and accumulating knowledge so as to make better choices
Now That XBox is Pretty Much Dead and There Are Mass Layoffs at Microsoft
This means our predictions about Microsoft (and XBox) are "falling into place"
Gemini Links 01/03/2026: "In the Spirit of OFFLFIRSOCH" and "Delete Patreon"
Links for the day
ACM Lowers Its Standards for Age of Autocracy
IBM is more than happy to work with autocracies
The term FUD (fear, uncertainty, doubt) was created to describe IBM's tactics and IBM is doing it again
Rob Thomas or "RT"
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Saturday, February 28, 2026
IRC logs for Saturday, February 28, 2026
Slop is Distraction
LibreWolf will never include any of this slop nonsense, no matter if toggled on or off
Cult inquiry: Parliament of Victoria, last chance to have your say
Reprinted with permission from Daniel Pocock
Internet Relay Chat (IRC) Turns 37.5
Can IRC reach age 75?
Gemini Links 28/02/2026: Loadbars 0.13.0, IME (Input Method Editor), and ColorColumn in Vim
Links for the day
Two EPO Strikes in March (Maybe More)
As per the SUEPO diary [...] We still have an ongoing series about the EPO, with several more series to start later
Why We Are Concerned About the SRA's Failure and What That Means to the Profession of Lawyers in the UK
Unregulated industries will lose their credibility as there is a threat of growing perception that they operate outside the law rather than practice law
Over 10,000 Pages/Articles Per Year?
Probably my most productive month, ever
Keeping Techrights Online 99.99% of the Time
Some time later this year we'll tell a very long story about how extremists attacked our webhosts
Richard Stallman, Founder of the Free Software Movement, Will be Giving Public Talk in Bern (Switzerland) in Less Than 12 Days
We are still doing a series about him and his talks
Still Lots of IBM Departures
It's not that we lack evidence of IBM layoffs. It's just that we have ample evidence of the press not doing its job (or barely existing anymore).
The Register MS Standards: Promote a Ponzi Scheme in Exchange of Money
Once upon a time it was a serious publisher. Months ago it was taken over by a Microsoft person.
Slopfarms' Demise Looks Like the Beginning of the End (Lowered Demand for Slop)
Slop about "Linux" has gotten hard to find this past week
Dr. Andy Farnell: Time to Pull the Plug?
insightful, as usual
Links 28/02/2026: "Tehran’s Two-Tiered Internet", "Internet Under Fire"
Links for the day
When an Entire News Site is About One Topic (and One Topic Only)
Tomorrow we start a new series for the new month
Links 28/02/2026: Bill Epsteingate Admits Sex With Young Girls, "Epstein Files Are the Horror That Keeps on Giving"
Links for the day
IBM: Where Companies Come to Perish
thelayoff.com is censoring stories
Tech Layoffs Are Not Because of Slop, They're an Effect of a Rotting Economy and Tech Giants Being Too Deep in Debt
Block is rapidly sinking in debt
The Slopfarms' Business Case (or Business Model) Never Existed and Nowadays, in 2026, They've Mostly Collapsed
Hopefully by year's end many slop suppliers will be offline and slopfarms that rely on them throw in the towel
March in London Today Against Slop's Harms to Society (and the Environment), Starting at 12:00 GMT at the Microsoft OpenAI Office
Today there is a protest in London (UK)
Microsoft Mass Layoffs Have Officially Resumed, Microsoft's Waggener Edstrom/Frank Shaw Lied
"The former employees say this was a mass layoff"
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Friday, February 27, 2026
IRC logs for Friday, February 27, 2026