У меня проблема с изменением яркости дисплея ноутбука 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

Помимо этого микрокод Intel Linux определенно активирован на старом ноутбуке (Ubuntu 16.04), но не может быть загружен на новый ноутбук (Ubuntu 16.04.5).

Изменить: перезагрузился с Ubuntu 18.04.1 LTS, ядром 4.15.0-36, и наблюдается такое же поведение.

Подтверждение. Интересно, есть ли у других ноутбуки Skylake, и они могут подтвердить, что яркость оборудования работает таким же образом.

Вопрос: нужно ли мне добавлять в разрабатываемое мной приложение функцию для каждого пользователя, чтобы проверить поддерживаемое минимальное изменение яркости?

0
WinEunuuchs2Unix 14 Окт 2018 в 19:04
Пробовали ли вы использовать Ubuntu 18.04 вместо 16.04, которая вышла вскоре после выхода Skylake? (IDK, сколько Ubuntu перенесла обратно в графический стек.) Мне также интересно, связано ли это исключительно с графическим процессором HD530 или это связано с конкретной моделью ноутбука и выбором поставщика подсветки + контроллера.
 – 
Peter Cordes
14 Окт 2018 в 19:11
1
Могу подтвердить, что Ubuntu 18.04 с ядром 4.15.0-36-generic демонстрирует то же поведение, что и Ubuntu 16.04 с ядром 4.13.0-36-generic. Однако обновление микрокода Intel не применяется ни в одном из ядер.
 – 
WinEunuuchs2Unix
15 Окт 2018 в 01:58
Какая на самом деле модель ноутбука? Я думаю, что более вероятно, что разные подсветки имеют разную степень детализации управления, в большей степени, чем изменение самого графического процессора.
 – 
Peter Cordes
15 Окт 2018 в 02:04
1
Это Dell Alienware 17R3 с базовым ЖК-экраном (не OLED). Более старый ноутбук, который позволяет шагать с шагом 1, — это Dell Inspiron 17R 7720 SE с немного более приятным ЖК-экраном.
 – 
WinEunuuchs2Unix
15 Окт 2018 в 02:08

1 ответ

Лучший ответ

Яркость подсветки не зависит от самого графического процессора; iGPU, который является частью микросхемы ЦП, просто производит пиксельные данные для ЖК-дисплея, например как выход DisplayPort. (Или в ноутбуках, часто сигнал низкого напряжения eDP).

Обратите внимание, что на рабочем столе вы не можете настроить яркость подсветки с помощью программного обеспечения; нет связи с обычным оборудованием GPU / драйверами с подсветкой.

Программное управление подсветкой в ​​ноутбуках в значительной степени отделено от iGPU и не имеет ничего общего с Skylake или IvyBridge. Управление подсветкой - это отдельное аппаратное устройство с отдельными портами ввода-вывода (или отображенными в память регистрами ввода-вывода или чем-то еще).

Более тонкая настройка подсветки - это свойство конструкции ноутбука, а не процессора. В частности, о технологии подсветки и аппаратном обеспечении контроллера.


(Это мое понимание, но на самом деле я не рассматривал код драйвера графического процессора или подсветки / ACPI достаточно подробно, чтобы быть на 100% уверенным в его точности.)


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

2
Peter Cordes 29 Июн 2019 в 20:42
«Более точная регулировка подсветки — это свойство конструкции ноутбука, а не процессора». Это интересно, поскольку ноутбуки Ivy Bridge и Sky Lake были произведены Dell. Сначала Inspiron, второй Alienware. Думаю, у меня есть первый вопрос к инженерам Dell.
 – 
WinEunuuchs2Unix
29 Июн 2019 в 18:20