Linux Kernel-Modul amd_sfh später nachladen

  • Hallo zusammen,

    vielleicht kann mir von euch jemand helfen :)

    Ich habe bei meinem HP Envy x360 Convertible Laptop das Problem, dass Autorotation nicht funktioniert.

    Der Befehl monitor sensor wirft in diesem Fall keine Daten aus, wenn man den Bildschirm dreht:

    Code
    monitor sensor
    Waiting for iio-sensor-proxy to appear

    Damit bin ich auch nicht alleine. Es gibt hierzu auch schon einen Bug-Report:

    212615 – amd-sfh doesn't provide valid sensor data in Linux on HP x360 Envy systems

    Wenn ich es richtig lese, wird das Modul beim Bootvorgang nicht richtig initialisiert, sodass es zwar geladen wird, aber dann nicht funktioniert.

    Das Problem lässt sich einfach lösen, indem man per Modprobe das Kernel-Modul amd_sfh entfernt und neu hinzufügt.

    sudo modprobe -r amd_sfh

    sudo modprobe amd_sfh


    Ein paar Sekunden warten, und monitor sensor ergibt folgendes:

    Code
    monitor sensor
     Waiting for iio-sensor-proxy to appear
    +++ iio-sensor-proxy appeared
    === Has accelerometer (orientation: undefined)
    === No ambient light sensor
    === No proximity sensor
        Accelerometer orientation changed: right-up
        Accelerometer orientation changed: normal

    Autorotate funktioniert dann bis zum nächsten Warm- oder Kaltstart.

    Das ständige Ent- und Neuladen nervt mich und ich würde das gerne lösen, da ich nicht mehr daran glaube, dass für meine Hardware in nächster Zeit ein Kernel-Update folgen wird. Das Problem ist ja auch schon etwas länger bekannt. Hatte dafür extra den neuesten Kernel verwendet (6.14) und nun auch schon auf LM 22.2 aktualisiert.

    Meine Idee ist nun, das Modul amd_sfh entweder verzögert starten zu lassen oder auf eine Blacklist zu setzen und es nach dem Bootvorgang nachträglich einzubinden.

    Weiß jemand Rat? Würde mich freuen :)

    Infos zu meinem System:

    Code
    System:
      Kernel: 6.14.0-32-generic arch: x86_64 bits: 64 compiler: gcc v: 13.3.0 clocksource: tsc
      Desktop: Cinnamon v: 6.4.8 tk: GTK v: 3.24.41 wm: Muffin v: 6.4.1 vt: 7 dm: LightDM v: 1.30.0
        Distro: Linux Mint 22.2 Zara base: Ubuntu 24.04 noble
    Machine:
      Type: Convertible System: HP product: HP Envy x360 2-in-1 Laptop 15-fh0xxx
        v: Type1ProductConfigId serial: <superuser required> Chassis: type: 31
        serial: <superuser required>
      Mobo: HP model: 8BE9 v: 75.44 serial: <superuser required> part-nu: 8D674EA#ABD
        uuid: <superuser required> UEFI: Insyde v: F.10 date: 07/23/2024

    Wenn ihr mehr Infos benötigt, gebt gerne Bescheid.

    Gruß
    Axel

  • Go to Best Answer
  • Meine Idee ist nun, das Modul amd_sfh entweder verzögert starten zu lassen oder auf eine Blacklist zu setzen und es nach dem Bootvorgang nachträglich einzubinden.

    Weiß jemand Rat? Würde mich freuen

    Schade. Scheint ja wirklich nicht so einfach zu sein, wenn hier mal so gar keiner antwortet :/

    Ich schau mal am Wochenende, ob ich‘s irgendwie alleine lösen kann. Sonst muss ich halt damit leben.

  • Das Problem lässt sich einfach lösen, indem man per Modprobe das Kernel-Modul amd_sfh entfernt und neu hinzufügt.

    sudo modprobe -r amd_sfh

    sudo modprobe amd_sfh

    Hast Du versucht, das mal in ein Autostart-Skript zu stecken, das später startet? Vielleicht mit entsprechenden Wartezyklen dazwischen oder davor?

    Schade. Scheint ja wirklich nicht so einfach zu sein, wenn hier mal so gar keiner antwortet :/

    Mir ist nicht ganz klar, wo Dein Problem liegt. Die komplette Bug-Report-Diskussion habe ich jetzt nicht gelesen. Aber wenn das Problem umgangen werden kann, indem das Modul später gestartet wird, würde ich es so versuchen. Blacklisten ist doch gar nicht nötig.

  • Hast Du versucht, das mal in ein Autostart-Skript zu stecken, das später startet? Vielleicht mit entsprechenden Wartezyklen dazwischen oder davor?

    Danke Cockroach :)

    ich habe es jetzt über ein Script gelöst, welches beim Booten ausgeführt wird und das Kernelmodul entfernt und wieder neu einbindet.

    https://www.cyberciti.biz/faq/how-to-enable-rc-local-shell-script-on-systemd-while-booting-linux-system/

    Leider greift dieses Script nicht, wenn der Laptop aus dem Ruhezustand erwacht. Denn dann funktioniert die Autorotation meist auch nicht mehr.

    Aber nu. Man kann nicht alles haben. Dann muss ich es halt in diesem Fall manuell ausführen.

  • Axelinux September 11, 2025 at 12:00 AM

    Selected a post as the best answer.
  • Vielleicht funktioniert es ohne manuelles Kernel-Modul nachladen nach einem:

    Code
    sudo update-initramfs -u -k all
    Display Spoiler

    Mein lm sensors findet auf ubuntu nicht alle Sensoren wie den des regelbaren CPU Lüfters. Das Kernelmodul nct6775 wird dafür benötigt und sollte automatisch geladen werden. Nach dem manuellen Laden des Modules funktioniert alles.

    Automatisch wird es bei mir nur funktionierend geladen wenn ich zuvor die initramfs neu aufgebaut habe!

    Edited once, last by Kater (September 11, 2025 at 10:29 PM).

  • Hallo Kater ,

    hilft bei mir nicht. Aber vielen Dank für Deinen Tipp.

    Da initramfs spätestens bei einem Kernel-Update sowieso automatisch aktualisiert wird, hätte mich auch gewundert, wenn es geholfen hätte. Denn von Kernel-Updates hatte ich ja bereits einige.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!