Настроить подсветку через DDC?

Для полноты картины, хотя очевидным решением в этом случае является добавление флага g, в некоторых случаях вам может понадобиться запустить командуs/string1/string2/(илиs/string1/string2/g)несколько раз.

Например, если вместо string2у вас есть str, на входе типа:

string1ing1

s/string1/str/gприведет к:

string1

Если бы вы хотели вместо этого str, вам понадобился бы другой s/string1/str/g. С sedесть идиоматический способ запуска подстановки, если она успешна, с помощью команды t:

sed '
  /string3/{
    :1
    s/string1/string2/
    t1
  }'

tпереходит к метке :1только в случае успешного выполнения команды s.

3
11.10.2019, 00:25
2 ответа

Чтобы это хоть как-то работало с ddcutil, мне пришлось сначала найти эту страницу , а затем расшифровать эти рекомендации. Поскольку я не мог толком понять первый совет (, не смог найти файл, на который он ссылался ), я попробовал второй:

Я поместил options nvidia NVreg_RegistryDwords=RMUseSwI2c=0x01;RMI2cSpeed=100в собственный.conf в /etc/modprobe.d и перезагрузился.

В результате получается ddcutil, который работает в 50 % случаев:

$ sudo ddcutil capabilities | grep Brightness
   Feature: 10 (Brightness)
:~$ sudo ddcutil getvcp 10
VCP code 0x10 (Brightness                    ): current value =     0, max value =   100
:~$ sudo ddcutil getvcp 10
VCP code 0x10 (Brightness                    ): current value =     9, max value =   100
:~$ sudo ddcutil setvcp 10 100
Setting value failed for feature 10. rc=EIO(-5): Input/output error
:~$ sudo ddcutil setvcp 10 10
:~$ sudo ddcutil setvcp 10 99
Verification failed for feature 10
:~$ sudo ddcutil setvcp 10 50
:~$ sudo ddcutil setvcp 10 75
:~$ sudo ddcutil setvcp 10 80
Setting value failed for feature 10. rc=EIO(-5): Input/output error
:~$ sudo ddcutil setvcp 10 90
Setting value failed for feature 10. rc=EIO(-5): Input/output error
:~$ sudo ddcutil setvcp 10 95
Setting value failed for feature 10. rc=EIO(-5): Input/output error
:~$ sudo ddcutil setvcp 10 99
Display not found
:~$ sudo ddcutil setvcp 10 10
Verification failed for feature 10
:~$ sudo ddcutil setvcp 10 100
Display not found
:~$ sudo ddcutil setvcp 10 100
:~$ sudo ddcutil setvcp 10 0
Display not found
:~$ sudo ddcutil setvcp 10 0

Фактическая яркость менялась примерно в половине попыток. Сбои не всегда совпадали с выводом ошибки в терминал.

Я поместил это в ответ, так как это может быть хорошим решением для других, но я все еще ищу что-то более надежное.


Обновление:На самом деле этот ответ привел к зависанию в разрешении 640x480 после перезагрузки, поэтому мне пришлось изменить его.

Причина проблемы неизвестна. Это могло быть совпадением. Проблема с низким разрешением возникает даже после комментирования единственной строки текста внутри файла, представленного в этом ответе.

0
27.01.2020, 21:32

Я разработчик ddcutil .

Похоже, у вас есть монитор с маргинальной реализацией I2C. Параметры Nvidia заставляют драйвер использовать самую низкую скорость шины, определенную в спецификации I2C, 100 кбит/с. К сожалению, нет способа сказать водителю использовать еще более низкую скорость автобуса.

Используйте параметр --ddcдля просмотра ошибок данных DDC, а параметр --statsдля кумулятивного подсчета ошибок и количества попыток ddcutilповторных операций.

Есть несколько ddcutilвариантов, которые могут помочь. Если вы видите много сбоев в выводе --stats, показывающем превышение максимального количества повторных попыток, вы можете попробовать увеличить количество повторных попыток, используя параметр --maxtries. Во-вторых, протокол DDC/CI требует, чтобы приложение выжидало определенное время (, обычно 50 мс ), между моментом, когда оно отправляет запрос на монитор, и временем, когда оно считывает ответ. Это необходимо для того, чтобы монитор мог выполнить операцию и/или собрать ответ. Опция --sleep-multiplierувеличивает время ожидания ddcutil. Например, --sleep-multiplier 2заставляет ddcutilждать 100 мс, когда спецификация предписывает ожидание 50 мс. (И наоборот,Я видел некоторые хорошо работающие реализации видеокарты/монитора, которые работают со значением множителя сна -всего лишь .1, т. е. ожидают всего 5 мс, когда спецификация требует 50.)

Наконец, приношу свои извинения за трудности с поиском файла 90-nvidia_i2c.conf. Документация к файлу на веб-сайте не была обновлена ​​для текущего местоположения.

4
28.10.2020, 15:39

Теги

Похожие вопросы