Bagaimana cara mengubah perilaku pengosongan layar pada terminal virtual Linux?
Misalnya, jika saya beralih ke VT dari X, masuk, dan biarkan sistem sendiri selama 5 menit atau lebih, layar akan kosong seperti screensaver. Muncul kembali dengan penekanan tombol apa saja, seperti screensaver.
Sebagian besar saya hanya ingin mengubah batas waktu, tetapi saya juga tertarik dengan pengaturan lain.
Jika itu membantu, salah satu sistem saya menjalankan Ubuntu 10,04 dengan driver grafis stok. fbset
memperlihatkan konsol menggunakan radeondrmfb
perangkat framebuffer.
linux
console
screensaver
framebuffer
virtual-terminal
quack quixote
sumber
sumber
Jawaban:
setterm
dari @ whitequark jawaban adalah alat userspace yang masuk akal, tapi itu bukan keseluruhan cerita.Perilaku blanking konsol default dimasukkan ke dalam kernel pada waktu kompilasi. Ini dapat dikonfigurasi pada saat boot dengan paramater consoleblank = , atau di userspace dengan
setterm
. Dari dokumentasi kernel ( kernel-parameter.txt ):Berikut adalah opsi-opsi, default-nya pada sistem Ubuntu saya, dan lingkup pengaruhnya:
setterm -blank [0-60]
; selalu melaporkan 0 saat ditanya; efektif saat dijalankan pada VT nyata; mempengaruhi semua TTY nyata; tidak efektif ketika dijalankan di sesi layar pada VT.setterm -powerdown [0-60]
; selalu melaporkan "3]" (??); tampaknya tidak berpengaruh. Kernel Ubuntu tidak mengaktifkan APM_DISPLAY_BLANK , dan ini bisa terkait.consoleblank=N
; default ke 600 (10 menit); mempengaruhi semua VT nyata; memengaruhi sesi layar dalam VT; tidak ada cara untuk mengatur saat menjalankan.Jadi opsi saya untuk mengubah default adalah salah satu dari yang berikut:
setterm -blank X
(X dalam menit, 0 untuk menonaktifkan) ke file init shell seperti .bashrc .setterm -blank X
ke /etc/rc.local .consoleblank=Y
(Y dalam detik, 0 untuk menonaktifkan) ke commandline kernel dengan menambahkannya ke daftar parameter di / etc / default / grub , baik GRUB_CMDLINE_LINUX atau GRUB_CMDLINE_LINUX_DEFAULT . (Jangan lupaupdate-grub
.)sumber
setterm -blank X
itu tidak bekerja untuk saya dari dalam tmux , tetapi bekerja dengan sempurna ketika saya keluar dari tmux sebelum menjalankan perintah.GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"
dan kemudian perbarui konfigurasi grub Anda dengangrub[2]-mkconfig -o /boot/grub/grub.cfg
.3]
karenasetterm -powerdown
hanya setengah yang benar:setterm -powerdown 3 | hexdump -c
pengembalian033 [ 1 4 ; 3 ]
. Tidak yakin apa yang harus menginterpretasikan urutan pelarian ini ...Coba
setterm -blank $minutes
(atau lewati 0 untuk menonaktifkan);-powersave
opsi juga terkait.setterm
memiliki banyak opsi bermanfaat lainnya juga.Jika Anda ingin mengatur atribut ini pada startup sistem, pertimbangkan untuk menulis skrip init. Ini hanya skrip yang ditempatkan di
/etc/init.d
direktori. Biarkan itu disebutsetterm
:Kemudian buat itu bisa dieksekusi:
Dan akhirnya, buat symlinks /etc/rcX.d (cara Debian):
(Jika Anda bosan dengan perilaku itu, lakukan
# update-rc.d -f setterm remove
. Catat itu-f
harus menjadi argumen pertama).sumber
-powerdown
pengaturan yang berlaku. bagaimana dengan pengaturan saat boot, standar seluruh sistem? apakah berjalansetterm -blank X
atausetterm -powerdown Y
di /etc/rc.local (atau ~ / .bashrc ) masuk akal?rc.local
benar-benar berfungsi. (upstart
Migrasi terbaru mengacaukan beberapa hal, karena tampaknya ada dan berfungsi pada sistem saya.) Jika tidak, Anda harus membuat skrip init. Itu mudah: dalam kasus kami, ia harus menginisialisasi segala sesuatu ketikastart
dinyatakan sebagai argumen pertama, dan tidak melakukan apa pun sebaliknya. Saya akan menjelaskannya dalam jawaban saya.setterm -blank X >/dev/ttyN
sepertinya tidak berfungsi, jadi saya tidak berpikir konsep skrip init akan berfungsi. berlari melintasi parameter boottime tho dan melakukan penelitian lebih lanjut. saya tampaknya salah tentang-powerdown
dan-powersave
; belum sepenuhnya diuji tetapi itu tidak bekerja pada sistem saya.setterm -blank X
berfungsi, hanya dari VT asli, dan memengaruhi semua VT, jadi menjalankan sekali melalui /etc/rc.local masuk akal. (Pemula tidak menghapus rc.local , hanya /etc/rcX.d stuff.)setterm
memancarkan urutan melarikan diristdout
, tetapi memeriksa jenis TTY denganstdin
: Saya baru saja memeriksa, dansetterm ... >/dev/ttyN </dev/ttyN
berfungsi sebagaimana dimaksud.Jika ada yang mencari solusi lain yang mungkin untuk Debian (mungkin bukan Ubuntu):
Di
/etc/kbd/config
, cari pengaturan yang disebut "BLANK_TIME":Ubah ke 0, ini akan menonaktifkannya:
Diuji pada Debian 6 dan 7.
sumber
Jika Anda menjalankan Ubuntu yang lebih baru yang menggunakan pemula, Anda dapat menggunakan:
Sedikit penjelasan tentang apa yang terjadi di sini:
Versi Ubuntu yang lebih baru menggunakan pemula untuk startup sistem. Dengan pemula, konsol Linux disiapkan dengan file config disimpan di / etc / init. Perintah di atas dimulai dengan mengulangi masing-masing file konfigurasi:
Nama file konfigurasi pemula tty di $ file digunakan untuk membangun nama perangkat tty:
Perintah "pasca-mulai" pemula dibangun yang menjalankan "setterm" untuk menonaktifkan pengosongan layar dan penghematan daya setelah tty dimulai:
Dan akhirnya perintah itu ditambahkan ke file konfigurasi pemula:
sumber
Pada sistem saya (berbagai rilis RedHat Enterprise Linux), saya telah menemukan bahwa pendekatan yang berbeda diperlukan.
Untuk sistem RHEL 5 dan 6 saya, saya dapat menambahkan baris
/bin/setterm -blank 0 -powerdown 0 -powersave off
untuk
/etc/rc.local
. Ini menonaktifkan layar konsol yang kosong pada startup sistem.Saya menemukan bahwa ini tidak berfungsi pada sistem RHEL 7. Di RHEL7, menjalankan setterm dari rc.local menyebabkan kesalahan yang dihasilkan:
setterm: $TERM is not defined.
Perintah ini bekerja dari shell interaktif, di mana $ TERM didefinisikan (sebagai
linux
). Jika saya memaksa setterm untuk menggunakannya:/bin/setterm -term linux -blank 0 -powerdown 0 -powersave off
Maka saya mendapatkan kesalahan yang berbeda:
setterm: cannot (un)set powersave mode: Inappropriate ioctl for device
Meskipun perintah yang sama berfungsi dengan baik dari sesi interaktif. Pengaturan
consoleblank
parameter kernel berfungsi.Pada RHEL7, edit
/etc/default/grub
dan tambahkanconsoleblank=0
keGRUB_CMDLINE_LINUX
parameter. Kemudian jalankangrub2-mkconfig -o /boot/grub2/grub.cfg
dan reboot.Saya belum mencoba pengaturan
consoleblank
di RHEL5 atau 6.sumber
</dev/tty1 >/dev/tty1
atau sesuatu untuk membuatnya berfungsiLinux Console Private CSI Sequences
Untuk mengatur
sleep mode/screensaver
waktu memasukkan (di mana X adalah waktu dalam menit; 0 = tidak pernah):(dari konsol serial)
atau (dari konsol framebuffer)
atau untuk mengaturnya di setiap boot, gunakan
/etc/inittab
:referensi:
sumber
Menambahkan
gnome-screensaver-command --exit
ke.profile
file saya memperbaiki masalah ini untuk saya di Debian Linux (Wheezy).Kupikir aku akan menambahkan ini untuk membantu orang lain yang mencabut rambutnya mencoba menghentikan pengosongan layar.
Kotak centang berjudul "Layar redup untuk menghemat daya" tidak berfungsi. Meskipun tidak dicentang, MASIH akan mengosongkan layar sesuai dengan waktu tidak aktif yang dipilih.
UPDATE: Saya benar-benar perlu
sleep 30 && /usr/bin/gnome-screensaver-command --exit &
membuatnya bekerja dengan benar. Screensaver GNOME tampaknya dimulai lama setelah. Profil telah diproses.sumber