Sysadventures: Getting started with the Raspberry Pi 3 Model B+
I recently wanted to set up the Raspberry Pi 3 B+ as a print server. I had not worked with the RPi before. This post shares some key learnings I made.
How to setup wi-fi on the Raspberry PI 3 Model B+
First thing I had to figure out was how to get the RPi online. Thankfully, the RPi 3 features an in-built wi-fi functionality. So, there was no need to purchase a separate dongle for that.
I flashed my MicroSD card with Raspbian Stretch Lite operating system (guide here). A thing to note here is that on MacOS or Windows it will complain that they do not recognise a volume (drive) on the newly flashed MicroSD card. It threw me around for a spell but that is just to be expected since the linux OS uses a filesystem that the MacOS/Windows doesn’t understand.
Then I had to configure the /boot volume on the MicroSD card. This volume is recognised by any OS. My goal here was to have the RPi automatically connect to my wi-fi on startup.
I added a
wpa_supplicant.conf file to the
/boot volume. The RPi deletes this file on startup so it might be smart to have a local copy to edit and copy into /boot when you want to update the configuration. Here’s the guide for setting up wpa_supplicant.conf.
Finally, to enable ssh I had to create an empty file just called
ssh in the
/boot volume. This sets up a default ssh setup. Needless to say when you first login you should change the pi user’s password. RPi docs: How to enable SSH.
How to find the Raspberry PI 3 Model B+ on the Wi-fi network
Finding the RBi on your local network can be a hassle.
Or so I used to think.
I was pleasantly surprised that the Raspbian OS is automatically findable on
raspberrypi.local thanks to multicast-DNS.
This meant that the RPi was immediately reachable in my terminal with:
In the browser it was reachable on raspberrypi.local. Sweet!
How to fix locale warnings on Raspbian
After ssh’ing into the RPi and installing some packages I found that the terminal would log some warnings about missing locale. There are all sorts of proposed solutions to this. The most common solution is to call
sudo dpkg-reconfigure locales but that did not fix my issue.
I first identified which locale’s were not correctly set by calling
locale in the terminal.
pi@raspberrypi:~ $ locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=en_GB.UTF-8 LANGUAGE= LC_CTYPE=UTF-8 LC_NUMERIC="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_PAPER="en_GB.UTF-8" LC_NAME="en_GB.UTF-8" LC_ADDRESS="en_GB.UTF-8" LC_TELEPHONE="en_GB.UTF-8" LC_MEASUREMENT="en_GB.UTF-8" LC_IDENTIFICATION="en_GB.UTF-8" LC_ALL=
There are various ways to set the missing values within the Linux environment. After reading up on this Stackoverflow answer on configuring environment variables I decided to set the missing variables in
/etc/environment. Afterwards, when logging in again and calling
locale it no longer complained about missing locales.
Other nice finds on this sysadventure
The printer software CUPS worked splendidly. ✨
CUPS has a web interface that you can reach over the local network.
# Allow remote-admins to reach the print server on # http://raspberrypi.local:631 sudo cupsctl --remote-admin --share-printers # Is the service up? Call this to check. service cups status # Check the service's logs with journalctl -u cups.service
Here’s where I learned about the
cupctl command. To actually administrate the printers over the web I had to add the
pi to the administrator user group in
/etc/cups/cups-files.conf. And then restart the service. Finally, when adding a new printer in the CUPS web page wants to redirect to a https connection with a self-signed certificate. This will throw an expected warning in your browser. I could not do this by visiting http://raspberrypi.local:631, I had to go to the RPi’s ip directly.
If you flashed the card with the Raspbian OS version that doesn’t have the graphical desktop pre-installed, you can easily install it afterwards by calling
sudo apt install raspberrypi-ui-mods (source).
In sum, I have to say I learnt a lot and I’m impressed by the RPi. I can’t wait to use it for more projects. 😀