Come connettersi SSH al Raspberry Pi

Anche questa semplice guida come quella per aggiornarlo potrà sembrar banale per molti, però probabilmente per altrettanti non è così tutto ovvio e nessuno nasce imparato.

Presupponendo che il vostro computer sia connesso alla stessa rete locale (Wi-Fi o ethernet che sia) e che il Raspberry abbia l’SSH server attivo, nel caso attivatelo in questo modo.
E presupponendo anche che non abbiate cambiato hostname (raspberrypi.local) ne username (pi in questo caso) lasciando quelli di default di Raspbian.

Ora dipende tutto dal sistema operativo dal quale vi volete connettere.

Se siete da macOS o da Linux, vi basterà aprire il terminale e digitare:

ssh pi@raspberrypi.local

Inserire la password (che di default sarà raspberry) e voilà, collegati! Ora potrete comandare a distanza il vostro Raspberry senza dover avere una tastiera collegata o un monitor.

Se invece siete da Windows dovrete installare un software per poterlo fare, ad esempio Putty. Seguite i passaggi e nei parametri mettete come sopra, raspberrypi.local come hostname e pi come user.

Mentre se non avete un computer ma uno smartphone, per iOS c’è Terminus mentre per Android JuiceSSH.

Come creare una VPN con Raspberry Pi

Oramai creare una VPN personale (cos’è una VPN?) è diventato un gioco da ragazzi, quello che vi servirà è un semplice Raspberry Pi e una connessione a internet (cosa che spero abbiate).

Prima di tutto collegatevi in SSH al vostro piccolo Pi, fate gli aggiornamenti ed eseguite:

curl -L https://marcotini.com/pivpn | bash

Seguite i passaggi (lasciate tutto come vi suggerisce lo script), idem lasciate la porta 1194 e andate nel vostro router a fare il redirect al vostro Pi.

Ora create un nuovo device facendo:

pivpn -a

Dategli il nome e andate nel percorso in cui vi ha salvato il certificato. Recuperatelo e mandatelo al dispositivo con il quale volete connettervi, quindi se è il vostro smartphone, mandatevelo in qualche modo sicuro (e non pubblicatelo da nessuna parte) e apritelo con l’app OpenVPN. Connettetevi e via!

Ecco a voi un tunnel dal vostro smartphone al vostro Raspberry Pi! Ora ovunque sarete, il vostro Pi farà le richieste e vi manderà le risposte in modo criptato. Semplicissimo no?!

Come aggiornare il Raspberry Pi

Molto probabilmente questo articolo sarà banale per tanti, però non fa mai male chiarire alcuni concetti base.

Per fare gli aggiornamenti al vostro Raspberry Pi ci sono diverse alternative. O volete installare i semplici aggiornamenti alle nuove versioni o volete andare più pesanti e aggiornare direttamente la distribuzione, con la possibilità che non vi funzioni più niente (purtroppo, anzi per fortuna spesso capita, ma imparerete a farvene una ragione).

Andiamo diretti alla pratica, aggiorniamo:

sudo apt update
sudo apt upgrade

Confermate con una Y + invio (o nel caso lo abbiate in italiano con la S).

Fatto! Sì, già fatto! È davvero così semplice (ringraziate tutti i programmatori Linux, Debian, Raspberry ecc).

Ora, potrebbe essere che abbiate da fare aggiornamenti più importanti ma come detto sopra… fate attenzione perché potrebbe non funzionare più nulla.

sudo apt dist-upgrade

Controllate che sia tutto ok e fate un backup prima di confermare e… via!


Ultima cosa: se avete installato Raspbian dovreste avere un software di gestione installato (anche questo va aggiornato) che dovrebbe aggiornarsi con la procedura update+upgrade. Nel caso così non fosse, fate anche:

sudo raspi-config

Andate nel punto 8 (dovrebbe essere ancora quello) e fate Update!

Come abilitare SSH su Raspberry Pi senza tastiera o mouse

Se state configurando il vostro Raspberry Pi nuovo di zecca e non avete voglia di collegarlo a un display con rispettivo mouse e tastiera, ho una soluzione facile e veloce per voi.

Semplicemente inserite la microSD nel vostro computer, andate nella partizione boot  e create un file chiamato ssh. Senza estensione o contenuto, solo e unicamente ssh.

Ora scollegate la memory, rimettetela nel Rasperry Pi e voilà. Eccovi con l’SSH attivo!

Come aumentare lo swap su Raspberry Pi

Come al solito vado dritto al dunque e vi mostro semplicemente come aumentare lo spazio swap dedicato. Modificate questo file:

sudo nano /etc/dphys-swapfile

E cambiate la riga CONF_SWAPFILE=100 in CONF_SWAPFILE=512 (se volete 512 MB, dipende dalla RAM del vostro Raspberry).

Ora semplicemente riavviate con sudo reboot now.

Normalmente dovreste avere 100 mega come nell’immagine qua sotto (potrete controllarlo semplicemente eseguendo swapon:

Swapon

Come fare il backup a CouchPotato

Se state pianificando di spostare il vostro server CouchPotato e non volete perdere tutte le impostazioni, preferenze, account… potrete salvarvi il file .conf situato probabilmente in:

/home/pi/.couchpotato/settings.conf

Semplicemente copiandolo nella nuova destinazione.

Tecnicamente vi basterà salvare quel file di testo e reincollarlo nel nuovo server, ma nel caso fate dei test prima di cancellare completamente tutto!

Ovviamente fate tutto con il servizio disattivato. Vi ricordo che si stoppa semplicemente con la chiamata:

sudo service couchpotato stop

Come installare Transmission su Raspberry Pi

Non sapete cos’è Transmission? Beh ve lo spiego subito: è un software per scaricare torrent tramite interfaccia web, quindi semplicemente da browser potrete collegarvi al vostro piccolo Raspberry Pi e scaricare facilmente dei torrent (anche tramite magnet link).

Aprite il terminale del Pi oppure collegatevi tramite SSH ed eseguite:

sudo apt install transmission-daemon

Vi installerà tutte le dipendenze e in pochi secondi potrete recarvi sul vostro browser con l’indirizzo IP oppure a

http://raspberrypi.local:9091

nel caso non abbiate cambiato hostname.

E voilà.

Se volete modificare le impostazioni dovrete seguire questi passaggi, altrimenti se volete rimuovere automaticamente i download dalla lista una volta che hanno terminato: installate questo script.

Come realizzare una Time Machine con un Raspberry Pi

Personalmente vi consiglio un Raspberry Pi Zero W, costa sui 10 euro e ha Wi-Fi integrato. Con l’aggiunta di un hard disk esterno (costo sui 40 euro per 1TB) potrete realizzare una Time Machine per il vostro Mac.

Allora iniziamo con l’aggiornare il Raspberry (qualunque esso sia, presupponendo che abbiate l’ultima versione di Raspian installata):

sudo apt update
sudo apt upgrade
sudo apt install netatalk hdparm

Ora identificate l’UUID del vostro hard disk (anche qua presupponendo che l’abbiate formattato in ext4) e copiatelo:

sudo blkid

Modifichiamo questo file:

sudo nano /etc/fstab

Aggiungendo in fondo (cambiando 0123456789abc con quello copiato prima):

UUID=0123456789abc /media/disk ext4 defaults 0 2

Poi create la cartella dove andrà montato e montiamo l’hard disk:

sudo mkdir /media/disk
sudo chmod 777 -R /media/disk
sudo mount -a

Ora modifichiamo il parametro di spinning dell’hard disk (per evitare di tenerlo sempre attivo anche quando non c’è nulla che scrive):

sudo nano /etc/hdparm.conf

E incollate al fondo questo:

/dev/sda {
spindown_time = 60
}

Poi modifichiamo l’ultima riga di questo file:

sudo nano /etc/netatalk/AppleVolumes.default

Incollando questo (ovviamente se non volete chiamarlo Tardis, dategli il nome che preferite):

/media/disk "Tardis" options:tm allow:pi

Ora aggiungete questo per avere un’icona nel Finder uguale a quella di una Time Capsule:

sudo nano /etc/avahi/services/afpd.service

Incollando questo:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Tardis</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=TimeCapsule8,119</txt-record>
</service>
</service-group>

E riavviate i processi con:

sudo service avahi-daemon restart
sudo service netatalk restart

E voilà, ecco a voi una Time Machine Wi-Fi (o nel caso ethernet) con meno di 50 euro! Che ne pensate?

Dimenticavo, vi dovrete connettere con l’username pi e la password vostra (nel caso non l’abbiate ancora cambiata dovrebbe essere raspberry).

Come visualizzare spazio libero su Raspberry Pi

O su qualunque distribuzione tipo Ubuntu, Debian ecc vi basterà eseguire da terminale:

df -h

Vi visualizzerà sul terminale una schermata simile a questa:

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1       9.9G  6.7G  2.8G  72% /
udev             10M     0   10M   0% /dev
tmpfs           393M   40M  353M  11% /run
tmpfs           982M     0  982M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           982M     0  982M   0% /sys/fs/cgroup
tmpfs           197M     0  197M   0% /run/user/0

E potrete valutare se e come liberare spazio, nel caso non ne abbiate più disponibile.

Come rimuovere automaticamente i torrent completati da Transmission

Se utilizzate Transmission sul vostro Raspberry Pi (o su qualunque altro tipo di computer/server) e volete automaticamente rimuovere dalla lista i torrent che hanno finito, dovete seguire questi semplici passaggi.

Prima di tutto stoppate il servizio di transmission con:

sudo service transmission stop

Poi cambiate due righe qua:

sudo nano /var/lib/transmission-daemon/info/settings.json

Con:

"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/home/pi/transmissionpurge.sh",

Ora chiudete e salvate con CTRL+X ed eseguite:

sudo nano transmissionpurge.sh

E incollate:

#!/bin/sh

SERVER="9091 --auth transmission:transmission"

TORRENTLIST=`transmission-remote $SERVER --list | sed -e '1d;$d;s/^ *//' | cut --only-delimited --delimiter=" " --fields=1`

transmission-remote $SERVER --list

for TORRENTID in $TORRENTLIST

do

echo Processing : $TORRENTID

DL_COMPLETED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "Percent Done: 100%"`
STATE_STOPPED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "State: Seeding\|Stopped\|Finished\|Idle"`

if [ "$DL_COMPLETED" ] && [ "$STATE_STOPPED" ]; then

transmission-remote $SERVER --torrent $TORRENTID --remove

else

echo "Torrent #$TORRENTID is not completed. Ignoring."

fi

done

Ora dategli i permessi di esecuzione con:

sudo chmod 777 /home/pi/transmissionpurge.sh

E il gioco è fatto! ora ogni volta che ultimerete un torrent, esso verrà subito cancellato dalla lista.

Ah quasi dimenticavo, riavviate transmission con:

sudo service transmission start

Come installare nginx su Raspberry Pi

Prima di tutto dovete fare una cosa importantissima, rimuovete Apache:

sudo apt-get remove apache2

Ora che l’avete rimosso e potete iniziare a divertirvi seriamente, installate nginx:

sudo apt-get install nginx

Finito. Ecco sì, finito! Avrà già configurato la cartella che usavate in precedenza e tutto quanto dovrebbe funzionarvi alla perfezione (ovviamente meglio di prima).

Nel caso, configurate quel che vi manca da qua:

sudo nano /etc/nginx/sites-available/default

Posso garantirvi personalmente, che non sentirete la mancanza. E anzi, vi domanderete perché non l’avete fatto prima!

Come installare Headphones su Raspberry Pi

Penso che non abbia bisogno di presentazioni Headphones, allora iniziamo:

sudo git clone https://github.com/rembo10/headphones.git /opt/headphones

Ora create l’utente (nel caso vogliate tenere le cose separate):

sudo touch /etc/default/headphones
sudo adduser --system --no-create-home headphones
sudo chown headphones:nogroup -R /opt/headphones

Per avviare il processo a ogni riavvio del vostro Raspberry Pi:

sudo ln -s /opt/headphones/init-scripts/init.ubuntu /etc/init.d/headphones
sudo update-rc.d headphones defaults
sudo update-rc.d headphones enable

Avviatelo e aspettate che crei il file di configurazione (ci metterà qualche secondo):

sudo service headphones start

Poi stoppatelo con sudo service headphones stop e modificate questo file di configurazione:

sudo nano /opt/headphones/config.ini

Cambiano il campo http_host da localhost a 0.0.0.0 (serve per averlo visibile in tutta la vostra rete locale). Ora quindi andate su http://raspberrypi.local:8181 e voilà.

Come gestire Homebridge con systemd

Se volete gestire Homebridge come servizio e far si che a ogni riavvio venga gestito direttamente dal sistema operativo, senza il supporto di screen come vi avevo fatto vedere qua, seguite questa semplice guida!

Prima di tutto trovate il percorso di Homebridge con:

which homebridge

Poi modificate sudo nano /etc/default/homebridge e incollate:

# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS=-U /var/homebridge

# If you uncomment the following line, homebridge will log more 
# You can display this via systemd's journalctl: journalctl -f -u homebridge
# DEBUG=*

Poi sudo nano /etc/systemd/system/homebridge.service e incollate (cambiando ad ExecStart il percorso che avete trovato precedentemente con il which:

[Unit]
Description=Node.js HomeKit Server 
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

Ora create un utente: sudo useradd --system homebridge, create le cartelle con i permessi giusti e abilitate il servizio:

sudo mkdir /var/homebridge
sudo cp ~/.homebridge/config.json /var/homebridge/
sudo cp -r ~/.homebridge/persist /var/homebridge
sudo chmod -R 0777 /var/homebridge
sudo systemctl daemon-reload
sudo systemctl enable homebridge
sudo service homebridge start

E controllate se funziona con: sudo service homebridge status.

Fonte: https://timleland.com/setup-homebridge-to-start-on-bootup/

Come installare LazyLibrarian su Raspberry Pi

Se volete installare LazyLibrarian su Raspberry Pi non vi basta che eseguire questi due semplici comandi:

sudo git clone https://github.com/DobyTang/LazyLibrarian /opt/lazylibrarian
python /opt/lazylibrarian/LazyLibrarian.py -d

Nel caso vogliate farlo andare in background avviate il daemon togliendo la -d, quindi eseguite: python /opt/lazylibrarian/LazyLibrarian.py -daemon

Se volete che si avvii a ogni riavvio e che parta come servizio, quindi gestibile semplicemente con un sudo service lazylibrarian start fate ancora questi due passaggi:

sudo cp /opt/lazylibrarian/init/lazylibrarian.default /etc/default/lazylibrarian
sudo cp /opt/lazylibrarian/init/lazylibrarian.service /etc/systemd/system/lazylibrarian.service
sudo cp /opt/lazylibrarian/init/lazylibrarian.initd /etc/init.d/lazylibrarian

Ora aprite questo file:

sudo nano /etc/default/lazylibrarian

E aggiungete all’inizio del file USER=pi, salvate e aggiornate:

sudo update-rc.d lazylibrarian defaults
sudo systemctl daemon-reload
sudo systemctl enable lazylibrarian

Ora andate su http://raspberrypi.local:5299 e voilà, già fatto!

Come creare una Time Capsule con Raspberry Pi

Se non volete spendere più di 300 euro per una Time Capsule della Apple e volete realizzare la vostra Time Machine personale, seguite questi semplici passaggi (vi consiglio di partire da una versione di Raspbian nuova e pulita):

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install netatalk libc6-dev avahi-daemon libnss-mdns

Ora aprite questo file:

sudo nano /etc/netatalk/AppleVolumes.default

E al fondo cambiate questa riga (potete anche cambiare percorso nel caso abbiate un hard disk attaccato o una pendrive) con:

/home/pi "Time Capsule" options:tm allow:pi

Ora modificate questo file:

sudo nano /etc/avahi/services/afpd.service

Cancellate tutto e incollate:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Time Capsule</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=TimeCapsule8,119</txt-record>
</service>
</service-group>

Riavviate i servizi e via:

sudo service avahi-daemon restart
sudo service netatalk restart

E… voilà. Davvero! Già finito. Aprite il Finder su macOS e lo vedrete già a lato (Avahi avrà mandato in broadcast dei pacchetti di benvenuto). Ora potete andare sulle impostazioni e configurare il vostro backup!

Come fare uno speedtest alla microSD del Raspberry Pi

Per testare la velocità di scrittura eseguite:

sync; dd if=/dev/zero of=~/test.tmp bs=500K count=1024

Per la lettura:

sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
sync; time dd if=~/test.tmp of=/dev/null bs=500K count=1024

Poi ovviamente cancellate il file temporaneo che ha usato per farlo. Quanto raggiungete voi? 22 MB/s dovrebbe essere una buona media visto il bus condiviso.