我有一台装有 ArchLinux 和 Gnome 3.18 的戴尔 XPS 13 笔记本电脑(旧系列)。我在官方gnome 3.18 发行说明中读到
如果存在光传感器,GNOME 现在将自动调整显示亮度,以适应环境光线水平。
对于没有内置硬件的人,可以使用 ColorHugALS 设备进行测试。
支持 Windows 8 兼容硬件。
控制中心电源面板中的开关允许打开/关闭自动显示亮度。
开箱即用的 Linux 内核不支持我的环境光传感器,但是我已经编译并安装/加载了这个模块,现在我的传感器显示为/sys/bus/acpi/devices/ACPI0008:00/. 例如我可以做
$ cat /sys/bus/acpi/devices/ACPI0008:00/iio\:device0/in_illuminance_raw
153
Run Code Online (Sandbox Code Playgroud)
并读取当前的原始照度。
然而,这似乎没有被 gnome 检测/支持,因为我仍然没有得到“控制中心电源面板中的开关”,并且显示亮度不会自动调整。
我怎样才能让它工作?
最后,在一位iio-sensor-proxy内核开发人员的支持下,我成功地使其工作起来。
就我而言,我必须iio-sensor-proxy从git中提取并应用此补丁:
diff --git a/src/drv-iio-poll-light.c b/src/drv-iio-poll-light.c
index c2c5821..b568e78 100644
--- a/src/drv-iio-poll-light.c
+++ b/src/drv-iio-poll-light.c
@@ -37,7 +37,7 @@ iio_poll_light_discover (GUdevDevice *device)
return FALSE;
path = g_build_filename (g_udev_device_get_sysfs_path (device),
- "in_illuminance_input",
+ "in_illuminance_raw",
NULL);
ret = g_file_test (path, G_FILE_TEST_IS_REGULAR);
g_free (path);
@@ -130,7 +130,7 @@ iio_poll_light_open (GUdevDevice *device,
drv_data->interval = get_interval (device);
drv_data->input_path = g_build_filename (g_udev_device_get_sysfs_path (device),
- "in_illuminance_input",
+ "in_illuminance_raw",
NULL);
return TRUE;
Run Code Online (Sandbox Code Playgroud)
按照README指令编译并安装并最终启用iio-sensor-proxy.service
现在我可以自动调节亮度了。
最后,开发人员提交了一个 Linux 内核补丁,将来也可以在具有类似ALSiio-sensor-proxy的计算机上开箱即用,无需打补丁。iio-sensor-proxy
| 归档时间: |
|
| 查看次数: |
6399 次 |
| 最近记录: |