Freedomstack
Overview
On Thursday, April 21 2022 a meeting was held at meet.gr0x0rd.com where we discussed the necessity of building a local alternative to the internet. We agreed that we would use raspberry pi devices running linux that could serve as hosts for a mesh network based on reticulum and qortal. I was tasked with getting an image up and running that could be deployed to pi devices within the community, and to provide that image.
My intention here is to provide the instructions for building said image so that can be reviewed by the community and leveraged by others.
After some basic research I have, at least initially, chosen to implement this project using Archlinux.
Why Archlinux?
There will probably be some questions on why I would choose Archlinux to run on the Raspberry Pi ARM architecture as opposed to the default Raspberry Pi OS or some other more common or vanilla distro. Some justification for that thought process:
- Customization. Arch is highly customizable and lean, but doesn't suffer from the "build your own excitement brick by brick" heavy lifting of Gentoo and other from-source distros.
- Heterogeneity. The most commonly used distros, and those will some sort of corporate structure attached (for example Red Hat and Ubuntu) will be early targets.
- It's Canadian. Yes, Arch is still a Canadian based project, as far as I know eh.
- Documentation. The community docs are great (I haven't ever had to ask a question on the forums and have run it nearly 5 years) and have expanded on that here in this wiki.
Install
If you are unfamiliar with the raspberry pi and how it works, you may benefit from browsing some of my |previous documentation.
I procured the ArchLinux ARM boot image for the raspberry pi from https://archlinuxarm.org/about/downloads . You will want the image for the Raspberry Pi 3/4, which is the ARMv8 image. I noted that the download was not secure as it lacked a security certificate (fucking guys too lazy for letsencrypt I guess). I didn't bother with the md5 checksums, but I did a quick clamscan on it to make sure there weren't any nasties in the archive.
Insert your sd card into a reader and connect it to your system. Note that these instructions are for linux. Someone may want to make instructions for Windows eventually, but time would likely be better spent teaching Windows users to use linux (my opinion). This guide assumes a kernel assignment for the sd cards of /dev/sdX . I usually use
$ ls -al /dev/sd*
To identify the drive. Before you overwrite it with the image, if there is anything precious on it, you may want to |Create_a_disk_image_of_an_sdcard. If any of the sdcard partitions auto-mounted in your desktop UI, unmount (but do no eject) them. Next, extract the disk image to the sdcard.
$