domingo, 2 de diciembre de 2012

Solucion a las graficas Fermi

Hola a todos de nuevo, hoy traigo un post relacionado con todos aquellos que utilicen tarjetas gráficas fermi con Os X 10.8.2, que daban problemas como por ejemplo, en el momento de cambiar de resolución que se quedaba la pantalla azul, y de ahi no salía, o que al iniciar el asistente de ahorro de energia se apaga la pantalla, y al momento de volver a querer utilizar el ordenador se quedaba bloqueado. 
Pues bueno, aqui esta la solución sacada de la pagina tonymacx86:

----------------------------------


a) install the desired version of kext using an utilty like KextHelper, that will copy the kext in the right folder and repair the permission. Choose to install in System/Library/Extension if more option is available. Not reboot after this step!!!

b) install the right version of the framework for the kext installed. There are a total of 6 command to launch in the terminal. <folder_that_contain_required_frameworks> must be replaced with the right path were the 3 required frameworks was saved/downloaded. 

Code:
cd /<folder_that_contain_required_frameworks>
sudo rm -r /System/Library/{Frameworks/{OpenGL.framework,OpenCL.framework},PrivateFrameworks/GPUSupport.framework}
sudo ditto --hfsCompression OpenGL.framework /System/Library/Frameworks/OpenGL.framework
sudo ditto --hfsCompression OpenCL.framework /System/Library/Frameworks/OpenCL.framework
sudo ditto --hfsCompression GPUSupport.framework /System/Library/PrivateFrameworks/GPUSupport.framework
sudo chown -R root:wheel /System/Library/{Frameworks/{OpenGL.framework,OpenCL.framework},PrivateFrameworks/GPUSupport.framework}
c) At this the installation is finish. If you want you can install the patch to enable OpenCL for all card, issuing still 1 command in the terminal. Note that the patch to use for driver ML10.8 DP3 is different from the patch to use for the other 2 version (NVidia) of the driver.

So for driver ML10.8 DP3 launch this command:

Code:
sudo perl -p -i.old -e '$c+=s/\x8b\x87\x1c\x0c\x00\x00\x89\x06\x8b\x87\x20\x0c\x00\x00\x89\x02/\x31\xc0\xff\xc0\x89\x06\xff\xc0\xff\xc0\x89\x02\x90\x90\x90\x90/; END { printf "%s: %d substitution%s made.\n",($c==1 ? "Success" : "Error"),$c,(!$c || $c>1 ? "s" : ""); $?=($c!=1); } ' /System/Library/Extensions/GeForceGLDriver.bundle/Contents/MacOS/libclh.dylib
For other (NVidia) driver launch this command:

Code:
sudo perl -p -i.old -e '$c+=s/\x8b\x81\x1c\x0c\x00\x00\xeb\x06\x8b\x81\x20\x0c\x00\x00/\xb8\x02\x00\x00\x00\x90\xeb\x06\xb8\x00\x00\x00\x00\x90/; END { printf "%s: %d substitution%s made.\n",($c==1 ? "Success" : "Error"),$c,(!$c || $c>1 ? "s" : ""); $?=($c!=1); } ' /System/Library/Extensions/GeForceGLDriver.bundle/Contents/MacOS/libclh.dylib
At this point you have finish, cross your finger and reboot ....

Just one more think: I suppose that best solution depend on the graphics card and on the whole system. In my configuration the only solution that works perfectly (no freeze, no problem in change resolution) is the one based on ML 10.8 DPL3. With the NVidia driver the freeze problem are not solved.

For OpenCL apply this patch using terminal after new kext installation:

Code:
sudo perl -p -i.old -e '$c+=s/\x8b\x81\x1c\x0c\x00\x00\xeb\x06\x8b\x81\x20\x0c\x00\x00/\xb8\x02\x00\x00\x00\x90\xeb\x06\xb8\x00\x00\x00\x00\x90/; END { printf "%s: %d substitution%s made.\n",($c==1 ? "Success" : "Error"),$c,(!$c || $c>1 ? "s" : ""); $?=($c!=1); } ' /System/Library/Extensions/GeForceGLDriver.bundle/Contents/MacOS/libclh.dylib


El archivo utilizado es este: V10.8.2-02.zip

Funciona correctamente el sistema de esta forma, cualquier duda, no duden en preguntar y si tienen problemas con el ingles comenten y hago otro post con el mismo contenido pero en español.

Buena suerte!