Jump to content

Mavericks kernel testing on AMD (formerly Mountain Lion kernel testing on AMD)


theconnactic
 Share

6,414 posts in this topic

Recommended Posts

This is interesting....

 

If I boot with AtiConfig=null and my Graphics show as AMD HD 6xxx - Then I get the pink icons, pink screenshots but less artifacts on boot.

 

Booting with AtiConfig=Bulrushes (uses my HDMI port with a HDMI to VGA converter) I get none of the above problems, more artifacts on boot but they go away as the desktop "zooms onto the screen"

 

Darwin amds-mac-pro 13.0.0 Darwin Kernel Version 13.0.0: vr  1 nov 2013 22:57:13 CET; SinetekBronzovkAnVoodoo v2.0.0:xnu-2422.1.72-AMD/BUILD/obj/RELEASE_X86_64 x86_64

Link to comment
Share on other sites

Q: @Andy Vandijck

 

For the VoodooTSCSyncAMD - do we have to edit it like in the past with the VoodooTSCSync?

 

EXAMPLE:

 

1. Right clicked the "VoodooTSCSync.kext" file and clicked "Show package contents". 

 

2. In the "Contents" folder, and opened "Info.plist" with text editor. 

 

3. Change the the string of the first entry depending on the type of CPU you have. 

 

i3 CPU (4 core /4 threads):

Code:

IOCPUNumber

3

i7 CPU - (4 core / 8 threads):

Code:

IOCPUNumber

7

i7 CPU - (6 core / 12 threads):

Code:

IOCPUNumber

11

 

Once you have that changed. Save the file.

Link to comment
Share on other sites

It's not working on my machine at all :( I can see only "Info - Load" which is changing from 2.5 to 30.5 very fast :)

Load is black - it should be blue and green like on yours machines.

 

PS. I don't know if I install everything properly:

 

1. VoodooPState.kext, System.kext, VoodoTSCSyncAMD.kext copy to "Extra" folder or "Extensions" in S/L. (Repair permissions if copy to Extensions)

2. Copy new mach_kernel from andy

3. Reboot

 

And it's not working? I miss something?

Link to comment
Share on other sites

if i have amd fx9370?

 

 

What is the solution to this bug?

IF we do have to edit the AMD version then I think it works like the Intel version where the first digits before the D is how many threads your CPU has. In AMD machines we have 1 thread per core.

 

Note that it is counted as 0 being the first thread.

 

So in your case it would be:

 

Code:

IOCPUNumber

7

 

NOW for the Safari fix: It has been mentioned before using theconnactic's fix. You will find that here:

http://www.insanelymac.com/forum/topic/287453-how-to-enable-safari-with-107-64-bit-or-108-on-amd-machines/

 

With one slight change in the terminal command for mavericks.

defaults write com.apple.Safari IncludeInternalDebugMenu -bool TRUE

Link to comment
Share on other sites

This is interesting....

 

If I boot with AtiConfig=null and my Graphics show as AMD HD 6xxx - Then I get the pink icons, pink screenshots but less artifacts on boot.

 

Booting with AtiConfig=Bulrushes (uses my HDMI port with a HDMI to VGA converter) I get none of the above problems, more artifacts on boot but they go away as the desktop "zooms onto the screen"

 

Darwin amds-mac-pro 13.0.0 Darwin Kernel Version 13.0.0: vr  1 nov 2013 22:57:13 CET; SinetekBronzovkAnVoodoo v2.0.0:xnu-2422.1.72-AMD/BUILD/obj/RELEASE_X86_64 x86_64

 

This is a good chance to point out some information about AtiConfig=. You must use GraphicsEnabler=Yes to have AtiConfig= enabled. Booting with only GraphicsEnabler=Yes will make chameleon use the frame buffer that chameleon has listed for your card. Not using GE or booting with GraphicsEnabler=NO will make the OSX fallback frame buffer RadeonFramebuffer load. RadeonFramebuffer is used by OSX if it has no way to determine what framebuffer should be used and is there so mac users still have graphics incase of a problem, being "generic" or "fallback" this frame buffer will not work with all apps and some will refuse to open or will crash with errors. The reason behind AtiConfig= is to use different framebuffers easily. OSX ati frame buffers are hardcoded for macs and only list mac outputs, so we use AtiConfig=FB to try different frame buffers to get the correct outputs we need. The other option to this is to individually patch the frame buffers with bcc9 method. To be sure that the correct FB is being used, use the ioreg | grep ATY command and check its return.

  • Like 1
Link to comment
Share on other sites

This is a good chance to point out some information about AtiConfig=. You must use GraphicsEnabler=Yes to have AtiConfig= enabled. Booting with only GraphicsEnabler=Yes will make chameleon use the frame buffer that chameleon has listed for your card. Not using GE or booting with GraphicsEnabler=NO will make the OSX fallback frame buffer RadeonFramebuffer load. RadeonFramebuffer is used by OSX if it has no way to determine what framebuffer should be used and is there so mac users still have graphics incase of a problem, being "generic" or "fallback" this frame buffer will not work with all apps and some will refuse to open or will crash with errors. The reason behind AtiConfig= is to use different framebuffers easily. OSX ati frame buffers are hardcoded for macs and only list mac outputs, so we use AtiConfig=FB to try different frame buffers to get the correct outputs we need. The other option to this is to individually patch the frame buffers with bcc9 method. To be sure that the correct FB is being used, use the ioreg | grep ATY command and check its return.

Hi, when i use GraphicsEnabler=Yes afther booting my screen go dark gray whit mouse, i can move mouse but can't do anything eles. . .is this frame buffer maybe solution?

Link to comment
Share on other sites

OK Guys. . .i think i am on right track. . .

In Clover i have select InjectATIRom and VBIOS in fake ID i have put 7970 (even if i have 7870) and that resolved my stuck on dark gray screen. . .there is no artifacts any more. . .but the problem is that is showing that my gpu have only 7MB of ram.. .

post-968257-0-29255900-1383574538_thumb.png

 

Any ideas?

Link to comment
Share on other sites

with clover you need to have InjectATI true and also add FBName section

 

injection is not needed for ati to work since the RadeonFramebuffer was introduced in 10.7 but you do need injection to be able to choose the correct frame buffer and have the card fully recognized 

Link to comment
Share on other sites

with clover you need to have injectATI true and also add FBname section

 

injection is not needed for ati to work since the RadeonFramebuffer was introduced in 10.7 but you do need injection to be able to choose the correct frame buffer and have the card fully recognized 

I am using hamashi for FBName, but in this whey i do not have any artifact's only problem is this 7MB of GDDR Ram (i have 2GB) if that would be fxed we would have 100% working hackintosh whit GE. . .

Link to comment
Share on other sites

i hope you have it as Hamachi*  :P  You can try other FB names too

 

http://www.sendspace.com/file/prtgxd

 

^ Good listed provided by k3nny showing different outputs 

I will try this, but maybe i need to put VRAM in to my DSDT?

I do not know if Clover use DSDT or not, i have my DSDT whit 7870 inject, but i can't see "@0,VRAM,memsize", maybe if i put that?

Link to comment
Share on other sites

sorry, we are getting off topic now..

 

Try any FB name and use what works best in your own tests. Clover is not good at handling dsdt edits for graphics and choosing to use clovers graphic injections together, I've had my own problems with this and have read reports from others having problems as well. i would suggest removing any graphics edits from dsdt when using clover.

Link to comment
Share on other sites

@Sinetek: could you provide me with a full crashreport relating to libGPUMercurySupport.dylib please?

I noticed on my system I can't get otool to disassemble the text section however the Hopper Disassembler works wonders... ;)

That little b*stard tool pulled disassembly of like it was nothing... :D

  • Like 1
Link to comment
Share on other sites

@Sinetek: Full version of the Hopper Disassembler:

https://www.dropbox.com/s/1fzm60738oi7u6z/Hopper%20Disassembler%202.8.1%20%28Original%20with%20patch%20and%20kg%29.zip

I registered it like this:

- Disconnect from the internet

- Generate a key file using a long name (in my case Andy Vandijck)

- Open Hopper Disassembler and insert key file and click validate

- It says it can't do it because of internet issue so open Keygen again and patch the app

- Open app and it works

 

I attached a readout of the disassembled libGPUSupportMercury.dylib :D

EDIT: oh yeah, don't use read binary button but use file - read mach-o 32/64 or it will go back to demo mode untill quit...

libGPUSupportMercury.dylib.asm.zip

  • Like 2
Link to comment
Share on other sites

add your ids directly to the supported kexts. clover patches are done in cache so it would require 2 boots to have your fake id used or it would not be working if you choose to ignore kernel cache

 

not having your correct id in 7000controller kext will cause wrong mem size reported 

Link to comment
Share on other sites

I modified libGPUSupportMercury.dylib

This is a test version.

I think it goes wrong in gpusKillClient

It's the only function that calls an abort if something doesn't check out.

I modified 2 compares and jump if instruction so it doesn't ever enter that abort range.

I think that this kills the app...

I also stripped the code signature from the binary.

So test it please and let me know... :)

Make sure to back up your original libGPUSupportMercury.dylib first before installing it.

 

Take a peek here:

                                            _gpusKillClient:
0000000000002147 55                              push       rbp                           ; XREF=0x24ed, 0x2b38, 0x3515, 0x3658
0000000000002148 4889E5                          mov        rbp, rsp
000000000000214b 4883EC70                        sub        rsp, 0x70
000000000000214f 89F1                            mov        ecx, esi
0000000000002151 488B05A89E0000                  mov        rax, qword [ds:imp___got____stack_chk_guard]
0000000000002158 488B10                          mov        rdx, qword [ds:rax]
000000000000215b 488955F8                        mov        qword [ss:rbp-0x70+var_104], rdx
000000000000215f 48833DD1A4000000                cmp        qword [ds:0xc638], 0x0
0000000000002167 740F                            je         0x2178
                                       ; Basic Block Input Regs: rax rbp -  Killed Regs: rax
0000000000002169 488B00                          mov        rax, qword [ds:rax]
000000000000216c 483B45F8                        cmp        rax, qword [ss:rbp-0x70+var_104]
0000000000002170 751B                            jne        0x218d
                                       ; Basic Block Input Regs: <nothing> -  Killed Regs: rsp rbp
0000000000002172 4883C470                        add        rsp, 0x70
0000000000002176 5D                              pop        rbp
0000000000002177 C3                              ret        
                                       ; Basic Block Input Regs: rdi -  Killed Regs: <nothing>
0000000000002178 F7C700000020                    test       edi, 0x20000000               ; XREF=0x2167
000000000000217e 7512                            jne        0x2192
                                       ; Basic Block Input Regs: <nothing> -  Killed Regs: rdx rdi
0000000000002180 488D7D90                        lea        rdi, qword [ss:rbp-0x70+var_0]
0000000000002184 488D15E3930000                  lea        rdx, qword [ds:0xb56e]        ; "Graphics kernel error: 0x%08x\\n"
000000000000218b EB10                            jmp        0x219d
                                       ; Basic Block Input Regs: <nothing> -  Killed Regs: <nothing>
000000000000218d E8BA8F0000                      call       imp___stubs____stack_chk_fail ; XREF=0x2170
                                       ; Basic Block Input Regs: <nothing> -  Killed Regs: rdx rdi
0000000000002192 488D7D90                        lea        rdi, qword [ss:rbp-0x70+var_0] ; XREF=0x217e
0000000000002196 488D1593930000                  lea        rdx, qword [ds:0xb530]        ; "Graphics hardware encountered an error and was reset: 0x%08x\\n"
                                       ; Basic Block Input Regs: rax rsi -  Killed Regs: rax rsi
000000000000219d 31F6                            xor        esi, esi                      ; XREF=0x218b
000000000000219f 30C0                            xor        al, al
00000000000021a1 E8FA8F0000                      call       imp___stubs__sprintf_l
00000000000021a6 488D4590                        lea        rax, qword [ss:rbp-0x70+var_0]
00000000000021aa 4889058FA40000                  mov        qword [ds:0xc640], rax
00000000000021b1 E89C8F0000                      call       imp___stubs__abort
                        ; endp

Note the 2 strings: "Graphics hardware encountered an error and was reset: 0x%08x\\n" and "Graphics kernel error: 0x%08x\\n" which get pointed to in case

000000000000215f 48833DD1A4000000 cmp qword [ds:0xc638], 0x0
0000000000002167 740F je 0x2178

and/or
000000000000216c 483B45F8 cmp rax, qword [ss:rbp-0x70+var_104]
0000000000002170 751B jne 0x218d
fail...
resulting at the end in

00000000000021b1 E89C8F0000 call imp___stubs__abort

This is abort();

Which terminates the application...

libGPUSupportMercury.dylib.zip

  • Like 4
Link to comment
Share on other sites

I have finished the new kernel with full PM support.

In order to use this version of VoodooPState you will also need to install the new kernel and custom System.kext in /S/L/E (uses new rtc_clock_stepped and rtc_clock_stepping functions).

It has no support for Intel i3/i5/i7 decently so I was unable to test it on my Intel rig, however... it did load with those 2 in place.

I also included a new version of VoodooTSCSyncAMD (compiled for Mavericks).

All was compiled by Xcode 5.0.1 (clang 5.0).

Test it please and report back to me :)

Sources are also included... :D

Hello. New here. I have a spare Laptop to help with the testing. HP Pavilion 2032DX (AMD K10 Turion 2 P520 Socket S1, 4 GB DDR, ATI Mobility Radeon HD 4200, Wifi Ralink RT3090)

The processor supports SSE, SSE2, SSE3, SSE4A, AMD 64, NX and VMX

 

I have a another pc with a virtual manchine running mac os 10.8.2 with helped me to install myhack and create a maverick's usb installer (with MBR support).

 

Can you people point me in the right direction so I can gatter information on how to help to test out this kernel(s) and report back to the devs with logs and stuff. I am a PHP/Ruby Senior Developer and wanted to start developing over Mac os. Wich topics should I cover first, and stuff like that. Sorry if this is feels offtopic, but I want to help out here.

Link to comment
Share on other sites

Well got "Shell" screensaver going.. but now Launchpad is pink again! (wasn't before libGPUSup patched).

 

It took some time 20 or so seconds first; next 5 times faster and faster.

 

post-513502-0-09354100-1383582600_thumb.png

shell screensvr

post-513502-0-25003600-1383582633_thumb.png

pink launchpad

 

Edit: on Radeon hd 5770

 

And ioreg.. 

aplc'sioreg.zip

Link to comment
Share on other sites

Well got "Shell" screensaver going.. but now Launchpad is pink again! (wasn't before libGPUSup patched).

 

It took some time 20 or so seconds first; next 5 times faster and faster.

 

1.png

shell screensvr

3.png

pink launchpad

 

Edit: on Radeon hd 5770

 

And ioreg..

aplc'sioreg.zip

Well, at least apps won't crash anymore due to that library...

EDIT: Could others do some tests on the patched dylib? I need more reports...

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...