Obudź ekran konsoli za pomocą SSH

16

Unikając instalowania czegokolwiek lub restartowania, jak mogę „obudzić” wyświetlacz TTY1 przez SSH? Żadna z sugestii ( Zatrzymanie uśpienia wyświetlacza Raspberry Pi ) nie działała na moim działającym Pi.

Z tego, co przeczytałem, próbując uzyskać odpowiedź, zadziałałyby, gdy uruchomię się ponownie, czego staram się uniknąć.

obrabować
źródło
1
Dlaczego próbujesz uniknąć ponownego uruchomienia?
Lawrence,
1
Chciałem rozwiązania dostępnego w moim mentalnym przyborniku, zamiast wcześniejszej konfiguracji programów / ustawień instalacyjnych.
okradać

Odpowiedzi:

19

Więc po wielu googlingach znalazłem kody, które setterm powinien wysyłać do tty i te dwa polecenia za każdym razem odblokowują ekran.

sudo chmod 666 /dev/tty1
echo -ne "\033[9;0]" >/dev/tty1

Jedyny powód, dla którego mogę wymyślić, że wszystkie inne polecenia (które powinny były zadziałać) zawiodły, to to, że Pi jest podłączony za pośrednictwem svideo do telewizora, a nie HDMI lub monitora.

obrabować
źródło
Boże
nie działał dla Raspberry 2 B Raspbian na HDMI
mgPePe
3
Nie musisz używać sudo chmoddo zmiany uprawnień na urządzeniu tty, ani nie powinieneś tego robić. Prawidłowy kod powinien brzmieć:sudo bash -c 'echo -ne "\033[9;0]" > /dev/tty1'
Justin
5

http://www.winds.org/pub/grdl/ANSI.txt

ESC [9; #] służy do ustawienia limitu czasu wygaszania ekranu. Jeśli chcesz pozostawić wartość limitu czasu w spokoju, użyj ESC [13], aby odblokować ekran.

W zależności od twojej powłoki (używam tcsh) byłoby to proste echo

echo -n "\ e [13]"> / dev / tty1

Korzystając z powyższego przykładu

echo -ne "\ 033 [13]"> / dev / tty1

Nie widziałem najpierw potrzeby chmod 666 / dev / tty1 . Ale działam jako root (ponieważ ufam moim umiejętnościom).

Anthony
źródło
2

Prawdopodobnie odpowiedziałem na to wcześniej, tutaj lub gdzieś ... ale nie martw się ...

Próbować:

setterm -blank poke

powinien odblokować ekran przed logowaniem, ALE ... zwykle musisz wysłać odpowiednie kody do / dev / tty1, a nie do / dev / pty / X, którego używasz jako użytkownik ssh ... w ten sposób:

setterm -blank poke | sudo tee /dev/tty1 > /dev/null

To wysyła wyjście setterm (magiczne kody!) Do odpowiedniego terminala, aby go obudzić, jak chcesz. Ponieważ robię to często i używam również innych opcji, stworzyłem mały skrypt, który nazywam „ tty1

#!/bin/bash
#
# send 'setterm' commands to /dev/tty1 (physical console)
setterm $* | sudo tee /dev/tty1 > /dev/null

Którego używam w ten sposób:

tty1 -reset -cursor off

To polecenie resetuje / usuwa ekran, powraca do trybu tekstowego i wyłącza mrugający kursor. przydatne, gdy nie chcę rozpraszać uwagi.

tty1 -blank poke

Budziłbym ekran. (Cóż, powinien ... działa dla mnie (tm))

(Pamiętaj, że musisz skonfigurować dostęp nopasswd do sudo lub przygotować się na wpisanie hasła roota podczas korzystania z tego polecenia)

Ale poczekaj! Jeśli zadzwonisz teraz! Uwzględnimy ten klejnot: Jak usunąć potrzebę podania hasła do użycia sudo! Operatorzy stoją obok!

Dodaj ten wiersz do pliku o nazwie „ no-sudo-passwd-for-pi ” (bez kropek!) W /etc/sudoers.d/

pi ALL=(ALL) NOPASSWD: ALL

Spowoduje to, że użytkownik „ pi ” nie będzie wymagał hasła do DOWOLNEGO wywołania sudo. STRZEC SIĘ! Można to uznać za zagrożenie bezpieczeństwa. Zrównoważyć potrzebę tego użycia z potencjalnym ryzykiem. (patrz mężczyzna sudoers )

lornix
źródło
Niestety nie działało to nawet w przypadku sudo. Zastanawiam się, czy to ważne, że korzystam z svideo out, a nie hdmi.
okradać
1

Aby tego uniknąć chmod, możesz po prostu sudo teenapisać na konsoli:

echo -ne "\033[9;0]" | sudo tee /dev/tty1
Wola
źródło
0

Miałem ten problem po wyjściu z XBMC i powrocie do ekranu konsoli: wszystko pozostało czarne.

Rozwiązałem to, dzwoniąc raz / usr / bin / xinit

lauhub
źródło