Lenovo Thinkpad Yoga S1 - Audio als Baustelle mit OC

  • Bei meinem :gänsefuss:neuesten:gänsefuss: Spielzeug handelt es sich um ein Lenovo Thinkpad Yoga S1 welches neben Windows10 (habe ich wegen den Tablet Fähigkeiten des Yoga installiert) auch ganz artig mit macOS Mojave läuft. Das Yoga bootet aktuell (noch bin ich in der Einrichtungsphase) wahlweise mit OpenCore oder mit Clover und bis auf ein paar Baustellen die es hüben wie drüben noch gibt ist das Ergebnis bislang zufriedenstellend. Aktuell funktionieren folgende Dinge mit beiden Loadern


    -> IntelHD 4400 wird korrekt erkannt es gibt keinerlei Artefakte oder Glitches und sowohl das interne Display als auch extern über den Dock angebundene funktionieren klaglos (DeviceProperties und WEG sorgen für die passende Basis).

    -> Touchpad/Clickpad und Ultranav Nupsi -> geht beides und auch das Trackpad Prefpane läuft ohne das irgendwelche Bastelarbeiten nötig wären (VoodooPS2Controller)

    -> Akkuanzeige -> läuft nachdem die wohlbekannten Patches in der DSDT vorgenommen wurden, ohne Patches wird der Akku nicht erkannt (SMCBatteryManager)

    -> USB -> Alle USB Ports laufen wie vorgesehen

    -> Sleep/Wake -> Läuft wie vorgesehen

    -> Sound über Displayport (Dock) bzw. Klinke (ebenfalls Dock -> USB Sound) läuft


    Nur mit Clover funktioniert der onBoard Sound (Conexant CX20751/CX20752) über die bekannten Wege ebenfalls (AppleALC und injectID -> 28 bzw. AppleALC und bootarg alcid=28). Was nicht geht ist die LayoutID mittels Device Properties zu injecten hier bleibt dann der Ton stumm und es wird keine Audio Hardware erkannt. In Clover werden keine ACPI Fix Haken verwendet (keine Haken gesetzt) und es werden auch keine DeviceRenames getätigt die DSDT ist mit ausnahme der Battery Patches ebenfalls jungfräulich. Da schon in Clover der inject der ID über die Device Properties nicht funktionieren mag liegt es auf der Hand das auch OC damit nicht wirklich was anfangen mag sprich mit OC funktioniert der Ton aktuell überhaupt nicht und zwar weder über Device Properties noch über das Bootarg. Um die DeviceProperties zu ermitteln habe ich mich der Hilfe von Hackintool bedient die vom Tool ermittelte PCIAdresse deckt sich aber auch mit der aus der Sample.plist die OC beiliegt. In meiner config sieht das dann demnach auch so aus:


    Code
    1. <key>PciRoot(0x0)/Pci(0x1b,0x0)</key>
    2. <dict>
    3. <key>layout-id</key>
    4. <data>DAEAAA==</data>
    5. </dict>


    Der Data Wert entspricht dem Hex Wert 0C010000 was nach meinem dafürhalten das Equivalent für die nötige LayoutID 28 sein sollte da DEC 28 = 1C Hex und das gedreht ergibt 0C010000 (da ich aber immer wieder über die gedrehte Schreibweise stolpere habe ich natürlich auch 010C0000 probiert) aber egal wie ich es auch drehe und wende über die Device Properties will der Sound mit AppleALC weder mit Clover noch mit OC funktionieren. Im Falle von Clover ist das zwar unschön aber verschmerzbar denn der Plan ist ja eh OC einzusetzen und Clover funktioniert ja zumindet mit dem ihm eigenen Inject für die LayoutID bzw. eben auch über das BootArg nur mit OC geht eben auch der Weg über das Bootarg nicht. Ich bin mir ziemlich sicher das ich hier einfach nur ein offensichtliches Detail übersehen oder eben einfach einen wirklich doofen Denkfehler mache aber wie das so oft ist Wald -> Bäume und so ich komme nicht drauf. Vielleicht hat ja von Euch jemand eine Idee was das im argen liegt und wo es im argen liegt.


    Ach ja OC kommt in der Version 0.5.0 zum Einsatz und die Extensions (Lilu, AppleALC, WhateverGreen und VirtualSMC) in ihrer jeweils aktuellsten Version. Leider kann ich den EFI Ordner jetzt nicht anhängen da ich das Yoga aktuell nicht zur Hand habe kann aber nachgeliefert werden falls notwendig allerdings dann erst heute Abend wenn ich wieder zu Hause bin. Würde mich freuen wenn mich von Euch jemand in die richtige Richtung schieben würde.


    Edit: Anbei wie angedroht noch der EFI Ordner zum drauf blicken.

    Dateien

    • efi.zip

      (7,11 MB, 377 Mal heruntergeladen, zuletzt: )
  • Erscheint die Layout ID im IOReg, wenn du das Bootarg benutzt? Ist eine (alc-)layout-id in der DSDT eingetragen? Sorry, ich bin aktuell nur am Handy unterwegs...

    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.

  • Hallo kuckkuck


    die DSDT ist bis auf den Battery Patch clean sprich ansonsten sind keine Änderungen vorgenommen worden demnach nope keine LayoutID in der DSDT vorhanden und auch keine SSDT die sich darum kümmern würde (hier ist nur eine durch das SSDTPRGen Script erstellte vorhanden mehr nicht). Unter OpenCore ist im IOREG ein Eintrag für die ALCID vorhanden (als-layout-id = 1C000000) und ein Eintrag für Layout-id (07000000) wobei mir unklar ist woher der Layout-id Eintrag kommt denn dahingehend habe ich an keiner Stelle etwas gesetzt 8|

  • Wenn alcid=28 zu 1C000000 führt, ist das auf jeden Fall schonmal der Wert, mit dem man arbeiten muss. Die layout-id stimmt so und entspricht nicht der layout-id deines Audio Geräts, sondern der layout-id, die der Apple Treiber gerne haben will. Sie wird also immer so gesetzt.

    Sind die Audio Geräte im IOReg korrekt benannt? Wenn ja, sollte das eigentlich alles passen, dann würde ich mal überprüfen, dass AppleALC und Lilu korrekt lädt, eventuell mal die Debug Variante benutzen und das Log auslesen, oder eine andere layout-id benutzen.

    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.

  • Der Data Wert entspricht dem Hex Wert 0C010000 was nach meinem dafürhalten das Equivalent für die nötige LayoutID 28 sein sollte da DEC 28 = 1C Hex und das gedreht ergibt 0C010000 (da ich aber immer wieder über die gedrehte Schreibweise stolpere habe ich natürlich auch 010C0000 probiert) aber egal wie ich es auch drehe und wende über die Device Properties will der Sound mit AppleALC weder mit Clover noch mit OC funktionieren. Im Falle von Clover ist das zwar unschön aber verschmerzbar denn der Plan ist ja eh OC einzusetzen und Clover funktioniert ja zumindet mit dem ihm eigenen Inject für die LayoutID bzw. eben auch über das BootArg nur mit OC geht eben auch der Weg über das Bootarg nicht. Ich bin mir ziemlich sicher das ich hier einfach nur ein offensichtliches Detail übersehen oder eben einfach einen wirklich doofen Denkfehler mache aber wie das so oft ist Wald -> Bäume und so ich komme nicht drauf. Vielleicht hat ja von Euch jemand eine Idee was das im argen liegt und wo es im argen liegt.

    Wie Ihr in den letzten beiden Post's schon selbst geschrieben habt, hier bist Du auf dem Holzweg. 28 ist 1C000000.

    Ich habe OpenCore selbst noch nicht versucht, bzw. damit gearbeitet, aber vermutlich selbst wenn OC den Flag aclid=28 kann, dann fehlt es aber noch an der Funktion FixHDA, um den HDEF-Bereich in die DSDT zu setzen zur Laufzeit.
    Clover kann dies ja, bei OC bin ich nicht informiert.

    Mach es in der DSDT!

    Device (HDEF)
    {
    Name (_ADR, 0x001B0000) // _ADR: Address
    Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
    {
    Store (Package (0x0A)
    {
    "built-in",
    Buffer (One)
    {
    0x00
    },

    "layout-id",
    Buffer (0x04)
    {
    0x07, 0x00, 0x00, 0x00
    },

    "alc-layout-id",
    Buffer (0x04)
    {
    0x1C, 0x00, 0x00, 0x00
    },

    "PinConfigurations",
    Buffer (Zero){},
    "hda-gfx",
    Buffer (0x0A)
    {
    "onboard-1"
    }
    }, Local0)
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
    Return (Local0)
    }
    }

    Seit Mojave werden auf Grund der weggefallenen ID´s alle ID´s auf 7 umgepatcht. Mit "alc-layout-id" gibst Du an welche ID es ist die umgepatcht werden soll.

    Ist dat selbe wie alcid=.. als Flag.
    In dem Fall brauchst Du kein FixHDA mehr und auch keine Device Properties. Das sollte auch mit OC gehen.
    In der DSDT sollte FixIRQ auch gemacht sein. wenn nicht kann es hier oft zu Problemen führen mit Audio und AppleALC.

    Medion P9614: C2D 2,8GHz 8GB DDR3 GT330M 512GB FullHD intern BCM WLAN/BT SSD 512GB + 512GB + 1TB macOS Catalina / Win10pro 8)

    Real: MacMini M1: 8GB 32" LG 4k SSD 250GB + 1TB nvme USB-C + 1TB thunderbolt nvme macOS 14.4.1

    MacBook Air M2 15": 8GB SSD 512GB macOS 14.4.1

    MacMini2014: i5 2,8GHz 16GB DDR3 Intel Iris 5100 23" Apple-Cinema 1TB NVMe / 1TB HDD macOS 13.6.6

    iPhoneSE 3.Gen 128GB: iOS 17.4.1 iPad Pro 9,7" WiFi 32GB: iPadOS 16.7.7 MacPro3,1 macOS 13.6.4 / 14.4

  • Ich kann von meinem Thinkpad Yoga 14 berichten, dass es auch erst nach dem FixIRQ in der DSDT mit dem Sound funktionierte. Würde ich glaube ich in deinem Fall definitiv mal testen.

    ASrock Fatal1ty Z370 Professional Gaming i7
    Intel i7-8086k
    Asus Radeon RX 580
    32GB Ballistix Sport LT DDR4-2666

  • Danke, xrabit für Dein Bericht, so wie Du es bestätigst, die Sache ist bereits in einigen Fällen bekannt. Danke für Deinen Hinweis. Den FixIRQ sollte griven auf jedem Fall machen, denke ich.

    Medion P9614: C2D 2,8GHz 8GB DDR3 GT330M 512GB FullHD intern BCM WLAN/BT SSD 512GB + 512GB + 1TB macOS Catalina / Win10pro 8)

    Real: MacMini M1: 8GB 32" LG 4k SSD 250GB + 1TB nvme USB-C + 1TB thunderbolt nvme macOS 14.4.1

    MacBook Air M2 15": 8GB SSD 512GB macOS 14.4.1

    MacMini2014: i5 2,8GHz 16GB DDR3 Intel Iris 5100 23" Apple-Cinema 1TB NVMe / 1TB HDD macOS 13.6.6

    iPhoneSE 3.Gen 128GB: iOS 17.4.1 iPad Pro 9,7" WiFi 32GB: iPadOS 16.7.7 MacPro3,1 macOS 13.6.4 / 14.4

  • Danke MacPeet und xrabit so getan und Sound ist da :)

  • Hello, I have a Yoga S1. I want to install a Hackintosh. I've tried a lot, but sometimes something doesn't work. Cursor freezes after going to bed (last efi you shared with oc). Can you share your last clean EFI? Are you using Hackintosh with S1? Should I use Mojave or Catalina for this of course?

  • The sleep Issues with VoodooPS2 are well known and obviously by now there ist no solution for that (-> https://github.com/acidanthera/bugtracker/issues/816) you may try other branches of VoodooPS2 which may work across sleep but won't offer any multitouch Gestures. The Trackpad also does work (kind of) after sleep just try to use three Fingers instead of one and you'll see that it is not completely dead it simply does not recognise the Gestures correctly (maybe a VoodooInput issue I don't know)...

  • The sleep Issues with VoodooPS2 are well known and obviously by now there ist no solution for that (-> https://github.com/acidanthera/bugtracker/issues/816) you may try other branches of VoodooPS2 which may work across sleep but won't offer any multitouch Gestures. The Trackpad also does work (kind of) after sleep just try to use three Fingers instead of one and you'll see that it is not completely dead it simply does not recognise the Gestures correctly (maybe a VoodooInput issue I don't know)...

    Hm got it. Now I'm trying opencore with mojave. On the setup screen, the touchpad was not working but the touch screen was working. so I continued with the installation. After the installation is finished, I will try to solve the kexts by trying. I will continue to write here because it was so helpful. Which efi do you use in your yoga right now? Do you have the possibility to send? Sorry for my Engkish

  • Yeah sure this is the one I actually use: EFI.zip

    It works with Catalina and BigSur (based on OC 0.6.0)

  • As a tech preview (2nd OS) sure why not but not as your daily driver. BigSur is in an early beta stage and not meant for daily use so better stay at something stable like Mojave or Catalina. At least for now.

  • As a tech preview (2nd OS) sure why not but not as your daily driver. BigSur is in an early beta stage and not meant for daily use so better stay at something stable like Mojave or Catalina. At least for now.

    Hi. Are you still using this laptop? Installed Ventura with OCLP but crashes on boot. When i boot 5-10 times it is booting succesfully. If you are using which macOS do you use? Monterey?

  • Jepp got it up an running with Ventura (OCLP of course) without any Problems at all (touchscreen is disabled since it isn't really helpful on macOS and the needed drivers break sleep)...

  • Don't know. I use 0.6.2 with 13.4 Beta 1 but since the Yoga is running the 13.4 Beta 2 update right now I'll give OLCP 0.6.3 a shoot and see what happens :)