Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] Kernel-Konfiguration für den Ambient Light Sensor eines Framework Laptop 13  (Read 77 times)

Offline Mister00X

  • User
  • Posts: 213
Hallo allerseits,

ich schreibe diesen Post eigentlich nur um irgendwo „öffentlich“ zu dokumentieren was ich durch Internetrecherche und eigene Experimente herausgefunden habe.

Der „Framework Laptop 13“ kommt mit einem über dem Bildschirm verbauten Umgebungslichtsensor, dem „standard“ siduction-Kernel fehlen allerdings zwei Kernel-Module/KConfig-Optionen um auf diesen Sensor zugreifen zu können.

Die zwei fehlenden KConfig-Optionen sind CONFIG_ACPI_ALS und CONFIG_HID_SENSOR_ALS.

Zum Test habe ich den 6.17.7-1-siduction-amd64 Kernel mit diesen zwei Optionen aktiviert rekompiliert.

Hier ein diff der Konfiguration zwischen dem siduction und meinem Kernel:
Code: [Select]
--- /boot/config-6.17.7-1-siduction-amd64       2025-11-02 19:17:29.000000000 +0100
+++ /boot/config-6.17.7-3-mister00x-amd64       2025-11-05 22:14:22.000000000 +0100
@@ -2,7 +2,7 @@
 # Automatically generated file; DO NOT EDIT.
 # Linux/x86 6.17.7 Kernel Configuration
 #
-CONFIG_CC_VERSION_TEXT="gcc-15 (Debian 15.2.0-7) 15.2.0"
+CONFIG_CC_VERSION_TEXT="gcc (Debian 15.2.0-7) 15.2.0"
 CONFIG_CC_IS_GCC=y
 CONFIG_GCC_VERSION=150200
 CONFIG_CLANG_VERSION=0
@@ -11,8 +11,8 @@
 CONFIG_LD_IS_BFD=y
 CONFIG_LD_VERSION=24500
 CONFIG_LLD_VERSION=0
-CONFIG_RUSTC_VERSION=0
-CONFIG_RUSTC_LLVM_VERSION=0
+CONFIG_RUSTC_VERSION=109000
+CONFIG_RUSTC_LLVM_VERSION=190107
 CONFIG_CC_CAN_LINK=y
 CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
 CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
@@ -22,6 +22,10 @@
 CONFIG_CC_HAS_COUNTED_BY=y
 CONFIG_CC_HAS_MULTIDIMENSIONAL_NONSTRING=y
 CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y
+CONFIG_RUSTC_HAS_COERCE_POINTEE=y
+CONFIG_RUSTC_HAS_SPAN_FILE=y
+CONFIG_RUSTC_HAS_UNNECESSARY_TRANSMUTES=y
+CONFIG_RUSTC_HAS_FILE_WITH_NUL=y
 CONFIG_PAHOLE_VERSION=0
 CONFIG_IRQ_WORK=y
 CONFIG_BUILDTIME_TABLE_SORT=y
@@ -34,7 +38,7 @@
 CONFIG_COMPILE_TEST=y
 # CONFIG_WERROR is not set
 # CONFIG_UAPI_HEADER_TEST is not set
-CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION="-3-mister00x-amd64"
 CONFIG_BUILD_SALT=""
 CONFIG_HAVE_KERNEL_GZIP=y
 CONFIG_HAVE_KERNEL_BZIP2=y
@@ -11350,7 +11354,7 @@
 #
 # Light sensors
 #
-# CONFIG_ACPI_ALS is not set
+CONFIG_ACPI_ALS=m
 # CONFIG_ADJD_S311 is not set
 # CONFIG_ADUX1020 is not set
 # CONFIG_AL3000A is not set
@@ -11376,7 +11380,7 @@
 # CONFIG_SENSORS_ISL29028 is not set
 # CONFIG_ISL29125 is not set
 # CONFIG_ISL76682 is not set
-# CONFIG_HID_SENSOR_ALS is not set
+CONFIG_HID_SENSOR_ALS=m
 # CONFIG_HID_SENSOR_PROX is not set
 # CONFIG_JSA1212 is not set
 # CONFIG_ROHM_BU27034 is not set
Die Unterschiede bei CONFIG_CC_*, CONFIG_RUSTC_* und CONFIG_LOCALVERSION könnt ihr getrost ignorieren.

Um den Sensor zu nutzen, benötigt man noch iio-sensor-proxy, also
Code: [Select]
apt install iio-sensor-proxy

Meines Wissens nach unterstützt momentan nur GNOME automatische Bildschirmhelligkeitssteuerung mithilfe von Umgebungslichtsensoren, deshalb ist für mich als KDE-Nutzer die einfachste Möglichkeit den Sensor zu testen das Programm monitor-sensor, welches im Paket iio-sensor-proxy mit dabei ist.

Eine Beispielaufruf von monitor-sensor sieht so aus:
Code: [Select]
$ monitor-sensor --light
    Waiting for iio-sensor-proxy to appear
+++ iio-sensor-proxy appeared
=== Has ambient light sensor (value: 0,000000, unit: lux)
    Light changed: 301,000000 (lux)
    Light changed: 20,000000 (lux)
    Light changed: 10,000000 (lux)
    Light changed: 288,000000 (lux)
    Light changed: 291,000000 (lux)
    Light changed: 5,000000 (lux)
    Light changed: 43,000000 (lux)
    Light changed: 17,000000 (lux)
    Light changed: 286,000000 (lux)
    Light changed: 297,000000 (lux)
^C

So, das wars. Danke, dass ihr an meinem Experiment „teilgenommen“ habt.

Mister00X
Arguing that you don't care about the right to privacy because you have nothing to hide is no different than saying you don't care about free speech because you have nothing to say. – Edward Snowden