Я пытаюсь полностью отключить подсветку ЖК-панели, встроенной в устройство, которое я использую. Хотя экран не отображается, вы можете увидеть свечение от подсветки в затемненной комнате.

Я думаю, что (как root) я должен быть в состоянии сделать это следующим образом:

setterm -powersave powerdown > /dev/tty1

который должен форсировать состояние DPMS, когда экран отключен. Однако, хотя man setterm предполагает, что -powersave является допустимым параметром, какой бы из предложенных аргументов я ни предоставил (вкл, выкл, выключение и т.д.), Я получаю сообщение об ошибке:

setterm: cannot (un)set powersave mode: Invalid argument

Я пробовал это в двух других установках Ubuntu с похожими результатами.

Может кто-нибудь предложить:

  1. Почему эта команда нигде не работает?
  2. Есть ли лучший способ управления мощностью подсветки?

Дополнительная информация:

  • Это устройство O2 Joggler, основанное на OpenPeak OpenFrame 7 и использующее слегка модифицированный образ сервера Ubuntu 12.04.02, распространяемый сообществом для этого устройства. Это архитектура i386 (процессор Intel Atom)
  • X (который, как я понимаю, может мешать работе setterm) не установлен нигде, где я пробовал это. Это также означает, что команда xset не будет работать
  • Предоставляется драйвер, который предлагает управление дисплеем через sysfs, в том числе psuedo-файл, который подразумевает отключение подсветки, но он по-прежнему тускло светится
  • Две другие установки, которые я пробовал (12.04 и 10.04), были разными устройствами: виртуальная машина VMWare и физический сервер Dell соответственно.

4 ответа4

2

На самом деле у меня была такая же проблема, и мне удалось ее решить.

С небольшой помощью от strace я обнаружил, что setterm -powersave powerdown отправляет ioctl() в fd 0 (stdin).

Итак, я попробовал с:

root@zanac:~# setterm -powersave powerdown < /dev/tty1

и это сработало (команда возвращает 0). Я не могу проверить ATM, если команда действительно делает то, что должна, потому что я делаю это через SSH. Кроме того, кажется, у вас есть особая конфигурация, так что YMMV

1

Я потратил 5 часов на то, чтобы попробовать setterm, fbset и другие ...

Это полномочия контролировать на моей доске:

echo 1 > /sys/devices/pci0000\:00/0000\:00\:01.0/graphics/fb0/blank

Также попробуйте поискать дескриптор backlight LVDS в /sys/

0

Техническое описание от Sharp LQ070Y3LG4A , используемой в Joggler показывает , что светодиодная подсветка непосредственно подключена (Примечание 1 на странице 11) к контактам 24-30. Таким образом, даже если вы очищаете дисплей с помощью DPMS (любым другим способом), подсветка остается включенной.

Таким образом, вопрос заключается в том, есть ли какая-либо другая часть оборудования на материнской плате, которая позволяет отключать питание светодиодной подсветки, и если да, то как это контролировать. Я не мог найти ничего об этом в Joggler Wiki, типичными кандидатами являются чипы, управляемые I2C/SMBUS. Но, возможно, просто нет способа отключить подсветку программным обеспечением (если только вы не добавите свое собственное оборудование).

0

Я обнаружил, почему setterm выдает ошибку ... ну до определенного момента. Кажется, что метод управления экраном физической консоли через SSH (т.е. перенаправление вывода setterm в /dev/tty1 в этом случае не работает.

Я был брошен на то , что следующий вариант действительно работает именно так , как ожидалось (она очищает физический экран консоли от SSH сессии):

root@joggler:/home/bob# setterm -clear all > /dev/tty1

Что касается того, почему некоторые команды setterm работают, а другие нет, у меня нет ответа на этот вопрос.

Для тех , кто найти этот вопрос в отношении к проблеме Joggler, я должен уточнить , что , кажется , не возможно делать то , что я хочу (полностью отключить подсветку) с помощью setterm -powersave powerdown экран остается очень слабо освещен , как и раньше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .