Un computer completo grande quanto una carta di credito: Raspberry Pi |
Ormai
ha compiuto più di un anno e continua a catturare
l'attenzione di tanti appassionati di informatica ed elettronica, sto
parlando del Raspberry Pi.
Se
state
leggendo questo post probabilmente sapete già che cos'è, nel caso
non ne aveste mai sentito parlare vi invito a leggere questa pagina su Wikipedia
ed a visitare il sito ufficiale.
L'idea
originale è quella di realizzare un dispositivo economico allo scopo di
diffondere l'insegnamento dell'informatica e della programmazione a tutti.
Io
ne ho acquistato uno qualche mese fa e per il momento lo sto
utilizzando principalmente come piccolo server nella mia rete
casalinga. Il punto forte di questo piccolo computer economico è
l'estrema facilità con la quale è possibile connettere sensori e
altri dispositivi elettronici, ci sono infatti centinaia di progetti
online con appositi tutorial.
L'idea
alla base del Raspberry
Pi è, secondo me, l'aspetto più importante, cioè la diffusione
della cultura dell'informatica e della programmazione. Purtroppo
siamo sempre più circondati da dispositivi chiusi che non stimolano
in alcun modo la creatività, ma ci spingono soltanto a fruire di
contenuti a pagamento. Il
Raspberry
Pi non ha nulla a che vedere con tali dispositivi il cui unico scopo
è spillarci denaro, ma al contrario è un piccolo computer versatile
e che utilizza principalmente software libero, a cominciare dal
sistema operativo!
Raspbian GNU/Linux
Il
Raspberry
Pi viene venduto senza sistema operativo, sta all'acquirente
scegliere ed installare un sistema operativo su di una scheda SD e
questa è la prima grande libertà che ci offre.
Attualmente
il sistema operativo più diffuso per questo dispositivo è Raspbian,
una distribuzione derivata da Debian cucita su misura per il nostro
Raspberry
Pi. La diffusione di questo piccolo computer quindi ha spinto molti
ad avvicinarsi al mondo GNU/Linux.
Ho
letto molti forum con utenti Windows
che
non hanno nessuna familiarità con i sistemi GNU/Linux e che
spesso tendono a copiare comandi per il terminale dai tutorial senza
capire molto cosa stanno scrivendo.
Con
questo post vorrei fornire una guida veloce di riferimento per
l'amministrazione del Raspberry
Pi e spiegare brevemente almeno i concetti fondamentali, così che
leggendo dei comandi in un tutorial se ne capisca meglio il
significato.
Gestione degli utenti
In tutti i sistemi ispirati e/o derivati da Unix come
Linux, FreeBSD e OS X l'utente predefinito per l'amministrazione del
sistema si chiama root, detto
anche super
utente. Per motivi di sicurezza non si accede mai al sistema
utilizzando root,
ma si utilizzano utenti standard che, all'occasione, possono ottenere
i privilegi del super utente.
La prima volta che
avviamo Raspbian
troveremo un utente di default che si chiama pi
e la cui password di accesso è raspberry.
Prima
cosa
saggia
da
fare sarebbe
quella
di
cambiare
la password di
pi
con
il comando passwd:
passwd
pi
Ci chiederà di inserire due volte la nuova password per
conferma.
Se magari invece preferiamo creare un nuovo utente con
un nome di nostro gradimento allora possiamo utilizzare il comando
adduser:
sudo adduser [nuovo
utente]
ad esempio:
sudo adduser max
Crea l'utente max.
Ottenere i privilegi del super utente
Per
poter modificare i
file
posti al di fuori della propria cartella home
o per avviare programmi di amministrazione del sistema è necessario
ottenere i privilegi dell'amministratore.
Per
fare questo si utilizza il comando sudo
(dall'inglese super
user
do)
seguito dal comando che si vuole eseguire come amministratore.
Quando
si utilizza sudo
verrà richiesto di autentificarsi con l'inserimento della propria
password utente.
Se
avete creato un nuovo utente con adduser
come nel precedente
esempio,
è
probabile che questo non sia autorizzato ad utilizzare il comando
sudo.
Per abilitare l'utente all'utilizzo di sudo
possiamo aggiungerlo al gruppo sudo con questo comando:
adduser
[nome
utente]
sudo
ad
esempio:
adduser
max sudo
Aggiunge
l'utente max al gruppo sudo.
Organizzazione del file system
root è anche il termine che indica il punto di inizio del disco di sistema, il suo indirizzo è rappresentato dal carattere /.
Per
visualizzare il contenuto del disco ad una data posizione si utilizza
il comando ls
(dall'inglese
list
segments)
seguito dall'indirizzo della posizione, ad esempio:
ls
/
visualizza il contenuto del disco di sistema.
All'interno del disco ci sono una serie di cartelle
standard che hanno uno scopo ed un contenuto ben preciso, quelle che vedremo in questo post sono:
- home – contiene le cartelle home di tutti gli utenti. Ciascun utente ha i diritti di accesso in lettura e scrittura all'interno della propria cartella home.
- mnt – (mount) contiene le cartelle che danno accesso ad i file system degli altri dischi collegati, o meglio dire montati, nel sistema.
- etc – contiene tutte le cartelle ed i file di configurazione del sistema.
Montare hard disk esterni
L'operazione di
mount
di un'unità esterna, che può essere un hard disk o una penna USB,
consiste nel rendere accessibile il contenuto della stessa al nostro
sistema. Normalmente, nelle distribuzioni più comuni questa
operazione è fatta automaticamente nel momento in cui si collega
l'unità, sul Raspberry
Pi invece, questa operazione va fatta manualmente dal terminale.
Quando si “monta”
un disco esterno in pratica si fa in modo che il file
system dell'unità
esterna diventi parte del file
system di sistema.
Come ho spiegato
precedentemente,
la cartella /mnt
è quella destinata a contenere le
cartelle alle quali si
collegano i file system
dei dischi collegati.
Prima cosa da fare è creare una cartella all'interno di /mnt
che farà da punto di inizio del disco esterno, ad esempio:
sudo
mkdir
/mnt/disco
Il comando mkdir
serve a creare nuove cartelle, in questo caso abbiamo creato una
cartella chiamata disco. Ancora
una volta abbiamo usato sudo
perché stiamo apportando modifiche al di fuori della nostra cartella
home.
Colleghiamo il disco
esterno ad una porta USB del Raspberry Pi ed utilizziamo il comando
lsblk (dall'inglese list block devices) per identificare il disco.
lsblk
Verrà visualizzato
sul terminale una lista dei dischi collegati come
questa:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
└─sda1 8:1 0 1.8T 0 part
mmcblk0 179:0 0 14.9G 0 disk
├─mmcblk0p1 179:1 0 56M 0 part /boot
└─mmcblk0p2 179:2 0 14.8G 0 part /
Il disco mmcblk0 è
la scheda SD che contiene
il sistema operativo. Come
chiaramente mostrato la scheda SD ha due partizioni chiamate
rispettivamente mmcblk0p1 e mmcblk0p2.
sda invece è il disco collegato alla porta USB, il
quale, in questo caso, ha una sola partizione identificata come sda1.
Di solito il primo disco esterno collegato è chiamato
sda, quindi ci sarà sdb
per il secondo disco, sdc per il
terzo e così via. Per ogni disco ci possono essere una o più
partizioni identificate dal numero che segue il nome del disco,
quindi sda1 è la prima partizione del disco sda, sda2 la
seconda partizione, ecc...
Ora che conosciamo quale disco e quale partizione
montare basta dare il comando:
sudo mount /dev/sda1
/mnt/disco
Abbiamo comunicato al
comando mount
di associare la prima partizione del disco sda
alla cartella disco
all'interno di /mnt.
Ora possiamo guardare il contenuto del disco
ls /mnt/disco
Modificare i file di configurazione del sistema
Generalmente
tutti
i file di configurazione del sistema sono posti nella cartella /etc
come già detto
precedentemente.
Tra questi troviamo anche i file di configurazione delle applicazioni
o dei demoni che abbiamo installato. In ogni sistema operativo
ispirato a Unix i file di configurazione sono sempre dei file di
testo che possono essere letti e modificati con un
editor di testo. Questo principio di mantenere i file leggibili e
modificabili rende estremamente semplice la configurazione del
sistema.
Per modificare un file di configurazione dobbiamo
lanciare un editor di testo con i privilegi di amministrazione. Ci
sono diversi editor di testo disponibili, uno dei più semplici da
utilizzare è nano:
sudo
nano nome_file
nano
è un editor di testo essenziale e semplice da utilizzare, nome_file
deve essere sostituito con il percorso del file che vogliamo
modificare.
Gli
editor di testo per il terminale non utilizzano il mouse, il cursore
si sposta tramite i tasti freccia. I comandi fondamentali
di
nano sono
i seguenti:
- Ctrl + o salva il testo, prima di salvare chiede conferma del nome del file
- Ctrl + x esce dal programma e torna al terminale, se il testo è stato modificato, ma non ancora salvato, chiede se si vuole procedere con il salvataggio.
Montare un disco esterno automaticamente all'avvio del computer
Per
poter fare in modo che il sistema monti un disco al suo avvio basterà
andare a modificare un file di configurazione che si trova in /etc,
questo file si chiama fstab
(File
System
Table,
tabella dei file system).
Apriamo fstab con
l'editor di testo per configurare il montaggio automatico del disco
sudo nano /etc/fstab
All'interno del file
ci sono tante righe quante
sono le partizioni che vengono integrate nel file system
principale. Ogni riga ha il seguente formato:
<file
system> <punto
di mount> <tipo> <opzioni> <dump> <pass>
- file system è la partizione che vogliamo montare
- punto di mount è la cartella che vogliamo collegare alla partizione
- tipo è il formato del file system della partizione (ext4 è il formato standard di Linux)
- opzioni sono le opzioni per il montaggio del disco, di solite vanno bene quelle di default
- dump è un'opzione deprecata, sarà sempre 0
- pass è l'ordine con il quale la partizione viene controllata dal comando fsck (con 0 non viene controllata)
Per il nostro disco la riga dovrà essere così
/dev/sda1 /mnt/disco ext4 defaults 0 3
Dopo aver aggiunto la riga vista nell'esempio alla fine
del file fstab, possiamo salvare
premendo i tasti Ctrl + o, quindi
usciamo dall'editor con Ctrl + x.
Ora possiamo riavviare il sistema con il disco collegato
e questo verrà montato all'avvio.
Il sistema di aggiornamento ed installazione di programmi
Ciascuna distribuzione adotta un proprio sistema di
gestione dei pacchetti software per l'aggiornamento del sistema e
l'installazione/disinstallazione dei programmi.
Tutti i pacchetti software ed i programmi previsti dai
curatori della distribuzione sono a disposizione degli utenti su dei
server online. Ogni distribuzione avrà quindi uno o più
repository (ripostiglio o
magazzino), cioè un database online, dal quale prelevare i pacchetti
software aggiornati dai curatori.
Nella maggior parte dei casi quindi, per installare un
programma o verificare gli aggiornamenti del sistema e dei programmi
installati basterà interrogare il repository
di riferimento della propria distribuzione.
Per quanto riguarda
il Raspberry
Pi i comandi utilizzati per verificare gli aggiornamenti sono gli
stessi utilizzati in tutti i sistemi Debian e derivati.
I comandi necessari
da terminale sono due, il primo scarica la lista delle versioni di
tutti i pacchetti software presenti nel repository:
sudo
apt-get update
Il
comando sudo
è necessario per ottenere i privilegi di amministratore visto che
l'utente normale non può effettuare operazioni di aggiornamento del
sistema.
Successivamente si
ordina di eseguire l'aggiornamento confrontando le versioni dei
pacchetti prelevate dal repository
con quelli installati attualmente sul sistema:
sudo
apt-get
upgrade
Alla fine della verifica verranno indicati il numero di
pacchetti che devono essere aggiornati o eventualmente installati
ex-novo o eliminati. Dopo aver confermato la volontà di eseguire
l'aggiornamento i pacchetti verranno scaricati ed installati.
Installare programmi o altri pacchetti software
In modo molto simile
alla procedura di aggiornamento si possono installare programmi o
pacchetti nuovi. E' sempre meglio, prima di procedere, aggiornare la
lista delle versioni disponibili sul repository
se non lo si è già fatto in giornata per assicurarci di scaricare
la versione aggiornata.
sudo
apt-get
update
quindi si può procedere all'installazione del pacchetto
voluto con
sudo apt-get install [nome pacchetto]
ad esempio:
sudo
apt-get
install
transmission-daemon
scarica
ed installa il client
torrent
Transmission
in versione daemon
(un demone è un programma eseguito in background senza interfaccia
grafica).
Conclusione
Concludo qui questa breve guida, prossimamente pubblicherò dei tutorial per l'installazione e configurazione di altri pacchetti software.
Nessun commento:
Posta un commento