Raspberry Pi

Raspberry Pi, il piccolo computer con cuore GNU-Linux pensato per interagire con il mondo! 🙂

Tutti noi usiamo i computer per lavorare, navigare, giocare… ma lo avete mai usato per interagire con il mondo? Adesso scrivere un programmino per accendere una luce è alla portata di tutti. Fantastico no?

Primo avvio

Per poter usare la Raspberry Pi, è necessario scaricare il sistema operativo dal sito ufficiale e copiarlo su una micro sd (trovate la guida qui). Se dovete usare la Raspberry Pi per applicazioni embedded vi consiglio di sfruttare la leggerezza della distribuzione Raspbian Jessie Lite (oggi è 30 marzo 2016). Questa distribuzione è minimal, con relativo guadagno in termini di tempi di boot.

Una volta creata la micro sd, avviate la Raspberry Pi. Per accedere inserire come username “pi” e come password “raspberry” (ovviamente senza gli apici doppi) che sono le credenziali di default per ogni sistema operativo raspbian.

Configurare la Raspberry Pi

Essendo molto leggera come distribuzione Raspbian Jessie Lite non ha il supporto del desktop grafico. E a noi questa cosa fa piacere. Nasce però immediatamente l’esigenza della connessione ad una rete per collegarla ad internet e controllarla da remoto in “ssh“. Se avete una Dongle WiFi usb allora è necessario configurare il sistema affinché riconosca la vostra WiFi di casa.

Configurare la WiFi

Entrare in modalità super utente con il comando

sudo su

Modificare il file di configurazione WiFi con il seguente comando

nano /etc/wpa_supplicant/wpa_supplicant.conf

aggiungendo in coda al file le seguenti righe:

network={
ssid="nome wifi"
psk="password wifi"
}

A questo punto salvare ed uscire dal programma “nano” e riavviare la Raspberry Pi con il comando

reboot

potete farlo perché siete loggati come root.

Connessione tramite ssh

La connessione ssh alla Raspberry Pi è disabilitata di default. Ci sono 2 metodi per abilitare il collegamento ssh alla vostra RBPI.

1) Inserire la scheda SD in un pc e creare un file vuoto chiamato ssh nella partizione di boot. Il comando da usare nella partizione di boot è:

touch ssh

con questo metodo non abbiamo bisogno di collegare la Raspberry Pi ad un monitor e ad una tastiera.

2) Se la Raspberry Pi è collegata ad un monitor e ad una tastiera, allora da terminale digitiamo il comando:

sudo raspi-config

e navigando nelle varie sezioni scegliere “Interfacing Options”

Poi scegliere SSH

Quindi scegliere YES.

Ora riavviate la Raspberry Pi. Da questo momento potete accedere tramite ssh.

Installare Java8 Oracle sulla Raspberry Pi

Usando il super user, cerchiamo il nome del pacchetto java8 usando il comando

apt-cache search java8

otteniamo quindi una lista che ci permetterà di individuare il pacchetto

oracle-java8-jdk - Javaâ„¢ Platform, Standard Edition 8 Development Kit

quindi lo installiamo

apt install oracle-java8-jdk

Ricerca della Raspberry Pi usando nmap

Supponiamo il nostro pc portatile o desktop abbia un indirizzo del genere 192.168.43.243 e che la raspberry pi sia collegata alla stessa rete.
Con il comando nmap possiamo ricercare l’ip della raspberry pi, es:

nmap -sn 192.168.43.

di seguito il risultato

Starting Nmap 6.40 ( http://nmap.org ) at 2017-06-28 22:14 CEST
Nmap scan report for 192.168.43.1
Host is up (0.0089s latency).
Nmap scan report for raspberrypi (192.168.43.145)
Host is up (0.012s latency).
Nmap scan report for andrea-Precision-M4800 (192.168.43.243)
Host is up (0.00031s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 3.07 seconds

leggendo il risultato troviamo l’ip della nostra raspberry pi: 192.168.43.145

Per collegarci quindi:

ssh pi@192.168.43.145

oppure ancora più semplicemente, usando il nome dell’host:

ssh pi@raspberrypi

In quest’ultimo caso non è necessario nemmeno conoscere l’ip della raspberry pi.

Settaggio indirizzo IP statico.

Per praticità settiamo un ip statico alla nostra raspberry pi, così sapremo che per collegarci basterà semplicemente usare quell’ip. Vediamo come fare:

Modificare il file di configurazione dell’interfaccia di rete.

sudo nano /etc/network/interfaces

Sulla mia Raspberry Pi Zero ho installato una dongle WiFi, quindi andrò a modificare l’interfaccia wlan0, modificando le seguenti righe:

iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

in:

iface wlan0 inet static
address 192.168.1.5
netmask 255.255.255.0
gateway 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Questo e tutto, riavviate e accedete usando l’ip statico che avete settato.

raspi-config

Il programma che Raspbian mette a disposizione per la configurazione di base della Raspberry Pi è raspi-config. Bisogna eseguire questo comando in modalità super utente.

sudo raspi-config

comparirà la seguente schermata:

Migliorare i tempi di boot

Raspbian Jessie Lite, è incredibilmente leggero. Ciononostante, possiamo spingere ancora di più sull’acceleratore e cercare di raggiungere il limite in termini di tempi di boot. Ma perché? I motivi sono tantissimi, ma a noi basta sapere che per le applicazioni IoT più il sistema parte in fretta, meglio è. 🙂

Come si fa? Beh il Raspbian Jessie Lite, come quasi tutti i sistemi linux da qualche anno a questa parte, monta un boot manager che si chiama “Systemd”, che mette a disposizione una serie di strumenti con i quali possiamo fare hacking per ridurre il tempo di boot.

Il primo comando ci permette di sapere il tempo di boot sia del kernel che della parte utente:

systemd-analyze

il risultato è questo:

Startup finished in 2.330s (kernel) + 29.536s (userspace) = 31.867s

Boot tuning

Cerchiamo di migliorare i tempi di boot. Come primo passo espandiamo il file system della Raspberry Pi per tutto il disco usando l’opzione numero 1 di raspi-config.

Startup finished in 2.324s (kernel) + 27.129s (userspace) = 29.453s

Abbiamo guadagnato 2.407s.

Usando ancora il tool raspi-config ma selezionando l’opzione 4, scegliamo “Fast Boot without waiting for network connection”… riavviamo e controlliamo i tempi.

Startup finished in 2.438s (kernel) + 17.123s (userspace) = 19.562s

Abbiamo guadagnato 9.891s. E la connessione ssh funziona correttamente perché l’ip è rimasto 192.168.1.5

Analizziamo i tempi di boot

Possiamo guadagnare altro tempo interrompendo qualche servizio che non ci interessa. Esiste un comando che ci permette di sapere i tempi di boot dei servizi che partono all’avvio di Raspbian, ed è:

systemd-analyze blame

Risultato

          4.261s networking.service
          2.289s keyboard-setup.service
          2.021s systemd-logind.service
          1.661s console-setup.service
          1.370s raspi-config.service
          1.310s alsa-restore.service
          1.148s kbd.service
          1.096s dhcpcd.service
          1.065s systemd-fsck-root.service
          1.048s triggerhappy.service
           937ms systemd-setup-dgram-qlen.service
           910ms fake-hwclock.service
           766ms dev-mqueue.mount
           725ms kmod-static-nodes.service
           660ms systemd-journal-flush.service
           647ms rc-local.service
           597ms systemd-udev-trigger.service
           478ms systemd-tmpfiles-setup.service
           412ms plymouth-read-write.service
           364ms rsyslog.service
           342ms systemd-modules-load.service
           242ms systemd-tmpfiles-setup-dev.service
           236ms systemd-sysctl.service
           225ms systemd-update-utmp-runlevel.service
           223ms systemd-user-sessions.service
           201ms systemd-fsck@dev-mmcblk0p1.service
           179ms boot.mount
           174ms sys-kernel-config.mount
           165ms plymouth-quit-wait.service
           145ms systemd-remount-fs.service
           144ms systemd-update-utmp.service
           136ms systemd-random-seed.service
           109ms sys-kernel-debug.mount
            74ms udev-finish.service
            67ms plymouth-quit.service
            64ms systemd-udevd.service

Lascia un commento