Екран консолі 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 чи монітор.


Свята стрілянина, це також працює для моєї ситуації з пустим
консолем

не працював на 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 спочатку. Але я запускаю як корінь (бо довіряю своїм здібностям).


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, або бути готовим ввести кореневий пароль при використанні цієї команди)

Але зачекайте! Якщо ви телефонуєте зараз! Ми включимо цей дорогоцінний камінь: Як усунути необхідність ввести пароль для використання sudo! Оператори стоять поруч!

Додайте цей рядок до файлу з назвою " no-sudo-passwd-for-pi " (не дозволено крапки!) В /etc/sudoers.d/

pi ALL=(ALL) NOPASSWD: ALL

Це призведе до того, що користувачеві " pi " не буде потрібен пароль для будь-якого виклику sudo. ПОДЕРЖАЙТЕ! Це можна вважати ризиком для безпеки. Збалансуйте свою потребу в цьому використанні з можливими ризиками. (див. людина-судори )


На жаль, це не спрацювало навіть при запуску з судо. Цікаво, чи має значення те, що я використовую svideo out, а не hdmi.
грабувати

1

Щоб уникнути chmod, ви можете просто sudo teeзаписати на консоль:

echo -ne "\033[9;0]" | sudo tee /dev/tty1

0

У мене була ця проблема після виходу з XBMC і повернення до екрана консолі: все залишилося чорним.

Я вирішив це, зателефонувавши один раз / usr / bin / xinit

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.