Manual Software Installation Instructions:
Begin by acquiring a specific copy of the Raspberry Pi Lite operating system, dated 2021-05-28; this version can be found here:
Best practice is to verify the downloaded .zip file containing the Raspberry Pi Lite OS matches the published SHA256 hash of the file; for additional reference that hash is: c5dad159a2775c687e9281b1a0e586f7471690ae28f2f2282c90e7d59f64273c. After verifying the file’s data integrity, you can decompress the .zip file to obtain the operating system image that it contains. You can then use Balena’s Etcher tool (https://www.balena.io/etcher/) to write the Raspberry Pi Lite software image to a memory card (4 GB or larger). It’s important to note that an image authoring tool must be used (the operating system image cannot be simply copied into a file storage partition on the memory card).
The manual SeedSigner installation and configuration process requires an internet connection on the device to download the necessary libraries and code. But because the Pi Zero 1.3 does not have onboard wifi, you have two options:
- Run these steps on a separate Raspberry Pi 2/3/4 or Zero W which can connect to the internet and then transfer the SD card to the Pi Zero 1.3 when complete.
- OR configure the Pi Zero 1.3 directly by relaying through your computer’s internet connection over USB. See instructions here.
For the following steps you’ll need to either connect a keyboard & monitor to the network-connected Raspberry Pi you are working with, or SSH into the Pi if you’re familiar with that process.
Configure the Pi
First things first, verify that you are using the correct version of the Raspberry Pi Lite operating system by typing the command:
The output of this command should match the following text:
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
Now launch the Raspberry Pi’s System Configuration tool using the command:
Set the following:
Locale: arrow up and down through the list and select or deselect languages with the spacebar.
- Deselect the default language option that is selected
en_US.UTF-8 UTF-8for US English
- You will also need to configure the WiFi settings if you are using the #1 option above to connect to the internet
When you exit the System Configuration tool, you will be prompted to reboot the system; allow the system to reboot and continue with these instructions.
Install these dependencies (you can use this entire text string to install them all at once):
sudo apt-get update && sudo apt-get install -y wiringpi python3-pip python3-numpy python-pil libopenjp2-7 git python3-opencv libzbar0 python3-picamera libatlas-base-dev qrencode
Install the C library for Broadcom BCM 2835:
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz tar zxvf bcm2835-1.60.tar.gz cd bcm2835-1.60/ sudo ./configure sudo make && sudo make check && sudo make install cd .. rm bcm2835-1.60.tar.gz
Install the “virtualenvwrapper” tool:
pip3 install virtualenvwrapper
Edit your bash profile with the command
nano ~/.profile and add the following to the end:
export WORKON_HOME=$HOME/.envs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /home/pi/.local/bin/virtualenvwrapper.sh
Y to exit and save changes.
Now create the python virtualenv for SeedSigner with these two commands:
source ~/.profile mkvirtualenv --python=python3 seedsigner-env
Now download the SeedSigner code:
git clone https://github.com/SeedSigner/seedsigner
Install python dependencies:
cd seedsigner pip3 install -r requirements.txt cd ..
Modify the systemd to run SeedSigner at boot:
sudo nano /etc/systemd/system/seedsigner.service
Add the following contents to the text file that was created:
[Unit] Description=Seedsigner [Service] User=pi WorkingDirectory=/home/pi/seedsigner/src/ ExecStart=/usr/bin/python3 main.py Restart=always [Install] WantedBy=multi-user.target
Y to exit and save changes.
sudo systemctl enable seedsigner.service to enable service on boot. (This will restart the seedsigner code automatically at startup and if it crashes.)
Now reboot the Raspberry Pi with the command:
After the Raspberry Pi reboots, you should see the SeedSigner splash screen and the SeedSigner menu subsequently appear on the LCD screen (note that it can take up to 60 seconds for the menu to appear).
Next, disable and remove the system’s virtual memory / swap file with the commands:
sudo apt remove dphys-swapfile sudo rm /var/swap
For those who will use the SeedSigner installation for testing/development, it can be helpful to change the system’s host name so it doesn’t potentially conflict with other Raspberry Pi’s that may already be present on your network. (For those who don’t plan to use the installation for testing or development, you can skip this portion of the process.) To change the host name first edit the “hostname” with the command:
sudo nano /etc/hostname
and change “raspberrypi” to “seedsigner” (or another name). Use
y to exit and save changes. You’ll also need to edit the “hosts” file with the command:
sudo nano /etc/hosts
and change “raspberrypi” to “seedsigner” (or the other name you previously chose). Use
y to exit and save changes.
It’s also a good idea to change the system’s password from the default “raspberry”. Do do this, use the command:
You will be prompted to enter the current password (raspberry) and then to enter a new password twice. In our prepared release image, the password used is “AirG@pped!” (without quotes).
If you plan to use your installation on a Raspberry Pi that is not a Zero version 1.3, but rather on a Raspberry Pi that has WiFi and Bluetooth capabilities, it is a good idea to disable the following WiFi & Bluetooth, as well as other relevant services (assuming you are not creating this installation for testing/development purposes). Enter the followiing commands to disable WiFi, Bluetooth, & other relevant services:
sudo systemctl disable bluetooth.service sudo systemctl disable wpa_supplicant.service sudo systemctl disable dhcpcd.service sudo systemctl disable sshd.service sudo systemctl disable networking.service sudo systemctl disable dphys-swapfile.service sudo ifconfig wlan0 down
Please note that if you are using WiFi to connect/interact with your Raspberry Pi, the last command will sever that connection.