Kernel 4.19 & thinkpad_acpi

zwieblum

Well-known member
Themenstarter
Registriert
3 Mai 2009
Beiträge
1.569
Hat jemand von euch ein T60/T61 mit Kernel 4.19 oder neuer laufen? Wenn ja, habt ihr auch siese Meldungen?

# dmesg
...
[ 303.845393] thinkpad_acpi: acpi_evalf(BCTG, dd, ...) failed: AE_NOT_FOUND
[ 303.845402] ACPI: \_SB_.PCI0.LPC_.EC__.HKEY: BCTG: evaluate failed
[ 303.845443] thinkpad_acpi: acpi_evalf(BCSG, dd, ...) failed: AE_NOT_FOUND
[ 303.845449] ACPI: \_SB_.PCI0.LPC_.EC__.HKEY: BCSG: evaluate failed
[ 308.845691] thinkpad_acpi: acpi_evalf(BCTG, dd, ...) failed: AE_NOT_FOUND
[ 308.845702] ACPI: \_SB_.PCI0.LPC_.EC__.HKEY: BCTG: evaluate failed
[ 308.845757] thinkpad_acpi: acpi_evalf(BCSG, dd, ...) failed: AE_NOT_FOUND
[ 308.845764] ACPI: \_SB_.PCI0.LPC_.EC__.HKEY: BCSG: evaluate failed

BCSG und BCTG hängen mit den Ladeschwellen zusammen. So weit so gut.

Aber wie krieg' ich thinkpad_acpi dazu, nicht das ganze log vollzuspammen?
 
Ich verwende für mein T61 das tp_smapi modul.
Ist das thinkpad_acpi mittlerweile ein ersatz dafür?
Dachte das ist nur für die neueren TP Modelle.
 
Hm ... wäre eine nette Lösung gewesen, aber am T60/T61 funktionieren mit tp_smapi nicht alle Keys (Mute/Power/ThinkVantage sind ohne Funktion), mit thinkpad_acpi funktionieren die schon.

"Neuere Modelle" ist sehr dehnbar .. meine T60 kamen praktisch erst gesten vom Händler :thumbsup:
 
Das ist das neue Ladeschwellen-Feature in thinkpad_acpi (siehe https://github.com/linrunner/TLP/issues/321 ). Der Treiber testet wohl ohne Prüfung des Modells, ob die ACPI Calls funktionieren.
nicht das ganze log vollzuspammen?
8 Zeilen sind bei dir "das ganze Log" bzw. "Spam"? Falls es ich so sehr stört, solltest Du einen Kernel Bug aufmachen.

aber am T60/T61 funktionieren mit tp_smapi nicht alle Keys (Mute/Power/ThinkVantage sind ohne Funktion), mit thinkpad_acpi funktionieren die schon.
tp_smapi ist kein Ersatz für thinkpad_acpi, sondern kümmert sich optional um Akkufunktionen bzw. HDAPS. Die Keys handhabt immer thinkpad_acpi, deshalb wird es auch auf jedem Thinkpad geladen. Das solltest Du als bekennender Linuxer eigentlich besser wissen.
 
Der Treiber testet das Feature, aber er ist mit dem Ergebnis nicht zufrieden - steht zumindest so im Sourcecode :(

8 Zeilen alle 5 Sekunden halte ich für schon für Spam ...

- - - Beitrag zusammengeführt - - -

OK, Kernelbug aufgemacht.

Och, ich hab' auch nicht alle Seiteneffekte im Kopf :) ... ausserdem war ich irgendwie der Mainung, dass mittlerweile alle Tasten ohne gehen. VolumeUP/Down, ThinVantage, Fn+<irgendwas> funktionieren ohne thinkpad_acpi genausogut. Nur Power und Mute brauchen thinkpad_acpi. Lustig, wenn die dann mit tp_smapi nicht funktionieren.
 
Moin zusammen

Bei meinem L520 existiert das Problem auch. Sowohl unter Kernel 4.19 als auch unter 5.0.6.

Ist jetzt nicht essentiell, aber ich lese mittels tlp-stat gerne die Host writes der SSD aus und habe vor 2-3 Wochen festgestellt, dass tlp-stat bei SSD und HDD eine Fehlermeldung wirft. Die komplette Ausgabe habe ich mal unten angehängt.

Code:
/dev/sda: Device type "unknown" ignored.
/dev/sdb: Device type "unknown" ignored.

Hast du das auch @zwieblum und kann mir jemand von euch einen Lösungsansatz dafür nennen?
 

Anhänge

tlp hab' ich nicht installiert - das gut Tool hat mir regelmäßig die Festplatte im Betrieb abghängt, die folgende Kernelpanik war recht erfrischend.

Ich komilier' mir jetzt immer das thinkpad_acpi-Modul selber, die spammenden Zeilen hab' ich auskommentiert.
 
@pseudonym: bitte die Themen nicht vermischen. Supportfragen zu TLP im TLP-Support-Thread. Zeig mal:
Code:
udevadm info -n sda -q property
udevadm info -n sdb -q property

@ziweblum: welches SSD-Modell?
 
T60/T61/X61: Hat alle Platten betroffen, SSDs von Kingston Sandisk Samsung, HDDs von Tosiba Hitachi. Sobald der Stromsparmodus vom SATA Interface aktiviert wurde haben sich die Platten verlässlich innerhalb von 10 Minuten ziemlich dauerhaft zur Ruhe begeben (rebooten und sie waren wieder da).

- - - Beitrag zusammengeführt - - -

Bevor ich's vergesse, hier der Patch:

$ make -C /usr/src/linux-headers-$(uname -r) M=$(dirname $(realpath "$0"))

Code:
--- ./linux-source-4.19/drivers/platform/x86/thinkpad_acpi.c    2019-01-16 22:04:38.000000000 +0100
+++ thinkpad_acpi.c    2019-03-04 11:44:55.480443068 +0100
@@ -9315,6 +9315,8 @@ static acpi_status tpacpi_battery_acpi_e

 static int tpacpi_battery_get(int what, int battery, int *ret)
 {
+    return -ENODEV;
+
     switch (what) {
     case THRESHOLD_START:
         if ACPI_FAILURE(tpacpi_battery_acpi_eval(GET_START, ret, battery))
@@ -9384,41 +9386,6 @@ static int tpacpi_battery_probe(int batt
      * 3) Get the current stop threshold
      * 4) Check for support
      */
-    if (acpi_has_method(hkey_handle, GET_START)) {
-        if ACPI_FAILURE(tpacpi_battery_acpi_eval(GET_START, &ret, battery)) {
-            pr_err("Error probing battery %d\n", battery);
-            return -ENODEV;
-        }
-        /* Individual addressing is in bit 9 */
-        if (ret & BIT(9))
-            battery_info.individual_addressing = true;
-        /* Support is marked in bit 8 */
-        if (ret & BIT(8))
-            battery_info.batteries[battery].start_support = 1;
-        else
-            return -ENODEV;
-        if (tpacpi_battery_get(THRESHOLD_START, battery,
-            &battery_info.batteries[battery].charge_start)) {
-            pr_err("Error probing battery %d\n", battery);
-            return -ENODEV;
-        }
-    }
-    if (acpi_has_method(hkey_handle, GET_STOP)) {
-        if ACPI_FAILURE(tpacpi_battery_acpi_eval(GET_STOP, &ret, battery)) {
-            pr_err("Error probing battery stop; %d\n", battery);
-            return -ENODEV;
-        }
-        /* Support is marked in bit 8 */
-        if (ret & BIT(8))
-            battery_info.batteries[battery].stop_support = 1;
-        else
-            return -ENODEV;
-        if (tpacpi_battery_get(THRESHOLD_STOP, battery,
-            &battery_info.batteries[battery].charge_stop)) {
-            pr_err("Error probing battery stop: %d\n", battery);
-            return -ENODEV;
-        }
-    }
     pr_info("battery %d registered (start %d, stop %d)",
             battery,
             battery_info.batteries[battery].charge_start,
 

Anhänge

@zwieblum: genial wäre ein Patch, der die Funktion nur bei allen alten Modellen < X220/T420 etc. deaktiviert. Hast Du dazu vielleicht eine Idee, wie man das ohne eine Liste aller Modelle hinbekommt?
 
Na ja, der einfachere Weg wäre die Fehlermeldung nicht auszugeben, statt den ganzen Block zu entfernen. Aber der Code ist sowieso für nichts gut, außer die Ladeschwellen anzuzeigen.
 
Ohne die passende Funktion die Ladeschwellen auch zu setzen?
 
Ist natürlich auch vorhanden.

EDITH sagt: Patche sind alle hier verlinkt.
 
Zuletzt bearbeitet:
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben