[OC] [Ice Lake] - Lenovo IdeaPad 5 15IIL - Bericht

  • Dieser Thread ist meine Bericht um aus dem Lenovo IdeaPad 5-15IIL ein Hackintosh zu machen.

    Hardware: (Lenovo psref)

    CPU: Ice Lake, Intel i7-1065G7

    RAM:16GB Integriert

    GPU: Intel Iris Pro Plus (G7), ID 0x8A52

    GPU 2: Nvidia MX350

    SSD: WD PC SN730

    Audio: Realtek (ALC257)

    Mikrofon: Intel Smart Sound Mikrofonarray

    Trackpad: I2C Microsoft HID Precission Touchpad (MSFT0001)

    WLAN: Intel AX201 (2x2)

    Bluetooth: 5.1

    USB: 1x USB 3.2 Gen 1; 1x USB 3.2 Gen 1 (always on); 1x USB-C 3.2 Gen 1 (PD 3.0, DP1.2)

    HDMI: 1.4b

    ACPI Pfade:

    Tastatur: PS2; \_SB.PCI0.LPCB.PS2K

    Trackpad: I2C; \_SB.PCI0.I2C1.TPD0

    iGPU: \_SB.PCI0.GFX0

    GPU: \_SB.PCI0.RP05.PXSX

    400 Chipset: \SB.PCI0.SAT0

    Kamera: \_SB.PCI0.XHC.RHUB.HS05.CAMA <- USB angebunden

    USB Controller (?): \_SB.UBTC

    USB 3.1 Controller: \SB.PCI0.XHC

    Intel SMBus - 34A3: _\SB.PCI0.SBUS



    BIOS Einstellungen:

    • Intel Virtual Technology disabled
    • Always on SB disabled
    • Storage: AHCI Mode
    • Intel Platform Trust Technology disabled
    • Intel SGX disabled
    • Secure Boot disabled
    • Boot Mode UEFI
    • PXE Boot on LAN disbaled


    Probleme:

    • Mikforon funktioniert nicht
    • Standby funktioniert nicht:
      • Bildschirm aus / schließen und öffnen geht
      • Tastaturbeleuchtung geht nicht aus
      • System geht nicht in den Standby
    • iGPU: H264 & HEVC Encoding geht nicht
    • iGPU: HDMI & DP via USB-C geht nicht
    • NVRAM Probleme
      • ohne NVRAM Reset nach Boot von Windows in MacOS: itlwm mit WLAN / Bluetooth etwas zickig
      • ohne NVRAM Reset nach Boot von MacOS in Windows:
        • USB-Hardware wird ständig "ein- & ausgesteckt". Meldung aber nicht sichtbar.
        • Fingerabdruckscanner wird nach Standby nicht mehr zum entsperren genutzt.
  • pebbly

    Hat das Label In Arbeit hinzugefügt
  • pebbly

    Hat den Titel des Themas von „Lenovo IdeaPad 5-15IIL Ice Lake“ zu „Lenovo IdeaPad 5 Ice Lake - SSDT Hilfe nötig“ geändert.
  • BIOS Mod

    Das BIOS hat standardmäßig CFG-Lock und DVMT Pre-Allocated sowie DVMT GFX Mem sind unpassend. Da (stand 12.2020) keine Tastenkombinationen den Developer Modus des Bioses (egal welche Version) frei schalten, muss mittels ru.efi die Werte angepasst werden.

    Wichtig: Da hier das Gerät unreparabel zerstört werden kann, gibt es nur Fakten und Links. Ihr alleine Haftet für Schäden und es gibt keinen Support!!

    Mehrmals lesen ist Voraussetzung!


    Zum Einsatz von ru.efi gibt es zwei Anleitungen: Github und Reddit

    Für CFG Lock: unter CPUSetup: 0x43 von 1 auf 0

    Für DVMT Pre-Allocated: unter SaSetup: 0xA4 FE auf 2

    Für DVMT Total GFX Dem: unter SaSetup: 0xA5 2 auf 3

    Die Werte gelten nur bis BIOS Version 1.63! Die Einstellungen bleiben auch nach einem NVMReset erhalten.

    SSDTs:

    • SSDT-Plug: nötig für CPU Power Management, erstellt
    • SSDT-EC: nötig für Embedded Controller, erstellt mit SSDTTime
    • SSDT-USBX: nötig für USB Part der SSDT-EC, benötigt EC ACPI Patch, erstellt
    • SSDT-AWAC: nötig für AWAC / RTC0, erstellt
    • SSDT-ALS0: nötig für Fake Ambient Light Sensor, default passt
    • SSDT-DGPU-OFF: deaktiviert die Nvidia MX350, selbst erstellt & funktioniert
    • SSDT-GPRW: erstellt nach Dortania, benötigt ACPI Patches, verbessert Energieverbrauch
    • SSDT-HPET: Erstellt nach Dortania für Legacy IRQ Conflicts, Benötigt ACPI Patches
    • SSDTPNLFCFL: Für Helligkeitssteuerung - zumindest nach zuklappen
    • SSDT-SBUS-MCHC: nicht nötig, da Device Pfad passt
    • SSDT-RHUB / USB-Reset: Nötig für "SSDT to disable USB RHUB/HUBN/URTH and rename devices" - löst Wakeup nach Bildschirm aus, erstellt mit SSDTTime, RHUB Device in DSDT vorhanden, ACPI Patches nötig

    USB Patch

    Erstellt mit dem Hackintool, funktioniert, hat alle Devices auch nach Windows Geräte-Manager und sieht es wie folgt aus:

  • pebbly

    Hat den Titel des Themas von „Lenovo IdeaPad 5 Ice Lake - SSDT Hilfe nötig“ zu „Lenovo IdeaPad 5 Ice Lake - SSDT Trackpad“ geändert.
  • Dank cobanramo bin ich dem Ziel schon ein erheblichen Schritt weiter. Mein nächstes Problem:


    Das Trackpad funktioniert nicht richtig. Ich habe VoodooI2C und VoodooI2CHID eingebunden, was dazu führt, dass

    • das Trackpad sehr laggy reagiert. Bei einer normalen Bewegung des Fingers über das Trackpad springt der Cursor, statt der Bewegung zu folgen
    • die CPU Frequenz geht auf Maximum
    • kein Ruhezustand möglich ist


    Zum Trackpad:

    • Modell: Microsoft Precission Trackpad - Scheint kein ELAN zu sein, mit dem Kext funktioniert es gar nicht
    • ACPI Pfad: SB.PCI0.I2C1. TPD0
    • IOInterruptSpecifiers hat den Hex-Wert 30

    Nach dem das einbinden des XOSI Patches und dem einfügen der Kexte in der richtigen Reihenfolge geholfen hat, habe ich mir den VoodooI2C Guide genauer angeschaut. So wie es aussieht, funktioniert das GPIO Pinning nicht richtig, da IOInterruptSpecifiers anscheinend mit 30 > 2F ist. Blöder weise ist der Guide für mich danach unverständlich, was ich da wie in der DSDT patchen muss. Wie mache ich da beim Guide weiter? Ist das Trackpad nun well-pinned, root-pinned, oder CRS pinned?



    Der XOSI Patch ist der Default des Dortania Guides, da mir der Code aus meiner DSDT gleich aussieht.

    Code: Systemlog
    1. MBP ~ % log show --predicate 'process == "kernel"' --last 30m | grep Voodoo
    2. 2020-11-29 12:59:28.669452+0100 0xb9 Default 0x0 0 0 kernel: (VoodooGPIO) VoodooGPIOIceLakeLP::Loading GPIO Data for IceLake-LP
    3. 2020-11-29 12:59:28.669590+0100 0xb9 Default 0x0 0 0 kernel: (VoodooGPIO) VoodooGPIOIceLakeLP::VoodooGPIO Init!
    4. 2020-11-29 12:59:28.677227+0100 0xb9 Default 0x0 0 0 kernel: (VoodooGPIO) VoodooGPIOIceLakeLP::VoodooGPIO Initializing Community 0
    5. 2020-11-29 12:59:42.697291+0100 0x101 Default 0x0 0 0 kernel: (VoodooI2C) VoodooI2CControllerDriver::pci8086,34e9 Timeout waiting for bus to accept transfer request
    6. 2020-11-29 13:00:14.928610+0100 0x7ff Default 0x0 0 0 kernel: (VoodooI2CHID) VoodooI2CPrecisionTouchpadHIDEventDriver::setProperties USBMouseStopsTrackpad = 0
    Code: HPET Patches aus SSDTTime für OC Config
    1. _CRS to XCRS Disabled 255F4352 53 to 25584352 53
    2. IPIC IRQ Disabled 22040079 00 to 22000079 00
    3. MATH IRQ Disabled 22002079 00 to 22000079 00
    4. RTC IRQ Disabled 22000179 00 to 22000079 00
    5. TIMR IRQ Disabled 22010079 00 to 22000079 00
    6. PS2K IRQ Disabled 22020038 7900 to 22000038 7900

    Die HPET Patches habe ich von SSDTTime generieren lassen. Doch ich merke keinen Unterschied, wenn sie zusammen mit der SSDT aktiv sind, oder nicht. Auch finde ich keine weiteren Informationen dazu, was sie bewirken sollen.


    Anbei der Auszug aus dem IORegexplorer, sowie die DSDT + Patche und meine aktuelle EFI.

  • pebbly

    Hat den Titel des Themas von „Lenovo IdeaPad 5 Ice Lake - SSDT Trackpad“ zu „Hilfe SSDT Trackpad patchen - Lenovo IdeaPad 5 Ice Lake“ geändert.
  • Hier nochmal die sachen die mir aufgefallen sind...


    1. Bei dir scheint die Lid nicht zu funktionieren.



    2. USB musst du patchen und XhciPortLimit deaktivieren, sonst gibt es kein sleep.


    3. Es gibt anscheinend doch unterschiede zwischen den beiden Laptop´s.

    Dein TouchPad ist an I2C1.


    Meins ist am I2C0



    4. Dein Gpio Pin passt anscheinend nicht.



    Bei mir hingegen sieht es so aus.


    5. für dich ist genau das teil der Anleitung interessant...


    If your hexadecimal pin number is greater than 0x2F then proceed to the next step.

    Step 2a: Ensuring your device is GPIO-pinned


    den bei dir ist die gpioPin Number 0x30


    Bei mir war das nicht nötig, ich gucke morgen mal das genauer an was damit gemeint ist und wie das handhabt wird.


    Gruss Coban

     MSI-Z590Pro Wifi | Intel® Core™ i9-10900k CometLake | 32GB DDR4 RAM | Radeon RX 570 Red Devil | Nvme WD Black SN750 1TB | BCM94360NG | OpenCore aktuell / Catalina / BigSur / Monterey / Ventura Beta / Win 10 Pro / Win 11 Pro / Ubuntu / ChromeOS

     MSI-B150M Mortar | Intel® Core™ i7-6700 Skylake | 64GB DDR4 RAM | Intel® HD Graphics 530 | Samsung NVMe 960 EVO / 1x2 TB HDD | BCM943602BAED DW1830 | OpenCore aktuell / Catalina / BigSur / Monterey / Win 10 Pro / Ubuntu

     Lenovo S340-15IIL | Intel® Core™ i7-1065G7 IceLake | 12GB DDR4 RAM | Intel® Iris Plus Graphics G7 | Nvme Intel SSDPEKNW512G8L/SSD Samsung 256GB | BCM94360NG | OpenCore aktuell / Catalina / BigSur / Monterey / Ventura Beta / Win 10 Pro / Win 11 Pro / Ubuntu / ChromeOS


    " Chasch nöd s Föifi und s Weggli ha."

  • Danke 5T33Z0!

    Mein Problem ist, dass ich unter Windows nichts finde, außer dass es ein HID TouchPad ist. Also kein Synpatics, oder ELAN. Der IOInterruptSpecifiers Wert ist für MacOS zu hoch, so dass ich einen Patch braucht, der die Werte "reduziert".Bei den von dir im zweiten Link sah der für das S740 interessant aus, nur ob der passt?


    I2C gibt mir folgendes aus, nur scheitere ich an der Umsetzung für OC.



    Ich glaube es war in deinem Thread zum T530 wurde erwähnt, dass das TouchPad sehr unzuverlässig mit Gesten, oder zuverlässig als Pointer funktioniert. Da frage ich mich, ob es bei mir nicht dann auch so wird?

  • pebbly

    Hat den Titel des Themas von „Hilfe SSDT Trackpad patchen - Lenovo IdeaPad 5 Ice Lake“ zu „[OC] [Ice Lake] - Lenovo IdeaPad 5 15IIL - Bericht“ geändert.
  • GELÖST: WEG Boot-Argumente und einige zusätzliche Einträge zur iGPU in Device Properties haben es gelöst

    BIOS Update führt zu Boot Fail

    So, es gibt ein neues Problem. Ich wurde mal wieder von Lenovo gezwungen ein Update des BIOS zu machen (man kann sich dagegen wehren, aber das hatte beim letzten mal starke Auswirkungen). Jetzt Bootet das HacBook bis fast zur Initialisierung von WEG und stürzt dann ab. Das letzte, was man mit SloMo sieht habe ich als Bild angehängt - an besserer Qualität bin ich dran.

    Ich habe dann unter Fedora die DSDT gedumpt und verglichen. Komischerweise wurde an den Funktionen nichts geändert, außer folgender Teil:

    Zitat

    Es handelt sich hier um BIOS v1.46 zu v1.48. Meine aktuelle Idee: Mittels SSDT Patch für Darwin System(e) die alten Argumente zu nehmen. Die neuen kommen nur in diesem Bereich vor, es könnte also funktionieren.


  • Hey pebbly ,

    hast du es irgendwie hinbekommen mit dem Trackpad?

    Dank cobanramo geht jetzt bei mir alles außer das Trackpad und Akku! :danke: (Und mit dem 4K Screen ist das so ne Sache... Da warte ich noch auf Patches ;) )

  • Ja habe ich, ich habe in den Boot-Argumenten -vi2c-force-polling eingefügt.


    Außerdem musst du schauen, dass die ganzen Voodoo Kexte richtig laden:

    Da meine Tastatur über PS2 angebunden ist, gilt das bei mir ebenfalls. Du musst schauen, wie es bei dir ist:

    Kexte: VoodooI2C + VoodooI2CHID + VoodooPS2Controller


    Die Lade-Reihenfolge ist:

    1. VoodooPS2Controller
    2. VoodooPS2Controller-VoodooInput <- kann auch von VoodooI2CInput erledigt werden
    3. VoodooPS2Controller-VoodooPS2Keyboard
    4. VoodooI2CServices
    5. VoodooGPIO
    6. VoodooI2C
    7. VoodooI2CHID <- Touchpad abhängig, siege Voodoo und Dortania Guide

    Wenn dein Trackpad damit (=Polling Modus) läuft, kannst du es versuchen mit dem Guide in den GPIO Pinning Modus zu bringen, welches weniger CPU Leistung benötigt. Ganz wichtig ist, ob der Wert in Schritt 1 unter 2F (hex), bzw 30 (dez) ist.

  • VoodooInput.kext ist mittlerweile als Plugin in VoodooPS2Controller integriert. Deswegen sollte man den glaube ich nicht nochmal extra drin haben

  • Ich weiß, ProperTree fragt auch nach und ich habe nur in der Reihenfolge aktiven aufgelistet.😉

    Wird aber angepasst um so Missverständnissen vorzubeugen.


    Cobanramo hat oben ( #4 ) ja auch relevantes dazu geschrieben

  • Hey pebbly, ich habe gerade deine Methode ausprobiert, leider funktioniert die bei mir nicht :(

    Hast du noch irgendeinen Rat? Ich habe den VoodoI2CInput deaktiviert und benutze das VoodoPS2 VoodoInput.kext Plugin.


    Edit: In den MacOS Einstellungen wird das trackpad angezeigt. Nur funktionieren tut es leider nicht!

  • Verwendest du die aktuelle Version des VoodooI2C Kexts? Mit d4m Bootargument verursacht der bei mir ein kernelpanic, das Bootargument muss als device-entry angegeben werden, siehe auch deren doku. Falls unabhängig davon, prüf welchen GPIO Pin das trackpad hat, vermutlich wird es zu hoch sein. Oder du hast gar keine XOSI / GPRW ssdt. Dazu siehe auch deren Guide / dortania. Du kannst aber mal einen dsdt dump da lassen, vielleicht bringt der was.


    solltest du auch ein Lenovo Ideapad (oder anderes) 15IIL05 / 14IIL haben, poste doch deine EFI h und trage so zu einem weiterkommen bei. Aktuell baue ich wieder an der EFI…

  • pebbly ich habe das Boot Argument nicht als devicd-entry eingetragen sondern einfach bei den boot-args (mit dem Argument meine ich -vi2c-force-polling).

    Ich wollte das Touchpad erstmal so zum laufen bekommen, bevor ich mich darum kümmere, die CPU Auslastung o.ä. zu verringern. Die Reihenfolge für das Laden der Kexts habe ich auch beachtet & nutze die stand gestern Abend aktuellste Version (Das gilt für alle kexts ;) )

    Ich besitze ein Razer Blade, aber dein Touchpad scheint ähnlich zu sein. Es ist ebenfalls ein Ice Lake! Ich werde die EFI gleich hier mit einem Edit anhängen,

    Gruß!

    Edit: Die EFI ist jetzt mit dabei im Anhang. Leider war sie aufgrund des itlwm.kext zu groß, weshalb ich diesen rausgenommen & seperat hochgeladen habe. Also, wenn die EFI von irgendwem getestet wird, erst noch den itlwm.kext in den Kexte Ordner packen :)


    Was noch wichtig sein könnte:

    Aufgrund des 4K Panels muss der Laptop nach dem Hochfahren einmal zugeklappt und wieder geöffnet werden, damit die Grafikfehler verschwinden

    Touchpad funktioniert (natürlich) nicht ^^

    Der mauscursor ist verglitcht, aber anscheinend soll das mit einem 2048mb NVRAM Patch behebbar sein. Jedoch funktioniert der bei mir (noch?!) nicht



    Ansonsten scheint alles zu funktionieren, also Akku, iServices, Sleep, Audio, Intel WLAN + Bluetooth



    !! NICHT WUNDERN !!

    Die EFI ist sehr alt (OpenCore 0.6.4) ich bin noch nicht dazugekommen, aufzurüsten da ich das Projekt in die Ecke gelegt habe und jetzt wieder aus dem Staub kramte mit der Hoffnung, dass mir jemand weiterhelfen kann ^^

    (Bzw der Versuch aufzurüsten auf 0.6.9 ist bisher gescheitert)

    Alle Kexts wurden aber aktualisiert, sollte also kein riesiges Problem sein.

    Dateien

    • EFI.zip

      (23,67 MB, 88 Mal heruntergeladen, zuletzt: )
    • itlwm.kext.zip

      (13,05 MB, 43 Mal heruntergeladen, zuletzt: )
    • Das Trackpad Modell hat nichts mit der CPU Version zu tun.
    • Lad bitte deine DSDT über Windows/Linux/Openshell hoch
    • Die aktuelle VoodooI2C Version hat bei mir einen KP verursacht, bis ich das Bootargument entfernt hatte und als Device Entry gesetzt hatte
    • OC Updaten hatte ich wie folgt gemacht, da ich auch Probleme hatte:
    1. Kexte aktualisieren
    2. OC EFI etc. ersetzen
    3. Aktuelle OC Sample Config mit den eigenen Einstellungen anpassen
    4. Config mit validate prüfen
    5. Fertig
    • Das Trackpad Modell hat nichts mit der CPU Version zu tun.

    pebbly Das ist klar, wollte es nur anmerken warum ich genau HIER schreibe und nicht sonst wo ^^ Mein Touchpad ist aber - abgesehen davon - auch ein Windows Precision (also HID) Touchpad.


    Ich habe VoodooI2C ganz sicher auf dem neusten Stand, da gibt es bisher keine Kernel Panics mit dem boot-arg. Sollte ich trotzdem mal versuchen, das Argument als devide-id einzutragen?


    Vielen Dank für die Upgrade-Anleitung für OpenCore, ich werde mich bei Gelegenheit mal dran setzen :)



    Nun zur DSDT: Diese befindet sich im Anhang. Vielleicht sind aber dazu noch folgende Infos wichtig:

    • MacOS sowie OpenCore sind momentan noch auf einer externen Festplatte, bis ich mich "bereit" fühle, intern zu installieren ^^
    • Der DSDT Dump wurde unter Windows mit SSDTTime erstellt
    • Im Dortania Guide habe ich folgendes gelesen:

    Do note that all ACPI patches from clover/OpenCore will be applied to the DSDT with the above 2 methods

    • Deshalb bin ich davon ausgegangen, dass Windows mit OpenCore gestartet werden muss, damit er überhaupt weiß, welche ACPI Patches in meiner EFI sind. Demnach habe ich also OpenCore von der externen Platte gestartet und im Picker Windows gewählt.
    • Beim Erstellen der DSDT gab es folgende Fehlermeldung:

    Dumping DSDT table

    Dump successful!

    Moving DSDT to better location.

    Failed to decompile DSDT.aml

    Loading file failed!

    Press [enter] to return to main menu


    Das fett markierte ist die gemeinte Fehlermeldung. Ob das was zu sagen hat, weiß ich nicht. Auf jeden Fall wurde eine DSDT.aml im "Results" Ordner erstellt.



    Edit: Hast du deine iGPU auf 2048mb gepatcht? Wenn ja, könntest du mir den Patch durchgeben? :)

    Gruß!

    Dateien

    • DSDT.aml

      (242,49 kB, 52 Mal heruntergeladen, zuletzt: )

    Einmal editiert, zuletzt von Peam ()

  • Du machst aber auch gerne tausend Baustellen auf und keine zu, wa? :kichern:


    iGPU habe ich massig Sachen drin und irgendwie läuft es, aber drum gekümmert habe ich mich bisher noch nicht weiter.

    Aktuell habe ich als DeviceEntry oder Bootarg 1,5GB drin. Ich habe aber auch das BIOS modifiziert auf DVMT Pre-Allocated 64MB und dvmd total gfx mem = max.

  • pebbly Ja es gibt eben noch einige Baustellen bei meinem Laptop, Mal sehen wieviel da noch "geschlossen" werden kann :D

    Einen Bios Mod will ich wahrscheinlich nicht durchführen, für den Notfall hätte ich keinen BIOS Programmer o.ä.

    Hast du aus der DSDT irgendwas hilfreiches ablesen können was das Touchpad angeht? :)