mercoledì 18 dicembre 2013

Come abilitare TRIM per migliorare le prestazioni del SSD in Debian / Ubuntu

Che cos'è TRIM e perché conviene abilitarlo?
Il comando TRIM comunica al controller del SSD quali sono i blocchi attualmente non in uso, ad esempio quelli liberati a seguito della cancellazione di un file. Il mancato utilizzo del comando TRIM causa, nel lungo periodo, una rilevante riduzione delle prestazioni del SSD.
E' recente la notizia che Ubuntu 14.04 "Trusty Tahr" uscirà con la funzione TRIM per gli SSD abilitata di default, vediamo come abilitarlo anche in Ubuntu 13.10.

Prima cosa da fare è verificare che il nostro SSD supporti il comando TRIM, apriamo il Terminale e digitiamo:

sudo hdparm -I /dev/sda | grep "TRIM supported"

Se questo comando genererà una risposta simile a questa:

* Data Set Management TRIM supported (limit 8 blocks)

allora potete procedere, se al contrario non otterrete alcuna risposta vorrà dire che il vostro SSD non supporta TRIM.

Eseguire TRIM manualmente:

Prima cosa da sapere è come eseguire TRIM da terminale:

sudo fstrim -v /

Questo comando eseguirà TRIM sull'intero disco di sistema, ci vorrà qualche minuto per il completamento, abbiate pazienza ed aspettate, anche se sembrerà non esserci alcuna attività sul SSD.
Se avete più partizioni sul vostro SSD dovrete eseguire questo comando per ciascuna partizione, non fatelo per la partizione di swap in quanto non ne ha bisogno.

Far eseguire automaticamente TRIM dal sistema:

Ci sono diversi modi per far eseguire TRIM dal sistema in modo automatico, vediamo quali:

1. aggiungere l'opzione "discard" in fstab (NON CONSIGLIATO)

Aggiungere l'opzione discard nel vostro file fstab farà in modo che TRIM venga eseguito ogni qualvolta si cancella un file. Questo metodo non è consigliabile perché nel caso in cui dovete cancellare molti file il vostro SSD rallenterà vistosamente, inoltre è inutile eseguire TRIM ad ogni cancellazione di file. Comunque, nonostante lo sconsiglio, vi spiegherò come fare.

sudo nano /etc/fstab

Con questo comando apriamo il file fstab con l'editor di testo nano.
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>

La prima partizione in elenco è quella del sistema operativo, individuabile dal fatto che il punto di mount è /.
Dopo l'indicazione del tipo di filesystem, nel nostro caso ext4, ci sono le opzioni. Dovreste trovare le seguenti opzioni sulla partizione del sistema operativo:
errors=remount-ro
Aggiungete discard alle opzioni separando con una virgola, in questo modo:
discard,errors=remount-ro

Se avete altre partizioni del SSD potete fare lo stesso anche per le altre, ma ricordatevi di non farlo per la partizione di Swap che non ne ha bisogno.
Successivamente possiamo salvare premendo i tasti Ctrl + o, confermare il salvataggio premendo Invio, quindi uscire dall'editor con Ctrl + x.
Riavviate il sistema e avrete il TRIM attivo.

2. eseguire all'avvio del sistema TRIM aggiungendolo al file /etc/rc.local

Questo metodo eseguirà TRIM durante l'avvio del sistema, il prezzo da pagare è il rallentamento del boot, altra nota negativa è che su un PC sempre acceso non verrà mai eseguito. Personalmente non ho applicato questo metodo sul mio PC perché lo spengo e lo riavvio più volte al giorno, ma è una scelta valida per molti, vediamo come fare.

sudo nano /etc/rc.local

Il file si presenta sostanzialmente così:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exit 0

Aggiungete il comando per invocare TRIM prima di exit 0, per ottenere questo:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
fstrim -v /
exit 0

Salvate  premendo i tasti Ctrl + o, confermate il salvataggio premendo Invio, quindi uscite dall'editor con Ctrl + x.
Riavviate il PC, da ora in poi, ad ogni avvio, verrà eseguito TRIM.

3. eseguire TRIM automaticamente una volta al giorno tramite /etc/cron.daily

Questo è il metodo che preferisco, TRIM verrà eseguito una volta al giorno all'ora stabilita da cron. Se il PC dovesse essere spento nell'ora stabilita, allora verrà eseguito non appena sarà possibile farlo.
Bene, vediamo come fare:

sudo nano /etc/cron.daily/trim

Creiamo un nuovo file chiamato trim all'interno di /etc/cron.daily, adesso scriviamo le seguenti righe:

#!/bin/sh
fstrim -v /

Ora salvate  premendo i tasti Ctrl + o, confermate il salvataggio premendo Invio, quindi uscite dall'editor con Ctrl + x.
Ora bisogna rendere il file appena creato eseguibile con il comando:

sudo chmod a+x /etc/cron.daily/trim

Riavviate il PC, da ora in poi TRIM verrà eseguito automaticamente una volta al giorno.

Un piccolo trucco per limitare le scritture sul SSD allo scopo di allungarne la vita:

Probabilmente saprete già che la longevità del vostro SSD è legata al numero di scritture eseguite. Effettuare spesso operazioni in scrittura ne accorcerà sicuramente la vita, ad esempio, una cosa da evitare, se si utilizza Windows, è la deframmentazione del disco!
Tornando ai sistemi GNU/Linux, un piccolo trucco per limitare le scritture su SSD è quello di disabilitare la scrittura della data di accesso ad un file. Per default, ogni volta si apre un file, il sistema operativo scriverà la data di accesso al file, questo si può disabilitare aggiungendo l'opzione "noatime" in /etc/fstab.
Dal Terminale digitiamo:

sudo nano /etc/fstab

Ora aggiungiamo l'opzione noatime per ottenere qualcosa di simile:

noatime, errors=remount-ro

Salvate con le solite combinazioni di tasti Ctrl + o, confermate il salvataggio premendo Invio, quindi uscite dall'editor con Ctrl + x.

Riavviate e godetevi a lungo il vostro SSD.

venerdì 8 novembre 2013

GNOME SHELL, guida veloce


Fin dalla prima release di GNOME Shell (o anche GNOME 3) ci sono state tante critiche su questo ambiente desktop, tante polemiche sulla mancanza di funzionalità e sulla scarsa possibilità di personalizzazione rispetto al predecessore, GNOME Panel (meglio conosciuto come GNOME 2).
Sarà davvero così? E' davvero così brutto GNOME Shell?
Ovviamente non esiste una risposta assoluta, dipende dai gusti e dalle esigenze personali, il mio giudizio è diametralmente opposto a quello dei denigratori di GNOME Shell, lo trovo molto bello da vedere, comodo da utilizzare e sufficientemente personalizzabile.
Lo avete mai provato? E' la prima volta che vi avvicinate al mondo GNU/Linux? Con questa guida vi presenterò le funzionalità di questo ambiente desktop e cercherò di motivare il mio giudizio.
La versione di cui vi parlo è la 3.8, quella presente di default su Ubuntu GNOME 13.10, non è la recentissima 3.10.

La scrivania pulita

Barra dei menù

Iniziamo a vedere come si presenta GNOME Shell appena installato.
Davanti a voi avrete la scrivania pulita, senza alcuna icona. In alto la barra dei menù con al centro la data e l'ora, a destra troverete le icone del controllo audio, lo stato della connessione alla rete, eventualmente lo stato di carica della batteria (se state utilizzando un portatile) e per finire il nome utente. Sulla sinistra invece troverete “Attività”.
Tutto qui, il look è decisamente pulito ed essenziale. Iniziamo ad analizzare gli elementi sulla barra dei menù:
  • data e ora: cliccandoci sopra verrà visualizzato un pannello con il calendario del mese e gli appuntamenti. Il calendario è direttamente collegato ad Evolution, l'applicazione di gestione e-mail e agenda. Se sincronizzate Evolution con il calendario del vostro account Google (o qualsiasi altro calendario online compatibile) potrete visualizzare gli appuntamenti direttamente su questo pannello. Da qui è anche possibile lanciare Evolution od aprire il pannello delle impostazioni “Data e ora”.



  • audio: l'icona del controllo volume da accesso ad un altro menù interattivo con il quale possiamo regolare il volume o aprire il pannello delle impostazioni “Audio”.
  • connessione alla rete: questa icona rappresenta lo stato della connessione, il suo menù interattivo permette di abilitare/disabilitare le connessioni disponibili (ad esempio via cavo o Wi-Fi) tramite degli interruttori stilizzati. Permette anche di selezionare la rete Wi-Fi alla quale collegarsi tra quelle disponibili. Anche questo menù vi permette di aprire il pannello delle impostazioni che, in questo caso, sarà quello di “Rete”.



  • nome utente: il nome utente ha al fianco un'icona dalla classica forma del fumetto che indica lo stato del nostro account online (fuori rete o disponibile). Cliccandoci sopra verrà visualizzato un menù dal quale possiamo fare molte cose:
    • cambiare lo stato del nostro account online;
    • abilitare/disabilitare le notifiche;
    • aprire le impostazioni di sistema;
    • accedere con un altro utente;
    • terminare la sessione (log out)
    • bloccare lo schermo (molto comodo se ci vogliamo allontanare dal PC e vogliamo evitare sguardi indiscreti in nostra assenza);
    • mettere il PC in stato di sospensione;
    • spegnere il PC (un pannello ci chiederà conferma e ci darà anche la possibilità di scegliere se spegnere definitivamente o riavviare).

Attività

Ho lasciato per ultimo “Attività” perché questa è la novità introdotta con GNOME Shell e sostituisce di fatto il menù delle applicazioni che gli utenti di GNOME Panel erano abituati ad utilizzare. Cliccando con il mouse su “Attività”, o semplicemente portando il mouse nell'angolo in alto a sinistra dello schermo, o da tastiera premendo il tasto “Super” (meglio conosciuto come tasto Windows, vedi questo post), si accede alla modalità “activity overview”. In questa modalità la funzionalità della barra dei menù rimane invariata, ma sulla scrivania verranno visualizzati diversi elementi che vado ad elencare:
  • sul lato sinistro dello schermo avremo una barra con le icone delle applicazioni preferite e di quelle in esecuzione, molto simile al “Dock” di OS X, chiamata “Dash”.
  • In alto al centro verrà visualizzato un campo di ricerca con il quale si posso cercare le applicazioni e/o altri file presenti sul nostro disco.
  • Sul lato destro dello schermo avremo un selettore degli spazi di lavoro. Inizialmente sarà parzialmente nascosto, basta andarci vicino con il mouse per farlo comparire completamente.
  • Al centro dello schermo verranno visualizzate le finestre delle applicazioni in esecuzione, saranno rimpicciolite ed allineate per visualizzarle tutte, in stile “Exposé” di OS X.
la modalità "Attività", sul lato sinistro la mia Dash personalizzata

Cercare e lanciare le applicazioni

La “Dash” di GNOME Shell funziona in modo simile al “Doc” di OS X, è il modo più veloce per lanciare le applicazioni che utilizziamo più frequentemente. Con un click sull'icona l'applicazione corrispondente viene avviata e si esce dalla modalità “Attività”. Inoltre è possibile trascinare le icone per metterle nell'ordine che preferiamo.
L'ultima icona in basso sulla Dash serve a mostrare sullo schermo le applicazioni disponibili sul nostro sistema, cliccando su un'icona lanceremo quell'applicazione. Se vogliamo aggiungere un'icona nella Dash, così da averla sempre a disposizione, basta cliccarci su con il tasto destro e selezionare “aggiungi ai preferiti”.
Quando vengono mostrate le icone delle applicazioni, in basso avremo la possibilità di scegliere se visualizzare solo le più frequenti o tutte.
Cliccando una seconda volta sull'icona “Mostra applicazioni” torneremo alla vista normale della modalità “Attività”.
Per finire, possiamo utilizzare la ricerca per trovare e lanciare l'applicazione desiderata. Io lo ritengo il metodo più veloce, a patto di conoscere il nome dell'applicazione che cerchiamo. Basta infatti iniziare a digitare le prime due o tre lettere del nome ed il risultato della ricerca sarà immediatamente visibile. Alcuni nomi delle applicazioni vengono localizzati in base alla lingua di sistema, comunque la ricerca avrà successo sia digitando il nome inglese, sia per quello in italiano.
Un esempio è “Software Update” che in italiano si chiama “Aggiornamenti software”, digitando “agg” o “upd” o ancora “sof”, la ricerca troverà comunque il programma per l'aggiornamento di sistema.
Ho letto molti commenti di gente che rimpiange il menù delle applicazioni e si lamenta del nuovo sistema, ma sinceramente non ne capisco il motivo, perché cercare tra le voci di un menù non è né più comodo né più veloce.

La ricerca di un'applicazione e molto comoda e veloce

Ricerca di altri file

Ovviamente la ricerca funziona anche per trovare i vostri file, cliccando sull'icona verranno aperti con l'applicazione “Documenti”, che è una sorta di anteprima dalla quale possono essere aperti per la modifica con i rispettivi programmi dedicati. Ad esempio, un documento di testo di LibreOffice verrà visualizzato in Documenti e potrà essere aperto con LibreOffice per modificarlo.
Volendo fare un altro paragone con OS X, la ricerca funziona in modo simile a Spotlight.

Muoversi tra le finestre e le applicazioni aperte

Un moderno ambiente desktop deve fornire un valido sistema per districarci tra le tante applicazioni aperte contemporaneamente con le altrettanto numerose finestre loro associate. Questo compito, in GNOME Panel, era affidato alla barra delle finestre posta alla base dello schermo, che è lo stesso principio che ha avuto Windows con la sua barra delle applicazioni. In GNOME Shell questo compito è affidato alla modalità “Attività”, che ci mostra velocemente tutte le finestre aperte sullo schermo, debitamente scalate ed allineate, per darci modo di selezionarne una e portarla in primo piano con un click, oppure per chiuderle. Funziona nello stesso identico modo in cui un utente Mac utilizza “Exposé”, ed io lo trovo estremamente comodo ed intuitivo. Portare il mouse nell'angolo in alto a sinistra dello schermo è un gesto veloce, possiamo dare un'occhiata a tutte le finestre aperte e cliccare su quella che ci interessa. Le finestre sono animate in tempo reale, quindi anche un video continuerà ad andare avanti mentre lo guardiamo scalato dalla modalità “Attività”.
Ovviamente tutto questo ha un costo in termini di risorse, su PC datati il tutto può risultare meno fluido e più lento nella risposta, ma resta a mio giudizio utilizzabile e comodo. Utilizzo GNOME Shell anche su un netbook, se ce la fa un Atom ce la può fare qualunque altro processore!
Per spostarci da un'applicazione ad un'altra c'è sempre la possibilità di farlo da tastiera con la combinazione di tasti Alt+Tab, anche questa è una funzione che utilizzo spesso, soprattutto quando devo muovermi spesso tra due applicazioni aperte.

le finestre aperte scalate e affiancate

Gestione spazi di lavoro

La gestione degli spazi di lavoro è affidata al selettore degli spazi di lavoro posto sulla parte destra dello schermo della modalità “Attività”. Inizialmente avremo la miniatura di una scrivania con le finestre delle applicazioni aperte, subito sotto ci sarà un'altra miniatura della scrivania vuota. Trascinando una finestra da una miniatura all'altra potremo organizzare le finestre aperte tra più spazi di lavoro. Quando spostiamo una finestra sullo spazio di lavoro vuoto, verrà aggiunta una nuova miniatura libera. In questo modo, spostando le finestre, potremo creare più spazi di lavoro.
Per spostarci da uno spazio all'altro basterà cliccare sulla miniatura oppure direttamente da tastiera con la combinazione di tasti Super+Pag.Su o Super+Pag.Giu.
Ovviamente, nella modalità “Attività” verranno mostrate tutte le finestre aperte dello spazio di lavoro selezionato, mentre non verranno mostrate le finestre presenti sugli altri spazi di lavoro.
Liberando uno spazio di lavoro da tutte le finestre lo eliminerà. Il funzionamento è estremamente intuitivo, è sicuramente più facile provarlo piuttosto che spiegare come funziona.
Tutto questo ha di fatto reso inutile la riduzione ad icona della finestra e di conseguenza il relativo pulsante che era posto nell'angolo in alto a destra. Il principio è semplice, se voglio nascondere dalla vista una finestra, la trascino in un altro spazio di lavoro, se la voglio vedere mi sposto sullo spazio di lavoro dove l'ho messa oppure la trascino di nuovo nello spazio di lavoro che sto utilizzando.

Sul lato destro ci sono gli spazi di lavoro, qui possiamo trascinare le finestre da uno spazio ad un altro

Area delle notifiche

E' una zona nella parte inferiore dello schermo dove compaiono le notifiche, quali ad esempio il collegamento di una periferica o la ricezione di un messaggio. Alcune notifiche possono essere interattive, ad esempio si può rispondere ad un messaggio direttamente dall'area delle notifiche, senza dover andare ad aprire un'altra finestra.
La suddetta area è a scomparsa, per renderla visibile nuovamente basta portare il mouse sul fondo dello schermo e muoverlo verso il basso. Nel caso di una notifica relativa alla connessione di una periferica, si può rendere visibile l'area delle notifiche per andare a smontarla.

In basso è visibile l'area delle notifiche, c'è Rhythmbox in esecuzione e ci sono dispositivi rimovibili montati

Impostazioni e personalizzazione

Eccoci arrivati ad uno degli argomenti più criticati di GNOME Shell: la personalizzazione. Per poter personalizzare il nostro desktop c'è un'applicazione dedicata che si chiama “GNOME Tweak Tool”, il nome in italiano è “Strumento di personalizzazione”. Dalla modalità “Attività” basta digitare “tweak” e lo troverete senza difficoltà. Questo programma ci presenta un gran numero di opzioni suddivise per categorie:
  • Digitazione
  • Estensioni della shell
  • File
  • Finestre
  • Mouse
  • Scrivania
  • Shell
  • Tema
  • Tipi di carattere
Dovrei scrivere diverse pagine per descrivere nel dettaglio tutte le opzioni, quindi mi soffermerò solo su quelle che ritengo più importanti.
Nella categoria “Digitazione” troverete tutte le opzioni che riguardano la tastiera e l'inserimento del testo.
La categoria “Estensioni della Shell” è il sistema che permette di aggiungere caratteristiche e funzionalità al desktop, le estensioni funzionano in modo molto simile a quelle dei browser internet.
Approfondirò questo argomento tra un attimo.
File”, “Finestre” e “Mouse” permettono di personalizzare alcune azioni e poco più.
In “Scrivania” potete decidere come gestire la scrivania che, di default è vuota e non ci si può mettere niente sopra. Attivando l'opzione “Indica se il file manager debba gestire la scrivania”, questa tornerà ad essere gestita come tutti sono abituati a fare, ossia ci si possono parcheggiare file e la si può popolare di icone. Le altre opzioni permettono di scegliere quali icone devono comparire sulla scrivania, tipo il cestino o le periferiche, ecc...
La categoria “Shell” ci da la possibilità di cambiare diversi aspetti del desktop, ad esempio come visualizzare la data e l'ora, gli spazi di lavoro, il comportamento del sistema quando chiudiamo il portatile, ecc...
In “Tema” possiamo modificare profondamente l'aspetto delle finestre, le icone, il puntatore del mouse e tutti gli elementi dell'interfaccia grafica, installando appositi temi. Tutto questo sarà possibile solo dopo aver abilitato l'estensione “User themes” nella categoria “Estensioni della shell”.

GNOME Tweak Tool

Estensioni della Shell

Le estensioni della shell permettono di aggiungere funzionalità o modificare le caratteristiche dell'ambiente desktop secondo le proprie esigenze. Nella categoria “Estensioni della shell” ne troveremo diverse preinstallate, sarà quindi possibile attivarle, disattivarle o modificarne le opzioni se presenti.
Oltre alle estensioni fornite con l'installazione di base, sarà possibile installarne di nuove direttamente dal sito dedicato. In fondo alla lista delle estensioni installate troverete la scritta "Recupera più estensioni", che è il link al sito.
Anche il sistema di installazione è molto semplice, sul sito infatti, nella pagina dedicata all'estensione scelta, troveremo in alto a sinistra un pulsante di tipo switch simile a quelli che troviamo nell'interfaccia grafica di GNOME. Dopo aver attivato il pulsante con un click, ci verrà chiesta la conferma per il download e l'installazione, in pochi istanti sarà installata e funzionante sul nostro desktop.
Tutti coloro che desiderano una funzionalità mancante o che vorrebbero modificare una caratteristica dell'ambiente possono cercare l'estensione che fa al caso loro, o magari svilupparla personalmente.
Per farvi qualche esempio tra le estensioni preinstallate:
Volete il menù delle applicazioni in stile GNOME Panel? C'è, basta attivarlo.
Un altro menù che trovo comodo e aggiungo sempre è quello per i dispositivi rimovibili. Se collegate una penna USB od un hard disk esterno, potrete selezionarli o espellerli tramite un apposito menù.
Io ho trovato molte estensioni utili che completano GNOME Shell e non lo reputo di certo un ambiente rigido o non personalizzabile.

Conclusioni

Quando ho provato per la prima volta Unity non mi ha affascinato, nonostante tutto l'ho utilizzato per più di un anno. GNOME Shell invece mi è piaciuto da subito e non sono più tornato a Unity o ad altro. La mia esperienza personale con gli ambienti desktop viene da circa 10 anni di OS X, l'ho utilizzato fin dalla prima versione, ed alcune caratteristiche di GNOME Shell sono chiaramente inspirate ad esso.

In questi anni ho visto migliorare GNOME Shell (e forse un po anche peggiorare OS X) ed adesso lo ritengo il migliore ambiente desktop per eleganza, semplicità e comodità d'uso. Se non lo avete mai provato vi consiglio di farlo, possibilmente per un periodo abbastanza lungo per conoscerne tutte le funzioni, anche quelle più nascoste.

venerdì 1 novembre 2013

Installare ed utilizzare il metodo di input Anthy per la lingua giapponese

Per chi come me ha studiato (o studia) la lingua giapponese, è fondamentale installare sul proprio computer il metodo di inserimento dei caratteri giapponesi. Io ho sempre utilizzato il motore di inserimento chiamato Anthy, quindi, in questa breve guida, vi spiegherò come installarlo e configurarlo.
La distribuzione GNU/Linux che utilizzo è Ubuntu Gnome 13.10, la versione ufficiale di Ubuntu che sfoggia Gnome Shell versione 3.8.

Iniziamo con l'installazione dei pacchetti necessari.
In passato, sulle precedenti release di Ubuntu con Unity, ho sempre installato la lingua giapponese, completa di metodo di inserimento Anthy, tramite il pannello delle impostazioni "Supporto lingue". Bastava cliccare sul pulsante Aggiungi/Rimuovi lingua e spuntare la lingua giapponese, in Ubuntu Gnome 13.10 invece il pannello denominato "Regione e lingua" non ha alcun pulsante per installare una lingua aggiuntiva. Ci sono quindi due modi per aggirare l'ostacolo, installare il vecchio pannello "Supporto lingue" tramite l'Ubuntu Software Center o installare il giapponese direttamente dal Terminale.

Le impostazioni di sistema alle quali ho aggiunto il vecchio "Supporto lingue"

Seguiamo la via più diretta, aprite il Terminale e installiamo i pacchetti con i seguenti comandi:

> sudo apt-get update

Ricordatevi sempre di aggiornare la lista dei pacchetti prima di installare qualcosa.

> sudo apt-get install language-pack-ja language-pack-gnome-ja language-pack-ja-base language-pack-gnome-ja-base

Questo installerà le traduzioni in lingua giapponese del sistema.

> sudo apt-get install ibus anthy anthy-common ibus-anthy

Questo installerà il framework iBus (Intelligent Input Bus) ed il motore di inserimento Anthy per la lingua giapponese.

Ora che avete installato tutti i pacchetti necessari, avviate il programma di configurazione chiamato "Input method". Vi apparirà una finestra dal look piuttosto spartano dove non potrete fare altro (oltre che leggere le informazioni riportate) che cliccare su Ok per andare avanti.

Questo è la finestra spartana di Input Method Configuration

A questo punto vi chiederà se volete esplicitamente selezionare la configurazione e vi consiglierà di rispondere NO, voi invece cliccate su SI!

Vogliamo modificare la configurazione, quindi clicchiamo Si

Quindi vi chiederà di scegliere la configurazione di Input Method, scegliete iBus e cliccate su ok.

Selezioniamo iBus

L'ultima schermata riporterà delle informazioni riassuntive sulla configurazione scelta, cliccate Ok e il programma si chiuderà.

Schermata riepilogativa

Torniamo alle Impostazioni di sistema e aprite il pannello delle impostazioni "Regione e lingua", da qui potete scegliere la lingua di sistema e i metodi di inserimento da utilizzare.
Se cliccate sul tab Sorgenti di input troverete inizialmente la sola lingua italiana nell'elenco. Cliccate sull'icona + e selezionate Giapponese (Anthy), quindi cliccate su Aggiungi. Ora avete due metodi di inserimento nell'elenco, Italiana e Giapponese (Anthy).

Ora avete due sorgenti di input: italiana e giapponese

Selezionando la lingua giapponese comparirà un'icona delle opzioni di Anthy posta in basso, accanto a quella che raffigura la tastiera. Cliccando sulle opzioni potrete personalizzare minuziosamente le funzioni del motore di inserimento.
Una personalizzazione che vi posso consigliare è quella di utilizzare la disposizione della tastiera di default. Cliccate sul tab Typing method e selezionate Default per la Keyboard layout. Questo farà in modo di usare la disposizione della vostra tastiera, presumibilmente italiana, invece di quella americana o giapponese.

Pannello delle opzioni di Anthy

Come potete vedere nella parte destra della finestra, le scorciatoie da tastiera per cambiare metodo di inserimento sono Maiusc+Super+Spazio o Super+Spazio per andare rispettivamente al metodo precedente o a quello successivo. Per "Super" si intende il tasto contrassegnato dal simbolo di Windows sulle tastiere per PC (nel mio caso è il tasto Tux, visto che ho provveduto ad applicarci un apposito adesivo, vedi il post sugli adesivi per coprire il tasto Win), mentre su quelle Mac è il tasto Command (ex tasto Apple nelle tastiere dei vecchi Mac).

Il tasto Tux sulla mia tastiera Logitech

Potete anche notare che, nella barra dei menù posta nella parte superiore dello schermo, adesso avrete un nuovo menù che indica il metodo di inserimento in uso (it oppure あ) e vi permette di cambiarlo.

Un comodo menù per il metodo di inserimento

Bene, ora siete pronti a scrivere in giapponese, magari per tenervi in contatto con i vostri amici del Sol Levante.
Nel prossimo post vorrei parlarvi di Gnome Shell 3.8 e di come ho personalizzato il mio sistema.

mercoledì 11 settembre 2013

Raspberry Pi - come impostare un numero IP statico

In questa guida spiegherò come impostare un indirizzo IP statico sul vostro Raspberry Pi, prima di iniziare la procedura pratica vorrei illustrare un po di teoria.
Un indirizzo IP serve ad identificare un dispositivo collegato in rete, generalmente il vostro router assegna dinamicamente un indirizzo IP ad ogni nuovo dispositivo collegato. Se abbiamo un computer collegato alla rete casalinga e lo scolleghiamo, il suo indirizzo IP viene liberato e lo stesso potrebbe essere assegnato ad un altro nuovo dispositivo che dovesse collegarsi successivamente. La stessa cosa avviene per il vostro Raspberry Pi, il quale ad ogni riavvio potrebbe avere un indirizzo IP differente.
Avere un IP dinamico risulta quindi decisamente scomodo quando vogliamo accedere in remoto al nostro Raspberry Pi, infatti ogni volta dovremmo essere a conoscenza del suo indirizzo IP. Questo vale sia per accedere al nostro hard disk condiviso tramite Samba, sia per accedere a Transmission-daemon o aMule-daemon e ancora se vogliamo accedere tramite SSH.
Impostare un IP statico farà in modo che, all'avvio, il Raspberry Pi otterrà sempre lo stesso indirizzo IP e di conseguenza sapremo sempre a quale indirizzo trovarlo.
Detto questo effettuiamo il login ed iniziamo a conoscere come vedere quale indirizzo IP ha attualmente il Raspberry Pi con il seguente comando:

sudo ifconfig

Questo comando visualizza molte informazioni riguardanti la connessione di rete, in particolare quelle della sezione denominata eth0 riguardano la connessione via cavo ethernet, wlan0 invece riguarda la connessione Wi-Fi.
Le informazioni che ci saranno utili sono l'indirizzo IP, descritto come "indirizzo inet:" e il numero della "Maschera". Un indirizzo IP è formato da quattro serie di numeri separati da un punto, anche la maschera ha un formato simile e di solito è 255.255.255.0, ma non sempre.

Un'altra informazione necessaria è l'indirizzo IP del nostro router, possiamo trovarla con il seguente comando:

route

Anche in questo caso verranno visualizzate diverse informazioni, il valore che vi interessa lo troverete nella riga che inizia con "default", sotto la colonna Gateway.
Nella riga subito sotto invece, sotto la colonna Genmask, troverete il valore della maschera che dovrebbe essere la stessa di quella trovata con ifconfig.

Ora che abbiamo ottenute tutte le informazioni possiamo andare a modificare il file interfaces che si trova in /etc/network/, quindi scriviamo:

cd /etc/network

Facciamo una copia di sicurezza di interfaces in modo da poterlo ripristinare in qualsiasi momento.

sudo cp interfaces interfaces.backup

Ora apriamo interfaces con l'editor di testo nano:

sudo nano interfaces

Il file di default dovrebbe essere come questo:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Prima cosa da fare è aggiungere il carattere # all'inizio della riga "iface eth0 inet dhcp", questo la farà diventare un commento e verrà ignorata.
Quindi subito sotto aggiungiamo le seguenti righe:

auto eth0
iface eth0 inet static

Di seguito aggiungiamo nell'ordine l'indirizzo IP del Raspberry Pi, l'indirizzo del router ed infine la maschera, come segue:

address [indirizzo_IP_del_Raspberry_PI]
gateway [indirizzo_IP_del_router]
netmask [numero_della_maschera]

Alla fine il vostro file dovrebbe somigliare a questo:

auto lo

iface lo inet loopback
#iface eth0 inet dhcp
auto eth0
iface eth0 inet static

address 11.96.182.58
gateway 11.96.172.1
netmask 255.255.255.0

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Salviamo premendo i tasti Ctrl + o, premiamo il tasto Invio per confermare il nome del file, quindi usciamo dall'editor con Ctrl + x.
Ora riavviamo il Raspberry Pi scrivendo

sudo reboot

Se non avete fatto errori ora l'indirizzo IP sarà quello da voi impostato.
Verifichiamo se la connessione ad internet funziona provando con il comando ping sul sito di Google o qualunque altro indirizzo valido.

ping www.google.com

Il risultato deve essere qualcosa del genere:

PING www.google.com (173.194.40.20) 56(84) bytes of data.
64 bytes from mil02s06-in-f20.1e100.net (173.194.40.20): icmp_req=1 ttl=51 time=264 ms
64 bytes from mil02s06-in-f20.1e100.net (173.194.40.20): icmp_req=3 ttl=51 time=267 ms
64 bytes from mil02s06-in-f20.1e100.net (173.194.40.20): icmp_req=4 ttl=51 time=232 ms
64 bytes from mil02s06-in-f20.1e100.net (173.194.40.20): icmp_req=5 ttl=51 time=237 ms

Fermatelo premendo Ctrl + c.
Avete finito, il vostro Raspberry Pi ora ha l'indirizzo IP statico e saprete sempre come collegarvi in remoto.

sabato 24 agosto 2013

Raspberry Pi - come installare e configurare aMule-daemon

Nel precedente post vi ho guidati nell'installazione e configurazione di Transmission-daemon sul Raspberry Pi, vediamo adesso come installare aMule-daemon, il client peer-to-peer per le reti di scambio file eDonkey e Kademlia. Come Transmission-daemon anche aMule-daemon lavora in background e si potrà controllare in remoto da un computer o altro dispositivo collegato alla rete.

aMule - il client peer-to-peer per le reti eDonkey e Kademlia


Prima di iniziare la procedura di installazione assicuratevi di aver collegato e configurato correttamente un disco esterno tramite porta USB, se non lo avete già fatto fatelo ora (qui troverete come farlo).
A questo punto poniamo il caso che il vostro disco sia montato in /mnt/nas.
Prima di installare aMule-daemon aggiorniamo la lista dei pacchetti del repository con

> sudo apt-get update

quindi installiamo con

> sudo apt-get install amule-daemon amule-utils amule-utils-gui

aMule avrà bisogno di 2 cartelle, una dove mettere i file completati ed una dove mettere i file temporanei.
Se non abbiamo già due cartelle adatte allo scopo sul nostro disco esterno possiamo crearle adesso.

> mkdir /mnt/nas/incoming

> mkdir /mnt/nas/temp

Ora avvieremo per la prima volta aMule in modo che questo crei i file di configurazione, otterremo un messaggio d'errore, ma ignoratelo, è normale che succeda.

> amuled

I file di configurazione verranno messi in una cartella nascosta nella nostra home, il suo nome è .aMule. Le cartelle che hanno il nome che inizia con un punto sono nascoste, ma potete vederle aggiungendo l'opzione -a al comando ls, così

> ls -a

Ora impostiamo un password per aMule invocando il comando:

> amuled -e

Ci verrà chiesto di inserire la password.

Se per qualche strano motivo non riuscite ad impostare la password con il comando amuled -e, allora potrete inserirla manualmente nel file di configurazione in questo modo:
Inserite il sequente comando inserendo la password da voi scelta al posto di password.

> echo -n "password" | md5sum | awk '{print $1}'

Verrà visualizzato sul terminale una serie di lettere e numeri apparentemente senza senso, in realtà quella è la vostra password criptata in md5.

Copiatela ed aprite il file di configurazione per inserire la password con

> nano .aMule/amule.conf

amule.conf è un file piuttosto lungo, ad ogni riga corrisponde un'impostazione. Per rendere più ordinata questa lunga lista di opzioni, è stata suddivisa in sezioni contrassegnate da un nome posto tra parentesi quadre.

Cercate la sezione [ExternalConnect] ed inserite la password criptata alla voce ECPassword. Poche righe sotto cercate la sezione[WebServer] ed inserite di nuovo la password criptata alla voce Password.

Ora che la password è inserita, continuiamo con la modifica del file di configurazione. Se non lo avete già aperto per inserire la password manualmente apritelo adesso con il comando

> nano .aMule/amule.conf


Nella sezione [eMule] andate alla riga che inizia con TempDir ed inserite l'indirizzo della cartella per i file temporanei:

TempDir=/mnt/nas/temp

Poi trovate la riga con IncomingDir ed inserite l'indirizzo della cartella per i file completati:

IncomingDir=/mnt/nas/incoming

Per default l'indirizzo di queste due cartelle è dentro la cartella .aMule, questo vorrebbe dire utilizzare la scheda SD per scaricare i nostri file! Per questo motivo le modifichiamo inserendo gli indirizzi delle cartelle sull'HD esterno.

Se il vostro provider internet è Fastweb sarebbe preferibile impostare le URL dei nodi Kad e dei server ed2k. Potete farlo trovando le righe che iniziano rispettivamente con KadNodesUrl e Ed2kServersUrl, modificandole come segue:

KadNodesUrl=http://www.adunanza.net/files/emule/adu_nodes.dat
Ed2kServersUrl=http://update.adunanza.net/servers.met

Ora andate a cercare la sezione [ExternalConnect] ed assicuratevi che la riga AcceptExternalConnections sia impostata ad 1 come segue:

AcceptExternalConnections=1

Questo rende attivo il collegamento in remoto al demone.
Per finire, nella sezione [WebServer] modifichiamo questa riga come segue:

Enabled=1

Questa attiva il server web o meglio una pagina web che permette il controllo del programma.
Possiamo salvare le modifiche premendo i tasti Ctrl + o, premiamo il tasto Invio per confermare il nome del file, quindi usciamo dall'editor con Ctrl + x.
Ora sarà necessario modificare un altro file per permettere allo script di avvio del demone di funzionare correttamente.

> sudo nano /etc/default/amule-daemon

Nella riga AMULED_USER inserite il vostro nome utente

AMULED_USER="nome_utente"

Salvate e uscite dall'editor con i soliti Ctrl + o, Invio e Ctrl + x.
La configurazione è completata, ora potete avviare aMule-daemon con il comando

amuled -f

l'opzione -f forza l'avvio in background, in questo modo potrete chiudere il terminale e lasciarlo lavorare.

Accedere ad aMule-daemon in remoto da un altro computer

Per poter accedere in remoto e controllare aMule abbiamo due possibilità, la prima è quella di utilizzare l'apposita pagina web creata dal web server di aMule-daemon, la seconda è quella di installare l'interfaccia grafica del programma sul computer che vogliamo utilizzare per controllarlo.

Utilizzare la pagina web è la cosa più semplice ed immediata, senza contare il vantaggio di poter utilizzare qualsiasi tipo di device per controllare il demone, l'importante è che abbia un browser internet.
Per accedere alla pagina web di aMule-daemon dovete inserire nel browser l'indirizzo IP del Raspberry Pi seguito dal carattere : (due punti) ed il numero della porta che di default è 4711. Sarà qualcosa del genere:

172.16.254.1:4711

Vi comparirà una pagina con la richiesta di inserire la password, digitate la password che avete usato per aMule e accederete alla pagina di controllo del demone.

la pagina di aMule vi chiede la password per l'accesso


Per collegarvi in remoto dal vostro computer desktop è possibile installare ed utilizzare l'interfaccia grafica aMuleGUI. Il vantaggio di utilizzare l'interfaccia grafica è quello di avere un controllo completo del programma, come se fosse installato sul vostro computer. Se utilizzate Ubuntu potete installarlo utilizzando Ubuntu Software Center cercando aMuleGUI, per altri sistemi derivati da Debian potete installarlo da Terminale con il comando

sudo apt-get install amule-utils-gui

Per altre distribuzioni GNU/Linux utilizzate i comandi destinati all'installazione dei pacchetti.
L'utilizzo di aMuleGUI è molto simile a quello del programma aMule, appena avviato vi comparirà una finestra con i dati relativi alla connessione in remoto.

Parametri di connessione in remoto ad aMule-daemon


Nel campo "Connetti a" inserite l'indirizzo IP del vostro Raspberry Pi, nel campo successivo inserite il numero della porta che di default è 4712. Per finire inserite la password che avete utilizzato per aMule e fate un click sul tasto Connetti.

Buon utilizzo!

venerdì 2 agosto 2013

Raspberry Pi - come installare e configurare Transmission-daemon, il celebre client BitTorrent

Uno dei modi più proficui per sfruttare il Raspberry Pi, non è tanto quello di utilizzarlo come sostituto economico di un desktop, ma più che altro è vantaggioso farlo lavorare autonomamente ed accedervi in remoto quando necessario. Ad esempio, se abbiamo necessità di scaricare dei file di grandi dimensioni dalla rete sfruttando il protocollo di condivisione BitTorrent, sarebbe un incredibile spreco di energia utilizzare un normale computer desktop. Inoltre questa operazione spesso richiede tempi lunghi e la presenza dell'utente davanti al computer non è affatto necessaria. Ecco che qui entra in gioco il Raspberry Pi, con i suoi soli 2 Watt di consumo per ora!
Nel precedente post ho spiegato come installare e configurare Samba, adesso proseguiamo la serie di guide dedicate al Raspberry Pi con l'installazione di Transmission-daemon.

Transmission - il popolare client BitTorrent


Transmission è il nome di un client BitTorrent  molto conosciuto tra gli utenti di sistemi GNU/Linux ed anche tra quelli che utilizzano OS X, a mio giudizio è il migliore.
Transmission-daemon invece è lo stesso programma, ma in versione daemon, cioè privo di interfaccia grafica, il suo scopo è quello di lavorare in background, proprio ciò di cui abbiamo bisogno per utilizzarlo sul Raspberry Pi.
Prima di iniziare la procedura di installazione assicuratevi di aver collegato e configurato correttamente un disco esterno tramite porta USB, se non lo avete già fatto fatelo ora (nel precedente post troverete come fare).
A questo punto poniamo il caso che il vostro disco sia montato in /mnt/nas.
Prima di installare Transmission-daemon aggiorniamo la lista dei pacchetti del repository con

sudo apt-get update

quindi installiamo con

sudo apt-get install transmission-daemon

Transmission necessita di 3 cartelle, una dove mettere i file completati, una dove mettere i file che si stanno scaricando ed una terza opzionale dove l'utente può spostare i file .torrent che vuole aggiungere alla lista dei download.
Andiamo quindi a creare queste cartelle sul nostro disco esterno:

mkdir /mnt/nas/complete

mkdir /mnt/nas/incomplete

mkdir /mnt/nas/watch

Ora abbiamo creato le tre cartelle, la prima per i file completi, la seconda per quelli incompleti e la terza per i file .torrent.
Tutto è pronto per la configurazione di Transmission-daemon.

cd /etc/transmission-daemon

Questa è la posizione in cui troveremo il file di configurazione settings.json, apriamo il file per modificarlo con

sudo nano settings.json

Il file è composto di molte righe, ognuna delle quali contiene un'impostazione del programma.
Cerchiamo la riga denominata "download-dir" ed inseriamo il percorso della nostra cartella destinata a contenere i file completati, diventerà così:

"download-dir": "/mnt/nas/complete",

Ora cerchiamo la riga denominata "incomplete-dir" ed inseriamo il percorso della cartella incomplete:

"incomplete-dir": "/mnt/nas/incomplete",

Nella riga seguente abilitiamo l'utilizzo della cartella incomple:

"incomplete-dir-enabled": true,

Le prossime impostazioni servono ad abilitare l'accesso in remoto a Transmission-daemon, così da poterlo controllare da un altro computer.
Cerchiamo la riga denominata "rpc-enabled" ed assicuriamoci che l'accesso in remoto sia attivo:

"rpc-enabled": true,

Quindi inseriamo una password per poter accedere al programma in questa riga:

"rpc-password": "la_tua_password",

Dove al posto di la_tua_password inserirete una password di vostra scelta. La password che ora appare in chiaro verrà successivamente criptata, la prossima volta che apriremo il file non sarà visibile. Per finire inseriamo un nome utente per accedere

"rpc-username": "nome_utente",

Ricordatevi di scrivere un nome utente di vostra scelta al posto di nome_utente.
C'è anche la possibilità di impostare un filtro sugli indirizzi IP dai quali poter accedere, ma a me ha dato solo problemi quindi vi consiglio di disabilitarlo dalla riga

"rpc-whitelist-enabled": false,

Opzionalmente è possibile utilizzare la cartella che abbiamo chiamato watch come contenitore dei file .torrent che vogliamo aggiungere alla lista dei download. Ogni volta che metterete un file al suo interno Transmission-daemon lo aggiungerà automaticamente alla lista dei download.
Per farlo dovrete aggiungere queste due righe alla fine del file, prima della parentesi graffa chiusa

"watch-dir": "/mnt/nas/watch",
"watch-dir-enabled": true

Fate attenzione alle virgole a fine riga, tutte le righe devono terminare con la virgola, tranne l'ultima prima della parentesi graffa. Per questo motivo non ho messo la virgola dopo true. Ovviamente se aggiungete queste righe dovete aggiungere anche la virgola al termine della riga che le precede.
Possiamo salvare le modifiche premendo i tasti Ctrl + o, premiamo il tasto Invio per confermare il nome del file, quindi usciamo dall'editor con Ctrl + x.

Ora dobbiamo fare in modo che Transmission-daemon legga il file con le nuove impostazioni, digitiamo il comando:

sudo /etc/init.d/transmission-daemon reload

Questo ordinerà allo script di controllo di Transmission-daemon di rileggere il file settings.json e provvederà a criptare la password. Quindi riavviamo il daemon con

sudo /etc/init.d/transmission-daemon restart

Siamo a buon punto, ancora pochi passi per terminare la configurazione. Fermiamo nuovamente il daemon con

sudo /etc/init.d/transmission-daemon stop

Aggiungiamo il nostro nome utente al gruppo debian-transmission, questo è necessario per il corretto funzionamento del daemon

sudo adduser nome_utente debian-transmission

Al posto di nome_utente scrivete il vostro nome utente (quello di default è pi).
Ora modifichiamo lo script di controllo di Transmission-daemon

sudo nano /etc/init.d/transmission-daemon

Nella riga USER mettiamo il nostro nome utente

USER=nome_utente

Salviamo premendo i tasti Ctrl + o, premiamo enter per confermare il nome del file, quindi usciamo dall'editor con Ctrl + x. Dobbiamo ora modificare il proprietario dei file di Transmission-daemon per ovviare ad un presunto bug che impedisce la scrittura sul disco esterno.
Inseriamo i seguenti comandi:

sudo chown nome_utente -R /var/lib/transmission-daemon/info/
sudo chown nome_utente /etc/transmission-daemon/settings.json

Ora possiamo avviare Transmission-daemon, la configurazione è completata

sudo /etc/init.d/transmission-daemon start

Per ovviare a possibili blocchi di sistema in determinate condizioni di lavoro di Transmission-daemon andiamo a modificare alcuni parametri del Raspberry Pi

sudo nano /etc/sysctl.conf

Modifichiamo il valore dell'ultima riga con questo
vm.min_free_kbytes = 16384

Dopo aver salvato, modifichiamo un altro file

sudo nano /boot/cmdline.txt

Modifichiamo la riga come questa

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline smsc95xx.turbo_mode=N rootwait

Abbiamo aggiunto il parametro smsc95xx.turbo_mode=N, il resto della riga rimane invariato.
Salviamo le modifiche e riavviamo il Raspberry Pi con

sudo reboot

Al suo riavvio Transmission-daemon verrà avviato automaticamente e potrete provarlo spostando un file .torrent nella cartella watch. E' sicuramente comodo poter aggiungere i file in questo modo ed aspettare che i file vengano scaricati, ma spesso è necessario avere un controllo completo del programma. Bene, possiamo controllare Transmission-daemon in remoto nello stesso modo in cui utilizziamo Transmission con la sua interfaccia grafica, vediamo come fare.

Accedere a Transmission-daemon in remoto da un altro computer

Per accedere a Transmission-daemon installato sul Raspberry Pi dal nostro desktop dobbiamo installare il programma Transmission remote GUI. Se utilizzate Ubuntu potete installarlo utilizzando Ubuntu Software Center, per altri sistemi derivati da Debian potete installarlo da Terminale con il comando

sudo apt-get install transgui

Per altre distribuzioni GNU/Linux utilizzate i comandi destinati all'installazione dei pacchetti.
Per gli utilizzatori di sistemi OS X o Windows potrete scaricare il file di installazione direttamente dal sito del progetto.

Una volta completata l'installazione sul vostro desktop, lanciate Transmission remote GUI e scegliete dal menu Transmission -> connetti al demone -> Nuova connessione.
Comparirà una finestra per l'inserimento dei parametri di connessione, inseriamo i parametri:
Host remoto = inserite l'indirizzo IP del Raspberry Pi (è necessario impostare un IP statico per il vostro Raspberry Pi, così non sarà necessario modificare questo parametro ad ogni riavvio)
Porta = 9091 (è la porta standard, a meno che non l'abbiate modificata nel file di configurazione)
Nome utente = il nome utente che avete inserito nel file di configurazione
Password = la password che avete inserito nel file di configurazione

Connessione a Transmission-daemon da remoto


Premete Ok e, se avete inserito tutti i parametri corretti, il programma si collegherà al daemon in esecuzione e vi mostrerà i download in corso. Il suo funzionamento è del tutto identico a quello della versione classica di Transmission. L'unica piccola differenza è nel suo utilizzo con i link magnetici. Se volete aprire un link magnetico con Transmission remote GUI dovrete copiare il link dal browser e, quando porterete in primo piano la finestra di Transmission, apparirà automaticamente la finestra per aggiungere il torrent.

In caso di interruzione dell'energia elettrica non ci sono problemi, il vostro Raspberry Pi si riavvierà e continuerà a lavorare da dove si era fermato.

martedì 25 giugno 2013

Raspberry Pi - come installare e configurare Samba per condividere un hard disk esterno sulla rete casalinga

In questa guida vedremo come creare un NAS (Network Attached Storage) con il Raspberry Pi. Per chi non lo sapesse, un NAS è un dispositivo collegato ad una rete la cui funzione è quella di condividere tra gli utenti della stessa una memoria di massa. In pratica collegheremo il Raspberry Pi al router/modem di casa tramite cavo ethernet (andrebbe bene anche collegarlo tramite un adattatore wifi USB), quindi collegheremo un hard disk esterno alla porta USB del Raspberry e per finire installeremo e configureremo Samba per rendere accessibile a tutti i dispositivi collegati alla rete casalinga il contenuto dell'hard disk.

Se vi state chiedendo che cos'è Samba, è un progetto libero che fornisce servizi di condivisione file e stampati utilizzando il protocollo di condivisione SMB di Microsoft. La popolarità di Samba è dovuta dal fatto che è un software libero e permette la condivisione tra computer con diversi sistemi operativi, tra i quali Windows, OS X e Linux.
Perché dovremmo voler condividere un hard disk sulla rete casalinga? Per esempio potremmo mettere tutte le nostre foto ed i nostri video sull'hard disk condiviso così da potervi accedere dal nostro desktop, dal portatile o da un'altro dispositivo che utilizziamo a casa.

Il Raspberry Pi con un hard disk Western Digital Red da 2 Tera byte utilizzato come NAS


Collegare e montare l'hard disk esterno alla porta USB

Prima cosa da fare e collegare fisicamente l'hard disk alla porta USB del Raspberry Pi, successivamente dobbiamo montare, cioè rendere accessibile il contenuto dello stesso al nostro sistema.
Una cosa importante da sapere è che il Raspberry Pi non riesce ad alimentare un hard disk esterno USB, quindi dovrete fare in modo di alimentarlo esternamente. Come vedete nella foto io ho utilizzato una base alimentata, potete comunque scegliere un qualsiasi case che abbia un cavo di alimentazione.

Creiamo una cartella all'interno di /mnt che farà da punto di inizio del disco esterno, ad esempio:

sudo mkdir /mnt/nas

Ora con il comando lsblk andiamo ad identificare il nostro disco

lsblk

Verrà visualizzato sul terminale una lista dei dischi collegati:

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, 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...
Per avere il massimo delle prestazioni dal nostro disco dobbiamo fare in modo che la partizione che useremo per il nostro NAS sia formattata con il file system di tipo ext4. Se così non fosse possiamo formattare la partizione con il comando mkfs.

ATTENZIONE: questo comando formatterà la partizione, quindi cancellerà qualsiasi file in esso contenuto. Ricordatevi di mettere al sicuro i file che non volete perdere prima di procedere!

Ora che siete sicuri di quello che fate:

sudo mkfs -t ext4 /dev/sda1

Il disco è pronto, possiamo montare la partizione con il comando:

sudo mount /dev/sda1 /mnt/nas

Per avere accesso completo al contenuto del disco in lettura e scrittura, modifichiamo il proprietario della cartella nas e di tutte le sotto cartelle ed i file in essa contenuti con il nostro nome utente.

sudo chown -R [nome_utente]:[nome_utente] /mnt/nas

Dove al posto di "[nome_utente]" inserirete il vostro nome utente, ad esempio se utilizzate l'utente di default pi, scriverete:

sudo chown -R pi:pi /mnt/nas

Ora possiamo guardare il contenuto del disco

ls /mnt/nas

Per poter fare in modo che disco venga montato all'avvio del sistema bisogna andare a modificare il file di configurazione /etc/fstab.
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>

Per il nostro disco la riga dovrà essere così

/dev/sda1    /mnt/nas    ext4    defaults    0     3

Dopo aver aggiunto la riga alla fine del file fstab, possiamo salvare premendo i tasti Ctrl + o, premiamo enter per confermare il nome del file, quindi usciamo dall'editor con Ctrl + x.
Ora possiamo riavviare il sistema con il disco collegato e questo verrà montato all'avvio.

Installare e configurare Samba

Prima di installare Samba aggiorniamo la lista delle versioni dei pacchetti del repository con

sudo apt-get update

quindi installiamo

sudo apt-get install samba samba-common-bin

questo comando installerà due pacchetti: samba e samba-common-bin, al termine dell'installazione passiamo alla configurazione.
Il file di configurazione di Samba si trova in /etc/samba, quindi:

cd /etc/samba

Facciamo una copia di sicurezza del file di configurazione con

sudo cp smb.conf smb.conf.original

Apriamo il file di configurazione smb.conf con l'editor di testo

sudo nano smb.conf

Andiamo a cercare la sezione identificata con ##### Authentication ##### e modifichiamo la riga
#  security = user
con
security = user

Quindi salviamo premendo i tasti Ctrl + o, premiamo enter per confermare il nome del file, quindi usciamo dall'editor con Ctrl + x.
Ora bisogna riavviare il server Samba per fare in modo che utilizzi le nuove impostazioni

sudo /etc/init.d/samba restart

Ora bisogna creare la password di Samba per il nostro utente, digitiamo il comando

sudo smbpasswd -a [nome_utente]

dove al posto di  [nome_utente] inserirete il vostro nome utente, per esempio Pi se non ne avete creato un altro. Vi verrà chiesto di inserire la password due volte.
Ora andiamo a modificare di nuovo il file di configurazione:

sudo nano smb.conf

Andiamo alla fine del file ed aggiungiamo queste righe:

[usb]
comment = USB Share
path = /mnt/nas
writeable = yes

Salviamo e usciamo dall'editor, quindi riavviamo il server Samba per l'ultima volta

sudo /etc/init.d/samba restart

Il vostro NAS è pronto!
Potete accedere dal vostro computer, se utilizzate una distribuzione GNU/Linux, tramite Nautilus, il gestore di file. Andate sul menu alla voce "inserisci posizione" e digitate:

smb://[indirizzo_IP]/usb/

Dove al posto di [indirizzo_IP] inserirete l'indirizzo IP del vostro Raspberry Pi. Vi verrà chiesto di inserire nome utente e password (quella che avete inserito per Samba), dopo di che potrete vedere il contenuto del disco come fosse sul vostro computer.
A questo punto, per velocizzare il collegamento al disco remoto, potete selezionare la voce "aggiungi posizione ai segnalibri", così non dovrete riscrivere l'indirizzo tutte le volte.

Per quanto riguarda OS X e Windows basterà esplorare la rete dal gestore dei file e vedrete comparire il server RaspberryPi (il nome di default del Raspberry se non lo avete modificato). Rispetto a Linux non cambia niente, vi verrà chiesto nome utente e password e potrete accedere al disco.

lunedì 17 giugno 2013

Adesivi per coprire il logo del tasto Windows con Tux, il pinguino di Linux

Tralasciando i miei portatili Apple del passato, ho sempre e solo utilizzato distribuzioni GNU/Linux sui miei computer, mi sono quindi chiesto perché le mie tastiere devono avere quel tasto con il logo di Windows? Quello che in ambiente Unix è chiamato tasto "super" o tasto "meta".
Purtroppo in commercio non ci sono alternative, al massimo si possono trovare pochissimi modelli di tastiere pensate per i Mac che non sfoggiano la bandierina a scacchi di Microsoft, ma hanno il tasto "command".
Per personalizzare le mie tastiere mi sono messo a cercare degli adesivi che potessero sostituire il logo Windows con il pinguino Tux di Linux o qualsiasi altro simbolo che fosse coerente con l'utilizzo con i sistemi GNU/Linux. Questa ricerca mi ha portato ad un unico negozio online che vende degli adesivi con il pinguino Tux dagli Stati Uniti, i prezzi purtroppo non sono economici e sono ulteriormente aggravati dalle spese di spedizione.
Così alla fine ho deciso di auto produrli. Ho cercato un file vettoriale con Tux, ho apportato delle piccole modifiche per adattarlo alla stampa ed ho commissionato un'azienda specializzata per far stampare gli adesivi.
Ho fatto stampare gli adesivi su un materiale polimerico lucido con retro grigio, per avere una lunga durata. Sono adatti per l'esposizione in luoghi interni ed anche esterni, inoltre, una laminazione lucida sopra la stampa, li protegge dall'usura dovuta al contatto con le dita.
Sono tagliati a forma circolare, di 13 mm di diametro, adatti quindi alla maggior parte delle tastiere, li ho applicati con successo anche sulla tastiera del mio net-book.
Ho ottenuto quello che volevo, ma ho dovuto spendere molto di più del preventivato, avendo dovuto ordinarne in gran quantità.
Se qualcuno fosse interessato ad avere degli adesivi per la tastiera può contattarmi, io ne ho utilizzati quattro, ma ne ho centinaia da parte.

Il punguino Tux sulla tastiera del mio net-book



Questa è la tastiera Logitech del mio desktop

martedì 11 giugno 2013

Raspberry Pi - Guida veloce di riferimento per l'amministrazione del sistema

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.