Master Chief Posted January 25, 2009 Share Posted January 25, 2009 Educational Tutorial First, before anyone goes bonkers, I personally have nothing against Microsoft neither Windows, but what if you simply don't have Windows Vista? And I'm not going to download a torrent or get it otherwise. No thanks. And what if you don't want to install Windows again and happen to have a Linux codec dump? Well, here's what I did to get my Leopard 10.5.6 installation going on an ASUS P5K-PRO motherboard � it should still work with 10.5.7 and Snow Leopard (10.6.0). Work in progress - last edit: 7 June 2009 � fixed a typo (1 > 0) and gram error (thanks for spotting it guys). 11 June 2009 � removed spurious spaces inserted by Full edit (making a mess of it). 12 June 2009 � cleanups and adding some additional some of the info wasn't clear enough. 14 June 2009 � CodecDump compared with Ubuntu 9.04 (8.10 and are exactly the same). 15 June 2009 � New Pin Default Cheat Sheet in the make!!! 17 June 2009 � New findings about vanilla audio posted here. 17 June 2009 � PinConfiguration and ConfigData fixed (no more "None" for the Microphone) thanks to tmongkol 19 June 2009 � Adding links and text to "Patching com.apple.Boot.plist" Introduction Let me start by saying that this tutorial is (far) from complete, but I'm a very busy person (Mozilla Application Developer) and thus all this has to be done in spare time so yeah... it'll take me some time to finish it. The good news is that this old geezer is writing a new article about audio stuff on the hackintosh, and thus we might get there one day soon. Spotting errors or a broken link: PM me and I'll fix it. Thanks! What this is not: Please note that this is not a freeway to audio heaven. And no I am not going to fix your audio kexts. It's all up to you... or you'll have to find someone else to do it for you. I simply won't have the time for it since I'm also a father of four children... go figure. Hey, I am already writing this tutorial, remember? The first thing you need is either a Windows or Linux codec dump. And you can generate it on Linux with: cat /proc/asound/card0/codec#0 > ~/Desktop/codecname_codec_dump.txt Note: You might need to: cd /proc/asound/card0/ and look for the right codex# I personally used my Ubuntu 8.10 installation, which was the latest official release at the time of this writing, to create the attached alc883_codec_dump.hex. I later compared the codec dump with Ubuntu 9.04 and they are exactly. Don't have Linux, yet? Simply get the Ubuntu LiveCD here (instructions included), but you might as well try one of the other Linux distributions. The next thing you want to do is, that is if you didn't already, is to install XCode IDE � a must have developer tool. And no you don't have to become a developer, but Xcode comes with a few great tools like: Property List Editor and IORegistry Explorer. And yes it is a free download � though you need to sign-up to get it (no worries). Probably just a way for Apple to say: "We have 10 million developers world wide". Right. Just because people need Xcode IDE and thus have to become a registered developer. Whatever. Codec Dumps Part I � A First Glance Let's get started. First download the attached codec (scroll down to Files) and open it with something like TextEdit or whatever tools you prefer to use. We'll be using this codec throughout this tutorial, as an example, but you should first compare it with your own codec (look for similarities). Now let's have a look at the codec here, starting with the following lines: Codec: Realtek ALC883 Address: 0 Vendor Id: 0x10ec0883 Subsystem Id: 0x1043829f The most important parts here are highlighted in red � the green one shows up in System Profiler (most prominently) and is constructed from the subsystem-vendor-id (1043) and subsystem-id (829f) which you can find with Apple's IORegistry Explorer (part of Apple's Xcode IDE) or simply by entering the following command in a terminal window: sudo ioreg -l (lowercase L) > ~/Desktop/ioreg-out.txt Codec Dumps Part II � What Exactly Are We Looking For? So what exactly are we looking for? Good question. The first value we need is the Address aka CAd (CodecAddress) which in this case is: 0 (zero). It might not be 0 but for example 1 or 2. And you'll be using this value in the following paragraphs so yeah, it is pretty important. The second value is... well the Vendor ID, which in this case is: 0x10ec0883 or 283904131 decimal � we'll have to use decimal values in our plist files. Let's get to the first snippet, and in the attached alc883_codec_dump.hex this looks like this: Node 0x14 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x083e: IN OUT HP Detect Trigger Pin Default 0x01014010: [Jack] Line Out at Ext Rear Conn = 1/8, Color = Green DefAssociation = 0x1, Sequence = 0x0 Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Again, the most important parts here are highlighted in red � the green lines will be discussed in a later stage. The data we're after (for now) is: Node 0x14 being the NID (Node ID) and the Pin Default 0x01014010. The Pin Default (a 32-bit register in the Pin Complex Widget) is used by software as an aid in determining the configuration of jacks and devices attached to the codec. At the time the codec is first powered on, this register is internally loaded with default values indicating the typical system use of this particular pin/jack We also need to keep an eye on the Sequence, simply because it can only be 0 on real Mac's. Let's start by looking at the following Pin Default: 0x76543210 � just a simple example to identify all digits. Where: 0 = Sequence 1 = Default Association 2 = Miscellaneous 3 = Color 4 = Connection Type 5 = Default Device 6 = Location 7 = Port Connectivity Note the right-to-left or host-byte-order, which might look strange at first for non-developers, but that's how it works. Follow the jump to the Intel HDA specification for a complete description (starting at page 149) which I tell you is a must read. Codec Dumps Part III � Constructing Verbs Let's construct our first "Verb Layout" with help of the following *cough* formula *cough*: CAd + NID + 71X + Masked Pin Default � where X is either: c, d, e, or f. Like this: 0 + 14 + 71c + 10 0 + 14 + 71d + 40 0 + 14 + 71e + 01 0 + 14 + 71f + 01 Note: the 71x part in this group is the Verb ID which is used by the software to identify verbs. We skip 710 thru 71a in this example aka the GPIO (General Purpose Input/Output) control bytes, which are discussed in great detail in the Intel HDA specification. And there's no word about 71b in the Intel HDA specifications so we'll simply ignore it here. Which gives us: 01471c10 01471d40 01471e01 01471f01 Now repeat this procedure for all other snippets containing: Node and Pin Default. Let's take the second snippet from my alc883_codec_dump.hex to make sure you understand it � most unnecessary parts have been removed in the following snippet: Node 0x15 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Pincap 0x083e: IN OUT HP Detect Trigger Pin Default 0x01011012: [Jack] Line Out at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0x1, Sequence = 0x2 Like this: 0 + 15 + 71c + 12 0 + 15 + 71d + 10 0 + 15 + 71e + 01 0 + 15 + 71f + 01 Giving us: 01571c12 01571d10 01571e01 01571f01 Codec Dumps Part IV � Fixing Sequence Errors The above value for Sequence can only be 0 on a Mac and thus we simply need to change it, or things won't work properly. And here's the patched group: 01571c10 01571d10 01571e01 01571f01 Note: The c,d,e, and f are used by the software to identify the verb! Codec Dumps Part V � Finishing Up Let's do the rest, but this time even more information ls removed, and that is why we start with the following color table from the Intel HDA Specifications (Table 105): Where: 0 = Unknown 1 = Black 2 = Grey 3 = Blue 4 = Green 5 = Red 6 = Orange 7 = Yellow 8 = Purple 9 = Pink E = White F = Other Node 0x16 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Pin Default 0x01016011: [Jack] Line Out at Ext Rear 01671c10 01671d60 01671e01 01671f01 Note: 1 is invalid and has been changed to 0! Node 0x17 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Pin Default 0x01012014: [Jack] Line Out at Ext Rear 01771c10 01771d20 01771e01 01771f01 Note: 4 is invalid and has been changed to 0! Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Pin Default 0x01a19840: [Jack] Mic at Ext Rear 01871c40 01871d98 01871ea1 01871f01 Node 0x19 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Pin Default 0x02a19c50: [Jack] Mic at Ext Front 01971c50 01971d9c 01971ea1 01971f02 Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Pin Default 0x0181304f: [Jack] Line In at Ext Rear 01a71c40 01a71d30 01a71e81 01a71f01 Note: f is invalid and has been changed to 0! Node 0x1b [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Pin Default 0x02214c20: [Jack] HP Out at Ext Front 01b71c20 01b71d4c 01b71e21 01b71f02 Node 0x1c [Pin Complex] wcaps 0x400001: Stereo Pin Default 0x593301f0: [N/A] CD at Int ATAPI 01c71cf0 01c71d01 01c71e33 01c71f59 Node 0x1d [Pin Complex] wcaps 0x400000: Mono Pin Default 0x4015e601: [N/A] Speaker at Ext N/A 01d71c00 01d71de6 01d71e15 01d71f40 Note: 1 is invalid and has been changed to 0! Node 0x1e [Pin Complex] wcaps 0x400300: Mono Digital Pin Default 0x01441130: [Jack] SPDIF Out at Ext Rear 01e71c30 01e71d11 01e71e44 01e71f01 Node 0x1f [Pin Complex] wcaps 0x400200: Mono Digital Pin Default 0x411111f0: [N/A] Speaker at Ext Rear 01f71cf0 01f71d11 01f71e11 01f71f41 ConfigData Putting the whole bunch together gives us the ConfigData we need for Info.plist � com.apple.Boot.plist and dsdt.dsl modifications are also discussed, but later on: "<" + 01471c10 01471d40 01471e01 01471f01 01571c10 01571d10 01571e01 01571f01 01671c10 01671d60 01671e01 01671f01 01771c10 01771d20 01771e01 01771f01 01871c40 01871d98 01871ea1 01871f90 01971c50 01971d9c 01971ea1 01971f02 01a71c40 01a71d30 01a71e81 01a71f01 01b71c20 01b71d4c 01b71e21 01b71f02 01c71cf0 01c71d01 01c71e33 01c71f59 01d71c00 01d71de6 01d71e15 01d71f40 01e71c30 01e71d11 01e71e44 01e71f01 01f71cf0 01f71d11 01f71e11 01f71f41 + ">" And this is how it should look (no tabs, no weird spaces or other illegal characters): <01471c10 01471d40 01471e01 01471f01 01571c10 01571d10 01571e01 01571f01 01671c10 01671d60 01671e01 01671f01 01771c10 01771d20 01771e01 01771f01 01871c40 01871d98 01871ea1 01871f90 01971c50 01971d9c 01971ea1 01971f02 01a71c40 01a71d30 01a71e81 01a71f01 01b71c20 01b71d4c 01b71e21 01b71f02 01c71cf0 01c71d01 01c71e33 01c71f59 01d71c00 01d71de6 01d71e15 01d71f40 01e71c30 01e71d11 01e71e44 01e71f01 01f71cf0 01f71d11 01f71e11 01f71f41> Converting NodeID's The next step is to convert the hexadecimal NID's (NodeID's) to decimal values (plist files work with decimal values). You can use the OS X Calculator (select Menu View -> Programmer) to convert them, or use this script - written by Munky (yah). Whichever you pick, I've done my work and added both the hexadecimal and decimal values (where possible) like this: 0xnn/n Line 01: NID 0x14/20 [Jack] Line Out at Ext Rear - Front Speaker Out (Green) Line 02: NID 0x15/21 [Jack] Line Out at Ext Rear - Rear Speaker Out (Black) Line 03: NID 0x16/22 [Jack] Line Out at Ext Rear - Center/ Subwoofer (Orange) Line 04: NID 0x17/23 [Jack] Line Out at Ext Rear - Side Speaker (Grey) Line 05: NID 0x18/24 [Jack] Mic at Ext Rear (Pink) Line 06: NID 0x19/25 [Jack] Mic at Ext Front (Pink) Line 07: NID 0x1a/26 [Jack] Line In at Ext Rear (Blue) Line 08: NID 0x1b/27 [Jack] HP Out at Ext Front (Green) Line 09: NID 0x1c/28 [N/A] CD at Int ATAPI Line 10: NID 0x1d/29 [N/A] Speaker at Ext N/A (White) Line 11: NID 0x1e/30 [Jack] SPDIF Out at Ext Rear (Black) Line 12: NID 0x1f/31 [N/A] Speaker at Ext Rear (Black) The (colors) were added by me, and your NID's are probably different (BTW; the color of the SPDIF out RCA adapter on the Asus P5K-PRO isn't really black, but yellow). Our First Result Here's what I've got so far in System Profiler/Audio(builtin). Please note that the green in and output devices became visual after I added the above ConfigData to AppleHDAController's Info.plist: Intel High Definition Audio: Device ID: 0x1043829F Audio ID: 12 Available Devices: Line Out: Connection: 1/8 inch Jack Microphone: Connection: 1/8 inch Jack Microphone: Connection: 1/8 inch Jack Headphone: Connection: 1/8 inch Jack S/P-DIF Out: Connection: RCA The above Device ID (in red) should match your codec's Subsystem Id and the Audio ID (also in red) represents the used layout-id. Please note that there are two kind of data sets, of which one make System Profiler show the info, and another to make your sound actually work and show up under Output and Input in System Preferences (sound). Please keep in mind that having something in System Profiler, under Audio (Built-in) doesn't necessarily mean that your sound will actually work, but merely that it can find something to show! Note: There's more work to be done, because it doesn't really match with the hardware (P5K-PRO). It is however a start, and used as an example only here. Installing Software The next thing you might need to do is to install Codecgraph and Graphviz. This to generate a graphical presentation (Scalable Vector Graphics) of your codec. Please note that you don't necessarily need to do this, at least not when your codec dump is listed under the "Known codecs" section of the first link. But here's a little how for us Linux users: ./codecgraph alc883_codec_dump.hex You might want to scroll down to Files and have a look at the attached SVG files. Open it with Mozilla Firefox (Safari failed to show both scrollbars) but first unpack it (it's a ZIP file) � other examples can be found by following the first link in this paragraph. Note: Continue reading "The next step - making connections" when you already have a codec dump! Making connections We are about to collect the data we need to add/or modify in our Info.plist files. But more about plist files later. For now; let's have another look at the nodes in alc883_codec_dump.hex, starting with Node 0x14/20. I'll remove everything but the lines we're interested in: Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 This tells us that there are five (5) connections, of which the one marked with the asterisk (*) is the most interesting - the one we're looking for. That's the Audio Mixer (gray hexagon in the SVG file) we're looking for. Let's have a look at the connections of Node 0x0c/12: Connection: 2 0x02 0x0b No asterisk this time. No, we're gonna have to figure that out ourself, which is pretty easy because we know what kind of connection we're working on - being our output device. And looking at Node 0x02/2. Yep, that's the one we're looking for. That's our Audio Output (blue ellipse in the SVG file). This is the first one: NID [0x14/20] Jack - Line Out at Ext Rear - Front Speaker Out (Green) <0x0c/12> (0x02/2) Note the used colors and characters - this to make it easier to read/understand: [green] = Pin Complex <gray> = Audio Mixer (red) = input node (blue) = output node where 0xnn/n = hexadecimal value / decimal value (Info.plist wants decimal values) Now, let's do another one. Node 0x15/21 this time. Again, I'll remove everything but the interesting lines: Connection: 5 0x0c 0x0d* 0x0e 0x0f 0x26 Again, we're after the one with the asterisk and that'll be 0x0d/13 in this case. That's the Audio Mixer we're looking for. And here's the connection list: Connection: 2 0x03 0x0b Right, 0x03/3 is another Audio Output so we take that. Done. That was the second one. Here's the outcome: NID [0x15/21] Jack - Line Out at Ext Rear - Rear Speaker Out (Black) <0x0d/13> (0x03/3) Read this: Analog output devices can be tracked from the source, being the Pin Complex to their corresponding Audio Mixer. Digital devices however don't need the latter and thus these are a little less complex to setup. Input devices are a different kind of beast, because you need to follow the opposite direction, being from the connector towards the corresponding Audio Mixer and Pin Complex. Let's try to figure out the connections for Node 0x18/24. Here's the connections list: Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Which is pretty useless now since we've already used/setup 0x0c/12 Remember? Dead end. Back to the codec dump. There you'll find the two Audio Input nodes being 0x08/8 and 0x09/9 (red ellipses in the SVG file). That's what we need. Check the connection lists to find 0x23/34 and 0x24/35 which are the two Audio Mixers we're looking for. Both have connections to either Audio Mixer so just pick one. Leading to the following input devices: NID [0x18/24] Jack - Mic at Ext Rear (Pink) <0x22/34> (0x09/9) NID [0x19/25] Jack - Mic at Ext Front (Pink) <0x22/34> (0x09/9) NID [0x1a/26] Jack - Line In at Ext Rear (Blue) <0x23/35> (0x08/8) Putting it together Let's start with kext files. Which are just folders with data and/or sub-directories in it. Nothing magic; though they might look a bit strange at first. Kext files usually reside in /System/Library/Extensions/ but you might as well use /Extra for your legacy (modified plist only) kext files. In fact that way things are less messy, and OS upgrades are less likely to break your installation. It also depends on the installed version of OS X, and how you want to fix your audio (when needed) because injecting data with legacy kexts is not the same thing as injecting data from your modified dsdt.dsl (dsdt.aml) or using device properties in com.apple.Boot.plist The effect should all be the same, of course... giving you audio, but copying a few available legacy kexts is probably the first thing you'll want to do. Please note that you still might need one or more legacy kexts when you use the DSDT injection method because in the end it all depends on the used hardware, and if that is somewhat compatible with real available/supported Apple hardware. Note: DSDT hacking is not the holy grail and is probably a bit too difficult for many people (no offense) so only take this route when you know what you are doing! Now back to hacking. Have a look at /System/Library/Extensions/AppleHDA.kext and the files in it. The most importantly two are just property files: AppleHDA.kext/Contents/PlugIns/AppleHDAController.kext/Contents/Info.plist AppleHDA.kext/Contents/PlugIns/AppleHDAPlatformDriver.kext/Contents/Info.plist You'll want to use either Property List Editor, which comes with Apple's Xcode IDE (developer tools) or just: sudo nano <path to file>Info.plist � using the latter will probably be a daunting task at first, but it will be fine when you got used to it. PinConfigurations People who inject data with a modified dsdt.dsl or com.apple.Boot.plist (device properties often referred to as EFI-Strings) also need the PinConfigurations, which we get by taking the last two digits from the ConfigData (scroll up): 10 40 01 01 10 10 01 01 11 60 01 01 10 20 01 01 40 98 a1 90 50 9c a1 02 40 30 81 01 20 4c 21 02 f0 01 33 59 00 e6 15 40 30 11 44 01 f0 11 11 41 Patching dsdt.dsl The corresponding PinConfigurations snipped for dsdt.dsl hackers looks like: "PinConfigurations", Buffer (0x30) { /* 0000 */ 0x10, 0x40, 0x01, 0x01, 0x10, 0x10, 0x01, 0x01, /* 0008 */ 0x11, 0x60, 0x01, 0x01, 0x10, 0x20, 0x01, 0x01, /* 0010 */ 0x40, 0x98, 0xa1, 0x90, 0x50, 0x9c, 0xa1, 0x02, /* 0018 */ 0x40, 0x30, 0x81, 0x01, 0x20, 0x4c, 0x21, 0x02, /* 0020 */ 0xf0, 0x01, 0x33, 0x59, 0x00, 0xe6, 0x15, 0x40, /* 0028 */ 0x30, 0x11, 0x44, 0x01, 0xf0, 0x11, 0x11, 0x41 } Note: The value 0x30 (hex) represents the buffer length! Giving us: Device (HDEF) { Name (_ADR, 0x001B0000) Method (_PRW, 0, NotSerialized) { Return (Package (0x02) { 0x0D, 0x05 }) } Method (_DSM, 4, NotSerialized) { Store (Package (0x06) { "built-in", Buffer (One) { 0x00 }, "layout-id", Buffer (0x04) { 0x0c, 0x00, 0x00, 0x00 }, "PinConfigurations", Buffer (0x30) { /* 0000 */ 0x10, 0x40, 0x01, 0x01, 0x10, 0x10, 0x01, 0x01, /* 0008 */ 0x11, 0x60, 0x01, 0x01, 0x10, 0x20, 0x01, 0x01, /* 0010 */ 0x40, 0x98, 0xa1, 0x90, 0x50, 0x9c, 0xa1, 0x02, /* 0018 */ 0x40, 0x30, 0x81, 0x01, 0x20, 0x4c, 0x21, 0x02, /* 0020 */ 0xf0, 0x01, 0x33, 0x59, 0x00, 0xe6, 0x15, 0x40, /* 0028 */ 0x30, 0x11, 0x44, 0x01, 0xf0, 0x11, 0x11, 0x41 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Note: The value 0x06 represents the number of items you've put in the package, and needs to be increased when you add items in this scope! Patching com.apple.Boot.plist You'll find com.apple.Boot.plist in /Library/Preferences/SystemConfiguration/ and the corresponding PinConfigurations snippet for com.apple.Boot.plist hackers will be something like this: <key>PciRoot(0x0)/Pci(0x1b,0x0)</key> <dict> <key>built-in</key> <string>0x00</string> <key>PinConfigurations</key> <data>EEABARAQAQERYAEBECABAUCYoZBQnKECQDCBASBMIQLwATNZAOYVQDARRAHwERFB</data> <key>layout-id</key> <string>0x0000000c</string> </dict> The first thing you probably noticed is that weird string of character between the <data> tags. Well, that's a base64 representation of the PinConfigurations. And that is why people here advise you to use a plist editor � because that will encode it for you in the used Info.plist. People who know how things work can, of course, use one of the many on-line base64 converters or save their data in a hex file, with say HexEdit, and encode the PinConfigurations with help of OpenSSL like this: openssl base64 -e -in ~/Desktop/PinConfigurations.hex It might still look like magic now, but you can easily verify your own findings with help of the graphical presentation of your codec dump - the SVG file because they should match. You need these connections, or there won't be sound, or on the wrong port. Link being at the wrong airport... err no flight. Sorry. I hope you've learned enough new stuff to keep you busy (for now). Just open the attached codec dump, or better your own, and give it a go. Next time we'll discuss the steps to add/modify the Info.plist files. That'll be fun. I promise. Thank you I would like to thank TheKing for his information (for now just follow this link for additional info) about the sequence value, which always should be 0 (as in zero), my buddy at Intel Tom, macgirl for doing Perl scripting. Thanks folks! Background Information I noticed that some of the information we need for System Profiler is right in front of us: Conn = 1/8, Color = Green DefAssociation = 0x1, Sequence = 0x0 I figured that the Intel HDA specification would be a great help so I did a Google search and got the information I was looking for. You might want to print the pages 151 and 152, as I did (by far the most interesting pages for starters). Software and Tools Property List Editor � part of XCode PlistEdit Pro Files - used in this tutorial alc883_codec_dump.txt codec_ConfigData.rtf alc883_codec_dump.svg.zip Link to comment Share on other sites More sharing options...
macgirl Posted January 26, 2009 Share Posted January 26, 2009 I made 2 perl scripts that runs with TextWrangler (little brother of BBEdit) to convert from Pin config to "human readable" format: so this: is converted to this: 0 14 71c 1 0 node 20 association 1 sequence 0 0 14 71d 4 0 node 20 Green Jack Detect Override 0 14 71e 0 1 node 20 Line Out 1/8" stereo 0 14 71f 0 1 node 20 port 0 Location 1 and another script that once you made changes (on the left part) coud give you the altered pin config. Here they are if anyone want to use it, they go in the Unix Filters Folder of the TextWrangler. AppleHDA_pinconfig_scripts.zip Link to comment Share on other sites More sharing options...
kidalive Posted January 30, 2009 Share Posted January 30, 2009 HOW ABOUT MY CASE Master Chief? I got ALC 883 Address 1 still not working. Can you help? Here is the my card info. Link to comment Share on other sites More sharing options...
Manish Singh Posted February 1, 2009 Share Posted February 1, 2009 Master Chief. Thank you very very much for such a wonderful and easy to understand guide. I will be desperately waiting for information on editing the AppleHDA info.plist. I can't seem to figure out the connection part yet and how should I put the NodeIDs in the pathmaps. Your codec graph is remarkably different and complicated than mine so, I am kinda lost. I am still working on it though. Keep up the good work. Cheers Manish Link to comment Share on other sites More sharing options...
ninu1984 Posted February 6, 2009 Share Posted February 6, 2009 hi all, I'm trying to do that but i don't understand one things. I don't understand the reason for changing some numbers for 0, but in other cases you don't change. I'd be glad if you could expose this to the comunity Thanks a lot Link to comment Share on other sites More sharing options...
Trauma! Posted February 10, 2009 Share Posted February 10, 2009 hi all, I'm trying to do that but i don't understand one things. I don't understand the reason for changing some numbers for 0, but in other cases you don't change. I'd be glad if you could expose this to the comunity Thanks a lot The value he is changing is called the "sequence", in linux's Dump you can find various value at this place ! So if sequence values are different from : 0 or 1 or f Osx wont recognize it and the verb is ignored for this node. In Vista's dump you'll never see sequence values different from : 0 or 1 or f It's appear to be the same in real Mac' dump under Linux ! @ macgirl : very nice script, very andy ! But i cant get it to work !! I always get the same errors : A little help will be nice Bye Link to comment Share on other sites More sharing options...
sammaz Posted February 17, 2009 Share Posted February 17, 2009 I just dumped my codec and it is identical to yours!!! good news for me! check it out...can you email me your appleHDA.kext and enabler? I have been trying for months! Thanks! M3N78EMHLinuxDump_copy.txt Link to comment Share on other sites More sharing options...
sammaz Posted February 18, 2009 Share Posted February 18, 2009 I just dumped my codec and it is identical to yours!!! good news for me! check it out...can you email me your appleHDA.kext and enabler? I have been trying for months! Thanks! I used these guys work and everything is working!!! http://www.insanelymac.com/forum/index.php...p;#entry1071506 Thanks to the French???!!! Link to comment Share on other sites More sharing options...
macgirl Posted February 18, 2009 Share Posted February 18, 2009 @ macgirl : very nice script, very andy ! But i cant get it to work !! I always get the same errors : A little help will be nice Bye How you are using them? Did you check those lines? Link to comment Share on other sites More sharing options...
holyfield Posted February 19, 2009 Share Posted February 19, 2009 Thank you! I'm having trouble to getting work my ALC883 on ICH7 Codec: Realtek ALC883 Address: 0 Vendor Id: 0x10ec0883 Subsystem Id: 0x147b107d Revision Id: 0x100002 No Modem Function Group found Default PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM I have made dumps and graphs of ALC883 codec. So I use now your guide to folly the rest of procedure. I hope i get it to work on 10.5.6 iDeneb v1.4 Link to comment Share on other sites More sharing options...
winktinkler Posted February 19, 2009 Share Posted February 19, 2009 Master Chief Thanks for this guide and detailed .... Please see question below near bottom of this reply / question? The next step - Instaling software: Now it is time to install Codecgraph and Graphviz to generate a graphical presentation (Scalable Vector Graphics) of your codec. Note that you don't necessarily need to install the software, at least not when your codec dump is listed under the "Known codecs" section of the first link. Here's the command to generate the SVG file (alc883_codec_dump.svg in my case): ./codecgraph alc883_codec_dump.hex Want to see an example? Just get mine (see attachments at the bottom) and open it with Mozilla Firefox (Safari failed to show both scrollbars) after you've unpacked it (more codec dumps can be found by following the this link). The next step - making connections: Now we're going to collect the numbers we need to add/modify in our plist files. More about plist files later. Have another look at the nodes in alc883_codec_dump.hex, starting with Node 0x14/20. I'll remove everything but the lines we're interested in: Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 This tells us that there are five (5) connections, of which the one marked with the asterisk (*) is the most interesting - the one we're looking for. That's the Audio Mixer (gray hexagon in the SVG file) we're looking for. Let's have a look at the connections of Node 0x0c/12: Connection: 2 0x02 0x0b No asterisk this time. No, we're gonna have to figure that out ourself, which is pretty easy because we know what kind of connection we're working on - being our output device. And looking at Node 0x02/2. Yep, that's the one we're looking for. That's our Audio Output (blue ellipse in the SVG file). This is the first one: NID [0x14/20] Jack - Line Out at Ext Rear - Front Speaker Out (Green) <0x0c/12> (0x02/2) Note the used colors and characters - this to make it easier to read/understand: [green] = Pin Complex <gray> = Audio Mixer (red) = input node (blue) = output node where 0xnn/n = hexadecimal value / decimal value (Info.plist wants decimal values) Now, let's do another one. Node 0x15/21 this time. Again, I'll remove everything but the interesting lines: Connection: 5 0x0c 0x0d* 0x0e 0x0f 0x26 Again, we're after the one with the asterisk and that'll be 0x0d/13 in this case. That's the Audio Mixer we're looking for. And here's the connection list: Connection: 2 0x03 0x0b Right, 0x03/3 is another Audio Output so we take that. Done. That was the second one. Here's the outcome: NID [0x15/21] Jack - Line Out at Ext Rear - Rear Speaker Out (Black) <0x0d/13> (0x03/3) Read this: Analog output devices can be tracked from the source, being the Pin Complex to their corresponding Audio Mixer. Digital devices however don't need the latter and thus these are a little less complex to setup. Input devices are a different kind of beast, because you need to follow the opposite direction, being from the connector towards the corresponding Audio Mixer and Pin Complex. Let's try to figure out the connections for Node 0x18/24. Here's the connections list: Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Which is pretty useless now since we've already used/setup 0x0c/12 Remember? Dead end. Back to the codec dump. There you'll find the two Audio Input nodes being 0x08/8 and 0x09/9 (red ellipses in the SVG file). That's what we need. Check the connection lists to find 0x23/34 and 0x24/35 which are the two Audio Mixers we're looking for. Both have connections to either Audio Mixer so just pick one. Leading to the following input devices: NID [0x18/24] Jack - Mic at Ext Rear (Pink) <0x22/34> (0x09/9) NID [0x19/25] Jack - Mic at Ext Front (Pink) <0x22/34> (0x09/9) NID [0x1a/26] Jack - Line In at Ext Rear (Blue) <0x23/35> (0x08/8) I have gone thru the steps here, have all of the required dumps, edited, created the list with the Node Id's, etc. and generated the graph I am in the process of 'connecting' the Node Id's to the addresses for the ports verfied in the graph .. as in your NID List .... This is kind of stupid, how do I use the information on the NID ...... list .... Where do I enter that (which plist file .... ??? AppleHDAController info.plist or HDEnabler info.plist Lost .... and groggy ... Thanks for the work and this guide ... ..... It might still look like magic now, but you can easily verify your own findings with help of the graphical presentation of your codec dump - the SVG file because they should match. You need these connections, or there won't be sound, or on the wrong port. Link being at the wrong airport... err no flight. Sorry. I hope you've learned enough new stuff to keep you busy (for now). Just open the attached codec dump, or better your own, and give it a go. Next time we'll discuss the steps to add/modify the Info.plist files. That'll be fun. I promise. Link to comment Share on other sites More sharing options...
Trauma! Posted February 19, 2009 Share Posted February 19, 2009 How you are using them? Did you check those lines? All right, so i have to place it in the filters folder !! Not in the script folder.... Here they are if anyone want to use it, they go in the Unix Script Folder of the TextWrangler. Thank you very much, it's a nice tool !! Bye. Link to comment Share on other sites More sharing options...
macgirl Posted February 19, 2009 Share Posted February 19, 2009 Sorry for the mis-directions. I don't know what differences are between those Link to comment Share on other sites More sharing options...
holyfield Posted February 19, 2009 Share Posted February 19, 2009 01a71c40 01a71d30 01a71e81 01a71f01 Note: f is invalid and has been changed to 0! Please can you describe why f is invalid? How you know it? And how I should figure out what is wrong value on my codec dump? I made for same audio codec dumps with different linux distros and I got different dumps. ON I made with Ubuntu 8.04 and second with Mandriva 2009 KDE4 Link to comment Share on other sites More sharing options...
undo_undo Posted February 27, 2009 Share Posted February 27, 2009 "<" + 01471c10 01471d40 01471e01 01471f01 01571c10 01571d10 01571e01 01571f01 01671c1101671d60 01671e01 01671f01 01771c10 01771d20 01771e01 01771f01 01871c40 01871d98 01871ea1 01871f01 01971c50 01971d9c 01971ea1 01971f02 01a71c40 01a71d30 01a71e81 01a71f01 01b71c20 01b71d4c 01b71e21 01b71f02 01c71cf0 01c71d01 01c71e33 01c71f59 01d71c00 01d71de6 01d71e15 01d71f40 01e71c30 01e71d11 01e71e44 01e71f01 01f71cf0 01f71d11 01f71e11 01f71f41 + ">" Hi Master Chief, I have questions: Q1) why is the sequence for 01671c11 is 1, not 0? Q2) if I have Pinconfig from Vista, do I still need linux dump? if so, for what reason? Q3) In your Info.plist of AppleHDA.kext\Contents\AppleHDAController.kext, I see <key>ConfigData</key> <data>AUccEAFHHUABRx4BAUcfAQFXHBABVx0QAVceAQFXHwEBZxwRAWcdYAFnHgEBZx8BAXccEAF3HSABd 4BAXcfAQGHHEABhx2YAYceoQGHHwEBlxxQAZcdnAGXHqEBlx8CAaccQAGnHTABpx6BAacfAQG3HCABtx MAbceIQG3HwIBxxzwAccdAQHHHjMBxx9ZAdccAAHXHeYB1x4VAdcfQAHnHDAB5x0RAeceRAHnHwEB9xz AfcdEQH3HhEB9x9B</data> Isn't Data for ConfigData should be more like 01471c10 01471d40 01471e01 01471f01 .. from your codec verb? Thanks. Link to comment Share on other sites More sharing options...
fellz Posted February 27, 2009 Share Posted February 27, 2009 Yep i noticed the same why for all lines it's 0 and for 3 is 1 at the end. Is that mistake ? Link to comment Share on other sites More sharing options...
kizwan Posted March 24, 2009 Share Posted March 24, 2009 I believe it is just a typo. It should be 0 (zero) because it should comply with this rule (quote from THe KiNG How To):- *My notes in n00b words for this, if you look on the vanilla codec verb(no matter what codec) you will see that Sequence is always 0.Why that, and why for us on our codec verbs is different? Simple b/c Apple dosen't have multichannel analog out! so you must change it to 0. @holyfield, just use the latest live cd. If the two live cd is the latest, you can experiment with both dump & finally choose one that nearly 100% working. @undo_undo, you need Plist editor like PlistEdit Pro to edit plist file especially when you're going to edit "Data":- <key>ConfigData</key> <data>AUccEAFHHUABRx4BAUcfAQFXHBABVx0QAVceAQFXHwEBZxwRAWcdYAFnHgEBZx8BAXccEAF3HSAB 4BAXcfAQGHHEABhx2YAYceoQGHHwEBlxxQAZcdnAGXHqEBlx8CAaccQAGnHTABpx6BAacfAQG3HCABtx MAbceIQG3HwIBxxzwAccdAQHHHjMBxx9ZAdccAAHXHeYB1x4VAdcfQAHnHDAB5x0RAeceRAHnHwEB9xz AfcdEQH3HhEB9x9B</data> If you going to use PlistEdit Pro, remove "<" & ">" before paste it in ConfigData. You only require to include it if you're using "Property List Editor" program. <01471c10 01471d40 01471e01 01471f01 01571c10 01571d10 01571e01 01571f01 01671c10 01671d60 01671e01 01671f01 01771c10 01771d20 01771e01 01771f01 01871c40 01871d98 01871ea1 01871f01 01971c50 01971d9c 01971ea1 01971f02 01a71c40 01a71d30 01a71e81 01a71f01 01b71c20 01b71d4c 01b71e21 01b71f02 01c71cf0 01c71d01 01c71e33 01c71f59 01d71c00 01d71de6 01d71e15 01d71f40 01e71c30 01e71d11 01e71e44 01e71f01 01f71cf0 01f71d11 01f71e11 01f71f41> kizwan Link to comment Share on other sites More sharing options...
Riley Freeman Posted March 29, 2009 Share Posted March 29, 2009 I'm trying to get a CMI9880 running using this guide. I got through the first bit fine and added the vendor id and config data to the info.plist in AppleHDAController. But I'm lost at the Converting Node IDs step. What am I supposed to do with the decimal values and where are they to go? I can breeze over the graph generation as the CMI9880 is in the codec database. This is what I'm working with (taken from the codec dump): Line 01: NID 0x0b/11 [Jack] Line Out at Ext Rear Verb: 10B71C10 10B71D41 10B71E01 10B71F01 Line 02: NID 0x0c/12 [Jack] Aux at Ext Front Verb: 10C71C00 10C71D31 10C71E91 10C71F02 Line 03: NID 0x0d/13 [Jack] Mic at Ext Rear Verb: 10D71C00 10D71D91 10D71EA1 10D71F01 Line 04: NID 0x0e/14 [Jack] Line Out at Ext Rear Verb: 10E71C10 10E71D21 10E71E01 10E71F01 Line 05: NID 0x0f/15 [Jack] HP Out at Ext Front Verb: 10F71C00 10F71D41 10F71E21 10F71F02 Line 06: NID 0x10/16 [Jack] Mic at Ext Front Verb: 11071C00 11071D91 11071EA1 11071F02 Line 07: NID 0x11/17 [Jack] CD at Ext UNKNOWN Verb: 11171C00 11171D00 11171E33 11171F09 Line 08: NID 0x12/18 [Jack] SPDIF Out at Ext Rear Verb: 11271C00 11271D00 11271E44 11271F01 Line 09: NID 0x13/19 [Jack] SPDIF In at Ext Rear Verb: 11371C00 11371D00 11371EC4 11371F01 Line 10: NID 0x1f/31 [Jack] Line Out at Ext Rear Verb: 11F71C10 11F71D61 11F71E01 11F71F01 Line 11: NID 0x20/32 [Jack] Line Out at Ext Rear Verb: 12071C10 12071D11 12071E01 12071F01 ----------------------------------------------- Node 0x0b Connection: 1 0x03 Node 0x0c Connection: 1 0x04 Node 0x0d Connection: 1 0x05 Node 0x0e Connection: 1 0x06 Node 0x0f Connection: 4 0x03* 0x04 0x05 0x06 Node 0x10 Connection: 4 0x03* 0x04 0x05 0x06 Node 0x11 Conn = ATAPI, Color = Unknown Pin-ctls: 0x00: Node 0x12 Connection: 1 0x07 Node 0x13 Conn = RCA, Color = Unknown Pin-ctls: 0x00: Node 0x1f Connection: 4 0x03 0x04* 0x05 0x06 Node 0x20 Connection: 4 0x03 0x04 0x05* 0x06 Link to comment Share on other sites More sharing options...
Riley Freeman Posted March 29, 2009 Share Posted March 29, 2009 Well I'm making a little progress. I think I have the AppleHDAController.kext set up ok. It seems most of the remaining action is in the HDAPlatformDriver kext. From what I can gather I pick out a LayoutID and corresponding Pathmap and edit the values there to match my nodes. Trouble is, I haven't the faintest idea where to even start. Too much conflicting info spread across too many threads. I'm sure it's a snip once you get one codec done. But until you can get all the way through it's plain rocket science. Link to comment Share on other sites More sharing options...
kizwan Posted March 30, 2009 Share Posted March 30, 2009 Well I'm making a little progress. I think I have the AppleHDAController.kext set up ok. It seems most of the remaining action is in the HDAPlatformDriver kext. From what I can gather I pick out a LayoutID and corresponding Pathmap and edit the values there to match my nodes. Trouble is, I haven't the faintest idea where to even start. Too much conflicting info spread across too many threads. I'm sure it's a snip once you get one codec done. But until you can get all the way through it's plain rocket science. Looks like you successfully construct your codec verbs. You have to concentrate on two threads, where first you need to read the THe KiNG How To (you can find the link at the first post) & second is this thread. You will understand more when you read both how to. In the AppleHDAPlatformDriver, start with pathmaps first. Good luck. kizwan Link to comment Share on other sites More sharing options...
Riley Freeman Posted March 30, 2009 Share Posted March 30, 2009 Thanks for replying kizwan. I spent a few hours last night reading all the HDA patching threads but am still no wiser. There's a lot of information but it's poorly explained and none give a clear, step-by-step guide to what I'm supposed to do in HDAPlatformDriver. When I look through LayoutID and Pathmap I can't see any connection between the two. So I have no idea what any of the values mean. Following what The King said, I chose LayoutID 12 and Pathmap 9. Pathmap contains 5 arrays (0-4) each with a number of child strings. But I can't see how any of these connect to the contents of PathMapRef in the Layout. I even downloaded a few completed kexts (including your alc883_3680 one) to see if I could figure things out, but couldn't. It's no big deal whether or not I get sound working on this Hack. It's purely research. But If I can get one codec working, then I'll know how to do the next. Link to comment Share on other sites More sharing options...
kizwan Posted March 30, 2009 Share Posted March 30, 2009 Thanks for replying kizwan. I spent a few hours last night reading all the HDA patching threads but am still no wiser. There's a lot of information but it's poorly explained and none give a clear, step-by-step guide to what I'm supposed to do in HDAPlatformDriver. When I look through LayoutID and Pathmap I can't see any connection between the two. So I have no idea what any of the values mean. Following what The King said, I chose LayoutID 12 and Pathmap 9. Pathmap contains 5 arrays (0-4) each with a number of child strings. But I can't see how any of these connect to the contents of PathMapRef in the Layout. It's no big deal whether or not I get sound working on this Hack. It's purely research. But If I can get one codec working, then I'll know how to do the next. For now, at LayoutID 12, just add your CodecID (in decimal). You need to concentrate on pathmap. This is the layout of pathmapid 9:- Item0 setup LineIn *here I have to figure out how to add Internal Mic support Item1 setup SpdifIn Item2 Setup Internal Speakers/ExternalSpeakers(you will see 2 child on it) Item3 setup LineOut Item4 setup SpdifOut You can safely remove any pathmap that don't exist in your codec dump (linux dump). For example, if you don't have SPDIF in, you can remove Item1. "LineIn" entry also can be use for mic & external mic. So, you can duplicate it for your other input device (mic or/and external mic). Item2 is useful if you have laptop (you will see two entry in this array), because it have internal speaker & a jack for headphone. It will provide autoswitch function. If headphone is plug in, internal speaker will mute & audio will come out through headphone. Honestly, if you want to understand, you will need to read the THe KiNG how to from top to bottom. To come out your own pathmap, you will need to generate SVG file (Scalable Vector Graphics - a graphical presentation of your codec). The instruction on how to generate SVG file is at THe KiNG How To (using codecgraph program). With this file, creating connection will be easy. Example:- Internal speaker: [Fixed] Speaker at Int ATAPI --> 21 12 2 --> 21 (pin complex) is node id for your internal speaker, 12 is audio mixer & 2 is audio output kizwan Link to comment Share on other sites More sharing options...
Riley Freeman Posted March 30, 2009 Share Posted March 30, 2009 Thanks for your help kizwan I think i have a better grasp of it now. I'll know when I try again later. On the first post here Master Chief said that when he added the configdata to AppleHDAController he got all his ins/outs to show in System Profiler. But for me it only shows Line Out and AUX, so I'm wondering if I'm working from a bad dump to start with (that or I might have messed up the verbs somewhere). I'm now downloading the latest mandriva to take another codec dump as some reports are that the Ubuntu ones aren't always accurate. Link to comment Share on other sites More sharing options...
kizwan Posted March 30, 2009 Share Posted March 30, 2009 .........................On the first post here Master Chief said that when he added the configdata to AppleHDAController he got all his ins/outs to show in System Profiler. But for me it only shows Line Out and AUX, so I'm wondering if I'm working from a bad dump to start with (that or I might have messed up the verbs somewhere). I'm now downloading the latest mandriva to take another codec dump as some reports are that the Ubuntu ones aren't always accurate. Yes, that is correct, only two devices showed in System Profiler, based on your ConfigData you posted earlier. That is because all of the available devices are grouped into two Default Association. See "association" in pin config below (only association 0 & association 1). 1 0B 71C 1 0 node 11 association 1 sequence 0 1 0B 71D 4 1 node 11 Green Misc Reserved 1 0B 71E 0 1 node 11 Line Out 1/8" stereo 1 0B 71F 0 1 node 11 port 0 Location 1 1 0C 71C 0 0 node 12 association 0 sequence 0 1 0C 71D 3 1 node 12 Blue Misc Reserved 1 0C 71E 9 1 node 12 AUX 1/8" stereo 1 0C 71F 0 2 node 12 port 0 Location 2 1 0D 71C 0 0 node 13 association 0 sequence 0 1 0D 71D 9 1 node 13 Pink Misc Reserved 1 0D 71E A 1 node 13 Mic In 1/8" stereo 1 0D 71F 0 1 node 13 port 0 Location 1 1 0E 71C 1 0 node 14 association 1 sequence 0 1 0E 71D 2 1 node 14 Grey Misc Reserved 1 0E 71E 0 1 node 14 Line Out 1/8" stereo 1 0E 71F 0 1 node 14 port 0 Location 1 1 0F 71C 0 0 node 15 association 0 sequence 0 1 0F 71D 4 1 node 15 Green Misc Reserved 1 0F 71E 2 1 node 15 HP Out 1/8" stereo 1 0F 71F 0 2 node 15 port 0 Location 2 1 10 71C 0 0 node 16 association 0 sequence 0 1 10 71D 9 1 node 16 Pink Misc Reserved 1 10 71E A 1 node 16 Mic In 1/8" stereo 1 10 71F 0 2 node 16 port 0 Location 2 1 11 71C 0 0 node 17 association 0 sequence 0 1 11 71D 0 0 node 17 Color Unknown Jack Detect Override 1 11 71E 3 3 node 17 CD Internal 1 11 71F 0 9 node 17 port 0 Location 9 1 12 71C 0 0 node 18 association 0 sequence 0 1 12 71D 0 0 node 18 Color Unknown Jack Detect Override 1 12 71E 4 4 node 18 SPDIF OUT RCA 1 12 71F 0 1 node 18 port 0 Location 1 1 13 71C 0 0 node 19 association 0 sequence 0 1 13 71D 0 0 node 19 Color Unknown Jack Detect Override 1 13 71E C 4 node 19 SPDIF In RCA 1 13 71F 0 1 node 19 port 0 Location 1 1 1F 71C 1 0 node 31 association 1 sequence 0 1 1F 71D 6 1 node 31 Orange Misc Reserved 1 1F 71E 0 1 node 31 Line Out 1/8" stereo 1 1F 71F 0 1 node 31 port 0 Location 1 1 20 71C 1 0 node 32 association 1 sequence 0 1 20 71D 1 1 node 32 Black Misc Reserved 1 20 71E 0 1 node 32 Line Out 1/8" stereo 1 20 71F 0 1 node 32 port 0 Location 1 It is OK though but if you want all of the available devices show in System Profiler, you need to change the Default Association value for all devices. Try to setup base on order for priority of use. The values you can use are: 1, 2, 3, 4, 5, 6 and f. That mean some devices need to be grouped & make sure all of it have same function. For example; you can set all devices that have (color) green (line out & HP - front - have same function which is for front speaker) with Default Association 1 & all devices that have (color) black (line out - rear speaker) with Default Association 2. I hope you're not like this --> . This is not the difficult part yet. kizwan Link to comment Share on other sites More sharing options...
bramo Posted August 17, 2009 Share Posted August 17, 2009 Hi all, Thank you Master Chief for nice tutorial. I am beginner and would like to know how to convert your ConfigData the tutorial: <01471c10 01471d40 01471e01 01471f01 01571c10 01571d10 01571e01 01571f01 01671c10 01671d60 01671e01 01671f01 01771c10 01771d20 01771e01 01771f01 01871c40 01871d98 01871ea1 01871f90 01971c50 01971d9c 01971ea1 01971f02 01a71c40 01a71d30 01a71e81 01a71f01 01b71c20 01b71d4c 01b71e21 01b71f02 01c71cf0 01c71d01 01c71e33 01c71f59 01d71c00 01d71de6 01d71e15 01d71f40 01e71c30 01e71d11 01e71e44 01e71f01 01f71cf0 01f71d11 01f71e11 01f71f41> to <data>AUccEAFHHUABRx4BAUcfAQFXHBABVx0QAVceAQFXHwEBZxwRAWcdYAFnHgEBZx8BAXccEAF3HSA Bdx4BAXcfAQGHHEABhx2YAYceoQGHHwEBlxxQAZcdnAGXHqEBlx8CAaccQAGnHTABpx6BAacfAQG3 HCABtx1MAbceIQG3HwIBxxzwAccdAQHHHjMBxx9ZAdccAAHXHeYB1x4VAdcfQAHnHDAB5x0R AeceRAHnHwEB9xzwAfcdEQH3HhEB9x9B</data> I also do not understand how to obtain: <key>IOPCIPrimaryMatch</key> <string>0x793a1002 0x437a1002 0x43831002 0x269a8086 0x26688086 0x27d88086 0x284b8086 0x293e8086 0x026c10de 0x037110de 0x75021039 0x546110b9 0x32881106 0x026c10de 0x03e410de 0x03f010de 0x044a10de 0x044b10de</string> Thanks, Bramo Link to comment Share on other sites More sharing options...
Recommended Posts