LINUX.ORG.RU

Яркость ламп внешнего (не нотубучного) дисплея: как её изменять?

 , , , ,


1

2

Вопрос: а как, собственно, она меняется в случае с дисплеем, подключенным по DVI или уж тем паче D-Sub?
Какой протокол используется для настройки дисплеев (разработанный VESA?) и почему настройка яркости чаще всего сводится к «притушению» выводимых цветов, а не к регулированию выходной мощности ламп подсветки?
Ну и как пример вот ссылка на некий мануал: http ://prof-labs.ru/blog/nix/167 - вот что там конфигурируется через ACPI: видюха или всё-таки дисплей?
UPD:

$ cat /sys/class/backlight/acpi_video0/brightness
cat: /sys/class/backlight/acpi_video0/brightness: No such file or directory
Дисплей у автора статьи конечно же ноутбучный, зараза.

★★★★★

Последнее исправление: DRVTiny (всего исправлений: 2)

Ответ на: комментарий от AEP

Внезапно, не работает оно. То есть совсем. Проверил на двух системах: на одной непонятно какой вообще модуль framebuffer'а нужен (видюха ATI, но radeonfb явно не подходит, поскольку ddccontrol -p ничего не видит), а на другой - монитор не распознаётся по базе 2006-го года, хотя я его (Philips 170S) прекрасно в базе вижу. Судя по всему ddccontrol работает корректно только в каких-то особых случаях.

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

На современных машинах эта программа работает только от root, только с KMS и только при загруженном модуле i2c-dev.

AEP ★★★★★
()
Ответ на: комментарий от DRVTiny

Нет, Kernel Mode Setting. Т.е. модули ядра i915, radeon, nouveau. С проприетарными драйверами не работает, так как они не создают i2c-устройств, доступных в userspace.

AEP ★★★★★
()

Вопрос: ...

И не один!

а как, собственно, она меняется в случае с дисплеем, подключенным по DVI или уж тем паче D-Sub?

Зависит от железа. Яркость может регулироваться средствами операционки, средствами видеокарты и средствами монитора.

Например, можно юзать старую добрую иксовую `xgamma -gamma 0.5`.

Какой протокол используется для настройки дисплеев (разработанный VESA?)

Если регулируется средствами монитора, то чаще всего это DDC/CI, либо какой-то vendor-специфичный протокол. Но далеко не все мониторы это умеют.

Чтобы проверить, умеет ли монитор ddcci, от рута:

modprobe i2c-dev
i2cdetect -l
смотрим номера тех i2c-шин, которые похожи на шины монитора и видеокарты, скорее всего их будет несколько. Шина 0 это /dev/i2c-0, шина 1 это /dev/i2c-1 и т.д. Сканируем каждую из них:
i2cdetect 1
i2cdetect 2
i2cdetect 3
Нам нужна та из них, на которой отвечает порт 0х50 (EDID, есть у всех современных мониторов) и 0x37 (DDC/CI)

Когда нужный номер шины найден, следующий этап — найти утилиту, которая поддерживает нашу модель монитора. Например, для самсунга мне больше всего нравилась ddcci-tool, на странице программы написаны примеры использования.

Если ddcci-tool не сработает, можно попробовать DDCcontrol.

и почему настройка яркости чаще всего сводится к «притушению» выводимых цветов, а не к регулированию выходной мощности ламп подсветки?

Это же не лампы накаливания. :) Они либо вообще не могут менять яркость, либо могут, но быстрее дохнут, если работают не на своей стандартной яркости.

anonymous
()
Ответ на: комментарий от anonymous

Нам нужна та из них, на которой отвечает порт 0х50 (EDID, есть у всех современных мониторов) и 0x37 (DDC/CI)

Если можно, поясните, пожалуйста, на примере:

I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- 2c -- -- -- 
30: -- -- -- -- -- -- -- 37 -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

Здесь отвечают 50-й и 37-й порты, а канал 1-й. Но вопрос - что с этим делать?

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

Здесь отвечают 50-й и 37-й порты, а канал 1-й. Но вопрос - что с этим делать?

Качать и собирать ddcci-tool, затем запустить его как указано на странице программы:

./ddcci-tool /dev/i2c-1 -e -c -d
В выводе смотреть на номера ручек Brightness и Contrast. Там будет что-то вроде:
...
Control 0x10: +/80/100  [Brightness]
Control 0x12: +/50/100  [Contrast]
...
Это значит, что ручка 0x10, может иметь значение от 0 до 100, текущее значение 80, а у ручка 0x12 текущее значение 50. Менять их можно той же утилитой. Например, выставить их в ноль можно командой:
./ddcci-tool /dev/i2c-1 -r 0x10 -w 0
./ddcci-tool /dev/i2c-1 -r 0x12 -w 0
Изменения яркости на мониторе должны быть видны СРАЗУ, без перезагрузок. Но на некоторых мониторах эти изменения сбрасываются при выключении монитора, чтобы не сбрасывались надо дать команду на прошивку настроек `./ddcci-tool /dev/i2c-1 -s`

anonymous
()
Ответ на: комментарий от anonymous

Ух ты, и правда работает! Спасибо Вам огроменное!!
Я вот так сделал пока что:

drvtiny@drvtiny-ot-pc00:~/Compile/ddcci-tool-0.04$ sudo ./ddcci-tool /dev/i2c-1 -r 0x10 -w 50
ddcci-tool version 0.04

Using ddc/ci : 0x37@/dev/i2c-1

Writing 0x10(Brightness), 0x32(50)
Control 0x10: +/50/100	[Brightness]

DRVTiny ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.