# TuxOnIce (Italiano)

Questa è una guida veloce all'installazione di TuxOnIce (conosciuto anche come suspend2), un framework avanzato per la sospensione/ibernazione, che supporta l'ibernazione in una partizione swap o in un normale file con una compressione veloce LZO. Visita il sito di TuxOnIce per una lista completa delle caratteristiche.

## Preparazione del kernel

TuxOnIce consiste in una patch del kernel, più un'interfaccia utente aggiuntiva. Solo la patch è necessaria, l'interfaccia utente fornisce un'interfaccia testuale o grafica durante il ciclo di sospensione/ibernazione.

È possibile usare il pacchetto linux-iceAUR o linux-pfAUR presenti su AUR. Questo automatizza la procedura di patch, compilazione ed installazione del kernel, e la generazione della initramfs con un hook adeguato. In questo modo si ha un buon controllo del processo di installazione e volendo si può personalizzare apportando i cambiamenti voluti.

Altrimenti, sarà necessario applicare la patch, configurare e compilare il proprio kernel, visitare le pagine Kernel Compilation From Source e Kernel Compilation with ABS per maggiori informazioni. Le patch necessarie possono essere ottenute presso il sito TuxOnIce di cui sopra.

Ora è necessario installare il pacchetto hibernate-scriptAUR da AUR che verrà richiamato da TuxOnIce. Questo pacchetto è lo script ufficiale fornito dal team di TuxOnIce.

I file di configurazione di hibernate-script sono in `/etc/hibernate`.

## Ricreare initramfs

Se si vuole usare un initramfs (cosa che Arch fa di default) è necessario aggiungere "resume" agli HOOKS di mkinitcpio. In più, se si vuole usare la compressione veloce LZO aggiungere "lzo" all'array MODULES dello stesso file. Un esempio di `/etc/mkinitpio.conf`:

    MODULES="lzo"
    HOOKS="base udev autodetect block resume filesystems"

Ricreare ora l'initramfs:

    # mkinitcpio -p linux-ice

o

    # mkinitcpio -p linux-pf

## Configurazione del Boot Loader

Prima che si possa usare la funzione di sospensione, bisogna aggiungere il parametro `resume` ai parametri passati al kernel nel file di configurazione del boot loader (se si sta usando un sistema con una partizione swap "specificata" nella configurazione del kernel questo passaggio non è necessario). Questo punterà alla partizione di swap o al file di ibernazione.

### Ibernazione in una partizione di Swap

Note: A partire l'ultima versione di TuxOnIce (3.0.99.44), aggiungere il parametro "resume" al kernel non è più necessario, sarà rilevato automaticamente se l'unità di swap contiene un'immagine avviabile. Ci sarà solo bisogno di impostare il metodo di swap adeguatamente. Per maggiori informazioni, visitare [1].

Quindi configurare il metodo swap (assicurarsi che sia specificata la partizione giusta) in `/etc/hibernate/tuxonice.conf`

    SuspendDevice swap:/dev/sda3

### Ibernazione su un file di swap

Note: L'autorilevamento, come detto in precedenza, non sembra funzionare con i file di swap; sarà dunque necessario impostare manualmente il parametro "resume" del kernel.

Se si utilizza un file di swap invece di una partizione di swap, sarà necessario passare il percorso dei suoi header a TuxOnIce. TuxOnIce è in grado di elencare tutti gli header di swap disponibile.

    cat /sys/power/tuxonice/swap/headerlocations

Utilizzare la stringa data così com'è in `/etc/hibernate/tuxonice.conf` e passarla al kernel come parametro "resume".

    SuspendDevice swap:/dev/sda7:0x1087070

Aggiungere la seguente riga nei parametri del kernel nel file di configurazione del bootloader:

    resume=swap:/dev/sda7:0x1087070

Note: Specificare il dispositivo di "resume" per mezzo degli UUID dovrebbe funzionare, ma non è del tutto garantito. Questo potrebbe essere un problema di TuxOnIce o di mkinitcpio. Specificando `/dev/sdxx` dovrebbe invece funzionare in tutti i casi.

### Sospensione su file

Per l'allocatore di file, si dovrà preparare un file di ibernazione. Questo è diverso dal file di swap standard dato che questo file viene utilizzato SOLO per l'ibernazione e non come file di swap del sistema generale. Il metodo precedente è raccomandata per essere più efficiente in termini di spazio su disco. Configurare il file `/etc/hibernate/tuxonice.conf` e decommentare l'opzione "FilewriterLocation":

    FilewriterLocation /suspend_file 1000

1000 è la quantità di spazio su disco riservato per il file di ibernazione, in questo caso 1000 megabyte. Di solito un valore pari al 50%-75% della quantità totale di RAM è sufficiente.

Successivamente, eseguire il seguente comando per creare il file di ibernazione:

    # hibernate --no-suspend

Dare un'occhiata a `/sys/power/tuxonice/resume` per vedere cosa passare al kernel. Si dovrebbe vedere qualche file del genere:`file:/dev/hda7:0x10011f`, nel qual caso si dovrebbe aggiungere `resume=file:/dev/hda7:0x10011f` come parametro del kernel nel file `/etc/lilo.conf` (per LILO) o `/boot/grub/menu.lst` (per GRUB) o `/boot/grub/menu.cfg` (per GRUB2).

## Sospensione e Resuming

Con gli hibernate-script, il metodo di ibernazione preferito può essere configurato nel file `/etc/hibernate/hibernate.conf`. Se si elencano diversi metodi, il primo sarà quello utilizzato. Notare che hibernate può essere anche usato con Suspend to RAM o vanilla swsusp, ma questo non è parte della guida.

Per TuxOnIce usare:

    TryMethod tuxonice.conf

Le opzioni specifiche per TuxOnIce sono nel file `/etc/hibernate/tuxonice.conf`. Assicurarsi che le seguenti righe siano decommentate e configurate adeguatamente:

    UseTuxOnIce yes
    Compressor lzo

Ci sono altre opzioni aggiuntive e trucchi che possono essere impostati in `/etc/hibernate/tuxonice.conf` e `/etc/hibernate/common.conf`, informazioni più dettagliate possono essere trovate sul sito ufficiale di TuxOnIce o nella pagina Suspend to Disk di questo wiki.

Provare quindi l'ibernazione di TuxOnIce con questo comando:

    # hibernate -F /etc/hibernate/tuxonice.conf

Si può uscire dal ciclo di sospensione premendo il pulsante `Esc`. Premendo `Shift + R`, si forzerà il sistema a riavviarsi dopo l'ibernazione.

Se tutto è andato bene, dovresti essere in grado di effettuare il resuming usando la stessa voce del menù di Grub che usi normalmente per avviare il sistema. Se imposti questa opzione come default, effettuerai sempre il resuming se un file di ibernazione è disponibile su disco o sulla swap. È bene testare la sospensione/ibernazione prima da terminale, e dopo essersi assicurati che funziona, provarla da X.

Attenzione: Non usare mai un kernel differente per effettuare il resume da quello che hai usato per l'ibernazione! Se pacman aggiorna il tuo kernel, non ibernare prima che tu abbia riavviato la macchina e avviato il nuovo kernel.

Si può rendere questa pratica più sicura aggiungendo il demone hibernate-cleanup nella stringa DAEMONS in `/etc/rc.conf`. Questo script verifica che qualsiasi vecchia immagine per il resume sia cancellata della partizione di swap durante l'avvio. Questo dovrebbe rendere più sicuro il sistema anche nel caso si scelga il kernel sbagliato dal menù di Grub. Il demone hibernate-cleanup è incluso nel pacchetto hibernate-script.

## Configurazioni addizionali di pm-utils

Se si usa GNOME come DE, o un qualunque altro DE che richieda pm-utils per spegnere e sospendere sono necessarie ulteriori configurazioni per TuxOnIce.

Tali configurazioni vanno fatte in `/etc/hibernate/hibernate.conf` e dovrebbero funzionare. Alcune configurazioni però possono dare problemi con pm-utils. La compressione, per esempio, è di default lzo a meno che si intervenga manualmente. Editare il file sotto `/etc/pm/sleep.d/` è un'ottima alternativa per far si che le configurazioni vengano lette correttamente.

Per cambiare la compressione usata da TuxOnIce, per esempio, editare `/etc/pm/sleep.d/00doit` e aggiungere qualcosa del genere:

    #!/bin/bash
    case $1 in
    hibernate)
    #Possible compressors include lzo, lzf, and none
    echo none > /sys/power/tuxonice/compression/algorithm
    ;;

Linee addizionali possono essere usate per cambiare altre opzioni come ad esempio il logging level di default (in `/sys/power/tuxonice/user_interface/default_console_level`).

## Usare UserUI - Un'Interfaccia Utente per TuxOnIce (Opzionale)

È anche possibile utilizzare un'interfaccia utente testuale o grafica (fbsplash) con una barra di avanzamento. Per fare questo, installare il pacchetto tuxonice-useruiAUR da AUR. Questo pacchetto dipende dalla libreria statica freetype2, fornita dal pacchetto freetype2-staticAUR[broken link: package not found] (anche questo da AUR).

Nel file `/etc/hibernate/tuxonice.conf`, imposta l'interfaccia utente desiderata:

    ProcSetting user_interface/program "/usr/sbin/tuxoniceui"  #Interfaccia Testuale

o

    ProcSetting user_interface/program "/usr/sbin/tuxoniceui -f"  #Interfaccia Grafica con fbsplash

L'interfaccia con fbsplash necessita di un symlink al tema fbsplash, in questo modo:

    # ln -s /etc/splash/arch-banner-noicons/ /etc/splash/tuxonice

Senza questo symlink, non ci saranno indicatori di progresso durante il suspend/resume.

Probabilmente sarà necessario rigenerare l'initramfs dopo aver cambiato il link simbolico sopra.

L'interfaccia testuale può essere utile per il debug di TuxOnIce, in quanto visualizza alcuni messaggi.

Non si vedrà un'interfaccia utente durante i primi secondi del processo di ripristino a meno che non si aggiunga l'hook userui alla propria configurazione mkinitcpio (prima dell'hook resume) e si rigeneri l'initramfs, ma anche questo è opzionale.

Generate initramfs:

    # mkinitcpio -p linux-ice

Per verificare se la userui funziona, da terminale eseguite:

    # tuxoniceui_test --test

Per l'interfaccia grafica eseguite:

    # tuxoniceui_fbsplash --test

## Riferimenti

- Il sito di TuxOnIce e la sua wiki sono un ottima fonte di informazioni.
- Altre informazioni generali sulla sospensione/ibernazione con gli hibernate-script si possono trovare nella pagina Suspend to Disk di questa wiki. Questa tratta argomenti avanzati come problemi con certe configurazioni hardware.
- Un'altra buona fonte di informazioni è la wiki di Gentoo.

Categories:

- Power management (Italiano)
- Laptops (Italiano)

Hidden category:

- Pages with broken package links