martedì 29 settembre 2015

Personalizzare il menù di GRUB 2 (Debian/Ubuntu e derivate): sistema operativo di default, immagine di sfondo e colore del testo


GRUB 2 è il bootloader di GNU, cioè quel programma che, all'avvio del computer, si occupa di caricare in memoria il kernel del sistema operativo.
Dopo aver installato la nostra distribuzione GNU/Linux preferita, all'avvio del PC, verrà visualizzato il menù di GRUB 2, dove potremo scegliere, tra le altre opzioni, quale sistema operativo caricare.
Vediamo quali modifiche possiamo apportare alla configurazione di GRUB 2 per adattarlo alle nostre necessità.

Questa guida è scritta in modo specifico per distribuzioni GNU/Linux Debian e derivate come Ubuntu e Mint. I concetti di base sono comunque validi anche su altre distribuzioni GNU/Linux.



Scelta del sistema operativo da avviare

Il comportamento di default di GRUB 2 è quello di attendere alcuni secondi la scelta dell'utente prima di avviare automaticamente il sistema operativo che ha installato GRUB 2 (in un PC con dual-boot Windows e GNU/Linux, quest'ultimo sarà avviato di default salvo scelta differente da parte dell'utente).

1) Cambiare il sistema operativo di default

Nel caso preferissimo avviare di default un altro sistema operativo basterà apportare la seguente modifica:

Avviate il terminale e portatevi sulla directory /etc/default con il comando cd

> cd /etc/default

Ora andremo a modificare il file grub contenuto in questa cartella (in questa guida userò il text editor nano, ma se preferite potrete utilizzarne un altro a piacimento).

> sudo nano grub

Verrà visualizzato un file di testo come il seguente:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

La righe che iniziano con il carattere # sono considerate commenti e quindi ignorate. Il sistema operativo di default è indicato dall'opzione GRUB_DEFAULT che di solito è impostato al valore 0, cioè il primo sistema indicato sulla lista di GRUB 2. Sostituendo 0 con un altro numero potremmo scegliere il sistema di default (0 il primo nella lista, 1 il secondo, 2 il terzo e così via).

Ora salvate le modifiche ed uscite dal text editor (se state utilizzando nano salvate con la combinazione di tasti Ctrl-O, confermando il nome del file premendo Invio. Quindi uscite con Ctrl-X).

Ora da terminale aggiornate la configurazione di GRUB2 eseguendo il seguente script:

> sudo update-grub

Ricordatevi che le sole modifiche al file grub non hanno alcun effetto sulla configurazione di GRUB2 se non eseguite lo script di aggiornamento. Ora potete riavviare e testare le modifiche apportate.

2) Avvio di default del sistema operativo utilizzato precedentemente

Questa opzione è quella che reputo più comoda, è particolarmente utile quando dobbiamo riavviare un sistema, come ad esempio a seguito di un aggiornamento del kernel.

Andiamo ancora a modificare il file grub in /etc/default. Per attivare questa opzione dovremmo aggiungere una riga prima di GRUB_DEFAULT ed inserire quanto seguente:

GRUB_SAVEDEFAULT=true

Questa opzione attiva il salvataggio dell'ultima scelta fatta. Ora modifichiamo la riga sottostante per scegliere come sistema di default quello salvato.

GRUB_DEFAULT=saved

Come prima salviamo il file ed aggiorniamo GRUB 2 eseguendo il solito script.

> sudo update-grub

Modificare l'aspetto del menu di GRUB 2

Una cosa comune alla maggior parte degli utenti GNU/Linux è la voglia di personalizzazione del proprio sistema, a partire dalla prima cosa che viene visualizzata dopo aver acceso il computer: il menu di GRUB 2.

1) Aggiungere un'immagine di sfondo al menu

Per avere un'immagine di sfondo basterà aggiungere questa opzione al solito file grub in /etc/default

GRUB_BACKGROUND="percorso del file immagine"

GRUB 2 supporta l'uso di immagini in formato PNG, JPG/JPEG e TGA. Scegliete accuratamente un'immagine della giusta risoluzione e fate in modo che sia salvata in uno dei formati supportati.

Ora la domanda è dove mettere l'immagine da utilizzare con GRUB 2?

Io ho l'abitudine di metterla in /usr/share/images/grub. Andate in /usr/share con il comando

> cd /usr/share

Ora visualizzate il contenuto per controllare se c'è una directory chimata images, se non c'è potrete crearla con il seguente comando

> sudo mkdir images

Ora andate all'interno della directory images

> cd images

Create la directory grub al suo interno

> sudo mkdir grub

Ora abbiamo una cartella dedicata a contenere le immagini destinate a GRUB 2. Copiate l'immagine che volete utilizzare con il comando cp. Per farlo andate nella directory dove avete l'immagine con il comando cd (per tornare alla propria home directory potete usare il comando cd senza indicare alcun percorso), quindi digitate

> sudo cp nome immagine /usr/share/images/grub/nome immagine

Se per esempio la vostra immagine si chiama splash.png scriverete

> sudo cp splash.png /usr/share/images/grub/splash.png

Ora andiamo a modificare il solito file grub in /etc/default per indicare il percorso completo dell'immagine nell'opzione GRUB_BACKGROUND, se per esempio l'immagine si chiama splash.png scriverete quanto segue

GRUB_BACKGROUND=”/usr/share/images/grub/splash.png”

Salvate e uscite dal text editor, quindi ricordatevi di aggiornare GRUB 2 con il solito script

> sudo update-grub

Ora riavviate ed ammirate il nuovo look.

2) Cambiare i colori del testo del menu

Potrebbe essere necessario cambiare i colori del testo del menu di GRUB 2 per migliorarne la leggibilità dopo aver aggiunto un'immagine di sfondo, o semplicemente perché vogliamo personalizzare anche questi.

Per cambiare i colori del testo dobbiamo modificare il file 05_debian_theme che si trova in /etc/grub.d

> cd /etc/grub.d

> sudo nano 05_debian_theme

Questo file di testo è molto lungo ed apparentemente abbastanza complesso. Dovete scorrere il file lentamente e trovare le seguenti righe:

if [ -z "${2}" ] && [ -z "${3}" ]; then
     echo " true"
fi

I colori che vogliamo modificare sono i seguenti:
  • - menu_color_highlight = sono i colori del testo evidenziato e del suo sfondo all'interno del box contenente il menù
  • - menu_color_normal = sono i colori del testo non evidenziato e del suo sfondo all'interno del box contenente il menù
  • - menu_color = sono i colori del testo e del suo sfondo al di fuori del box contenente il menù

La sintassi della scelta del colore è la seguente:

menu_color=colore_testo/colore_sfondo

E questi sono i colori accettati da GRUB2:
  • black
  • blue
  • brown
  • cyan
  • dark-gray
  • green
  • light-cyan
  • light-blue
  • light-green
  • light-gray
  • light-magenta
  • light-red
  • magenta
  • red
  • white
  • yellow

Ora modifichiamo le righe trovate precedentemente come segue:

if [ -z "${2}" ] && [ -z "${3}" ]; then
     #echo " true"
     echo " set color_highlight=red/green"
     echo " set color_normal=light-cyan/black"
fi

Abbiamo aggiunto il carattere # davanti alla riga echo “ true” per farla diventare un commento ed abbiamo aggiunto due righe con la scelta dei colori del testo evidenziato e non, all'interno del box contenente il menù.

Modificate a piacimento i colori, ma fate attenzione a non modificare il colore di sfondo di color_normal. Infatti se il colore di sfondo è impostato come black, questo sarà trasparente e lascerà vedere l'immagine sottostante, se lo modificate con un altro colore allora non sarà trasparente ed il risultato finale non sarà gradevole.

Al termine della modifica salvate il file e ricordate sempre di aggiornare la configurazione con lo script update-grub.

Riavviate e controllate che il look finale sia leggibile e di vostro gradimento.

martedì 9 giugno 2015

Collegare uno scanner di rete al Raspberry Pi utilizzando il server Samba


Se avete una stampante multifunzione di rete che supporta il protocollo SMB (Server Message Block) e vi permette di inviare i file dei documenti acquisiti con lo scanner su un disco condiviso in rete, allora potrete facilmente configurarla per utilizzare il server Samba installato sul vostro Raspberry Pi.

Se non avete ancora installato e configurato il server Samba sul vostro Raspberry Pi potete farlo ora seguendo la mia guida.

In questo post utilizzo la stampante Epson Workforce AL-MX200DNF, ma potrete utilizzare qualsiasi altra marca e modello di stampante multifunzione che abbia il supporto al protocollo SMB.

Dopo aver collegato la stampante al router tramite cavo LAN (o in Wi-Fi se la stampante ve lo permette) ed averla accesa, dal browser di un PC collegato alla stessa rete, digitate l'indirizzo IP della stampante per accedere alla pagina di configurazione della stessa.
Se state configurando una stampante Epson, vi comparirà la pagina EpsonNet Config come questa:

Pagina di configurazione Epson visualizzata sul browser


Ora selezionate la linguetta denominata Rubrica Indirizzi e quindi sulla sinistra, sotto Scansione di rete, cliccate su Rubrica indirizzi computer/server.

Pagina Rubrica Indirizzi computer/server


Vi comparirà una lista di indirizzi vuoti, cliccate il pulsante aggiungi su uno di questi per accedere alla pagina di configurazione del computer collegato.

Pagina di configurazione del computer collegato


Ora inseriamo i dati richiesti:

Nome (visualizzato sulla stampante): potete scrivere Raspberry Pi o qualsiasi altro nome vi ricordi il vostro disco condiviso sulla rete.

Tipo di rete: selezionate Computer SMB o qualsiasi altra dicitura che indichi il protocollo SMB.

Indirizzo host (indirizzo IP): inserite l'indirizzo IP della stampante.

N. porta: 139

Nome accesso (se richiesto dall'host): inserite il nome utente che avete utilizzato per configurare Samba (molto probabilmente avete utilizzato pi se non avete creato un nuovo utente).

Password: inserite la password che avete impostato per accedere al server Samba.

Conferma password: ripetete la stessa password.

Nome directory condivisa: inserite il nome che avete assegnato alla condivisione Samba, se avete seguito la mia guida inserite usb.

Percorso sottodirectory (facoltativo): se volete che i file vengano inviati in una cartella in particolare all'interno del disco condiviso, inserite qui il percorso. Ad esempio io ho creato la cartella scanner ed ho quindi inserito il percorso /scanner

Cliccate su applica ed avete finito.

Ora potete provare ad effettuare una scansione: inserite il foglio da acquisire, selezionate la funzione scanner sulla stampante, quindi scansione in rete. Selezionate scansione su... e quindi Computer (rete). Vi comparirà la lista della rubrica indirizzi e vedrete il vostro Raspberry Pi con il nome che gli avete assegnato. Premete il tasto ok, configurate gli altri parametri della scansione se necessario e quindi premete il tasto Start.
Quando lo scanner avrà terminato l'acquisizione, potrete accedere al disco condiviso in rete con il vostro PC e troverete il file della scansione effettuata nella cartella scelta.