DSDT Sammelthread (Hilfe und Diskussion)

  • Hiho. Frage. Ich habe ein ASUS UX302L(A) und schlage mich gerade mit RehabMans ASUS Battery Patch herum. Da ich nicht die ganze DSDT zum Kompilieren bringen möchte und der Hotpatch-Strategie eh ablehnend gegenüberstehe, versuche ich die SSDT für die Batterie zu externalisieren. Da klappt insofern, als dass er jetzt anzeigt, ob das Netzteil angesteckt ist oder nicht. Aber die Prozent lassen sich nicht auslesen. Das ist angesichts von einigen 256 Bit Feldern auch nicht verwunderlich. Meine eigentliche Frage betrifft jetzt die ACPI Syntax. Wenn ich z.B. habe:

    Wie greife ich dann auf DAT0 oder DAT1 zu? Ist es:

    Code
    1. External (_SB.PCI0.LPCB.EC0.DAT0)
    2. oder
    3. External (_SB.PCI0.LPCB.EC0.SMBX.DAT0)


    Das kann doch nicht sein?


    Ich hänge mal die DSDT.aml an sowie den aktuellen Stand der SSDT-BAT, das ist quasi RehabMans Battery Patch in externalisierter Form.


    EDIT: Hat sich mehr oder weniger erledigt. Ich wüsste zwar immernoch gern eine Antwort, aber ich habe jetzt die Batteriepatches wieder internalisiert, womit die Batterieanzeige dann funktioniert (ACPIBatteryManager oder SMCBatteryManager).

    Dateien

    • 20210101.zip

      (39,09 kB, 117 Mal heruntergeladen, zuletzt: )

    Meine GeekBench Benchmarks - Meine Heaven OpenGL Benchmarks.

    PowerMac G3 b&w CaseMod. QuickSilver CaseMod. MacPro (2009) CaseMod (früher 3570K/H77, dann 7700K/Z270, jetzt 8700K/Z370). NVISEN Y-MU01 (i7-8565U). Dell Optiplex 9030 (Haswell AiO). Notebooks: Xiaomi Notebook Pro 15" (2018), Huawei Matebook X 13" (2018), Acer Aspire 3 A315-51-388S, ASUS UX302L, Dell Latitude E7470. EFIs für alle genannten Projekte gern per PN.

    Einmal editiert, zuletzt von tiloprobst ()

  • External (_SB.PCI0.LPCB.EC0.DAT0)

    Die Version ohne SMBX ist (fast) korrekt. Das Ganze ist dann ein FieldUnitObj. AccessType ist ByteAccess.

    Mal einen Blick in das ACPI Spec geworfen? Seite 972 handelt von Fields.

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

  • Jetzt habe ich das nächste Problem, diesmal mit einem HP 250 G5 Z2Z89ES. Scheinen ja ziemlich grässlich zu sein, diese HP ACPIs ... Er hier hat das gleiche Problem mit Linux, er hier das Problem unter Mac OS (der Link unten im Forum Post bringt mir nicht). Die Deklarationen im Kopf der DSDT:


    Code
    1. External (_SB_.WMID, DeviceObj) // was UnknownObj) // WMI (Windows Management Instrumentation)
    2. External (_SB_.WMID.ESDT, MethodObj) // 0 Arguments


    Da hatte ich getestet ob es einen Unterschied macht, ein UnknownObj oder DeviceObj zu deklarieren. Der scheiternde Code (so verstehe ich die Fehlermeldungen beim Booten):


    Code
    1. Method (_Q42, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
    2. {
    3. Debug = "=====QUERY_42====="
    4. WP8H (0x42) // was P80H = 0x42
    5. ^^^^WMID.ESDT ()
    6. }


    Das WP8H ist bloß der Battery Patch der Werte in 8er splittet. Wenn ich den Aufruf der WMID.ESDT() auskommentiere, bleibt das Ganze bei BuildActDeviceEntry exit stehen. Schaut man sich die SSDT-0.aml (WMI) an, sieht man dort einige Deklarierungen:


    Code
    1. External (_SB_.PCI0.LPCB.RTC_.RTCH, FieldUnitObj)
    2. External (_SB_.PCI0.LPCB.RTC_.RTCM, FieldUnitObj)
    3. External (_SB_.PCI0.LPCB.RTC_.RTCW, FieldUnitObj)


    und das hier ist die ESDT:



    ich sehe aber nicht, was daran falsch sein sollte? Was meckert er denn von wegen Argumente für die ESDT? Braucht doch gar keine?

    Bilder

    Dateien

    Meine GeekBench Benchmarks - Meine Heaven OpenGL Benchmarks.

    PowerMac G3 b&w CaseMod. QuickSilver CaseMod. MacPro (2009) CaseMod (früher 3570K/H77, dann 7700K/Z270, jetzt 8700K/Z370). NVISEN Y-MU01 (i7-8565U). Dell Optiplex 9030 (Haswell AiO). Notebooks: Xiaomi Notebook Pro 15" (2018), Huawei Matebook X 13" (2018), Acer Aspire 3 A315-51-388S, ASUS UX302L, Dell Latitude E7470. EFIs für alle genannten Projekte gern per PN.

  • Die benötigte ESDT bzw. _Q42 Entität existiert nicht. Hast du vielleicht code ausgelagert, aber nicht als external deklariert?


    Das Gesamtkonstrukt deiner aktuellen Konfiguration und die Veränderung mit der der Fehler aufgetreten ist, ist mir noch nicht ganz klar.

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

  • Ich habe ein Problem mit meinem Firewire in meinem Z600, siehe hier Z600 letzte Probleme. So wie es aussieht und ich rausgefunden habe, fehlt dem Firewire wohl ein freier IRQ (warum auch immer). Im IORegestryExplorer sieht das so aus:


    In der DSDT finde ich keine direkte Zuweisung zum Firewire:



    Fehlt dem Firewire evtl. mehr Info, zB ein fester IRQ? In der DSDT ist das Device 11c1,5811 nirgends zugewiesen.


    Hier (ich hoffe der ext. Link verstößt nicht gegen die Regeln) steht, das ein FRWR Device eingefügt werden soll, um wenigstens den FireWire runtime power conservation disabled Fehler zu entfernen. Ich habe FRWR nicht...


    Anbei meine DSDT, jede Hilfe ist willkommen.


    Besten Dank schon mal.


    Viele Grüße

    Dateien

    • DSDT.aml

      (39,97 kB, 74 Mal heruntergeladen, zuletzt: )
  • Ich komme mit meinen Erkenntnissen etwas weiter, es reicht aber nicht um mein Firewire zum Laufen zu bringen. Scheinbar ist der FW Hub _SB.PCI0.HUB schon unvollständig beschrieben, so dass FireWire als solches nicht richtig erkannt wird.


    Ich habe noch nicht raus, wie ich ganze Devices in die DSDT einfüge bzw. den Hub ändere, so dass FW erkannt wird.


    Gibt's keinen der helfen kann... Vielleicht ein Beispiel, wo so etwas gemacht wird.


    :bitte: