转NiPeGun How to patch VoodooHDA (In proccess)如何打补丁
Assuming you already installed the VoodooHDA Package from here: http://sourceforge.net/projects/voodoohda/files/ and deleted both AppleHDA.kext and AppleHDADisabler.kext, rebooted and reached the desktop with audio working and 2 mics under sound preferences panel, follow the next guide to patch the Info.plist file of the VoodooHDA.kext:Boot into ubuntu (live usb or whatever) and open a terminal there and type:
Code:
nautilus /proc/asound/
This will open a folder with other folders like "Card0" and "Card1". Look inside each two folders for a files called "codec#0" and view its contents. Those two folders are your sound cards. One is the main sound card (ALC 282) and the other one is the nVidia sound card for the HDMI out. If in the first lines of the Card0/codec#0 file appears the words ALC282, then the Card0 is the main card and the Card1 is the nVidia. Otherwise viceversa.
So, once located the ALC282 one (lets assume is Card0) , do in terminal:
Code:
cat /proc/asound/card0/codec#0 > codec_dump.txt
That will put the ALC282 sound card dump in a txt file in your user home folder. Copy the txt file to a Pendrive and boot back into OSX.
NOTE: This linux codec dump is a primary resource that tells you if a node is usable or disabled by the BIOS (because your computer doesn't have the capability for it).
Once inside OSX, download the Verbit executable file from here: www.roghackintosh.org/downloads/apps/verbit.zip, decompress it and place the folder "Verbit" on Desktop.
Move your linux codec_dump.txt file from the pendrive to the Verbit folder. Then open it and delete the line:
Code:
AFG Function Id: 0x1 (unsol 0)
Save the file
Now open the terminal and type:
Code:
cd ~/Desktop/Verbit
./verbit codec_dump.txt > pinconfigs.txt
Then, if you open the pinconfigs.txt file that suddenly appeared in the Verbit folder you will see this:
Verbs from Linux Codec Dump File: codec_dump.txt
Codec: Realtek ALC282 Address: 0 DevID: 283902594 (0x10ec0282)
Jack ColorDescription Node PinDefault Original Verbs
--------------------------------------------------------------------------------------------------------
Digital UnknownMic at Int N/A 18 0x12 0x90a60150 01271c50 01271d01 01271ea6 01271f90
Speaker at Int N/A 0x14 0x14 2417426720 01471c20 01471d01 01471e17 01471f90
Analog UnknownSpeaker at Int N/A 23 0x17 0x90170110 01771c10 01771d01 01771e17 01771f90
Mic at Ext Right 0x18 0x18 77664320 01871c40 01871d10 01871ea1 01871f04
UnknownPurpleLine Out at Ext N/A 25 0x19 0x40008008 01971c08 01971d80 01971e00 01971f40
1/8 BlackSpeaker at Ext Rear 26 0x1a 0x411111f0 01a71cf0 01a71d11 01a71e11 01a71f41
1/8 BlackSpeaker at Ext Rear 27 0x1b 0x411111f0 01b71cf0 01b71d11 01b71e11 01b71f41
Analog UNKNOWNHP Out at Ext Rear 29 0x1d 0x4127bd05 01d71c05 01d71dbd 01d71e27 01d71f41
Optical BlackSPDIF Out at Ext Right 30 0x1e 0x04451130 01e71c30 01e71d11 01e71e45 01e71f04
1/8 BlackHP Out at Ext Right 33 0x21 0x0421102f 02171c2f 02171d10 02171e21 02171f04
--------------------------------------------------------------------------------------------------------
Jack ColorDescription Node PinDefault Modified Verbs
--------------------------------------------------------------------------------------------------------
Digital UnknownMic at Int N/A 18 0x12 0x90a60150 01271c50 01271d00 01271ea6 01271f90
Speaker at Int N/A 0x14 0x14 2417426720 01471c20 01471d00 01471e17 01471f90
Analog UnknownSpeaker at Int N/A 23 0x17 0x90170110 01771c10 01771d00 01771e17 01771f90
Mic at Ext Right 0x18 0x18 77664320 01871c40 01871d10 01871ea1 01871f00
UnknownPurpleLine Out at Ext N/A 25 0x19 0x40008008 01971c60 01971d80 01971e00 01971f40
Analog UNKNOWNHP Out at Ext Rear 29 0x1d 0x4127bd05 01d71c70 01d71db0 01d71e27 01d71f41
Optical BlackSPDIF Out at Ext Right 30 0x1e 0x04451130 01e71c30 01e71d10 01e71e45 01e71f00
1/8 BlackHP Out at Ext Right 33 0x21 0x0421102f 02171c80 02171d10 02171e21 02171f00
--------------------------------------------------------------------------------------------------------
So, after a few minutes editing the text you can have the info in a better way to understand it. Like this:
Verbs from Linux Codec Dump File: codec_dump.txt
Codec: Realtek ALC282 Address: 0 DevID: 283902594 (0x10ec0282)
Jack ColorDescription Node PinDefault Original Verbs
--------------------------------------------------------------------------------------------------------
Digital UnknownMic at Int N/A 18 0x12 0x90a60150 01271c50 01271d01 01271ea6 01271f90
Speaker at Int N/A 20 0x14 2417426720 01471c20 01471d01 01471e17 01471f90
Analog UnknownSpeaker at Int N/A 23 0x17 0x90170110 01771c10 01771d01 01771e17 01771f90
Mic at Ext Right 24 0x18 77664320 01871c40 01871d10 01871ea1 01871f04
UnknownPurpleLine Out at Ext N/A 25 0x19 0x40008008 01971c08 01971d80 01971e00 01971f40
1/8 BlackSpeaker at Ext Rear 26 0x1a 0x411111f0 01a71cf0 01a71d11 01a71e11 01a71f41
1/8 BlackSpeaker at Ext Rear 27 0x1b 0x411111f0 01b71cf0 01b71d11 01b71e11 01b71f41
Analog UNKNOWNHP Out at Ext Rear 29 0x1d 0x4127bd05 01d71c05 01d71dbd 01d71e27 01d71f41
Optical BlackSPDIF Out at Ext Right 30 0x1e 0x04451130 01e71c30 01e71d11 01e71e45 01e71f04
1/8 BlackHP Out at Ext Right 33 0x21 0x0421102f 02171c2f 02171d10 02171e21 02171f04
--------------------------------------------------------------------------------------------------------
Jack ColorDescription Node PinDefault Modified Verbs
--------------------------------------------------------------------------------------------------------
Digital UnknownMic at Int N/A 18 0x12 0x90a60150 01271c50 01271d00 01271ea6 01271f90
Speaker at Int N/A 20 0x14 2417426720 01471c20 01471d00 01471e17 01471f90
Analog UnknownSpeaker at Int N/A 23 0x17 0x90170110 01771c10 01771d00 01771e17 01771f90
Mic at Ext Right 24 0x18 77664320 01871c40 01871d10 01871ea1 01871f00
UnknownPurpleLine Out at Ext N/A 25 0x19 0x40008008 01971c60 01971d80 01971e00 01971f40
Analog UNKNOWNHP Out at Ext Rear 29 0x1d 0x4127bd05 01d71c70 01d71db0 01d71e27 01d71f41
Optical BlackSPDIF Out at Ext Right 30 0x1e 0x04451130 01e71c30 01e71d10 01e71e45 01e71f00
1/8 BlackHP Out at Ext Right 33 0x21 0x0421102f 02171c80 02171d10 02171e21 02171f00
--------------------------------------------------------------------------------------------------------
The part of the text which is important to us is the "Original verbs" cause below we can find this data:
Code:
01271c50 01271d01 01271ea6 01271f90
01471c20 01471d01 01471e17 01471f90
01771c10 01771d01 01771e17 01771f90
01871c40 01871d10 01871ea1 01871f04
01971c08 01971d80 01971e00 01971f40
01a71cf0 01a71d11 01a71e11 01a71f41
01b71cf0 01b71d11 01b71e11 01b71f41
01d71c05 01d71dbd 01d71e27 01d71f41
01e71c30 01e71d11 01e71e45 01e71f04
02171c2f 02171d10 02171e21 02171f04
Now, if we paste that text in the upper textbox of the PinConfigurator.app (www.roghackintosh.org/downloads/apps/pinconfigurator.zip) and we make sure the "ignore disconnected devices" checkbox is ON, we can them hit the "parse the data" button, and we will end with a more and better graphical way to understand the PinConectors available to use cause they are now loaded individually in the table. If immediately after parsing the data we order the table by Nid (ascendant) we can find this:
Which gives us:
Node 18 is the internal mic
Node 20 is the frontal speakers cause the headphone jack is in the same group (2) and linked to it (Position 15)
Node 23 is the subwoofer
Node 24 is the jack for the external mic or line-in
Node 30 is a SPDIF out (shares the jack connector with the headphones output)
Node 33 is the jack for the headphones
and if, immediately after, we hit the "Apply fix" button we see this:
Then, we can simply hit the "Apply fix" button and take note of the changes.
NOTE: To understand the data check this graphic:
Code:
01014410 = 21471c10 21471d44 21471e01 21471f01
|------- Port Connectivity
-|------ Location
--|----- Default Device
---|---- Connection Type
----|--- Color
-----|-- Misc
------|- Default Association
-------| Sequence
THE INFO.PLIST EDIT PART
Open the Info.plist file of the VoodooHDA kext and locate this entry
Code:
<key>NodesToPatch</key>
<array/>
As you can notice, the array is ended (</array>). So, we open it in order to start working with it:
Code:
<key>NodesToPatch</key>
<array>
here is where changes goes
</array>
In this array, we need to create a new dictionary for each node being patched and number them starting at 0. In each dictionary, you will need to create:
1) A number titled "Codec" with a value matching the codec number listed at the top of your linux dump.
2) A string titled "Config" with your patched pinconfig using the appleHDA guide (in the form 0x12345678)
3) A number titled "Node" with a value matching the node (pin complex) your patching
An example of one only dictionary could be:
Code:
<key>NodesToPatch</key>
<array>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Config</key>
<string>0x99a60140</string>
<key>Node</key>
<integer>18</integer>
</dict>
</array>
Know, the key is to create one dictionary of each entry on the PinConfigurator.App resultant table after we hit the "Apply fix" button.
The "Node key" data in the plist will be the Nid of the table, and the "Config key" will be the PinDefault of the table.
Keep in mind that VoodooHDA does everything involving the nodes in decimal, not hexadecimal
So, after we move the table data to the plist, the resultant text is:
<key>NodesToPatch</key>
<array>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Config</key>
<string>0x99170100</string>
<key>Node</key>
<integer>23</integer>
</dict>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Config</key>
<string>0x99170110</string>
<key>Node</key>
<integer>20</integer>
</dict>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Config</key>
<string>0x04211020</string>
<key>Node</key>
<integer>33</integer>
</dict>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Config</key>
<string>0x04451130</string>
<key>Node</key>
<integer>30</integer>
</dict>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Config</key>
<string>0x01811040</string>
<key>Node</key>
<integer>24</integer>
</dict>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Config</key>
<string>0x99a60150</string>
<key>Node</key>
<integer>18</integer>
</dict>
</array>
Save the file and use KextUtility to reinstall the VoodooHDA.kext file and reboot. Your sound should now completely work.
NOTE: Nvidia HDMI usually works without any patching so there's no need to go into that here
« Last Edit: November 18, 2014, 03:03:01 AM by NiPeGun »
麻烦楼主给一下原始链接,这排版看得眼花了,谢谢啦!~ 每日一游 发表于 2015-2-11 00:02 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
麻烦楼主给一下原始链接,这排版看得眼花了,谢谢啦!~
http://roghackintosh.org/index.php?topic=125.0 drcc 发表于 2015-2-11 11:37 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
http://roghackintosh.org/index.php?topic=125.0
再次感谢!~
页:
[1]