KC7MM Wiki

Amateur Radio with KC7MM

User Tools

Site Tools


linux:devices:raspberrypi:debian64

Installing Debian arm64 on a Raspberry Pi

June, 2021

The server (an old Atom-powered PC) on which I ran my ham radio wiki on my local network died, so I decided to try to set up its replacement on a Raspberry Pi 3. I settled on Debian as the OS, both because it would provide a lightweight system for the 1GB Pi, and because it would give me a system that I could configure exactly as I wanted it. Also, I thought it would be interesting to have a 64-bit operating system running on the 64-bit Pi. In the end, it went so well that I repeated it with a Pi 4.

It had been many years since I last installed a basic Debian system, and my system administration skills had grown more than a little rusty. Also, Debian has changed over the years, particularly in adopting systemd. Those things combined to make it a learning experience for me. Still, with the assistance of the Web, I was able to get one up and running more quickly than I had expected.

Installing Debian 11 Bullseye on a Raspberry Pi 3B+ (and 4)

When I did this in early June, 2021, Debian 11 Bullseye was in its release candidate stage, so I figured it would be stable enough to try to see whether it would serve my needs. Some things surely have changed since then as the final bugs were ironed out, but the installation process should work the same way. With the exception of the Debian ISO selected, this process is pretty much the same for both Pi versions 3 and 4.

Installation

  • I downloaded the image from Debian tested images page. I selected the image for Bullseye on the Pi version 3.
  • On my Linux Mint 20 machine, burned the image to a 16GB microSD card, using the USB Image Writer utility that comes with the Cinnamon desktop.
  • Plugged the SD card into the Pi, applied power, and the system booted to a bash prompt. I logged in as root, with no password needed.
  • Debian uses systemd, so I ran hostnamectl to see what I had. It showed that the kernel was version 5.10.0.5, architecture arm64. I also ran df to check free space, and was gratified to see that the original 1.3GB image had been expanded to fill the entire 16GB SD card.

The system at this point consists of the most basic working system. No application software or GUI are installed. It also is only minimally configured. There is no install program with the image, so settings that typically are made during an install, such as passwords, user, time zone, need to be configured manually. How I did that follows below.

[A note on root: I discovered on the Pi 3 that the system seemed to be set up for using sudo, rather than running as the root user. Few shell commands are in root’s path, though I was able to find (and run) them in /usr/sbin. Once I installed sudo and ran as a sudo user, all the commands were in my path. That wasn’t a problem on the Pi 4.]

Configuration

  • First, I ran passwd to set a password for root.
  • Next I updated the system with apt update followed by apt upgrade. This must be done first, in order to get the repository set up properly. If this isn’t done, subsequent steps that install software will fail.
  • A new kernel was included in the upgrade, so I rebooted the system in order to load it: shutdown -r now.
  • I set the hostname using hostnamectl set-hostname <HOSTNAME>, followed by editing the /etc/hosts file (with vi or nano) to add new line to make a reference to it: 127.0.0.1 <HOSTNAME>.
  • I added myself as a user with adduser myusername.
  • I installed sudo using apt install sudo. I added my user to the sudoers group using usermod -a -G sudo myusername. I then logged out as root and back in again as myself so I could continue the installation using sudo.
  • Locales need to be set. Ran apt install locales to install the package. I ran dpkg-reconfigure locales and selected the locales I wanted to be generated, then selected a default locale on the next screen.
  • Set up a static IP address following the instructions here. The file to edit is /etc/network/interfaces.d/eth0.
  • I set the time zone for my location with sudo timedatectl set-timezone America/Los_Angeles.
  • The final item before starting the installation of my application software was to test SSH so I could run the Pi headless. SSH is enabled by default, so all I had to do was to go to another host and log in from a terminal there. I prefer having to provide a password every time I log in, but automated authentication can be configured by following instructions in item 4 of the Debian FAQs for the Pi images

Installing the application software

At this point, the system was ready for software installation. I was able to install Dokuwiki and restore my site pages from a backup. Since then, the system has been working just as it should, using even less electricity than the frugal Atom-powered box it replaced.

linux/devices/raspberrypi/debian64.txt · Last modified: 2021/06/21 21:04 by KC7MM