Jump to content

AppleALC — dynamic AppleHDA patching


vit9696
5,371 posts in this topic

Recommended Posts

Well, there is no need in recompilation.

Just take "as.vit9696.PinConfigs" entry out of Info.plist OSBundleLibraries in AppleALC.kext and remove the Plugins folder.

 

If you put a plugin-less AppleALC.kext and PinConfigs.kext to /EFI/OZ/Darwin/Extensions/Common separately, will they work? (Currently not interested in BIOS flashing).

Now work perfect on Ozmosis!!!!  :)

Link to comment
Share on other sites

Just tried this on my Asus Z97-A Mobo (uses ALC-892), and it worked perfectly (for line out, not tried optical yet, will do soon).

 

Thank you!

 

A quick followup and question. I've just moved my 5.1 speakers to my computer and have it wired both for 5.1 analogue and also optical cable as well. Both work great in Windows but on OSX both sound devices only offer two channels. Is the only way to change the layout-id by generating a new DSDT? Can I use the clover config to auto patch the dsdt? If so is that using HDAInjection?

Link to comment
Share on other sites


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ACPI</key>
<dict>
<key>DSDT</key>
<dict>
<key>Fixes</key>
<dict>
<key>FixHDA_8000</key>
<true/>
</dict>
</dict>
</dict>
<key>Devices</key>
<dict>
<key>Audio</key>
<dict>
<key>Inject</key>
<string>3</string><!-- layout-id -->
</dict>
</dict>
</dict>
</plist>

 

Link to comment
Share on other sites

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>ACPI</key>
  <dict>
    <key>DSDT</key>
    <dict>
      <key>Fixes</key>
      <dict>
        <key>FixHDA_8000</key>
        <true/>
      </dict>
    </dict>
  </dict>
  <key>Devices</key>
  <dict>
    <key>Audio</key>
    <dict>
      <key>Inject</key>
      <string>3</string><!-- layout-id -->
    </dict>
  </dict>
</dict>
</plist>

 

Cheers for the text. Unfortunately it appears to cause a kernel panic on boot. (I have a screengrab but its on my phone)

 

"Unable to find driver for this platform: \"ACPI\".\n"@/Library/Caches/com.apple.xbs/Sources/xnu/xnu-3248.40.184/iokit/Kernel/IOPlatformExpert.cpp: 1665"

 

-- EDIT I removed the FixHDA_8000 option and I am able to boot again. --end

 

I was wondering if you had any thoughts, this is my config.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Debug</key>
			<false/>
			<key>DropOEM_DSM</key>
			<dict>
				<key>ATI</key>
				<false/>
				<key>Firewire</key>
				<false/>
				<key>HDA</key>
				<false/>
				<key>HDMI</key>
				<false/>
				<key>IDE</key>
				<false/>
				<key>IntelGFX</key>
				<false/>
				<key>LAN</key>
				<false/>
				<key>LPC</key>
				<false/>
				<key>NVidia</key>
				<true/>
				<key>SATA</key>
				<false/>
				<key>SmBUS</key>
				<false/>
				<key>USB</key>
				<false/>
				<key>WIFI</key>
				<false/>
			</dict>
			<key>Fixes</key>
			<dict>
				<key>AddDTGP_0001</key>
				<true/>
				<key>AddMCHC_0008</key>
				<true/>
				<key>FixDarwin_0002</key>
				<true/>
				<key>FixHPET_0010</key>
				<true/>
				<key>FixHDA_8000</key>
        <true/>
			</dict>
			<key>Name</key>
			<string>DSDT.aml</string>
			<key>ReuseFFFF</key>
			<false/>
		</dict>
		<key>ResetAddress</key>
		<string>0x0000</string>
		<key>ResetValue</key>
		<string>0x0000</string>
		<key>SSDT</key>
		<dict>
			<key>DropOem</key>
			<false/>
			<key>Generate</key>
			<true/>
		</dict>
	</dict>
	<key>Boot</key>
	<dict>
		<key>Arguments</key>
		<string>slide=0 nvda_drv=1 kext-dev-mode=1 rootless=0</string>
		<key>CustomLogo</key>
		<string>Theme</string>
		<key>Debug</key>
		<false/>
		<key>DefaultLoader</key>
		<string></string>
		<key>Legacy</key>
		<string>LegacyBiosDefault</string>
		<key>Secure</key>
		<false/>
		<key>Timeout</key>
		<integer>10</integer>
		<key>XMPDetection</key>
		<false/>
	</dict>
	<key>CPU</key>
	<dict>
		<key>BusSpeedkHz</key>
		<integer>99942</integer>
		<key>FrequencyMHz</key>
		<integer>3997</integer>
		<key>QPI</key>
		<integer>0</integer>
		<key>Type</key>
		<string>0x705</string>
	</dict>
	<key>Devices</key>
	<dict>
		<key>FakeID</key>
		<dict>
			<key>ATI</key>
			<string>0x0000</string>
			<key>IMEI</key>
			<string>0x0000</string>
			<key>IntelGFX</key>
			<string>0x0000</string>
			<key>LAN</key>
			<string>0x0000</string>
			<key>NVidia</key>
			<string>0x0000</string>
			<key>SATA</key>
			<string>0x0000</string>
			<key>WIFI</key>
			<string>0x0000</string>
			<key>XHCI</key>
			<string>0x0000</string>
		</dict>
		<key>USB</key>
		<dict>
			<key>FixOwnership</key>
			<false/>
			<key>Inject</key>
			<false/>
		</dict>
		<key>Audio</key>
   	<dict>
			<key>Inject</key>
      <string>3</string>
    </dict>
	</dict>
	<key>GUI</key>
	<dict>
		<key>Custom</key>
		<dict>
			<key>Entries</key>
			<array>
				<dict>
					<key>CustomLogo</key>
					<false/>
					<key>Disabled</key>
					<false/>
					<key>FullTitle</key>
					<string>Mac PC</string>
					<key>Hidden</key>
					<false/>
					<key>Ignore</key>
					<false/>
					<key>InjectKexts</key>
					<string>Detect</string>
					<key>NoCaches</key>
					<false/>
					<key>Path</key>
					<string>\System\Library\CoreServices\boot.efi</string>
					<key>Type</key>
					<string>OSX</string>
					<key>Volume</key>
					<string>0AF50662-CB95-424E-9DD9-302716CEF2E1</string>
					<key>VolumeType</key>
					<string>Internal</string>
				</dict>
				<dict>
					<key>Disabled</key>
					<false/>
					<key>Hidden</key>
					<false/>
					<key>Hotkey</key>
					<string>w</string>
					<key>Ignore</key>
					<false/>
					<key>Path</key>
					<string>\EFI\Microsoft\Boot\bootmgfw.efi</string>
					<key>Title</key>
					<string>Windows 10</string>
					<key>Type</key>
					<string>Windows</string>
					<key>Volume</key>
					<string>F9EB73FC-2C6E-4E61-A215-55BF596D50F9</string>
					<key>VolumeType</key>
					<string>Internal</string>
				</dict>
				<dict>
					<key>CustomLogo</key>
					<string>Alternate</string>
					<key>Disabled</key>
					<false/>
					<key>FullTitle</key>
					<string>OSX Clone</string>
					<key>Hidden</key>
					<false/>
					<key>Hotkey</key>
					<string>c</string>
					<key>Ignore</key>
					<false/>
					<key>InjectKexts</key>
					<string>Detect</string>
					<key>NoCaches</key>
					<false/>
					<key>Path</key>
					<string>\System\Library\CoreServices\boot.efi</string>
					<key>Type</key>
					<string>OSX</string>
					<key>Volume</key>
					<string>FB7B95EE-977C-4191-99BC-3A39096A3142</string>
					<key>VolumeType</key>
					<string>Internal</string>
				</dict>
			</array>
		</dict>
		<key>Hide</key>
		<array>
			<string>VolumeName_NOT_SHOWN</string>
			<string>EntryPath_NOT_SHOWN</string>
			<string>VolumeUUID_NOT_SHOWN</string>
		</array>
		<key>Language</key>
		<string>en:0</string>
		<key>Mouse</key>
		<dict>
			<key>DoubleClick</key>
			<integer>500</integer>
			<key>Enabled</key>
			<true/>
			<key>Mirror</key>
			<false/>
			<key>Speed</key>
			<integer>8</integer>
		</dict>
		<key>Scan</key>
		<dict>
			<key>Entries</key>
			<false/>
			<key>Legacy</key>
			<false/>
			<key>Tool</key>
			<true/>
		</dict>
		<key>ScreenResolution</key>
		<string>1920x1080</string>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>DualLink</key>
		<integer>1</integer>
		<key>FBName</key>
		<string></string>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<false/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>NVCAP</key>
		<string>0000000000000000000000000000000000000000</string>
		<key>NvidiaSingle</key>
		<false/>
		<key>VRAM</key>
		<integer>0</integer>
		<key>VideoPorts</key>
		<integer>0</integer>
		<key>display-cfg</key>
		<string>0000000000000000</string>
		<key>ig-platform-id</key>
		<string>0x0a260006</string>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>AppleRTC</key>
		<true/>
		<key>AsusAICPUPM</key>
		<false/>
		<key>Debug</key>
		<false/>
		<key>KernelCpu</key>
		<false/>
		<key>KernelHaswellE</key>
		<false/>
		<key>KernelLapic</key>
		<false/>
		<key>KernelPm</key>
		<false/>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>CsrActiveConfig</key>
		<string>0x3</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>BiosReleaseDate</key>
		<string>02/29/08</string>
		<key>BiosVendor</key>
		<string>Apple Inc.</string>
		<key>BiosVersion</key>
		<string>MP31.88Z.006C.B05.0802291410</string>
		<key>Board-ID</key>
		<string>Mac-F42C88C8</string>
		<key>BoardManufacturer</key>
		<string>Apple Inc.</string>
		<key>BoardType</key>
		<integer>11</integer>
		<key>ChassisAssetTag</key>
		<string>Pro-Enclosure</string>
		<key>ChassisManufacturer</key>
		<string>Apple Inc.</string>
		<key>ChassisType</key>
		<string>06</string>
		<key>Family</key>
		<string>Mac Pro</string>
		<key>Manufacturer</key>
		<string>Apple Inc.</string>
		<key>ProductName</key>
		<string>MacPro3,1</string>
		<key>SerialNumber</key>
		<string>CK925MD6XYL</string>
		<key>Trust</key>
		<false/>
		<key>Version</key>
		<string>1.0</string>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>BacklightLevel</key>
		<string>0xffff</string>
		<key>CustomUUID</key>
		<string></string>
		<key>InjectKexts</key>
		<string>YES</string>
		<key>InjectSystemID</key>
		<true/>
	</dict>
</dict>
</plist>

Link to comment
Share on other sites

.FixHDA_8000
Renames AZAL to HDEF or HDAU. Adds the HMDI device if absent. Else AppleHDA will not work. Adds the properties "layout-id", "MaximumBootBeepVolume" and "PinConfigurations".

Link to comment
Share on other sites

Turns out I was starting from a false position. I thought I had reverted the system to how it was before using HDAEnabler; turns out i hadn't and I was wrong thinking that AppleALC was working for me. 

 

I've now reverted it properly (clean AppleHDA from my MBP, removed an HDAEnabler.kext I had missed) and tried rebooting with AppleALC but it doesn't appear to work for me. I will dig in, and enable debug information.

 

 

[16:40][rob@Mac-Pro:/System/Library/Extensions]$ sudo kextstat | grep Apple

Password:

   13    2 0xffffff7f82b3a000 0x60000    0x60000    com.apple.driver.AppleACPIPlatform (4.0) A29C7512-D3A8-3AED-9721-3A5FF1A32EB2 <12 11 7 6 5 4 3 1>

   14    1 0xffffff7f80b92000 0xb000     0xb000     com.apple.driver.AppleFDEKeyStore (28.30) C31A19C9-8174-3E35-B2CD-3B1B237C0220 <8 7 6 5 4 3 1>

   19    1 0xffffff7f82611000 0x1e000    0x1e000    com.apple.driver.AppleCredentialManager (1.0) 22552717-92AB-3B19-98B5-5C067A104219 <8 7 6 5 4 3 1>

   20    2 0xffffff7f81077000 0x12000    0x12000    com.apple.driver.AppleMobileFileIntegrity (1.0.5) 044A92B8-2341-3C80-AF26-B843A97CCC0C <8 7 6 5 4 3 2 1>

   21    0 0xffffff7f8262f000 0x2b000    0x2b000    com.apple.driver.AppleKeyStore (2) 7E663CEE-32A4-33AF-B660-333A72CAA109 <20 19 8 7 6 5 4 3 1>

   22    0 0xffffff7f82a52000 0xa6000    0xa6000    as.vit9696.AppleALC (1.0.4) 6887F537-DDA4-3E70-B667-5DCB8416E1B2 <7 5 4 3 2 1>

<snip>

  119    0 0xffffff7f828c9000 0xb3000    0xb3000    com.apple.driver.AppleHDA (274.7) FE47EADA-C810-3253-BE41-0776D253D256 <118 93 88 87 74 66 12 11 6 5 4 3 1>

 

 

-- Edit

 

Booting with AppleALC and just the  Audio - Inject gets sound to work, though only 2 channels.

<key>Devices</key>
  <dict>
    <key>Audio</key>
    <dict>
      <key>Inject</key>
      <string>3</string>
    </dict>
  </dict>
Link to comment
Share on other sites

AppleALC will not work if no HDEF and wrong choice of layout-id even if its loaded

 

Okay, yeah as long as I include the Audio Inject section in config.plist (be it with a 1, 2 or 3 that the ALC892 supports) then then audio outputs appear correctly in Settings (though only ever having 2 ch available according to the Audio Midi Setup).

 

If I leave out the Audio-Inject section then no outputs are available in System Preferences->Sound->Output

Link to comment
Share on other sites

Just found some time to test this out and wish to report success. 

 
For ref: Using Toleda’s patches for ALC889.
 
Working from:
- /S/L/E
- /EFI/CLOVER/kexts/10.11/
- /Efi/Oz/Darwin/Extensions/Common/
 
Thank you for your hard work vit9696 :)
Link to comment
Share on other sites

×
×
  • Create New...