Liebe Helfer, Mitleser und Interessierte
Was soll ich sagen.. gestern nach einer 10stündigen Facetimesitzung konnten die Großmeistern der Hackintosh-Zauberei grt und ich, das Klappbiest zum Sprechen bringen. Dabei ahnten wir noch nicht, wie tief und schwerwiegend verankert alles war oder ist. Nachfolgend möchte ich / möchten wir also das Problem und die Lösung mit euch teilen:
Kurzform: MacOS konnte mit dem Modus des Audio Controllers nichts anfangen, daher kein Ton.
Langform:
Vorarbeit:
Mit meiner Vermutung „das Problem scheint wo ganz anders zu liegen“ sollte ich Recht behalten, nur wussten wir nicht, wonach wir suchen sollten. Also haben wir zunächst einiges ausprobiert.. Bios Downgrade, anderer Bootloader, andere Efis die es gab und unzähliges mehr.
Eine wichtige Erkenntnis hatte ich bereits im Beitrag #163 herausgefunden.
starte Linux -> Ton -> zurück im Bios wird Realtek angezeigt
starte MacOS -> kein Ton -> zurück im Bios wird Realtek NICHT angezeigt
Und
Egal welcher BL clover oder oc Mac am Ende kein Sound. Danach hilft es bloß noch Ubuntu 2x zu starten. Beim 1. mal sagt er dann zum Ton „dummy Ton irgendwas“ und dann beim 2 Boot erkennt er wieder Sound.
grt erinnerte das Alles an ein Problem, dass sie mal mit einem Touchpad beim Yoga hatte (#165) und man, sie sollte Recht behalten!
Einen ganz wichtigen Tipp vilt auch der entscheidende Tipp gab uns dann Muster mit folgenden Link
https://wiki.archlinux.org/ind…/Dell_XPS_13_(9343)#Audio
Und damit hatten wir dann unser Problem gefunden..
Das Problem:
.. an sich ist, dass der Audiocontroller mit 2 Modi arbeitet. Da wäre einmal der HDA-Modus mit dem kann MacOS was anfangen und dann gibt es den I2S Modus den Apple gar nicht mag und uns deshalb die letzten 2 Tage die Nerven geraubt hatte. Wenn in Linux normal Ton läuft und danach MacOS gebootet werden soll, ändert der Controller automatisch vom HDA in den I2S Modus, daher konnten unsere vorherigen Versuche nur scheitern, das Problem lag weit vor dem Login in MacOS.
Die Lösung:
.. gestaltete sich also so, dass wir Ubuntu zwingen mussten, den HDA Modus für MacOS beizubehalten. Dazu recherchierte grt auf Seiten, die für mich zugegeben, wie chinesisch aussahen.
Genauer lag Lösung in den Bugreports von Ubuntu:
Zitat (Quelle: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1413446
(...)
This system has a dual-mode audio with an HDA and an I2S interface. Which shows up depends on the reported _OSI from the last cold boot. Since the kernels in Ubuntu 14.10/15.04 (15.04 uses 3.18 currently) report an _OSI of "Windows 2013", I2S mode is used for audio.
A workaround is to pass acpi_os="!Windows 2013" as a kernel parameter (...)
Vorgehen:
Ubuntu/Terminal:
sudo nano /etc/default/grub
in der Konfigurationsdatei des Bootloaders die Zeile
GRUB_CMDLINE_LINUX=““
wie folgt ergänzen:
GRUB_CMDLINE_LINUX=“acpi_osi=‘!Windows 2013‘“
(navigieren in der Datei ist nur mit den Pfeiltasten möglich)
STRG/O (speichern unter… bestätigen) STRG/X (Datei schliessen)
sudo update-grub (die Zeile in die eigentliche Grub-konfiguration übertragen)
jetzt „reportet“ ubuntu „was auch immer“ aber definitiv nicht mehr Windows 2013, und der Audiocontroller arbeitet im HDA-modus.
Anm.: es könnte auch in die Zeile
GRUB_CMDLINE_LINUX_DEFAULT...
eingetragen werden. Der unterschied besteht darin, dass die Zeile mit DEFAULT immer ausgeführt wird, die andere nur beim „normalen“ boot ins linux, nicht aber beim boot z.b. in den Recoverymodus.
Danach haben wir mit dem Befehl:
„lspci“ im Terminal den Geräte ausgelesen und fanden in Ubuntu auch das Audio Gerät
Nach 2-maligem Ubtuntu-boot schauten wir ins IOReg und nun war doch tatsächlich erstmalig das HDEF Device zu sehen. Zwar noch nicht so richtig so, wie es sein sollte, aber immerhin waren wir der Lösung einen riesigen Schritt näher und wussten nun „das was wir da machen, scheint also doch richtig zu sein“.
Nach der Ubuntu-Maßnahme wird es also erkannt, bleibt aber erstmal noch stumm.
Angefixt von dieser Erkenntnis wurden unzählige Male erst 2x Linux gebootet (1. mit dummy Ton, 2. mit normalem Ton) danach MacOS. Dann schauten wir wieder ins IOReg und in die DSDT. Danach wurde gebastelt und dann wieder getestet.
Bei Geräten (nur läptopps oder auch desktops) vor Skylake sind für das erfolgreiche Aktivieren des Audiodevices die IRQ-fixes notwendig (danke MacPeet für die Info!).
Mit Clover kein Problem, da setzt man ganz einfach die Haken „fix IPIC, fix HPET, fix TIMR, fix RTC“ und fertig ist der Lack…
Eine sehr vielversprechende SSDT hatten wir (aus der EFI von Muster), aber die dazugehörigen Renames der CRS-methoden in der originalen DSDT wollten nicht greifen.
Dummerweise gibt es in DSDTs endlos viele _CRS, und OC bietet nicht, wie Clover die Möglichkeit, für einen rename ein „target“ anzugeben (zumindest funktioniert das nicht so wirklich..), aber man kann ja zählen….
Also haben wir ausgezählt wieviele male _CRS vor dem letzten (!) notwendigen rename vorkommt. Die Zahl in das Feld „skip“ des renames eingetragen, die anderen renames „von hinten nach vorn“ danach folgend eingetragen, und das ganze nach dem Boot in der System-DSDT kontrolliert. Mehrfaches Nacharbeiten war nötig, irgendwie zählt das Ganze sehr seltsam, aber nach einigen versuchen hatten wir dann die renames dort, wo wir sie haben wollten.
Mit der Zeit war dann auch im IOReg immer mehr zu sehen und auch im Hackintool fanden wir nun das AudioGerät, das sonst nur unter Linux zu sehen war.
Zuerst wurde nur der HDAControlller geladen, kurze Zeit darauf dann auch ENDLICH AppleHDA und nun hatten wir auch einen ALC 288 im Hackintool stehen!!!
Dann wir suchten uns schnell die passende Layout ID (13) heraus, booteten 2x Linux und danach MacOS.. UND DANN WAR ES SOWEIT!!!
DER KERL WOLLTE DOCH TATSÄCHLICH MIT UNS SPRECHEN!!
Ich glaube ich hab noch nie so eine schöne Lautstärkeregelung gesehen
An dieser Stelle möchte ich mich nochmal aufrichtig bei allen Helfen vor allem aber bei .. für den spitzen Link bei Muster und ganz besonders bei grt bedanken, ohne die, das Alles mir nicht möglich gewesen wäre! So ein Support ist in keinster Weise selbstverständlich, zeigt aber, was wir für eine MEGA Community sind und was zusammen erreicht werden kann, wenn alle Hand in Hand arbeiten!
Was noch zu tun ist:
Letztendlich gibt es nur noch eins was wir lösen müssen und das ist dem Gerät zu sagen, auch wenn Linux vorher nicht gebootet wurden ist, starte den Controller im HDA Modus, sodass auch bei jedem MacOS boot Sound da ist und ich nicht erst immer 2x Linux booten muss