ErmaC Posted December 26, 2012 Share Posted December 26, 2012 The embedded HDAEnabler It allows HDEF and HDAU audio device injection using the bootloader without requiring a DSDT/SSDT or injection kext. It needs to be enabled by adding the follow entry in org.chameleon.Boot.plist <key>HDAEnabler</key> <string>Yes</string>this is a replacement for HDAEnabler.kext or DSDT/SSDT HDEF and HDAU injections. also the layout-id can be customized for the HDEF and also for the HDAU HDEF <key>HDEFLayoutID</key> <string>0C000000</string> HDAU <key>HDAULayoutID</key> <string>01000000</string>DSDT entry provided by the HDAEnabler Method (_DSM, 4, NotSerialized) { Local0 = Package () { "subsystem-id", Buffer (0x04) { 0xA0, 0x00, 0x00, 0x00 }, "subsystem-vendor-id", Buffer (0x04) { 0x6B, 0x10, 0x00, 0x00 }, "built-in", Buffer (One) { 0x00 }, "layout-id", Buffer (0x04) { 0x07, 0x00, 0x00, 0x00 }, "PinConfigurations", Buffer (Zero) {}, "device-type", Buffer (0x25) { "High Definition Audio Controller" }, "device_type", Buffer (0x06) { "Sound" }, "hda-gfx", Buffer() { "onboard-1" } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Topic reference: AppleHDA patch request (thx Mirone) Other topic here ErmaC 1 Link to comment Share on other sites More sharing options...
ErmaC Posted March 4, 2015 Author Share Posted March 4, 2015 HDA scan function Codec name, Codec ID and Revision ID Realtek (0x10ec) ALC233 ==> 0x10ec0233 0x100003 ALC885 ==> 0x10ec0885 0x100000 ALC889A => 0x10ec0885 0x100101 ALC889A => 0x10ec0885 0x100103 ALC888 ==> 0x10ec0888 0x100000 ALC1200 => 0x10ec0888 0x100101 Analog Devices (0x11d4) AD2000b => 0x11d4989b 0x100200 AD2000b => 0x11d4989b 0x100300 AD1989b => 0x11d4989b 0x100101 IDT (0x111d) Conexant (0x14f1) Intel (0x8086) nVidia (0x10de) ATi (0x1002) Sigmatel (0x8384) Via (0x1106) Cirrus Logic (0x1013) ErmaC Link to comment Share on other sites More sharing options...
ErmaC Posted May 17, 2015 Author Share Posted May 17, 2015 I was thinking about open a specific topic but let's try to handle here... I add the ability to detect the codec id of each audio chipset. Big thanks to Zenith432 to provite the HDA bus scan function. If you normally use the HDAEnabler key for the injection of the custom or default layout-id now you can also see the finded codec in your Motherboard or Graphics card. So as usual in the org.chameleon.Boot.plist ... <key>HDAEnabler</key> <string>Yes</string>...I tested it on my two configuration (P6T SE and P6T Deluxe)Here the result: bdmesg snippet of my P6T SE ... [ NVIDIA GFX DEVICE INFO ] Class code: [0300] device number: 1 GeForce GT 240 1024MB NVa3 [10de:0ca3]-[196e:069d] PciRoot(0x0)/Pci(0x7,0x0)/Pci(0x0,0x0) NvidiaGeneric = YES [ AUDIO DEVICE INFO ] Class code: [0403] device number: 3 Model name: nVidia (0x0be4) HDA Controller (HDMi) [10de:0be4] (rev a1) Subsystem: [196e:069d] PciRoot(0x0)/Pci(0x7,0x0)/Pci(0x0,0x1) Found nVidia GT240 (10de000d), rev(0001) Found nVidia GT240 (10de000d), rev(0001) Found nVidia GT240 (10de000d), rev(0001) Found nVidia GT240 (10de000d), rev(0001) Using default HDAU layout-id: 0x01, 0x00, 0x00, 0x00 [ AUDIO DEVICE INFO ] Class code: [0403] device number: 4 Model name: Intel 82801JI High Definition Audio Controller [8086:3a3e] (rev 00) Subsystem: [1043:8357] PciRoot(0x0)/Pci(0x1b,0x0) Found Realtek ALC1200 (10ec0888), rev(0001) Using user supplied HDEF layout-id: 0x07, 0x00, 0x00, 0x00 [ WIRELESS DEVICE INFO ] Class code: [0280] Setting up wifi keys Atheros AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] [168c:0024] PciRoot(0x0)/Pci(0x1c,0x1)/Pci(0x0,0x0) [ ETHERNET DEVICE INFO ] Class code: [0200] Setting up lan keys Realtek RTL8111/8168 PCI-E Gigabit Ethernet [10ec:8168] PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0) ... bdmesg snippet of my P6T Deluxe … [ WIRELESS DEVICE INFO ] Class code: [0280] Setting up wifi keys Atheros AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] [168c:0024] PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0) [ NVIDIA GFX DEVICE INFO ] Class code: [0300] device number: 1 GeForce GT 630 2048MB NVc1 [10de:0f00]-[1458:3544] PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0) NvidiaGeneric = YES [ AUDIO DEVICE INFO ] Class code: [0403] device number: 3 Model name: nVidia GT108 HDA Controller (HDMi) [10de:0bea] (rev a1) Subsystem: [1458:3544] PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x1) Found nVidia GT440 (10de0014), rev(0001) Found nVidia GT440 (10de0014), rev(0001) Found nVidia GT440 (10de0014), rev(0001) Found nVidia GT440 (10de0014), rev(0001) Using default HDAU layout-id: 0x01, 0x00, 0x00, 0x00 [ AUDIO DEVICE INFO ] Class code: [0403] device number: 4 Model name: Intel 82801JI High Definition Audio Controller [8086:3a3e] (rev 00) Subsystem: [1043:82ea] PciRoot(0x0)/Pci(0x1b,0x0) Found Analog Devices AD2000B (11d4989b), rev(0003) Using user supplied HDEF layout-id: 0x07, 0x00, 0x00, 0x00 [ ETHERNET DEVICE INFO ] Class code: [0200] Setting up lan keys Marvell 88E8056 PCI-E Gigabit Ethernet Controller [11ab:4364] PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0) [ ETHERNET DEVICE INFO ] Class code: [0200] Setting up lan keys Marvell 88E8056 PCI-E Gigabit Ethernet Controller [11ab:4364] PciRoot(0x0)/Pci(0x1c,0x5)/Pci(0x0,0x0) … ATM those are only info (the showed codec name) but maybe can will be a point to "precise" layout-id injection If you try it pls report. the easy way (IMHO) to find the codec id data is via linux... (Intel) $cat /proc/asound/Intel/codec#0(nVidia) $cat /proc/asound/NVidia/codec#0(ATi) $cat /proc/asound/card0/codec#0 or $cat /proc/asound/card1/codec#0You will see an output like this:(AD2000b) $cat /proc/asound/Intel/codec#0 Codec: Analog Devices AD1989B Address: 0 AFG Function Id: 0x1 (unsol 0) Vendor Id: 0x11d4989b Subsystem Id: 0x10438372 Revision Id: 0x100300...(nVidia GT240) $cat /proc/asound/NVidia/codec#0 Codec: Nvidia GPU 0d HDMI/DP Address: 0 AFG Function Id: 0x1 (unsol 0) Vendor Id: 0x10de000d Subsystem Id: 0x10de0101 Revision Id: 0x100100After positive feedback I will merge this "feature" to the main Chameleon trunk codeSo... good hack... Cordially ErmaC 4 Link to comment Share on other sites More sharing options...
makk Posted September 30, 2016 Share Posted September 30, 2016 (edited) Hi, Brand New Noob here, so sorry, I really need your help to get this audio to work. this my bdmesg for the audio output AUDIO DEVICE INFO ] Class code: [0403] Model name: Intel Cougar Point High Definition Audio Controller [8086:1c20] (rev 05) Subsystem: [1043:1b43] PciRoot(0x0)/Pci(0x1b,0x0) Found Realtek ALC269 (10ec0269), rev(0001) Found Intel Cougar Point (80862805), rev(0000) Using default HDEF layout-id: 0x01, 0x00, 0x00, 0x00 I attached the entire bdmesg to this post. upon reading the very first post, I did enable the HDAEnabler to Yes in the file. but, in order to place the HDEF Layout ID I noticed an alphabet letter "C" in line with 0"s. Q: how to do put this information to use? what do I select and edit in the chameleon.Boot.plist? Thank you bdmesg Makiko.rtf Edited September 30, 2016 by makiko Link to comment Share on other sites More sharing options...
ErmaC Posted October 9, 2016 Author Share Posted October 9, 2016 Hi... In the case you want a layout-id = 3 <key>HDEFLayoutID</key> <string>03000000</string>or if you want a layout-id = 7 <key>HDEFLayoutID</key> <string>07000000</string>Hope it help (C is the hex value for 12 dec value) ErmaC Link to comment Share on other sites More sharing options...
makk Posted November 4, 2016 Share Posted November 4, 2016 In the case you want a layout-id = 3 <key>HDEFLayoutID</key> <string>03000000</string>or if you want a layout-id = 7 <key>HDEFLayoutID</key> <string>07000000</string>Hope it help (C is the hex value for 12 dec value) ErmaC Hi ErmaC, Thank you so much. I have an important question to ask. My Laptop is an older version Asus K53E with Intel chipset and unfortunately an Winbond chip for IO which OS X always give an warning on boot. I switched to Clover and tried UEFI and ESP it seems ESP is better for several reasons. But, when I switched to Clover I had boot glitch, and my mouse scroller isn't working as usual. it lags. At first with one stroke it would scroll, but now I have to move it quickly due to the lag. I would like to switch back to Enoch or because ran smoother. I was able to find many patches or work arounds I can use. Tradeoffs are that Clover makes for just about seamless updates and upgrades. But I was able to update in Enoch as well. Just had a few scary moments. With Enoch I get no boot up glitch, I don't have to edit the config.plist to work around the mess. More to configure in config.plist with Clover for this system. However, everyone is using and recommends Clover so there's the hangup. I Had to use Rehabmans backlight method because the AsusBacklightPanel was giving me problems with updates. It isn't maintained successively to keep up with the updates. For the HDMI to work I had to use AppleHDA v1.6 which made it really easy to do. But, with your help and all, it works. Thank you so much, Mak Link to comment Share on other sites More sharing options...
Recommended Posts