Trucco per ottimizzare la Raspberry PI 3B+

La Raspi è una macchinetta piccola per un utilizzo che su un computer desktop o laptop al giorno d’oggi consideriamo sostanzialmente banale e per ottimizzarla un pochettino oggi vi presento un trucchetto veloce veloce.

Problema

Ho tentato di avviare un container NextCloud su Docker.

Premetto che avevo già alcuni container Docker funzionanti su di un’installazione Raspbian, come ad esempio OpenVPN, Pi-Hole e MotionEye e aggiungendo i container di MariaDB e di NextCloud mi sono trovato con solo 44 mega di Ram liberi.

Soluzione

Seguendo il corso LPI di primo livello di Morrolinux su Udemy, uno dei primi video è quello inerente alla swap e c’è anche la spiegazione di come abilitare la swap su file e ne ho fatto tesoro

In prima battuta ho pensato di ripartizionare, ma sarebbe stato un casino e poi mi sono vagamente ricordato che era possibile formattare un file ed abilitarlo da /etc/fstab.

Ho preso la mia tastierina, cambiato il canale della mia televisione sulla porta HDMI e ho pensato di aprire per prima cosa il file /etc/fstab della mia Raspberry Pi.

Sul file c’è scritto infatti che non bisogna inserire nuove voci per la swap, ma di usare dphys-swapfile swapon.

Io mi sono letto la pagina man a riguardo di questo comando che non conoscevo e sostanzialmente c’è scritto che il file di configurazione è il rispettivo file di configurazione in /etc/dphys-swapfile.

l’ho aperto con nano, ho modificato la voce CONF_SWAPSIZE da 100 a 2048 che sostanzialmente sono da 100 Mega a 2 GB di swap e poi con il comando “dphys-swapfile swapon” l’ho abilitata.

Un check veloce con “free -m” e adesso la mia installazione di Nexcloud è molto più responsiva.

Alla prossima.

Come installare un’immagine disco su una Micro SD con dd o Etcher

La Raspberry è un essere semplice, o perlomeno resa tale dall’avanzamento tecnologico dei sistemi operativi open source e dei processi di installazione automatici.

In questa mini guida andremo a vedere la parte del processo di installazione più controversa e per la quale ho visto i maggiori dubbi.

Avendo formattato diverse chiavette ad uso distribuzioni Linux e amando la linea di comando, in quanto la ritengo comodissima per le operazioni di amministrazione, posso dire di aver trovato un mantra perfetto per copiare le immagini dei sistemi operativi e rendere una chiavetta USB o una micro SD avviabile: l’uso di dd.

Ma facciamo un passo indietro

Individuare il punto di mount della Micro SD con gparted

Poniamo che nelle nostre disponibilità ci sia una una Micro SD da formattare ed un sistema operativo open source, come ad esempio NextCloudPi.

La inseriamo nel nostro computer con la nostra distribuzione Linux fiammante, appena scaricata salvata sull’hard disk e magicamente la chiavetta si monta in automatico.

A questo punto dobbiamo individuare il punto dove è stata montata la nostra Micro SD.

La via che a mio personale parere trovo più semplice è di usare gparted.

Questa procedura è fattibile su ogni derivata di Ubuntu e Debian, se avete altre distribuzioni, per installare le applicazioni il comando sarà diverso (ad esempio yum al posto di apt-get:

sudo apt-get install gparted -y
sudo gparted

e vi verrà mostrata una schermata simile alla seguente:

In alto a destra troviamo la tendina con la lista delle memorie (hard disk, schede di memoria ecc…) collegate al nostro computer.

Per trovare la nostra scheda dovremo far riferimento alla capienza della stessa.

La selezioniamo e al centro della schermata ci compariranno le partizioni della Mircro SD

ATTENZIONE: andremo ad eliminare tutti i dati dalla scheda di memoria. Ponete attenzione a selezionare la scheda giusta; se no vi ritroverete con i dati dell’hard disk o della memoria difficilmente se non impossibili da recuperare; ed io non me ne prendo alcuna responsabilità

La selezioniamo e con un click col tasto destro su ognuna delle partizioni dell’hard disk andremo prima a smontarle con unmount, poi ad eliminarle ad una ad una e infine clicchiamo la spunta verde per applicare le modifiche.

A questo punto abbiamo la schedina Micro SD completamente vuota e smontata

Trovare il percorso del file system

Prima di chiudere gparted segnamoci il percorso del file system della periferica, ad esempio /dev/sdc.

Un altro modo per trovarlo è tramite la mitica riga di comando:

df -h

nella prima colonna sono segnati i percorsi di tutti i file system e ad occhio, tramite la dimensione in Giga, riconosciamo la nostra schedina Micro SD

Copiare i dati con dd

ATTENZIONE: la procedura descritta in seguito è molto delicata ed io non mi prendo alcuna responsabilità se copiate l’immagine sul drive sbagliato.

Quindi ponete attenzione a quel che fate.

Per una guida sul comando dd fare riferimento a questo link o digitate da terminale man dd

A questo punto se abbiamo già scaricato l’immagine dell’OS che vogliamo caricare sulla Micro SD, la procedura è abbastanza semplice…via terminale scrivere:

dd bs=4M if=path/dell/immagine.iso of=/dev/sdX

avendo cura di sostiutuire la X di /dev/sdX con la lettera della nostra Micro SD che ci siamo segnati prima e /pat/dell/immagine.iso con il path dove abbiamo salvato l’immagine disco.

Aspettiamo con pazienza che esegua il comando e la nostra Micro SD una volta smontata è pronta per essere inserita nella nostra Raspberry spenta

Copiare i dati con Etcher

un altro metodo, più user friendly, per scrivere le immagini dico su una Micro SD è Etcher, scaricabile qui, che è un programma multipiattaforma con interfaccia grafica.

Semplicemente si sceglie l’immagine .img del sistema operativo, si seleziona la nostra micro SD e si flasha.

Ora è tutto pronto per installare la Micro SD sulla Raspberry e iniziare ad esplorare le meraviglie di questo piccolo computer.

Buona vita.

Come configurare un dns dinamico con duckdns.org

Tra i tanti servizi che ho trovato per configurare un dns dinamico gratuito, sono incappato in duckdns.org, che fino ad ora si è dimostrato affidabile e facile da configurare con la mia Rasperry Pi 3 B+.
Cos’è e a cosa serve un DNS Dinamico

A riguardo dei DNS Dinamici o DDNS o Dinamic DNS, Wikipedia a questa pagina dice:

I nomi DNS (ad esempio www.kernel.org) sono normalmente associati stabilmente ad indirizzi IP (ad esempio 147.75.44.153), i quali a loro volta sono stabilmente assegnati ad host (di solito computer) che hanno funzioni di server. Molti host, in particolare quelli che si collegano ad internet utilizzando i servizi di uno (o più) ISP, ricevono invece un indirizzo IP diverso ad ogni connessione. Pertanto è impossibile raggiungerli da internet, perché non si conosce il loro indirizzo IP. Ciò preclude la possibilità di amministrarli remotamente e di offrire servizi su questi host.

Il DNS dinamico permette a questi host di essere sempre raggiungibili attraverso il loro nome DNS, e quindi rende possibile amministrarli remotamente ed erogare servizi raggiungibili da chiunque su internet.

I servizi di cui parla, possono essere ad esempio siti web, server di posta, programmi come NextCloud, server ftp o una VPN privata.

Quindi per rendere raggiungibile alcuni servizi della nostra rete dall’esterno, non avendo un IP statico, dobbiamo fare la procedura che segue.

I siti che offrono Dynamic DNS gratuito, sono parecchi ed io ho scelto duckdns.org, iniziando per provare, poi adottato in pianta stabile vista la sua affidabilità.

Procedura di registrazione a duckdns.org

Una volta su duckdns.org (clicca qui) ci si presenta la pagina principale, dove in alto ci sono vari tipi di login.

Ne scegliete uno e vi verrà presentata una schermata simile alla seguente:

A volte bisognerà avere un po’ di pazienza e ritentare alcune volte, in quanto il sito web non è proprio perfetto e come nel mio caso ho fatto 5 o 6 tentativi con la seguente schermata:

A questo punto aggiungiamo il nome del sotto dominio e clicchiamo su add domain e abbiamo bello pronto il nostro indirizzo DNS Dinamico

Configurare l’aggiornamento del DNS Dinamico

A questo punto dobbiamo fare in modo che il nostro IP sia sincronizzato con il nostro terzo livello su duckdns.

Per farlo, cliccando qui, si va alla bellissima pagina delle istruzioni per i vari sistemi operativi dove ci spiega passo a passo le impostazioni da mettere.

Io ho seguito la procedura per linux cron, e come prima cosa ho notato che qualche volta, la VPN che avevo installato sulla mia Raspberry perdeva la connessione proprio mentre mi stavo stimando con un collega di averla configurata.

Infatti era settata per aggiornare l’IP del DNS Dinamico ogni 5 minuti e l’IP Dinamico della mia connessione di casa cambia purtroppo spesso.

Mi ha consigliato di impostarla ad 1 minuto, in quanto mi ha accennato che il TTL degli IP dinamici è appunto di 1 minuto (o qualcosa del genere).

Comunque a parte se ho capito bene o male, ho cambiato quell’impostazione e adesso va che è una favola

Esporre un servizio tramite DDNS

A seconda di che servizio vogliamo esporre ad internet della nostra rete locale, dovremo aprire la porta corrispondente sul router e sul firewall del computer che lo fornirà.

Per farlo bisogna accedere all’amministrazione del router e fare il port forwarding della porta verso l’ip dell’apparecchio.

Per vedere guide dettagliate per vari router cliccare qui

Se abbiamo impostato un indirizzo statico al computer, tanto meglio, se no molti router riconoscono l’ip del port forwarding in automatico tramite il MAC address

Conclusione

Alla fine magari, mi sono dilungato anche troppo in spiegazioni per una procedura così semplice.

Ma tant’è, a volte può servire una mini guida per avventurarsi in un territorio sconosciuto.

Buona vita