Andy Vandijck Posted November 26, 2010 Share Posted November 26, 2010 This is an example of using the DeviceMergeNub for injection. The stock plist injects into an SMBus controller. In the case of the example it uses -Vendor ID: 0x8086 (Intel) with vendor-id (<86800000>) -Device ID: 0x27da with device-id (<da270000>) And it injects the following values through IOProviderMergeProperties: -device-id: set to 0x303a (<3a300000>) -name: set to pci8086,303a -IOName: set to pci8086,303a It is possible to inject for any device this way. It can even match for entire classes if class-code is used instead of vendor-id and device-id. IORegistryExplorer is handy for looking up the exact device entries. You need to get the Apple plist editor for editing the Info.plist Download example: http://rapidshare.com/files/433312133/Devi...eNub_inject.zip Download plist editor: http://rapidshare.com/files/433312297/Prop...List_Editor.zip Download IORegistryExplorer: http://rapidshare.com/files/430687772/IORegistryExplorer.zip Sources for DeviceMergeNub: http://rapidshare.com/files/432918115/DeviceMergeNub.zip Sources and builds for Tiger, Leopard and Snow Leopard: http://rapidshare.com/files/433496862/Devi...eNub_all_os.zip Link to comment Share on other sites More sharing options...
Andy Vandijck Posted November 26, 2010 Author Share Posted November 26, 2010 BTW: If anybody is interested in a FireWire injector I can make that too (FireWireMergeNub) Let me know if that is the case... Link to comment Share on other sites More sharing options...
ErmaC Posted November 26, 2010 Share Posted November 26, 2010 BTW: If anybody is interested in a FireWire injector I can make that too (FireWireMergeNub)Let me know if that is the case... Of course! What you need? (for FRW400)... Fabio Link to comment Share on other sites More sharing options...
Eps Posted November 26, 2010 Share Posted November 26, 2010 I find something strange in IORegistryExplorer. It seem that all PCI devices are injected by the same infomation. For example. and I find this in Console. Is the kext cannot be used with natit? Link to comment Share on other sites More sharing options...
jlvaio Posted November 26, 2010 Share Posted November 26, 2010 can it does something for vaio internal screen problem?(sfep , sny5001) the most recent topics is: http://www.insanelymac.com/forum/index.php...8556&st=360 i think the users most competent to describe the issue and the advanced and the "problem" are kizwann and funky frank from this topics thanks if you can take a look and can help hope and wich of success Link to comment Share on other sites More sharing options...
Andy Vandijck Posted November 26, 2010 Author Share Posted November 26, 2010 Of course!What you need? (for FRW400)... Fabio A little bit of time... I'll make one tomorrow.... EDIT: I did it today. Look under the New Releases part of the forum I find something strange in IORegistryExplorer.It seem that all PCI devices are injected by the same infomation. For example. and I find this in Console. Is the kext cannot be used with natit? That's odd... it didn't do that here (I think). I'll look into it. can it does something for vaio internal screen problem?(sfep , sny5001)the most recent topics is: http://www.insanelymac.com/forum/index.php...8556&st=360 i think the users most competent to describe the issue and the advanced and the "problem" are kizwann and funky frank from this topics thanks if you can take a look and can help hope and wich of success You can use this injector to inject values into the classes of the driver (like the EDID and stuff). This might be able to help you... Link to comment Share on other sites More sharing options...
Andy Vandijck Posted November 26, 2010 Author Share Posted November 26, 2010 I find something strange in IORegistryExplorer.It seem that all PCI devices are injected by the same infomation. For example. and I find this in Console. Is the kext cannot be used with natit? Sorry, I mixed up the way the USB family does it. The proper way is the plist attached below.... Info.plist.zip Link to comment Share on other sites More sharing options...
Rik26 Posted November 27, 2010 Share Posted November 27, 2010 Is this kext for snow only? Link to comment Share on other sites More sharing options...
Andy Vandijck Posted November 27, 2010 Author Share Posted November 27, 2010 Is this kext for snow only? Yes, it is for Snow only but it properly can be recompiled for Tiger / Leopard. If you want that I'll build it for you. Let me know.... Link to comment Share on other sites More sharing options...
Time2Retire Posted November 27, 2010 Share Posted November 27, 2010 Great. This might be what I am looking for. That is if it comes with source code; I can read/set properties in command line tools already but would like to learn new stuff. Totally different stuff to learn again. Thank you for sharing. Link to comment Share on other sites More sharing options...
Andy Vandijck Posted November 27, 2010 Author Share Posted November 27, 2010 Is this kext for snow only? Use the plist attached in one of the replies and get the new sources... They include builds for Leopard and Tiger Link to comment Share on other sites More sharing options...
Eps Posted November 28, 2010 Share Posted November 28, 2010 It is pity that modifying vendor id and device id doesn't make kext driver loaded. But,I don't need natit anymore. By injecting information,I got my graphic card enabled and make my wireless look like an AirPort Extreme Card. Good job,Andy! Link to comment Share on other sites More sharing options...
Andy Vandijck Posted November 28, 2010 Author Share Posted November 28, 2010 It is pity that modifying vendor id and device id doesn't make kext driver loaded.But,I don't need natit anymore. By injecting information,I got my graphic card enabled and make my wireless look like an AirPort Extreme Card. Good job,Andy! Yeah, the nice part of DeviceMergeNub is that it is an all purpose generic PCI device + classes injector. This little devil can do all... :D I've got another example. This one matches on part of the class id. It's a replacement for HDAEnabler in this case (audio injector). Info.plist_audio_AppleHDA.zip Link to comment Share on other sites More sharing options...
BladeRunner Posted November 28, 2010 Share Posted November 28, 2010 @Anv Andy, this new injector looks very interesting and I would like to try it. However, just a few questions before I jump in. I currently have two PCI-e adapter cards. One has two firewire and three usb ports. The other has four usb ports. While the ports are functional, neither adapter is recognized by the System Profiler. The questions hear are: 1) do I need two copies of the injector to get both adapters recognized of can it be done with one copy and extra Info.plist entries? 2) If I get the adapters recognized would that apply to items plugged into the various ports? I also have a built-in realtek acl888 audio. Currently it is supported by VoodooHDA. Again, not seen by the System Profiller and not supported by the Apple HDA drivers. Could this injector help with either of those issues? And, before I forget, thanks for the effort on this new tool. Link to comment Share on other sites More sharing options...
Andy Vandijck Posted November 28, 2010 Author Share Posted November 28, 2010 @Anv Andy, this new injector looks very interesting and I would like to try it. However, just a few questions before I jump in. I currently have two PCI-e adapter cards. One has two firewire and three usb ports. The other has four usb ports. While the ports are functional, neither adapter is recognized by the System Profiler. The questions hear are: 1) do I need two copies of the injector to get both adapters recognized of can it be done with one copy and extra Info.plist entries? 2) If I get the adapters recognized would that apply to items plugged into the various ports? I also have a built-in realtek acl888 audio. Currently it is supported by VoodooHDA. Again, not seen by the System Profiller and not supported by the Apple HDA drivers. Could this injector help with either of those issues? And, before I forget, thanks for the effort on this new tool. 1. You must use only one injector but use the apple plist editor to set multiple IOKitPersonalities. 2. The injector performs on PCI devices only, not USB devices (use AppleUSBMergeNub for that). 3. The support will only be there for injecting information for AppleHDA + System Profiler (see picture) Link to comment Share on other sites More sharing options...
BladeRunner Posted November 28, 2010 Share Posted November 28, 2010 1. You must use only one injector but use the apple plist editor to set multiple IOKitPersonalities.2. The injector performs on PCI devices only, not USB devices (use AppleUSBMergeNub for that). 3. The support will only be there for injecting information for AppleHDA + System Profiler (see picture) Andy, I really appreciate your reply. I will get a copy of AppleUSBMergeNub and give it a try also. I think I have enough info to get started. Again, many thanks. Link to comment Share on other sites More sharing options...
Andy Vandijck Posted November 28, 2010 Author Share Posted November 28, 2010 Andy, I really appreciate your reply. I will get a copy of AppleUSBMergeNub and give it a try also. I think I have enough info to get started. Again, many thanks. P.S. AppleUSBMergeNub is standard on every Mac OS X system so you can use legacy kext's for that... The kext is present under IOUSBFamily.kext/Contents/PlugIns Link to comment Share on other sites More sharing options...
Rik26 Posted November 29, 2010 Share Posted November 29, 2010 Andy, is there any way to inject PCI cards info (for each device) in the section PCI card of System profiler? I think it's only cosmetic but I'd like to try... Link to comment Share on other sites More sharing options...
Andy Vandijck Posted November 29, 2010 Author Share Posted November 29, 2010 Andy, is there any way to inject PCI cards info (for each device) in the section PCI card of System profiler? I think it's only cosmetic but I'd like to try... Yes, it should be possible. You need to inject the following: AAPL,slot-name (the name of the slot of the device e.g. PCI-0) device_type (the type of the device e.g. ethernet) model (the model of the device e.g. Atheros AR8132 Fast Ethernet Network Adapter NOTE: AAPL,slot-name must be unique for each device. You can use multiple IOKitPersonalities entries for it and all of the above can use type string. Link to comment Share on other sites More sharing options...
jlvaio Posted November 29, 2010 Share Posted November 29, 2010 hi andy if you can do it for 10.5 it should be great other things: for sound i have this 3 cards: Realtek High Definition Audio HDAUDIO\FUNC_01&VEN_10EC&DEV_0262&SUBSYS_104D2200&REV_1001 HDAUDIO\FUNC_01&VEN_10EC&DEV_0262&SUBSYS_104D2200 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_10EC&DEV_0262&REV_1001 HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_10EC&DEV_0262&REV_1001 HDAUDIO\FUNC_01&VEN_10EC&DEV_0262&REV_1001 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_10EC&DEV_0262 HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_10EC&DEV_0262 HDAUDIO\FUNC_01&VEN_10EC&DEV_0262 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_10EC HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_10EC HDAUDIO\FUNC_01&VEN_10EC HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B HDAUDIO\FUNC_01&CTLR_VEN_8086 HDAUDIO\FUNC_01&GF&VEN_10EC&DEV_0262&SUBSYS_104D2200&REV_1001 HDAUDIO\FUNC_01 AVerMedia Hybrid H/W MPEG Card, M115S (DVBT/NTSC/PAL/SECAM) PCI\VEN_1131&DEV_7133&SUBSYS_E8361461&REV_D1 PCI\VEN_1131&DEV_7133&SUBSYS_E8361461 PCI\VEN_1131&DEV_7133&CC_048000 PCI\VEN_1131&DEV_7133&CC_0480 PCI\VEN_1131&DEV_7133&REV_D1 PCI\VEN_1131&DEV_7133 PCI\VEN_1131&CC_048000 PCI\VEN_1131&CC_0480 PCI\VEN_1131 PCI\CC_048000 PCI\CC_0480 00000008 PCI\VEN_1131&DEV_7133&SUBSYS_E8361461&REV_D1\4&332BEDD2&0&20F0 IDT High Definition Audio CODEC HDAUDIO\FUNC_01&VEN_8384&DEV_7664&SUBSYS_104D2200&REV_1002 HDAUDIO\FUNC_01&VEN_8384&DEV_7664&SUBSYS_104D2200 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_8384&DEV_7664&REV_1002 HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_8384&DEV_7664&REV_1002 HDAUDIO\FUNC_01&VEN_8384&DEV_7664&REV_1002 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_8384&DEV_7664 HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_8384&DEV_7664 HDAUDIO\FUNC_01&VEN_8384&DEV_7664 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_8384 HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_8384 HDAUDIO\FUNC_01&VEN_8384 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B HDAUDIO\FUNC_01&CTLR_VEN_8086 HDAUDIO\FUNC_01&GF&VEN_8384&DEV_7664&SUBSYS_104D2200&REV_1002 HDAUDIO\FUNC_01 do you think i can use the 3 atthe same time with this? Link to comment Share on other sites More sharing options...
old_eye Posted November 29, 2010 Share Posted November 29, 2010 BTW: If anybody is interested in a FireWire injector I can make that too (FireWireMergeNub)Let me know if that is the case... Well, that would be a real heip - the onboard firewire A (400) is recognized - the Firewire B (800) PCI card is constantly ignored. My MB: Giga GA 45-DS3. To remove AppleHPET.kext from S/L/E makes the card visible but not working (I want to use a Lexar FW800 cardreader). What infos else are needed? Thanx in advance Link to comment Share on other sites More sharing options...
Andy Vandijck Posted November 29, 2010 Author Share Posted November 29, 2010 Well, that would be a real heip - the onboard firewire A (400) is recognized - the Firewire B (800) PCI card is constantly ignored. My MB: Giga GA 45-DS3. To remove AppleHPET.kext from S/L/E makes the card visible but not working (I want to use a Lexar FW800 cardreader). What infos else are needed? Thanx in advance FireWireMergeNub has been created but it is for injecting info in FireWire Devices (use this injector -> DeviceMergeNub -> to inject stuff into the PCI card). It probably is better to fix the FireWire card from within DSDT in this case (look on the forum, plenty of info on it) hi andy if you can do it for 10.5 it should be great other things: for sound i have this 3 cards: Realtek High Definition Audio HDAUDIO\FUNC_01&VEN_10EC&DEV_0262&SUBSYS_104D2200&REV_1001 HDAUDIO\FUNC_01&VEN_10EC&DEV_0262&SUBSYS_104D2200 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_10EC&DEV_0262&REV_1001 HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_10EC&DEV_0262&REV_1001 HDAUDIO\FUNC_01&VEN_10EC&DEV_0262&REV_1001 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_10EC&DEV_0262 HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_10EC&DEV_0262 HDAUDIO\FUNC_01&VEN_10EC&DEV_0262 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_10EC HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_10EC HDAUDIO\FUNC_01&VEN_10EC HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B HDAUDIO\FUNC_01&CTLR_VEN_8086 HDAUDIO\FUNC_01&GF&VEN_10EC&DEV_0262&SUBSYS_104D2200&REV_1001 HDAUDIO\FUNC_01 AVerMedia Hybrid H/W MPEG Card, M115S (DVBT/NTSC/PAL/SECAM) PCI\VEN_1131&DEV_7133&SUBSYS_E8361461&REV_D1 PCI\VEN_1131&DEV_7133&SUBSYS_E8361461 PCI\VEN_1131&DEV_7133&CC_048000 PCI\VEN_1131&DEV_7133&CC_0480 PCI\VEN_1131&DEV_7133&REV_D1 PCI\VEN_1131&DEV_7133 PCI\VEN_1131&CC_048000 PCI\VEN_1131&CC_0480 PCI\VEN_1131 PCI\CC_048000 PCI\CC_0480 00000008 PCI\VEN_1131&DEV_7133&SUBSYS_E8361461&REV_D1\4&332BEDD2&0&20F0 IDT High Definition Audio CODEC HDAUDIO\FUNC_01&VEN_8384&DEV_7664&SUBSYS_104D2200&REV_1002 HDAUDIO\FUNC_01&VEN_8384&DEV_7664&SUBSYS_104D2200 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_8384&DEV_7664&REV_1002 HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_8384&DEV_7664&REV_1002 HDAUDIO\FUNC_01&VEN_8384&DEV_7664&REV_1002 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_8384&DEV_7664 HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_8384&DEV_7664 HDAUDIO\FUNC_01&VEN_8384&DEV_7664 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_8384 HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_8384 HDAUDIO\FUNC_01&VEN_8384 HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B HDAUDIO\FUNC_01&CTLR_VEN_8086 HDAUDIO\FUNC_01&GF&VEN_8384&DEV_7664&SUBSYS_104D2200&REV_1002 HDAUDIO\FUNC_01 do you think i can use the 3 atthe same time with this? Yes, use IOPCIPrimaryMatch instead of IOPCIClassMatch and make 3 entries (one for each card) under IOKitPersonalities. Use a different layout-id for each card and patch AppleHDA accordingly (should work) Hope this helps. Link to comment Share on other sites More sharing options...
jlvaio Posted November 29, 2010 Share Posted November 29, 2010 Yes, it is for Snow only but it properly can be recompiled for Tiger / Leopard.If you want that I'll build it for you. Let me know.... can you do it? cause i use 10.5.8 thank you Link to comment Share on other sites More sharing options...
Time2Retire Posted November 29, 2010 Share Posted November 29, 2010 @Andy: Just an idea of course, but wouldn't this be a great addition for Chameleon? I mean to expand the device-properties injection so that we can do this kind of things without a kext. What do you think? Would this be possible? Link to comment Share on other sites More sharing options...
Andy Vandijck Posted November 29, 2010 Author Share Posted November 29, 2010 can you do it? cause i use 10.5.8 thank you Allready done. Download the DeviceMergeNub_all_os.zip package, navigate within it to build/Release Leopard and use one of the posted plists. It'll work... @Andy: Just an idea of course, but wouldn't this be a great addition for Chameleon? I mean to expand the device-properties injection so that we can do this kind of things without a kext. What do you think? Would this be possible? I believe somebody did that allready (but it only works for the device itself, not the driver classes since they attach after boot) Link to comment Share on other sites More sharing options...
Recommended Posts