Màn hình bảng điều khiển Wake với SSH


16

Tránh cài đặt bất cứ thứ gì hoặc khởi động lại, làm cách nào tôi có thể "đánh thức" màn hình TTY1 qua SSH? Không có gợi ý nào ( Dừng chế độ ngủ hiển thị Raspberry Pi ) hoạt động trên Pi đang chạy của tôi.

Từ những gì tôi đã đọc cố gắng để có được câu trả lời, những điều này sẽ hoạt động nếu tôi khởi động lại, điều mà tôi đang cố gắng tránh.


1
Tại sao bạn cố gắng tránh khởi động lại?
Lawrence

1
A muốn có giải pháp có sẵn trong hộp công cụ tinh thần của tôi, thay vì phải thiết lập cài đặt / chương trình cài đặt trước.
cướp

Câu trả lời:


19

Vì vậy, sau rất nhiều lần tôi đã tìm thấy các mã mà setterm nên gửi đến tty và hai lệnh này bỏ trống màn hình mỗi lần.

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

Lý do duy nhất tôi có thể nghĩ về tất cả các lệnh khác (đáng lẽ phải hoạt động) là do Pi được kết nối qua svideo với TV chứ không phải HDMI hoặc màn hình.


Holy bắn, điều này cũng hoạt động cho tình huống bảng điều khiển trống nvidia của tôi, mà dường như không thể hồi sinh
lkraav

đã không hoạt động cho Raspberry 2 B Raspbian trên HDMI
mgPePe

3
Bạn không cần sử dụng sudo chmodđể thay đổi quyền trên thiết bị tty, bạn cũng không nên làm điều này. Mã chính xác phải là:sudo bash -c 'echo -ne "\033[9;0]" > /dev/tty1'
Justin

5

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

ESC [9; #] là đặt thời gian chờ để xóa màn hình. Nếu bạn muốn để lại giá trị thời gian chờ một mình, hãy sử dụng ESC [13] để bỏ trống màn hình.

Vì vậy, tùy thuộc vào vỏ của bạn (tôi sử dụng tcsh), tiếng vang đơn giản sẽ là

tiếng vang -n "\ e [13]"> / dev / tty1

Sử dụng ví dụ trên

tiếng vang -ne "\ 033 [13]"> / dev / tty1

Tôi thấy không cần phải chmod 666 / dev / tty1 trước. Nhưng tôi chạy bằng root (vì tôi tin tưởng vào khả năng của mình).


2

Có lẽ tôi đã trả lời điều này trước đây, ở đây hoặc ở đâu đó ... nhưng không phải lo lắng ...

Thử:

setterm -blank poke

nên bỏ trống màn hình khỏi thông tin đăng nhập, NHƯNG ... thông thường bạn cần gửi mã phù hợp đến / dev / tty1, chứ không phải / dev / pty / X mà bạn đang sử dụng với tư cách là người dùng ssh ... do đó:

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

Điều này sẽ gửi đầu ra của setterm (mã ma thuật!) Đến thiết bị đầu cuối thích hợp để đánh thức nó theo ý muốn. Vì tôi thường xuyên làm điều này và cũng sử dụng các tùy chọn khác, tôi đã tạo một tập lệnh nhỏ mà tôi gọi là ' tty1 '

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

Mà tôi sử dụng như thế này:

tty1 -reset -cursor off

Lệnh này đặt lại / xóa màn hình, trở về chế độ văn bản và tắt con trỏ mờ. tiện dụng khi tôi không muốn sự xao lãng.

tty1 -blank poke

Sẽ đánh thức màn hình. (Chà, nên ... làm việc cho tôi (tm))

(Hãy nhớ rằng bạn sẽ cần thiết lập quyền truy cập nopasswd cho sudo hoặc được chuẩn bị để nhập mật khẩu gốc khi bạn sử dụng lệnh này)

Nhưng chờ đã! Nếu bạn gọi ngay bây giờ! Chúng tôi sẽ bao gồm đá quý này: Cách loại bỏ nhu cầu cung cấp mật khẩu cho việc sử dụng sudo! Các nhà khai thác đang đứng!

Thêm dòng này vào một tệp có tên " no-sudo-passwd-for-pi " (không cho phép dấu chấm!) Trong /etc/sudoers.d/

pi ALL=(ALL) NOPASSWD: ALL

Điều này sẽ khiến người dùng ' pi ' không yêu cầu mật khẩu cho bất kỳ lệnh gọi sudo nào. HÃY THỬ! Đây có thể được coi là một rủi ro bảo mật. Cân bằng nhu cầu của bạn cho việc sử dụng này chống lại các rủi ro tiềm ẩn liên quan. (xem người đàn ông sudoers )


Thật không may, nó không hoạt động ngay cả khi chạy với sudo. Tôi tự hỏi nếu tôi sử dụng Svideo out chứ không phải hdmi.
cướp

1

Để tránh a chmod, bạn chỉ có thể sử dụng sudo teeđể ghi vào bàn điều khiển:

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

0

Tôi gặp vấn đề này sau khi thoát XBMC và quay lại màn hình console: mọi thứ vẫn đen.

Tôi đã giải quyết điều này bằng cách gọi một lần / usr / bin / xinit

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.