Domanda:
Disabilita la cancellazione dello schermo in X-Windows su Raspbian
Salim Fadhley
2012-10-01 17:55:12 UTC
view on stackexchange narkive permalink

Intendiamo utilizzare un RPi al lavoro per guidare un pannello di visualizzazione dello stato: mostrerà lo stato dei bug del nostro progetto e alcune altre statistiche di vitale importanza.

Ho provato a fermare lo schermo- risparmiatore di oscurare lo schermo senza fortuna. Ho utilizzato le seguenti formule:

Posso ottenere l'avvio automatico di Chromium in modalità Kiosk (ho utilizzato un elemento in .config / autostart ), ma non riesco a interrompere oscuramento dello schermo. X-Windows sembra non rispondere al file .xinitrc . Ho provato a modificare questo file sull'utente predefinito ( pi ) e anche su root . Niente sembra fare la differenza per lo screen saver.

Qualcuno è riuscito a fermare l'oscuramento dello schermo su Raspbian? Esiste un'opzione dell'interfaccia utente o anche un file di configurazione che mi consentirà di modificare in modo permanente il timeout dello screensaver?

Mi aspetto che alcune di queste guide potrebbero essere state testate su altri sistemi operativi RPi. Potrebbe essere che utilizzando il nuovo Raspbian devo adottare un approccio diverso per prevenire l'oscuramento dello schermo?

AGGIORNAMENTO 0 : Il comando xset è in grado di interrompe l'oscuramento dello schermo se immesso direttamente (tramite sudo ) da xterm . Non funziona se eseguito dal file .xinitrc . Dato che la macchina accede automaticamente come utente " pi ", come posso assicurarmi che questi comandi vengano eseguiti come root ogni volta che xwindows si avvia.

Questa macchina deve essere in grado di funzionare senza sorveglianza come una sorta di chiosco. Una volta installato (sarà un display a parete senza tastiera o mouse permanentemente attaccati) l'unico modo in cui saremo in grado di configurarlo è tramite ssh .

Dovresti provare a eseguire i tre comandi forniti (xset s off; xset -dpms; xset s noblank) da un terminale avviato nella sessione X-Windows. Se lo schermo è ancora vuoto, il tuo problema è che i comandi non sono sufficienti per impedire che lo schermo si oscuri. Se lo schermo non si oscura, il tuo problema è semplicemente ottenere quei comandi eseguiti correttamente nella tua sessione X-window.
Ho eseguito questi comandi come root dal terminale effettivo: il risultato è stato che la cancellazione dello schermo è stata disabilitata. Ciò significa che .xinitrc non era in esecuzione o con autorizzazioni insufficienti al momento dell'esecuzione del comando. Eventuali suggerimenti?
Ho aggiunto una risposta con il suggerimento.
Ho ottenuto che funzioni facendo tutto (tranne l'aggiunta del file .xinitrc) in entrambi i collegamenti che hai fornito e funziona per me.
"Ho risolto questo problema installando xscreensaver: $ sudo apt-get install xscreensaver e disabilitandolo dalle impostazioni dello screensaver. Non la più elegante delle soluzioni, ma per me funziona." Questo è stato l'unico modo per farlo funzionare, grazie per il suggerimento!
Sei risposte:
#1
+40
Steve Robillard
2012-10-04 08:59:41 UTC
view on stackexchange narkive permalink

Puoi inserire i seguenti tre comandi xset

  xset s off # non attivare lo screensaverxset -dpms # disabilitare le funzioni DPMS (Energy Star). xset s noblank # non lasciare vuoto il dispositivo video  

nel file

/etc/X11/xinit/xinitrc

(dovresti inserire questi dopo la prima riga).

[Allievo che diventa insegnante?] (Http://raspberrypi.stackexchange.com/q/752/40);)
Per impostazione predefinita xset non è installato, quindi non può essere eseguito. Devi installare x11-xserver-utils in modo da avere un'app xset eseguibile.
Non sono sicuro della versione o del sistema operativo che stai utilizzando, ma xset è stato installato sul mio. Questo però non sembrava fare nulla per me.
@JasonGoemaat, prova una delle altre risposte poiché questo era ciò che funzionava 4+ anni fa.
Su un pi greco senza testa, su ssh (quando sai quale display è in esecuzione), aggiungi esplicitamente il numero del display, ad es. `xset -dpms -display: 0` ... risparmio di tempo ...
#2
+27
DerDirektor
2012-10-05 21:25:03 UTC
view on stackexchange narkive permalink

Ho avuto lo stesso problema. Nel forum di raspberry pi ho trovato questo:

Devi modificare il tuo script che sta avviando X. Nella build predefinita con lightdm il file da modificare è

/etc/lightdm/lightdm.conf

nella sezione SeatDefaults dà il comando per avviare il server X che ho modificato per farlo disattivare lo screen saver così come dpms

[SeatDefaults]
xserver-command = X -s 0 -dpms

Ha funzionato bene per me - niente più schermo vuoto!

Funziona su Pi 3! Molto obbligato!
Questo ha sempre FUNZIONATO PER ME su PI 2 e PI 3. Tutte le altre risposte suggerite da altri per questa domanda NON FUNZIONANO PER ME.
Ho usato l'immagine Debian Jessie Lite (2017-03-02) ma non ho la cartella lightdm ?! Avere installato il gestore di finestre Matchbox (non LXDE)
#3
+19
Miles Hayler
2013-04-04 19:15:10 UTC
view on stackexchange narkive permalink

Ho risolto questo problema installando xscreensaver tramite

  $ sudo apt-get install xscreensaver  

e disabilitandolo dalle impostazioni dello screensaver. Non la più elegante delle soluzioni ma ha funzionato per me.

Questa risposta è fantastica. Nessuna delle soluzioni di file di testo ha funzionato per me. Non elegante? Non sono d'accordo. Questo pacchetto sarà sempre aggiornato con gli aggiornamenti di apt-get, quindi non devo mantenerlo per farlo funzionare. E, come bonus, ora posso usare uno screensaver. Grazie Miles.
Non so perché, ma ho provato questa risposta e la console mi ha detto che non poteva recuperare alcuni file dal repository. Quindi, ha chiuso l'installazione. Ho anche provato a installare xscreensaver usando il programma aggiungi / rimuovi. Sempre lo stesso risultato. Questo potrebbe aver funzionato all'inizio.
Questo ha funzionato per me su Raspberry Pi 3. Lo ha anche inserito nel menu principale in Preferenze.
Questo è quello che ho fatto. Penso che sia il più elegante. Invece di perdere tempo con i file, è proprio lì nella GUI. Quindi, se non ne voglio uno, lo metto semplicemente su "No Screen Saver" e se non voglio il blanking lo imposto a 0 oa 999. Ho una manciata di sistemi e quando ne aggiungo uno nuovo È molto più facile ricordare un'impostazione su quali file devono essere modificati.
2018, e questa è ancora la soluzione più pulita. Confermato su Raspberry Pi 3B +
Sto avviando chromium direttamente dalla riga di comando tramite X (nessun gestore di finestre). Sono curioso di sapere se questa soluzione funzionerebbe, ma non sono sicuro di come disabilitare xscreensaver senza avere un desktop / gestore di finestre da utilizzare per configurarlo. Forse sto cercando i termini sbagliati ma non sono riuscito a trovare molte informazioni su come disabilitarlo tramite la riga di comando / modificare un file di configurazione.
Funziona per me su Raspbian Buster: modalità `echo": off "> /home/pi/.xscreensaver && sudo apt-get install xscreensaver -y && sudo reboot`
Questo è il metodo [documentato sul sito ufficiale Raspberry Pi] (https://www.raspberrypi.org/documentation/configuration/screensaver.md) ed è stata l'unica risposta che ha funzionato per la mia configurazione.
#4
+9
Maine_guy
2013-02-27 08:04:14 UTC
view on stackexchange narkive permalink

Modifica / etc / xdg / lxsession / LXDE-pi / autostart e aggiungi queste tre righe

  @xset s off @ xset -dpms @ xset s noblank  

Esci, accedi, verifica che funzioni con

  xset -q  
Questo non ha funzionato per me. Avevo anche commentato la riga \ @xscreensaver che era in questo file. Quando ho eseguito xset -q (grazie per il suggerimento!) Ho visto che le mie linee xset non avevano avuto effetto. Ho provato a decommentare la riga \ @xscreensaver e riavviato e posso vedere che le righe xset hanno avuto effetto, ma mentre questo interrompe l'avvio di DPMS, lo screensaver ora inizia dopo 10 minuti.
Nota che ho approvato una modifica (da [Kaarel Kitsemets] (http://raspberrypi.stackexchange.com/users/28504/kaarel-kitsemets)) che ha cambiato il percorso da `LXDE / autostart` a` LXDE-pi / autostart` , ma poiché non sono un utente LXDE, non sono certo che sia corretto.
#5
+2
Nakedible
2012-10-01 20:35:59 UTC
view on stackexchange narkive permalink

Poiché è stato chiarito in un commento che i comandi funzionano mentre vengono eseguiti da un terminale, ma non da .xinitrc, e che Chromium viene avviato da .config / autostart / , suggerirei quanto segue:

Crea uno script di shell disableblank.sh che esegua i comandi xset e aggiungi una voce in .config / autostart / chiamando quello script. In questo modo, tutto viene avviato con lo stesso metodo e entrambi funzionano o nessuno dei due funziona.

Inoltre, questi comandi influenzano la sessione X Window in esecuzione e sono configurabili dall'utente. Non dovrebbero essere eseguiti come root, ma l'utente con cui è in esecuzione Chromium.

Non sapendo esattamente come si avvia X o altri dettagli, questo è probabilmente il modo più sicuro, anche se probabilmente esiste un metodo più semplice modo.

#6
+2
lornix
2013-07-22 10:00:46 UTC
view on stackexchange narkive permalink

È il blanking della console che si sta attivando.

Ho provato diversi metodi suggeriti, ma quello che ha funzionato per me è stato modificare /etc/rc.local e aggiungere un comando setterm -blank 0:

  setterm -blank 0  

Quindi il file ha questo aspetto dopo:

  #! / bin / sh - e ## rc.local ## Questo script viene eseguito alla fine di ogni runlevel multiutente. # Assicurati che lo script "esca da 0" in caso di successo o da qualsiasi altro valore # in caso di errore. ## Per abilitare o disabilitare questo script cambia solo i # bit di esecuzione. ## Di default questo script non fa nulla. # disattiva la console blankingsetterm -blank 0 # Stampa l'indirizzo IP_IP = $ (hostname -I) || trueif ["$ _IP"]; quindi printf "Il mio indirizzo IP è% s \ n" "$ _IP" fiexit 0  

(l'intero file qui mostra esattamente dove l'ho messo)

Essenzialmente, il comando setterm -blank 0 imposta il periodo di blanking del terminale a 0 secondi (off), disabilitando il blanking che di solito si verifica. rc.local viene eseguito alla fine del processo di avvio con i privilegi di root, quindi influisce su tutte le console fisiche (le uscite HDMI TV & qui)

Puoi anche modificare il comando per includere la disattivazione del cursore ( non il puntatore del mouse, il cursore del testo nella console):

  setterm -blank 0 -cursor off  

Ho postato di più su questo su alcuni altri domande, ma questo dovrebbe risolvere il problema senza ricorrere a misure drastiche.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...