SSH唤醒控制台屏幕


16

避免安装任何东西或重新启动,如何通过SSH“唤醒” TTY1显示?我正在运行的Pi上没有任何建议(停止Raspberry Pi的显示睡眠)。

从我阅读的试图获得答案的内容来看,如果我重新启动,这些方法将起作用,但我试图避免这种情况。


1
为什么要避免重启?
劳伦斯

1
一个想要的解决方案可以在我的思维工具箱中找到,而不必事先设置安装程序/设置。
2013年

Answers:


19

因此,经过大量的搜索之后,我发现setterm 应该发送给tty 的代码,并且这两个命令每次都使屏幕空白。

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

我能想到所有其他命令(应该已经执行)失败的唯一原因是因为Pi是通过svideo连接到电视的,而不是HDMI或显示器的。


神圣的射击,这也适用于我的nvidia空白控制台情况,似乎无法恢复
lkraav 2015年

不适用于HDMI上的Raspberry 2 B Raspbian
mgPePe 2016年

3
您无需使用sudo chmod来更改tty设备上的权限,也不必这样做。正确的代码应为:sudo bash -c 'echo -ne "\033[9;0]" > /dev/tty1'
Justin

5

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

ESC [9;#]用于设置屏幕消隐的超时时间。如果要不设置超时值,请使用ESC [13]取消屏幕空白。

因此,根据您的shell(我使用tcsh),一个简单的回显将是

回声-n“ \ e [13]”> / dev / tty1

使用上面的例子

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

我看到不需要先chmod 666 / dev / tty1。但是我以root身份运行(因为我相信自己的能力)。


2

我可能已经在这里,这里或某处回答过这个问题,但是不用担心...

尝试:

setterm -blank poke

应该取消登录的屏幕空白,但是...通常,您需要将适当的代码发送到/ dev / tty1,而不是您要作为ssh用户使用的/ dev / pty / X ...因此:

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

会唤醒屏幕。(嗯,应该 ...对我有用吗(TM))

(请记住,您需要设置对sudo的nopasswd访问权限,或者在使用此命令时准备键入root密码)

可是等等!如果您现在打电话!我们将包含这个gem:如何消除需要为sudo使用提供密码的麻烦!操作员正待命!

将此行添加到/etc/sudoers.d/中名为“ no-sudo-passwd-for-pi ”的文件中(不允许点!)。

pi ALL=(ALL) NOPASSWD: ALL

这将导致用户pi不需要任何 sudo调用密码。谨防!这可以被认为是安全风险。 平衡您对这种用法的需求与所涉及的潜在风险。(请参阅man sudoers


不幸的是,即使使用sudo运行也无法正常工作。我想知道我正在使用svideo而不是hdmi是否重要。
2013年

1

要避免出现chmod,您可以使用sudo tee写入控制台:

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

0

退出XBMC后回到控制台屏幕,我遇到了这个问题:所有内容都保持黑色。

我通过一次调用/ usr / bin / xinit解决了这个问题

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.