Я предложил следующее решение:
sudo apt-get install x11vnc xserver-xorg-video-dummy
проверить /etc/default/grub
то, что это включает nomodeset
флаг:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
Создайте (или измените), /etc/X11/xorg.conf
, изменить USER
и LISTEN
обратитесь согласно своим настройкам.
Section "Monitor" Identifier "Monitor0" HorizSync 28.0-80.0 VertRefresh 48.0-75.0 # 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz Modeline "1680x1050_60.00" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync EndSection Section "Device" Identifier "Card0" Driver "dummy" VideoRam 256000 EndSection Section "Screen" DefaultDepth 24 Identifier "Screen0" Device "Card0" Monitor "Monitor0" SubSection "Display" Depth 24 Modes "1680x1050" EndSubSection EndSection
Можно генерировать собственное разрешение.
4 - создайте сервисный сценарий в /etc/init.d/vncserver
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: vncserver
# Required-Start: networking
# Default-Start: 3 4 5
# Default-Stop: 0 6
### END INIT INFO
PATH="$PATH:/usr/X11R6/bin/" CMD="/usr/bin/x11vnc"
# The Username:Group that will run VNC
export USER="your_username"
# The display that VNC will use DISPLAY="1"
# Color depth (between 8 and 32) DEPTH="16"
# The Desktop geometry to use.
#GEOMETRY="x"
#GEOMETRY="800x600" GEOMETRY="1680x1050"
#GEOMETRY="1280x1024"
# The name that the VNC Desktop will have. NAME="my-vnc-server"
PORT=5900
LISTEN="192.168.1.10"
OPTIONS="-xkb -noxrecord -noxfixes -noxdamage -listen ${LISTEN} -name ${NAME} -depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -auth guess
-usepw ~/.vnc/passwd -rfbport ${PORT} -forever -bg -oa /var/log/x11vnc.log"
. /lib/lsb/init-functions
case "$1" in start) echo ${OPTIONS} log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}" su ${USER} -c "${CMD} ${OPTIONS}" ;;
stop) log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}" su ${USER} -c "${CMD} -kill :${DISPLAY}" ;;
restart) $0 stop $0 start ;; esac
exit 0
Из X Windows вы можете использовать приложение xbacklight
, чтобы получить и установить процентную яркость для вашего экрана.
текущий уровень
$ xbacklight -get
100.000000
установленный в 75%
$ xbacklight -set 75
$ xbacklight -get
73.333333
установленный обратно в 100%
$ xbacklight -set 100
$ xbacklight -get
100.000000
Для достижения чего-то подобного для виртуального терминала вам, скорее всего, понадобится взаимодействовать с настройками ACPI через файловую систему /sys
.
затемняет его
$ echo "10" | sudo tee /sys/class/backlight/acpi_video0/brightness
10
полную яркость
$ echo "15" | sudo tee /sys/class/backlight/acpi_video0/brightness
15
Вам придется поиграть с этим, диапазон яркостей может быть от 0-9 или 0-15, я полагаю, что в конечном итоге это зависит от вашего ноутбука.
Если ни один из этих 2-х вариантов не подходит, посмотрите на тему ArchLinux Wiki под заголовком: Подсветка. Эта статья содержит все методы, которые я когда-либо видел, чтобы достичь этого!
Что касается ноутбуков с чипсетами Intel, похоже, существует разделение между панелями, подключенными к LVDS -и eDP -:
.echo 4 > /sys/class/backlight/intel_backlight/bl_power
…должно отключить подсветку.
echo 0 > /sys/class/backlight/intel_backlight/bl_power
Я обнаружил, что невозможно отключить подсветку на моих планшетах Thinkpad X201 и X201 через sysfs (bl _power ничего не делает; по-видимому, это специфично для eDP -).
Эта страница содержит очень длинное описание запутанной истории управления подсветкой в ядре Linux. TL;DR:
i915 has supported bl_power for eDP panels (but not LVDS) starting from v3.18.
ОДНАКО, мне удалось отключить подсветку с помощью инструмента под названием intel_backlight
из инструментов Intel -GPU -. Для этого требуется root, поскольку он, по-видимому, записывает в необработанный регистр.
intel_backlight 0
...выключил для меня подсветку. Увеличив его с помощью элементов управления регулировкой яркости -, он включен здесь.
Я также написал скрипт, который я подключил для активации на клавиатуре -сгенерированного события ACPI (в моем случае, fn+space или button/zoom
. Если ваша система не использует это событие ACPI, вам нужно использовать acpi _listen, чтобы найти событие, которое есть в вашей системе.
Чтобы запустить его, я создал файл с именем fnspace-backlight
в /etc/acpi/events
:
# Wyatt Ward
# hook for magnify acpi event (fn+space)
# toggle LCD backlight on/off
event=button/zoom
action=/etc/acpi/actions/toggle-lcd-light.sh
Я также создал файл с именем /etc/acpi/actions/toggle-lcd-light.sh
, помеченный как исполняемый. Это позволяет мне переключать подсветку без изменения ранее установленного уровня яркости, сохраняя временное значение в /brightness
. Поскольку события ACPI запускают действия от имени пользователя root, будьте осторожны.
#! /bin/bash
BRIGHTSAVEFILE="/brightness"
BRIGHTSYSFS="/sys/class/backlight/acpi_video0/brightness"
# is the light on or off?
INTEL_BACKLIGHT="/usr/bin/intel_backlight"
light_state=$("$INTEL_BACKLIGHT" | sed 's/current backlight value: //g'|sed 's/%//g')
echo "light: ""$light_state"
if [ "$light_state" -eq 0 ]; then
cat "$BRIGHTSAVEFILE" > "$BRIGHTSYSFS"
else
# back up current brightness level
cat "$BRIGHTSYSFS" > "$BRIGHTSAVEFILE"
# turn off backlight
"$INTEL_BACKLIGHT" 0
fi
Еще одно забавное примечание: вы можете управлять подсветкой с невероятной степенью детализации, слегка изменив подсветку Intel _. Изменение его для чтения аргументов как чисел с плавающей запятой, а не целых чисел, и для выполнения арифметических операций с плавающей запятой требует только настройки нескольких строк кода и позволяет вам делать смехотворно точные изменения яркости,включая те, которые ниже минимума, который вы можете получить через sysfs.