Se un driver non riesce a riprendere correttamente un dispositivo, credo che l'unica soluzione che troverai sarà il debug e l'identificazione di dove si trova il problema in modo da poter decidere cosa fare da lì. Ad esempio, non vedo come è possibile aggiornare se la scheda video non viene reinizializzata.
ACPI gestisce la sospensione / ripresa e la visualizzazione. Ad esempio, il seguente problema ACPI che si verifica su alcuni ThinkPad può risolvere i sintomi che stai descrivendo:
Quando si riprende da suspend-to-ram, i display della console di testo potrebbero mostrare immondizia anziché testo effettivo. In caso contrario, la macchina è ancora reattiva e X viene visualizzato correttamente. Se tutto ciò è vero, l'aggiunta dell'opzione kernel acpi_sleep = s3_bios, s3_mode nel menu.lst o
lilo.conf potrebbe risolvere il problema.
Problemi con ACPI suspend-to-ram - ThinkWiki
Se stai utilizzando il thinkpad_acpi
modulo a cui si rivolge la citazione sopra, potrebbe essere tutto ciò di cui hai bisogno. Per ulteriori informazioni su questa soluzione, consultare Suspend2Ram - Documentazione Powersave
Innanzitutto, ci sono diversi parametri del kernel che possono essere provati. Aggiungili al tuo "kernel" -line in /boot/grub/menu.lst . Maggiori informazioni su questi sono disponibili in
/usr/src/linux/Documentation/power/video.txt .
Da video.txt:
Durante il ripristino di S3, è necessario reinizializzare l'hardware. Per la maggior parte dei dispositivi, questo è semplice e il driver del kernel sa come farlo. Sfortunatamente c'è un'eccezione: la scheda video. Questi sono generalmente inizializzati dal BIOS e il kernel non ha abbastanza informazioni per l'avvio della scheda video. (Il kernel di solito non contiene nemmeno il driver della scheda video: vesafb e vgacon sono ampiamente utilizzati).
Altro su video.txt Fare riferimento alla tabella qui per vedere se un noto acpi_sleep=<hack>
è elencato per il modello della scheda video.
Debian Suspend e KMS
Il wiki di Debian suggerisce di disabilitare KMS per un problema di "video danneggiato al riavvio". 1
Un problema molto comune riscontrato dopo il riavvio del computer è il video danneggiato (o schermo nero o nessuna retroilluminazione LCD). Il primo passo è verificare se il sistema è ancora in esecuzione, cosa che può essere fatta semplicemente premendo il pulsante Capslock e controllare se il LED Capslock sta cambiando di conseguenza. Se il sistema è ancora in esecuzione, nella maggior parte dei casi è necessario aggiungere una stranezza video per la scheda video.
Debian ora ha l'impostazione della modalità kernel (KMS) abilitata di default per la maggior parte delle schede video Intel, nVidia e ATI. Ma la stranezza video di pm-utils [non] supporta ancora KMS. Quindi nella maggior parte dei casi dovresti provare prima a disabilitare KMS. I passaggi dettagliati per la tua scheda video specifica sono disponibili nella pagina KernelModesetting.
Dopo aver disabilitato KMS, se il video dopo il ripristino continua a corrompersi, puoi provare a sospendere il sistema utilizzando alcune stranezze video. Leggi la manpage del programma pm-suspend per una spiegazione molto dettagliata di tutte le stranezze disponibili e prova le loro combinazioni dalla riga di comando. Se trovi correttamente una combinazione di stranezze che funziona per il tuo sistema, puoi aggiungerle in / usr / lib / pm-utils / video-quirks per renderle permanenti. Allo stesso tempo, ti preghiamo di aiutare a presentare un bug sul pacchetto pm-utils con una patch sulle tue modifiche in modo che possa essere utile alla massa.
Un problema comune riscontrato nell'aggiornamento dei sistemi dalle vecchie versioni di Debian è l'abilitazione di quirk-s3-bios che blocca il sistema durante la sospensione. Se il sistema si blocca durante la sospensione, controllare attentamente pm-suspend.log dopo aver abilitato il debug e assicurarsi che quirk-s3-bios non venga utilizzato.
Se ritieni che ciò sia correlato al tuo problema, puoi provare a disabilitare KMS come suggerito. Per istruzioni sulla tua carta, vedi KernelModesetting - Debian Wiki
Sospensione del debug
Il registro dei processi di sospensione e ripresa si trova nel file
/var/log/pm-suspend.log. Contiene informazioni moderatamente dettagliate per impostazione predefinita. Ulteriori informazioni possono essere abilitate per il debug inserendo la riga export PM_DEBUG = true all'inizio delle funzioni file
/ usr / lib / pm-utils / pm- .
Per di più, controlla anche le informazioni sulla funzione di test del kernel menzionata su Suspend - Debian Wiki . Questo può aiutarti a eseguire il debug e isolare il problema.
Alcuni esempi e informazioni di debug più approfondite che potrebbero aiutarti a "driver che non riescono a sospendere o riprendere i loro dispositivi" sono disponibili su https://www.kernel.org/doc/Documentation/power/basic-pm-debugging.txt
Altre idee di debug per pm-utils
at -pms - ArchWiki e /unix//a/29090/87728
Ecco un elenco completo dei parametri del kernel, molti dei quali sono rilevanti per acpi e suspend.
In bocca al lupo.