AppleALC - Der dynamische AppleHDA Patcher

  • Hallo zusammen,

    Anbei präsentiere ich euch, mit freundlicher Erlaubnis von vit9696, den dynamischen AppleHDA-Patcher "AppleALC".

    Erhältlich im Download-Bereich: AppleALC - der dynamische AppleHDA Patcher - immer aktuell

    Features:
    - Audio Unterstützung schon während der OS Installation oder während der Nutzung der Recovery HD *
    - Automatische Codec Erkennung **
    - ermöglicht die Nutzung aktuell nicht direkt unterstützter Audio Controller (Conexant, IDT, VIA)
    - um beliebige Kext-Patche und/oder Platforms & Layouts erweiterbar
    - Arbeitet mit der SIP / El Capitan ***


    * = setzt eine gepatchte DSDT oder den passenden Inject per Clover voraus.

    ** = siehe * und die Liste der aktuell unterstützten Codecs

    *** = Bei Ablage auf der EFI, gilt für User, die den Kext nach /S/L/E installieren müssen

    Kurzerläuterung:

    AppleALC ist eine Kernel Erweiterung (kext) die es ermöglicht, die Original AppleHDA mit den entsprechenden Daten eines AudioCodecs zu "bestücken", um ohne große Änderung im Dateisystem die Audio Funktion zu aktivieren.
    Die wichtigen Angaben, wie Layout-IDs, Platforms und bei Bedarf auch spezielle Patches werden dynamisch injected.
    Daraus erfolgt der Vorteil, dass dieser Kext auch nach Updates der bestehenden OSX-Version weiter funktioniert, ohne das ihr eingreifen müsst.

    Der Kext kann sowohl unter "/Library/Extensions", "/System/Library/Extensions", als auch (empfohlen) unter "/EFI/CLOVER/kexts/..." eingesetzt werden.
    Für Ozmosis-Versionen empfehle ich die Nutzung unter "/EFI/Oz/Darwin/Extensions/Common".

    AppleALC.kext funktioniert nur zusammen mit Lilu.kext!


    Voraussetzungen:
    - Zuerst mal müssen alle anderen Varianten gepatchter Apple- oder VoodooHDAs, sowie deren En-/Disabler oder On-the-Fly-Patches (Clover) entfernt werden.
    - Seit der AppleALC-Version 1.1.0 wird zum erfolgreichen Einsatz zusätzlich auch immer die aktuellste Version des Lilu - Generic kext patcher (neue Grundlage für diverse Kexte) benötigt. Beide Kexte sollten im gleichen Verzeichnis liegen um genutzt werden zu können

    Achtet bei beiden Kexten immer darauf, dass ihr die aktuellste Version im Einsatz habt. Hierbei kann euch der Kext Updater helfen.


    Layout-ID injecten

    - Zur Benutzung von AppleALC muss eine gerätespezifische layout-id injected werden. Dafür gibt es verschiedenen Möglichkeiten:


    Die Layout-ID ist eine Nummer. Welche Nummer dein spezieller AudioCodec braucht, findest du hier: https://github.com/acidanthera…ALC/wiki/Supported-codecs


    1. Die einfachste Möglichkeit besteht darin die passende Layout-ID per bootargument zu injecten:

    Dafür kennt AppleALC das bootarg alcid=layout. Will man also zB für seinen ALC1150 die Layout-ID 1 injecten, setzt man einfach das bootarg alcid=1 in der passenden Plist und macht einen Neustart.


    2. Alternativ kann die layout-id auch über das ACPI/DSDT injected werden:

    - Solltet ihr noch keinen "Device (HDEF)"-Patch in eurer DSDT haben, benötigt ihr in Clover folgende Einträge.

    Beispiel für meine IDT des HP Elitebook 8470p:

    Als Ersatz für den HDEF-Patch und nur als Ergänzung für alle möglichen, bereits gesetzten Fixes.


    Die Layout-ID setzt ihr dann in der config.plist unter Devices:


    Das sieht dann als Code in der config.plist so aus:

    Code
    1. <key>DSDT</key>
    2. <dict>
    3. <key>Fixes</key>
    4. <dict>
    5. <key>FixHDA</key>
    6. <true/>
    7. </dict>
    8. </dict>
    9. </dict>

    und

    Code
    1. <key>Devices</key>
    2. <dict>
    3. <key>Audio</key>
    4. <dict>
    5. <key>Inject</key>
    6. <integer>1</integer>
    7. </dict>
    8. </dict>

    Achtung: Das sind nur Werte für einen bestimmten Audio-Codec... je nach eingesetzter Hardware und darin verbauten Audio-Codec, kann die Ziffer für den Bereich Layout variieren.

    Eine aktuelle Übersicht der möglichen "Inject"-Werte, bzw. "Layout-IDs" erhaltet ihr unter folgendem Link -> https://github.com/acidanthera…ALC/wiki/Supported-codecs


    - Für die Nutzung unter Ozmosis ist in diesem 2. Fall der DSDT-Patch "Device (HDEF)" Pflicht, da es aktuell noch keine andere Möglichkeit eines Injects per Default.plist gibt. Ihr müsstet also eure DSDT patchen, oder eine passende SSDT mit der Layout-ID injecten (Methode 1 empfohlen).

    Des Weiteren muss unter Ozmosis für AppleALC aus der defaults.plist der Eintrag FirmwareVendor komplett entfernt werden!



    Ich wünsche euch viel Spass und Erfolg beim Testen... ;)


    Quote

    CREDITS:
    fG!, Nguyen Anh Quynh, toleda, Mirone, Pike R. Alpha, 07151129, uvm. für die Tools, Module, Audio Patches und Layouts.
    vit9696 für das Erstellen und Aktualisieren der Software.
    vandroiy2013 für die Aktualisierung der Codec Datenbank.

Share