Wake консольный экран с SSH

16

Как избежать установки или перезагрузки, как я могу «разбудить» дисплей TTY1 через SSH? Ни одно из предложений ( Остановка спящего режима Raspberry Pi ) не сработало на моем работающем Pi.

Из того, что я прочитал, пытаясь получить ответ, это сработало бы, если бы я перезагрузился, чего я пытаюсь избежать.

грабить
источник
1
Почему вы пытаетесь избежать перезагрузки?
Лоуренс
1
Я хотел найти решение, доступное в моем наборе инструментов, вместо того, чтобы заранее устанавливать программы / настройки.
ограбить

Ответы:

19

Поэтому после долгих поисков я обнаружил, что коды, которые setterm должен посылать в tty, и эти две команды разблокируют экран каждый раз.

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

Единственная причина, по которой я могу думать о сбое всех других команд (которые должны были работать), заключается в том, что Pi подключен через svideo к телевизору, а не к HDMI или монитору.

грабить
источник
Святой выстрел, это также работает для моей ситуации с пустой консолью NVIDIA, которую, казалось, невозможно оживить
lkraav
не работает для Raspberry 2 B Raspbian по HDMI
mgPePe
3
Вам не нужно использовать sudo chmodдля изменения разрешений на устройстве tty, и вы не должны это делать. Правильный код должен быть:sudo bash -c 'echo -ne "\033[9;0]" > /dev/tty1'
Джастин
5

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

ESC [9; #] - установить тайм-аут для гашения экрана. Если вы хотите оставить значение тайм-аута в покое, используйте ESC [13], чтобы разблокировать экран.

Таким образом, в зависимости от вашей оболочки (я использую tcsh) простой эхо будет

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

Используя приведенный выше пример

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

Сначала я не видел необходимости в chmod 666 / dev / tty1 . Но я бегу от имени root (потому что доверяю своим способностям).

Энтони
источник
2

Я, наверное, ответил на это раньше, здесь или где-то ... но не стоит беспокоиться

Пытаться:

setterm -blank poke

должен освободить экран от входа в систему, НО ... обычно вам нужно отправлять соответствующие коды в / dev / tty1, а не в / dev / pty / X, который вы используете как пользователь ssh ... таким образом:

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

Это отправляет вывод setterm (магические коды!) На соответствующий терминал, чтобы разбудить его, как вы пожелаете. Так как я делаю это часто, и использовать другие варианты, я сделал небольшой скрипт , я называю « tty1 »

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

Который я использую так:

tty1 -reset -cursor off

Эта команда сбрасывает / очищает экран, возвращаясь в текстовый режим и выключая мигающий курсор. удобно, когда я не хочу отвлекаться.

tty1 -blank poke

Разбудил бы экран. (Ну, должен ... работает для меня (тм))

(Помните, что вам нужно будет либо настроить доступ nopasswd к sudo, либо быть готовым ввести пароль root при использовании этой команды)

Но ждать! Если вы позвоните сейчас! Мы включим этот драгоценный камень: Как убрать необходимость ввода пароля для использования sudo! Операторы готовы!

Добавьте эту строку в файл с именем « no-sudo-passwd-for-pi » (без точек!) В /etc/sudoers.d/

pi ALL=(ALL) NOPASSWD: ALL

Это заставит пользователя ' pi ' не требовать пароль для ЛЮБОГО вызова sudo. BEWARE! Это можно считать угрозой безопасности. Сбалансируйте вашу потребность в этом использовании от потенциальных рисков. (см. человек sudoers )

lornix
источник
К сожалению, это не сработало даже при запуске с sudo. Интересно, имеет ли значение, что я использую svideo out, а не hdmi.
ограбить
1

Чтобы избежать chmod, вы можете просто использовать sudo teeдля записи в консоль:

echo -ne "\033[9;0]" | sudo tee /dev/tty1
Будет
источник
0

У меня была эта проблема после выхода из XBMC и возврата к экрану консоли: все осталось черным.

Я решил это, позвонив один раз / usr / bin / xinit

lauhub
источник