หน้าจอคอนโซลปลุกพร้อม SSH


16

หลีกเลี่ยงการติดตั้งอะไรหรือรีบูตฉันจะ "ปลุก" จอแสดงผล TTY1 ผ่าน SSH ได้อย่างไร ไม่มีคำแนะนำใด ๆ (การหยุดการแสดงผลราสเบอร์รี่ Pi ) ทำงานบน Pi ที่ทำงานอยู่ของฉัน

จากสิ่งที่ฉันได้อ่านพยายามที่จะได้รับคำตอบสิ่งเหล่านี้จะใช้ได้ถ้าฉันรีบูทซึ่งฉันพยายามหลีกเลี่ยง


1
ทำไมคุณพยายามหลีกเลี่ยงการรีบูต
Lawrence

1
ต้องการโซลูชันที่พร้อมใช้งานในกล่องเครื่องมือจิตของฉันแทนที่จะต้องติดตั้งโปรแกรม / การตั้งค่าล่วงหน้า
ปล้น

คำตอบ:


19

ดังนั้นหลังจาก googling มากฉันพบรหัสที่ 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'
Justin

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

อยากตื่นหน้าจอ (ดีควร ... งานสำหรับฉัน (TM))

(อย่าลืมว่าคุณจะต้องตั้งค่าการเข้าถึง nopasswd เพื่อ sudo หรือเตรียมพร้อมที่จะพิมพ์รหัสผ่านรูทเมื่อคุณใช้คำสั่งนี้)

แต่เดี๋ยวก่อน! ถ้าคุณโทรตอนนี้! เราจะรวมอัญมณีนี้: จะลบความจำเป็นในการจัดหารหัสผ่านสำหรับการใช้งาน sudo ได้อย่างไร! ผู้ประกอบการกำลังยืนอยู่ด้วย!

เพิ่มบรรทัดนี้ในไฟล์ชื่อ " no-sudo-passwd-for-pi " (ไม่อนุญาตให้มีจุด!) ใน/etc/sudoers.d/

pi ALL=(ALL) NOPASSWD: ALL

สิ่งนี้จะทำให้ผู้ใช้ ' pi ' ไม่ต้องการรหัสผ่านสำหรับการร้องขอ sudo ใด ๆ ระวัง! นี่ถือเป็นความเสี่ยงด้านความปลอดภัย ยอดคงเหลือที่คุณต้องการสำหรับการใช้งานนี้กับความเสี่ยงที่อาจเกิดขึ้น (ดูผู้ชาย sudoers )


น่าเสียดายที่มันไม่ทำงานแม้ว่าจะทำงานด้วย sudo ฉันสงสัยว่ามันสำคัญหรือไม่ที่ฉันกำลังใช้ svideo out ไม่ใช่ hdmi
ปล้น

1

เพื่อหลีกเลี่ยงการchmodคุณสามารถใช้sudo teeเพื่อเขียนถึงคอนโซล:

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

0

ฉันมีปัญหานี้หลังจากออกจาก XBMC และกลับไปที่หน้าจอคอนโซล: ทุกอย่างเป็นสีดำ

ฉันแก้ไขได้โดยโทรหนึ่งครั้ง / usr / bin / xinit

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.