nmano Posted June 30, 2013 Share Posted June 30, 2013 If work or not I can test Thank you. Link to comment Share on other sites More sharing options...
Andy Vandijck Posted June 30, 2013 Author Share Posted June 30, 2013 Little update: V1.5b - Recompiled 32-bit kext binary for 10.5 and above - Recompiled 64-bit kext binary for 10.6 and above - Merged both binaries in one universal binary so the kext now works on 10.5 and better So it now works on 10.5 and better fully. SomeOne made inject 5000conroller http://www.osx86.net/view/3970-hd_5xxx.html Hi Andy, I try to make for our 6950/6970 Can you fix this AMD6000Injector please This is ori ati kexts from 10.9 dp2 http://www.mediafire.com/download/bfnhi7b9lsexe69/ati_ori_10.9_dp2.zip I'll check. Could you give me your .ioreg file from IORegistryExplorer please? Thanks EDIT: Test the attached file, it should work with controller and Cayman IOAccelerator AMD6000Injector.kext.zip 1 Link to comment Share on other sites More sharing options...
Marchrius Posted June 30, 2013 Share Posted June 30, 2013 Hi Andy, First of all grat app! I've used it for my esternal Majestic (broken EDID) TV LCD HDMI (now an iMac display ahahah) I'm curious and I've seen the source of the app. When you grep the DeviceID and other ID you use for four time the function system and then you parse each file and the code is very very very long! I've changed the code and I attach at this post the diff files. P.S. I've made a function that convert the hex string (w/o the "0x") in long int to convert the DisplayProductID and DisplayVendorID without re-run the task... Tell me if the code was helpful... AppDelegate.m.diff.zip 1 Link to comment Share on other sites More sharing options...
nmano Posted July 1, 2013 Share Posted July 1, 2013 my ioreg rename AMDRadeonX3000 look inside folder give me 5 mts i test your kext and detail. 10.9 dp26950.zip Link to comment Share on other sites More sharing options...
nmano Posted July 1, 2013 Share Posted July 1, 2013 Hi Andy After install your kest with all ort kexts. graphics with dsdt stack there look image view this image ple http://www.mediafire.com/?pb7kcps4n640480 Link to comment Share on other sites More sharing options...
Andy Vandijck Posted July 1, 2013 Author Share Posted July 1, 2013 Hi Andy, First of all grat app! I've used it for my esternal Majestic (broken EDID) TV LCD HDMI (now an iMac display ahahah) I'm curious and I've seen the source of the app. When you grep the DeviceID and other ID you use for four time the function system and then you parse each file and the code is very very very long! I've changed the code and I attach at this post the diff files. P.S. I've made a function that convert the hex string (w/o the "0x") in long int to convert the DisplayProductID and DisplayVendorID without re-run the task... Tell me if the code was helpful... Thanks for your contribution.I'll check it this evening Link to comment Share on other sites More sharing options...
Andy Vandijck Posted July 1, 2013 Author Share Posted July 1, 2013 I've made a function that convert the hex string (w/o the "0x") in long int to convert the DisplayProductID and DisplayVendorID without re-run the task... Tell me if the code was helpful... Thanks Marchrius, I added the routine in ObjC manner and changed the routine that sets the values. The code was very useful. Thanks a lot again for your contribution, it really speeds up the set routine (3 ioreg parses instead of 5) New version: V1.7 - Added version override to EDID V1.4 (fixes some issues) - Added option for adding / fixing monitor ranges descriptor (missing in some EDID's but required by EDID V1.3 or V1.4) - Option for adding / fixing monitor ranges is by default enabled but can be disabled by unchecking the checkbox Link to comment Share on other sites More sharing options...
nmano Posted July 1, 2013 Share Posted July 1, 2013 Hi andy always black screen come with original kexts with AMD6000Injector.kext with out injector also same I note AMD GraphicsAcc Device in slot —1 Can look my image I was upload ioreg. Thank you Link to comment Share on other sites More sharing options...
Marchrius Posted July 1, 2013 Share Posted July 1, 2013 Hi Anvy, I'm here again! -(void)GetScreenVendorDevice:(id)sender { ScreenNrString = [ScreenNr stringValue]; screennr = atoi([ScreenNrString cStringUsingEncoding:NSUTF8StringEncoding]); if (screennr == 0) { NSRunAlertPanel(@"Invalid screen nr!", @"Correct the screen nr!", @"OK", nil, nil); return; } NSMutableDictionary *displayInfo = [[NSMutableDictionary alloc] init]; NSString* outStr; NSTask *task = [NSTask new]; NSPipe *pipe = [NSPipe pipe]; //IODisplayPrefsKey [task setLaunchPath:@"/bin/sh"]; [task setArguments:[NSArray arrayWithObjects:@"-c", @"ioreg -lxw0 | grep IODisplayPrefsKey | cut -d\"=\" -f2 | cut -d\"\\\"\" -f2", nil]]; [task setStandardOutput:pipe]; [task launch]; outStr = [[[NSString alloc] initWithData:[[pipe fileHandleForReading] readDataToEndOfFile] encoding:NSUTF8StringEncoding] autorelease]; outStr = [outStr substringToIndex:[outStr length]-1]; [displayInfo setObject:outStr forKey:@"IODisplayPrefsKey"]; outStr = [outStr lastPathComponent]; [displayInfo setObject:[[outStr componentsSeparatedByString:@"-"] objectAtIndex:1] forKey:@"DisplayVendorID"]; [displayInfo setObject:[[outStr componentsSeparatedByString:@"-"] objectAtIndex:2] forKey:@"DisplayProductID"]; [DeviceID setStringValue:[displayInfo objectForKey:@"DisplayProductID"]]; [DeviceDecID setStringValue:[NSString stringWithFormat:@"%ld",hex2int((char*)[[displayInfo objectForKey:@"DisplayProductID"] UTF8String])]]; [VendorID setStringValue:[displayInfo objectForKey:@"DisplayVendorID"]]; [VendorDecID setStringValue:[NSString stringWithFormat:@"%ld",hex2int((char*)[[displayInfo objectForKey:@"DisplayVendorID"] UTF8String])]]; [DisplayPrefsKey setStringValue:[displayInfo objectForKey:@"IODisplayPrefsKey"]]; if ([[[DisplayPrefsKey stringValue] lastPathComponent] rangeOfString:@"AppleDisplay"].length>0) { [DisplayClassButton selectItemAtIndex:0]; displayclass = 1; } else if ([[[DisplayPrefsKey stringValue] lastPathComponent] rangeOfString:@"AppleBacklightDisplay"].length>0) { [DisplayClassButton selectItemAtIndex:1]; displayclass = 2; } } With this part you can do only one ioreg call (trought the nstask) and you can speed up the function. Replace, if you haven't make modifications to this function, and tell me is all ok... 1 Link to comment Share on other sites More sharing options...
Andy Vandijck Posted July 1, 2013 Author Share Posted July 1, 2013 Hi Anvy, I'm here again! -(void)GetScreenVendorDevice:(id)sender { ScreenNrString = [ScreenNr stringValue]; screennr = atoi([ScreenNrString cStringUsingEncoding:NSUTF8StringEncoding]); if (screennr == 0) { NSRunAlertPanel(@"Invalid screen nr!", @"Correct the screen nr!", @"OK", nil, nil); return; } NSMutableDictionary *displayInfo = [[NSMutableDictionary alloc] init]; NSString* outStr; NSTask *task = [NSTask new]; NSPipe *pipe = [NSPipe pipe]; //IODisplayPrefsKey [task setLaunchPath:@"/bin/sh"]; [task setArguments:[NSArray arrayWithObjects:@"-c", @"ioreg -lxw0 | grep IODisplayPrefsKey | cut -d\"=\" -f2 | cut -d\"\\\"\" -f2", nil]]; [task setStandardOutput:pipe]; [task launch]; outStr = [[[NSString alloc] initWithData:[[pipe fileHandleForReading] readDataToEndOfFile] encoding:NSUTF8StringEncoding] autorelease]; outStr = [outStr substringToIndex:[outStr length]-1]; [displayInfo setObject:outStr forKey:@"IODisplayPrefsKey"]; outStr = [outStr lastPathComponent]; [displayInfo setObject:[[outStr componentsSeparatedByString:@"-"] objectAtIndex:1] forKey:@"DisplayVendorID"]; [displayInfo setObject:[[outStr componentsSeparatedByString:@"-"] objectAtIndex:2] forKey:@"DisplayProductID"]; [DeviceID setStringValue:[displayInfo objectForKey:@"DisplayProductID"]]; [DeviceDecID setStringValue:[NSString stringWithFormat:@"%ld",hex2int((char*)[[displayInfo objectForKey:@"DisplayProductID"] UTF8String])]]; [VendorID setStringValue:[displayInfo objectForKey:@"DisplayVendorID"]]; [VendorDecID setStringValue:[NSString stringWithFormat:@"%ld",hex2int((char*)[[displayInfo objectForKey:@"DisplayVendorID"] UTF8String])]]; [DisplayPrefsKey setStringValue:[displayInfo objectForKey:@"IODisplayPrefsKey"]]; if ([[[DisplayPrefsKey stringValue] lastPathComponent] rangeOfString:@"AppleDisplay"].length>0) { [DisplayClassButton selectItemAtIndex:0]; displayclass = 1; } else if ([[[DisplayPrefsKey stringValue] lastPathComponent] rangeOfString:@"AppleBacklightDisplay"].length>0) { [DisplayClassButton selectItemAtIndex:1]; displayclass = 2; } } With this part you can do only one ioreg call (trought the nstask) and you can speed up the function. Replace, if you haven't make modifications to this function, and tell me is all ok... Can this handle multiple displays? It doesn't look like it. In case of multiple displays this indeed does not work right but it is a fun idea. I'll adapt it EDIT: I also tested 3 displays iMac and LED Cinema display can handle HDMI audio Thunderbolt display can't handle HDMI audio Cinema HD display and MacBook Pro display (obviously not needed for HDMI) not tested. @Marchrius: Thanks another time for your contribution, I adapted it to be able to handle multiple display entries and it still is very close to your code. It now works really fast. (1 run through NSTask into and NSPipe directly instead of 3 separate system ran tasks with file reading) It also gets the vendor and device id from the IODisplayPrefs key now. Feel free to look at the code from FixEDID V1.8 Link to comment Share on other sites More sharing options...
pico joe Posted July 1, 2013 Share Posted July 1, 2013 Hi Andy, nice app.. great works, http://cl.ly/image/302a2t020N1T Link to comment Share on other sites More sharing options...
Andy Vandijck Posted July 2, 2013 Author Share Posted July 2, 2013 New version: V1.9 Fully implemented Marchrius his improvements which he gave me over PM. Credits for the improvements of 1.9 fully go to Marchrius. See opening post for changes Link to comment Share on other sites More sharing options...
nyolc8 Posted July 3, 2013 Share Posted July 3, 2013 Please... make a description why is this needed exactly... and why this is better (if it's better) than using the display as it is. 1 Link to comment Share on other sites More sharing options...
Andy Vandijck Posted July 3, 2013 Author Share Posted July 3, 2013 Please... make a description why is this needed exactly... and why this is better (if it's better) than using the display as it is. The advantages are: - Better colors - Apple recognized display instead of default display Link to comment Share on other sites More sharing options...
nyolc8 Posted July 3, 2013 Share Posted July 3, 2013 The advantages are: - Better colors - Apple recognized display instead of default display Now that is the thing I don't get... how I get better colors? The system just uses another color profile, or this is something different? Link to comment Share on other sites More sharing options...
AkimoA Posted July 3, 2013 Share Posted July 3, 2013 Thanks Andy, i do like your mergers http://cl.ly/image/211y0I2H1g3Z Link to comment Share on other sites More sharing options...
xmen107 Posted July 3, 2013 Share Posted July 3, 2013 Hi Andy work for me but... kernel extensions not signed... from Maverick DP2...seems that in the future we all have problems with extensions Link to comment Share on other sites More sharing options...
nyolc8 Posted July 3, 2013 Share Posted July 3, 2013 Hi Andy work for me but... kernel extensions not signed... from Maverick DP2...seems that in the future we all have problems with extensions Epic horizontal resolution there... lol Btw you can fix that warning window by editing AppleKextExcludeList.kext. 1 Link to comment Share on other sites More sharing options...
AkimoA Posted July 3, 2013 Share Posted July 3, 2013 lol this is Funny not identified Dev ...on the other hand mentioned at least 10 times in the Exclude.kext . Btw you can fix that warning window by editing AppleKextExcludeList.kext. and it allready comes in handy that suspicious {censored} Link to comment Share on other sites More sharing options...
xmen107 Posted July 3, 2013 Share Posted July 3, 2013 Epic horizontal resolution there... lol Btw you can fix that warning window by editing AppleKextExcludeList.kext. ok can you tell me how to fix this? Link to comment Share on other sites More sharing options...
AkimoA Posted July 3, 2013 Share Posted July 3, 2013 Go add it in the OSKextSigExceptionsList inside Info.plist of the Kext save it reinstall run Kext Utility prob reboot aswell Link to comment Share on other sites More sharing options...
xmen107 Posted July 3, 2013 Share Posted July 3, 2013 Go add it in the OSKextSigExceptionsList inside Info.plist of the Kext save it reinstall run Kext Utility prob reboot aswell Many Thanks Bro.... Worked Link to comment Share on other sites More sharing options...
nmano Posted July 4, 2013 Share Posted July 4, 2013 Hi Andy My graphics card 6950 in 10.9 {AMD Cayman Graphics Accelerator Device in SLOT 1} after this Black screen Any idia Thank you. Link to comment Share on other sites More sharing options...
xmen107 Posted July 5, 2013 Share Posted July 5, 2013 I tried to remove the fakesmc to test the system boots ... but it takes a long time because ... :: ACPI_SMC_PlatformPlugin registerLPCDriver - failed to locate SMC driver, so i have to continue to use the fakesmc lol Link to comment Share on other sites More sharing options...
JUN Ho Posted July 7, 2013 Share Posted July 7, 2013 Hi, Andy It works good. Thank you !! I install DisplayMergeNub.kext to S/L/E now. I use Clover bootloader, so I try to use clover's kext injection function. I put DisplayMergeNub.kext in EFI/Clover/Kexts/10.8, and delete DisplayMergeNub.kext of S/L/E. After reboot I can see the DisplayMergeNub.kext inject properly by clover in clover's boot log, but it doesn't work. Is DisplayMergeNub.kext works only installed in S/L/E ? Link to comment Share on other sites More sharing options...
Recommended Posts