【发布时间】:2018-10-14 16:04:27
【问题描述】:
我遇到了 Skylake i7-6700 HQ 笔记本电脑显示屏(高清 530 显卡)亮度变化的问题:
- 如果值变化 20 则有效。
- 如果数值变化 19,它只适用于数百次跳跃。
- 如果值变化
但是,在我的旧 Ivybridge 笔记本电脑 i7-3630 QM(高清 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 英特尔微码肯定在旧笔记本电脑 (Ubuntu 16.04) 上激活,但可能无法在新笔记本电脑 (Ubuntu 16.04.5) 上加载。
编辑:使用 Ubuntu 18.04.1 LTS、内核 4.15.0-36 重新启动,并见证了相同的行为。
确认:我想知道其他人是否有 Skylake 笔记本电脑并且可以确认硬件亮度工作方式相同。
问题: 对于我正在开发的应用程序,我是否必须为每个用户添加一个功能来测试支持的最小粒度亮度变化?
【问题讨论】:
-
您是否尝试过使用 Ubuntu 18.04,而不是在 Skylake 发布后不久推出的 16.04? (IDK 有多少 Ubuntu 向后移植到图形堆栈中。)我还想知道这是否纯粹来自 HD530 GPU,或者是否与特定的笔记本电脑型号和供应商选择的背光 + 控制器有关。
-
@PeterCordes 可以确认内核 4.15.0-36-generic 的 Ubuntu 18.04 表现出与内核 4.13.0-36-generic 的 Ubuntu 16.04 相同的行为。但是,英特尔微码更新不适用于任一内核。
-
实际的笔记本电脑型号是什么?我认为不同的背光更有可能具有不同的控制粒度,而不是 GPU 本身的变化。
-
@PeterCordes 这是戴尔 Alienware 17R3,带有基本的 LCD 屏幕(不是 OLED)。允许以 1 为增量步进的较旧笔记本电脑是戴尔 Inspiron 灵越 17R 7720 SE,其 LCD 屏幕更好。
标签: ubuntu-16.04 screen intel hardware-programming