Аппаратная яркость Skylake меняется слишком зернисто
У меня проблема с изменением яркости дисплея ноутбука Skylake i7-6700 HQ (графика HD 530):
- Если значение меняется на 20, это работает.
- Если значение изменяется на 19, оно работает только в нескольких сотнях прыжков.
- Если значение изменяется на <19, яркость вообще не меняется.
Однако на моем старом ноутбуке Ivybridge i7-3630 QM (графика HD 4000) яркость успешно меняется с шагом 1.
Вот скрипт для тестирования:
#!/bin/bash
# Test all brightness levels from 1 to max_brightness
# For Intel i7-6700 HQ HD 530 graphics:
# - When change is 18 steps brighhness doesn't change at all.
# - When change is 19 steps brightnesss changes on multi-hundred point jumps.
# - When change is 20 steps each change applied as expected.
# For Intel i7-3630QM steps of 1 work fine!
if [[ $(id -u) != 0 ]]; then
echo >&2 "$0 must be called with sudo powers"
exit 1
fi
cd /sys/class/backlight/*/
max=$(cat max_brightness)
save=$(cat brightness)
for (( i=1; i < max; i=i+20)); do
echo $i > brightness
echo setting brightness level: $i
sleep .005
done
echo $save > brightness
echo resetting brightness level from $max back to: $save
exit 0
Я думаю, что мой skylake работает нормально, кроме странных температур, о которых сообщалось для датчика pch_skylake:
$ paste <(cat /sys/class/thermal/thermal_zone*/type) <(cat /sys/class/thermal/thermal_zone*/temp) | column -s $'\t' -t | sed 's/...$/.0°C/'
INT3400 Thermal 20.0°C
SEN1 56.0°C
SEN2 52.0°C
SEN3 57.0°C
SEN4 61.0°C
pch_skylake -44.0°C
B0D4 50.0°C
x86_pkg_temp 52.0°C
Кроме этого микрокод Linux Intel определенно активируется на старом ноутбуке (Ubuntu 16.04), но может не загружаться на новый ноутбук (Ubuntu 16.04.5).
Изменить: перезагрузка с Ubuntu 18.04.1 LTS, Kernel 4.15.0-36 и то же поведение наблюдается.
Подтверждение: Интересно, есть ли у других ноутбук Skylake и может ли аппаратная яркость работать так же?
Вопрос: для приложения, которое я разрабатываю, нужно ли включать функцию для каждого пользователя, чтобы тестировать наименьшее поддерживаемое изменение яркости?
0 ответов
Яркость подсветки отделена от собственно графического процессора; iGPU, являющийся частью микросхемы ЦП, просто генерирует пиксельные данные для ЖК-дисплея, например, как вывод DisplayPort. (Или в ноутбуках, часто сигнал низкого напряжения eDP).
Обратите внимание, что на рабочем столе вы не можете регулировать яркость подсветки с помощью программного обеспечения; нет связи с обычным оборудованием / драйверами графического процессора с подсветкой.
Программное управление подсветкой в ноутбуках в значительной степени отделено от iGPU и не имеет никакого отношения к тому, является ли это Skylake или IvyBridge. Элемент управления подсветкой представляет собой отдельное аппаратное устройство с отдельными портами ввода-вывода (или отображаемыми в память регистрами ввода-вывода или чем-либо еще).
Более точная регулировка подсветки - это свойство ноутбука, а не процессора. В частности, технологии подсветки и оборудования контроллера.
(Это мое понимание, но на самом деле я недостаточно подробно рассмотрел код графического процессора или драйвера подсветки / ACPI, чтобы быть на 100% уверенным, что это точно.)
Я понятия не имею, возможно ли для программного обеспечения запрашивать истинную / значимую детализацию; Этот ответ только для того, чтобы указать на неправильное представление о том, что оно зависит от графического процессора или драйверов графического процессора.