"Suspend to disk" per il desktop con Linux

Niente a che fare con la sicurezza, salvo qualche nota alla fine. Io sono uno di quelli che ha sempre una decina di finestre aperte sul desktop, con attività lasciate a metà alla sera e riprese il giorno dopo. Inoltre, la notte ho sempre fatto girare un po’ di batch per fare backup, aggiornamenti ecc. Quindi i miei computer la notte generalmente restavano accesi. Tuttavia, un rapido controllo sui consumi mi ha convinto che è il caso di fare diversamente, se non comporta troppi svantaggi. Il conto è semplice: il mio “sistema informativo” consuma nel complesso qualcosa come 300 Wh all’ora, ovvero 7,2 KWh al giorno. Consumi che però si sommano agli altri e quindi si vanno a piazzare nella fascia alta di prezzo, al momento circa 24 centesimi a KWh, ovvero circa 1,73 euro al giorno. Sembra magari poco, ma sono 630 euro all’anno. Costi più che giustificati se servono, ma potendo preferisco comunque spendermi i soldi al ristorante 😉 Spegnere tutto per dieci ore ad esempio riduce il costo a 368 euro. Ovviamente, se il tutto non mi costringe a perdere mezz’ora al giorno fra chiusura e riapertura di tutte le applicazioni. La soluzione alla fine è stata l’uso del “suspend to disk” più anacron. Sia chiaro che la soluzione è ovvia, e ci pensavo da tempo. Solo che il supporto per Linux mi aveva creato delle difficoltà, ed ero convinto che il mio pc principale, non proprio nuovo, non lo supportasse correttamente (ogni tanto, quando penso ai miei pc mi viene in mente la pagina di “Chaos Manor” che Jerry Pournelle scriveva su Byte quando leggevo quella rivista, ormai venticinque anni fa).

Comunque, spinto dall’ultima bolletta, ho deciso di fare un nuovo tentativo. Ebbene, ha “quasi” funzionato “quasi” subito. Prima di tutto, dopo alcune ricerche e tentativi mi sono affidato all’HOWTO disponibile nel CVS di Sourceforge e presente nel pacchetto “suspend-0.5-11mdv2008.0” di Mandriva, che ho installato. La buona notizia è che dal kernel 2.6.17 il supporto è direttamente integrato nel kernel. Dato che uso un kernel 2.6.22-6, pensavo, sono a cavallo. Non che patchare il kernel sia complicato, ma quando le cose non fnzionano avere un’operazione critica in meno che può non aver funzionato semplifica il debug. Trovare e installare il supporto giusto per la propria versione del kernel decisamente si qualifica come operazione critica (se non ci credete, provate a far funzionare un fax ISDN su Linux se non usate Suse). Avendo installato l’rpm di Mandriva, ovviamente alcune operazioni erano già state fatte. In teoria, sarebbe bastato settare le opzioni giuste nel kernel, ricompilare e… voilà. Ma quando mai succede così? Primo problemino: non ho trovato l’opzione CONFIG_ENCRYPT (forse per quella dovrò comunque patchare il kernel?) e per di più settarla nel file /etc/suspend.conf mi ha causato un errore nel parsing del file. Quindi al momento l’immagine salvata nella swap non è cifrata, e la cosa mi disturba un tantino. Cercherò di rimediare presto. Comunque compilo, configuro, poi provo da una console (sotto X) e si sospende… meraviglia! Manca solo di farlo ripartire. Riaccendo il PC, il sistema riparte… ma lo schermo resta nero 🙁 . Avevo letto infatti che far ripartire correttamente la scheda grafica è uno dei passaggi difficili. Provo allora senza X (cosa che peraltro gli HOWTO consigliano). Si sospende e… meraviglia, riparte! Allora provo a barare: con X aperto, passo ad una console con ctrl+alt+F1 e di eseguo il s2disk. Si sospende e riparte correttamente. Con F7 passo a X… e lo schermo torna nero 🙁 . Chiaramente, se X non funziona non me ne faccio niente, perché quello che voglio è non dover chiudere la decina di finestre. Penso allora che forse c’è qualche settaggio del BIOS legato alla scheda grafica che crea problemi… e trovo (un BIOS Award) che c’è un “ACPI Suspend Type” che era messo a S3/STR (suspend to RAM). Lo cambio a S1/POS (Power On Suspend) e… meraviglia, anche X funziona. Mi rimangono due problemi. Uno è quello della cifratura dell’immagine. L’altro, che ho risolto rapidamente, è che quando riemerge dalla sospensione il PC è esattamente nello stato in cui l’ho lasciato, senza screensaver, con una shell di root accessibile ecc. La cosa più semplice mi è sembrata la seguente: lancio lo screensaver, passo a una console (alt+ctl+F1), apro una shell di root, e lancio un “exec s2disk”. Una volta eseguito il comando, la sessione termina e la shell di root si chiude da sola,tornando al prompt del login.

Ultima cosa: dato che adesso tutte le cose che cron faceva partire di notte non verrebbero eseguite, ho attivato “anacron”, che è un “cron asincrono”: se il sistema è spento all’orario previsto per qualche job, al momento della riaccensione anacron lancia tutti i job che sono stati saltati. Quindi me li trovo attivi durante il giorno anziché di notte, quando disturbavano meno, ma tutto sommato la cosa è accettabile.

This entry was posted in Varie. Bookmark the permalink.

2 Responses to "Suspend to disk" per il desktop con Linux

  1. Pingback: Sicurezza, ICT ed altro » Blog Archive » Suspend to disk (2)

  2. claudio says:

    Altra aggiunta. Il tutto funziona se utilizzo per la scheda video (una GeForce FX 5600XT) il driver incluso nella distribuzione. Se provo a utilizzare quello di Nvidia scaricato dal loro sito, dal nome NVIDIA-Linux-x86-100.14.11-pkg1.run, quando il si riattiva X il sistema si pianta.

Comments are closed.