Jump to content

GUIA: instalación de ATI Radeon 6850 en Lion


92 posts in this topic

Recommended Posts

las especificaciones de las salidas:

 

http://www.sapphiretech.com/presentation/product/?cid=1&gid=3&sgid=1037&pid=497&psn=&lid=1&leg=0

 

y en el archivo va la rom salvada desde ambos programas que me facilitastes, también he incluido dos kexts, uno el de ML (Puma), el otro el de Lion ya que son diferentes y uso los dos sistemas:

 

http://db.tt/lDZJqOcN

 

cualquier cosa o si hay algo mal me lo comentas

Link to comment
Share on other sites

Hola a todos!

Una pregunta sencilla...

¿Este proceso es para injertar los parámetros que faltan al utilizar el GraphicsEnabler?

(que por defecto no injecta esa parte de información HDMi)

 

¿O es un ejercicio de injection en .aml?

 

Saludos

Fabio

Link to comment
Share on other sites

Hola a todos!

Una pregunta sencilla...

¿Este proceso es para injertar los parámetros que faltan al utilizar el GraphicsEnabler?

(que por defecto no injecta esa parte de información HDMi)

 

¿O es un ejercicio de injection en .aml?

 

Saludos

Fabio

 

Hola Fabio,

 

El proceso de inyección es para seleccionar correctamente el FrameBuffer acorde con nuestra gráfica. Dicho FrameBuffer contiene información acerca de los conectores (el ConnectorInfo). La inyección puede realizarse usando GraphicsEnabler=Yes o usando DSDT. Si usas GE, el bootloader aplica la cantidad de puertos, así como el FrameBuffer según una tabla que contiene una lista de Vendor y Device ID's para tarjetas ATI, y que supongo que según la experiencia de los usuarios se va rellenando con el FrameBuffer que "mejor" funciona para dicha tarjeta. Como ves aquí, el mismo modelo de tarjeta tiene un ConnectorInfo muy diferente, por lo que puede ser que utilice un FrameBuffer diferente.

 

El problema real es que por mucho que inyectemos el FrameBuffer queremos que cargue OSX, e información de los conectores, el KEXT que se encargará de manejar los conectores de nuestra tarjeta no contiene la información "exacta" de dichos conectores puesto que cada tarjeta es diferente, de ahí que suela funcionar correctamente "alguno" de los conectores de nuestra gráfica y no todos.

 

En cuanto a inyección, aparte de la inyección automática que hace el bootloader (con la tabla citada antes) usando GE=Yes, tenemos la opción de usar los flags AtiConfig y AtiPorts, con los que le indicamos exactamente el FrameBuffer que queremos que inyecte, así como la cantidad de puertos (conectores) que trae nuestra gráfica. Yo prefiero hacer dicha inyección desde DSDT, para ello podemos inyectar el FrameBuffer, así como la cantidad de conectores, el tipo de zócalo (PCI-E), la cantidad de memoria, e incluso el "tipo" y orden de cada conector (vendorid, deviceid, etc, etc.), en definitiva "pulir mucho mejor la inyección"....

 

Hasta ahí la inyección para que OSX sepa qué FrameBuffer usar. Ahora viene el problema de cómo hacer que todo funcione como debe. Hay varios KEXTS para manejar las tarjetas ATI, y van acorde con la serie de tarjetas que manejan. 4xxx, 5xxx, 6xxx, etc... Dichos KEXTS contienen FrameBuffers diferentes según el modelo concreto de gráfica, y está estrechamente ligado a la cantidad y tipo de conectores de cada una de las tarjetas de dicha serie.

 

Apple programa los FrameBuffers de tal forma que el ConnectorInfo coincida con las tarjetas gráficas que monta en sus equipos o a las que "pretende" dar soporte en un futuro. Dichas tarjetas tienen una configuración muy concreta de conectores, y no tienen por qué coincidir con los conectores de nuestra gráfica. El proceso que estámos tratando aquí, sería el de "modificar" a nivel binario el KEXT de la serie que controla el modelo de tarjeta que tenemos, de tal forma que el ConnectorInfo coincida con los conectores que tiene la misma.

 

Para ello, necesitamos la ROM de nuestra tarjeta. Dicho archivo lo leemos con las aplicaciones descritas para decodificar el "ConnectorInfo", y en base a dicha información "buscamos" el FrameBuffer que contenga una cantidad y tipo de conectores lo más parecido a ésta. A partir de dicho FrameBuffer, editamos los Bytes de cada conector, de tal forma que coincida con la información arrojada por nuestro ROM file.

 

De esta forma, inyectamos el FrameBuffer elegido, así como la cantidad y tipo de conectores en DSDT y sobreescribimos el KEXT nativo de la versión de OSX que estamos tratando por el que hemos modificado, y si todo va bien, deberíamos tener todos los conectores de nuestra gráfica funcionando (incluído Audio en caso de HDMI tras inyección de audio vía DSDT). La base de todo este proceso, es la documentación de que disponemos acerca de estos ConnecotrInfo gracias a código fuente ATI de Linux: ConnectorType, ControlFlags, Features, Transmitter, Encoder, HotPlugID, SenseID...

 

Espero haber aclarado tus dudas, así como no haberme equivocado en ningún concepto.

 

Un saludo.

 

PD: Si tienes ATI y te falla alguno de los conectores, no dudes en decirlo para probar a editar tu KEXT y así mejoramos los conocimientos sobre el tema entre todos.

Link to comment
Share on other sites

las especificaciones de las salidas:

 

http://www.sapphiret...sn=&lid=1&leg=0

 

y en el archivo va la rom salvada desde ambos programas que me facilitastes, también he incluido dos kexts, uno el de ML (Puma), el otro el de Lion ya que son diferentes y uso los dos sistemas:

 

http://db.tt/lDZJqOcN

 

cualquier cosa o si hay algo mal me lo comentas

 

Hola surfcaster,

 

DSDT:

 

 


Device (GFX0)
{
Name (_ADR, Zero)
Method (_DSM, 4, NotSerialized)
{
	Store (Package (0x42)
	{
			"@0,AAPL,boot-display",
			Buffer (0x04)
			{
					0x01, 0x00, 0x00, 0x00 /* Tarjeta principal */
			},
			"@0,compatible",
			Buffer (0x0D)
			{
					"ATY,Duckweed" /* FrameBuffer */
			},
			"@0,connector-type",
			Buffer (0x04)
			{
					0x00, 0x04, 0x00, 0x00 /* Conector #0 tipo DisplayPort */
			},
			"@0,device_type",
			Buffer (0x08)
			{
					"display"
			},
			"@0,display-type",
			Buffer (0x05)
			{
					"NONE"
			},
			"@0,name",
			Buffer (0x0D)
			{
					"ATY,Duckweed" /* FrameBuffer */
			},
			"@0,VRAM,memsize",
			Buffer (0x08)
			{
					/* 0000 */	  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40 /* Memoria: 0x40 = 1GB (0x20 = 512MB, 0x10 = 256MB) */
			},
			"@1,compatible",
			Buffer (0x0D)
			{
					"ATY,Duckweed" /* FrameBuffer */
			},
			"@1,connector-type",
			Buffer (0x04)
			{
					0x00, 0x80, 0x00, 0x00 /* Conector #1 tipo HDMI */
			},
			"@1,device_type",
			Buffer (0x08)
			{
					"display"
			},
			"@1,display-type",
			Buffer (0x05)
			{
					"NONE"
			},
			"@1,name",
			Buffer (0x0D)
			{
					"ATY,Duckweed" /* FrameBuffer */
			},
			"@2,compatible",
			Buffer (0x0D)
			{
					"ATY,Duckweed" /* FrameBuffer */
			},
			"@2,connector-type",
			Buffer (0x04)
			{
					0x04, 0x00, 0x00, 0x00 /* Conector #2 tipo DVI DualLink */
			},
			"@2,device_type",
			Buffer (0x08)
			{
					"display"
			},
			"@2,display-type",
			Buffer (0x05)
			{
					"NONE"
			},
			"@2,name",
			Buffer (0x0D)
			{
					"ATY,Duckweed" /* FrameBuffer */
			},
			"@3,compatible",
			Buffer (0x0D)
			{
					"ATY,Duckweed" /* FrameBuffer */
			},
			"@3,connector-type",
			Buffer (0x04)
			{
					0x00, 0x02, 0x00, 0x00 /* Conector #3 tipo DVI SingleLink */
			},
			"@3,device_type",
			Buffer (0x08)
			{
					"display"
			},
			"@3,display-type",
			Buffer (0x05)
			{
					"NONE"
			},
			"@3,name",
			Buffer (0x0D)
			{
					"ATY,Duckweed" /* FrameBuffer */
			},
			"AAPL,aux-power-connected",
			Buffer (0x04)
			{
					0x01, 0x00, 0x00, 0x00 /* Tiene alimentación auxiliar */
			},
			"AAPL,slot-name",
			Buffer (0x09)
			{
					"PCIe x16" /* Tipo de conector PCI Express */
			},
			"ATY,Card#",
			Buffer (0x0F)
			{
					"113-E14802-X06"
			},
			"ATY,Copyright",
			Buffer (0x33)
			{
					"Copyright AMD Inc. All Rights Reserved. 2005-2008"
			},
			"ATY,Rom#",
			Buffer (0x0F)
			{
					"113-B7710C-176"
			},
			"ATY,VendorID",
			Buffer (0x02)
			{
					0x02, 0x10 /* VendorID de AMD */
			},

			"ATY,DeviceID",
			Buffer (0x02)
			{
					0x39, 0x67 /* DeviceID de 6850 */
			},

			"device_type",
			Buffer (0x13)
			{
					"ATY,DuckweedParent"
			},
			"model",
			Buffer (0x21)
			{
					"Sapphire HD 6850 1GB GDDR5 PCI-E" /* Marca y modelo de tarjeta que se mostrará en Perfil de sistema*/
			},
			"name",
			Buffer (0x13)
			{
					"ATY,DuckweedParent"
			},
			"hda-gfx",
			Buffer (0x0A)
			{
					"onboard-1" /* Audio HDMI */
			}
	}, Local0)
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
	Return (Local0)
}
}

Device (HDAU)
{
Name (_ADR, One)
Method (_DSM, 4, NotSerialized)
{
	Store (Package (0x02)
	{
		"hda-gfx",
		Buffer (0x0A)
		{
			"onboard-1"
		}
	}, Local0)
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
	Return (Local0)
}
}


 

 

GE=No, NO AtiConfig, NO AtiPorts

 

Prueba y comentas... ;)

 

PD: ¿Qué tal va tu placa? Funciona todo ok? Tiene SATA3 nativo? He visto en un hilo que tenías problemas con SpeedStep, lo solucionaste?

ATI6000Controller_10.7.4+10.8.DP3.zip

Edited by Hard233
Por favor utilizar el spoiler.
Link to comment
Share on other sites

Funciona perfectamente en los dos puertos DVI, no puedo probar el HDMI pero tampoco lo uso, lo de desenchufar o enchufar en caliente pues como que no ya que me quedo sin imagen y se me apaga el monitor, tan solo me encuentro un pequeño problema da igual que use GraficsEnabler=yes o No, en dispositivos PCI esta perfectamente reconocida pero en gráficos/pantallas aparece un mensaje que se produjo un error al intentar obtener la información, veras que esta como MacBookpro, hice la prueba con los dos SMBIOS, el de iMac y el de MacBP por si las moscas porque como estoy de pruebas en un externo con CLOVER, cada dos por tres voy cambiando por las pruebas pero el resultado es el mismo, lo mismo en Lion que en ML, dicho problema viene desde el DSDT ya que con esa inyección y el kext original sin tocar sucede lo mismo.

 

 

Sinttulo-1.jpg

Sinttulo1.jpg

 

 

 

Ok, gracias Juanerson a veces se olvidan algunas cosas.

 

PD: ¿Qué tal va tu placa? Funciona todo ok? Tiene SATA3 nativo? He visto en un hilo que tenías problemas con SpeedStep, lo solucionaste?

 

Si, la placa va perfectamente bien, incluso el USB 3.0, todo ok, lo único que ahora el USB 3.0 esta deshabitado para poder iniciar CLOVER ya que hay alguna cosa que no le deja arrancar, en Chamaleon sin problemas y el Speedstep es bastante complicado a no ser que use el SMBIOS de MBP 8.3, entonces funciona como una delicia.

Link to comment
Share on other sites

Sufcaster ya lo sabe que en mi placa SpeedStep no lo he conesguido, sólo los 2 estados mínimo y máximo, a pesar de haber probado varias cosas de las que se proponen en la red. Suelo usar SMBIOS de iMac12,2 por haber leído a Juanerson que es uno de los modelos que tienen SpeedStep nativo, pero nunca he visto más de esos 2 estados.

 

Dices que con MacBookPro8,3 va mejor el SpeedStep en tu caso, probaré por si acaso aunque a nivel de hardware se diferencia de mi PC de escritorio.

 

Hola Fabio,

 

El proceso de inyección es para seleccionar correctamente el FrameBuffer acorde con nuestra gráfica ... / ...

 

Espero haber aclarado tus dudas, así como no haberme equivocado en ningún concepto ... / ...

 

Excelente explicación resumida, aunque ya te había leído antes sobre este tema, te explicas perfectamente.

 

No olvido lo de buscar más info sobre conectores y flags pero por ahora no tengo nada nuevo.

Link to comment
Share on other sites

Sufcaster ya lo sabe que en mi placa SpeedStep no lo he conesguido, sólo los 2 estados mínimo y máximo, a pesar de haber probado varias cosas de las que se proponen en la red. Suelo usar SMBIOS de iMac12,2 por haber leído a Juanerson que es uno de los modelos que tienen SpeedStep nativo, pero nunca he visto más de esos 2 estados.

Bueno, es que ese tema tiene mucha más tela que cortar que sólo la selección del perfil ESTáNDAR, también existen OPCIONES HíBRIDAS como por ejemplo editar y utilizar un iMac12_2.plist modificado con SP13 de MBP8,3 para obtener más estados en sandy bridge, "siendo en mi opinión" esa la mejor opción para ustedes, aunque NO sea lo más elegante... ya que lo recomendable como prioridad en el tema de gestión de energía es ajustarse al Tipo de Sistema (system type), puesto que al fin y al cabo la iMac12,2 (como todas las iMac) es prácticamente eso, un híbrido entre portátil y PC de escritorio, sin embargo su "system type" difiere de ésos dos. En ese sentido, sobretodo habrá que tocar el punto en la 10.7.4 (próxima a salir) y ML... porque hay cosas que mucha gente tendrá que pulir con respecto al tema SpeedStep nativa, por ejemplo corregir las tablas SSDT siguiendo la "norma Apple" para los p-states, nueva gestión de energía (AICPM), también se esperan cambios relevantes en FakeSMC (+ plugins), etc. En fin, los compañeros Eduardo y Eurisko (en nosolohd) son veteranos implementando perfiles, jejeje. Pero por favor no mezclemos los temas, podemos abrir discusiones específicas. Por cierto, mis felicitaciones a todos los involucrados en este proyecto, muy interesante. Saludos.

 

P.D. El bloque SP13 es el que determina la lectura de los P-states y su throttling (escalado de frecuencia dinámica).

Link to comment
Share on other sites

Funciona perfectamente en los dos puertos DVI, no puedo probar el HDMI pero tampoco lo uso, lo de desenchufar o enchufar en caliente pues como que no ya que me quedo sin imagen y se me apaga el monitor, tan solo me encuentro un pequeño problema da igual que use GraficsEnabler=yes o No, en dispositivos PCI esta perfectamente reconocida pero en gráficos/pantallas aparece un mensaje que se produjo un error al intentar obtener la información, veras que esta como MacBookpro, hice la prueba con los dos SMBIOS, el de iMac y el de MacBP por si las moscas porque como estoy de pruebas en un externo con CLOVER, cada dos por tres voy cambiando por las pruebas pero el resultado es el mismo, lo mismo en Lion que en ML, dicho problema viene desde el DSDT ya que con esa inyección y el kext original sin tocar sucede lo mismo.

 

Hola surcaster,

 

He re-editado el DSDT. Prueba a ver si ahora no da el error en el Perfil de Sistema...

 

Te preguntaba por tu placa, porque tengo en mente comprar esta semana un placa nueva para i7 y estoy indeciso entre Gigabyte (llevo mucho tiempo usandolas para OSX) o las nuevas ASUS con UEFI... pero busco buena compatibilidad SATA3 nativo para un SSD que quiero comprar...

 

En cuanto al SpeedStep, gracias a Juanerson y miliuco por la Info, en cuanto me ponga con ello postearé mis resultados en otro hilo para no mezclar temas...

 

Salu2.

Link to comment
Share on other sites

Hard233 me da la imrpresión que incluir la sección APPL en el DSDT de la 6850 es lo que esta evitando que salga en el perfil del sistema, por que esa sección se usa más en nvidia.

 

No creo que ese sea el problema, no obstante vamos a ver si surcaster prueba el nuevo código y salimos de dudas....

Link to comment
Share on other sites

...el Speedstep es bastante complicado a no ser que use el SMBIOS de MBP 8.3, entonces funciona como una delicia.

Entocnes mejor seguire usando Socket 1366, aunque quería abaratar costes.. Qué perfil usas normalmente? Por qué no usas el del MacbookPro8,3, si todo va ok?

No olvido lo de buscar más info sobre conectores y flags pero por ahora no tengo nada nuevo.

 

Yo tampoco encuentro muho... :(

Link to comment
Share on other sites

Ahora perfecto tanto en Lion 10.7.4 como en ML DP3, los dos DVI funcionando aunque no puedo hacer el cambio en caliente si lo hago con la maquina en marcha no levanta al monitor, se queda en pantalla negra y acaba apagandose el monitor entonces debo volver a enchufarlo en el que estaba iniciado, debo reiniciar si quiero usar uno u otro, toda la información en gráficos/pantallas perfecta, lógicamente sin ningún flag en Chamaleon, es decir GraficsEnabler=No, muchas gracias por ete trabajo, cualquier cosa que necesites saber o probar esta a tu disposición, de la gráfica o de la maquina.

Link to comment
Share on other sites

Ahora perfecto tanto en Lion 10.7.4 como en ML DP3, los dos DVI funcionando aunque no puedo hacer el cambio en caliente si lo hago con la maquina en marcha no levanta al monitor, se queda en pantalla negra y acaba apagandose el monitor entonces debo volver a enchufarlo en el que estaba iniciado, debo reiniciar si quiero usar uno u otro, toda la información en gráficos/pantallas perfecta, lógicamente sin ningún flag en Chamaleon, es decir GraficsEnabler=No, muchas gracias por ete trabajo, cualquier cosa que necesites saber o probar esta a tu disposición, de la gráfica o de la maquina.

 

Hola surfcaster,

 

Prueba a ver este nuevo kext y echa un ojo a ver si ahora va el HotPlug...

ATI6000Controller_10.7.4+10.8.DP3_v2.zip

Link to comment
Share on other sites

uuuupppps, pues después de editar dejo lo de uuuuppppps, probado el nuevo kext, la primera kp de varios idiomas (hacia tiempo que no veía esas cosas jeje), reinicio y justo en la pantalla de login antes de salir la ventanilla media pantalla a puntitos muy seguidos por la parte de abajo como si fuesen rallas, de ahí no he podido salir ya, he tenido que restaurar el anterior kext

Link to comment
Share on other sites

uuuupppps, pues después de editar dejo lo de uuuuppppps, probado el nuevo kext, la primera kp de varios idiomas (hacia tiempo que no veía esas cosas jeje), reinicio y justo en la pantalla de login antes de salir la ventanilla media pantalla a puntitos muy seguidos por la parte de abajo como si fuesen rallas, de ahí no he podido salir ya, he tenido que restaurar el anterior kext

 

uuuuup si... Prueba estos ahora a ver qué pasa...

ATI6000Controller_10.7.4+10.8.DP3_V3.zip

Link to comment
Share on other sites

Tarjeta gráfica ASUS EAH6850 (Radeon 6850) en Lion 10.7.3: modificar ATI6000controller mediante script de Perl

 

Nota: es recomendable consultar el primer post del hilo de Alexander Martinez sobre el modelo XFX HD6850, en él se propone un método avanzado de configurar el chip gráfico Radeon 6850 en Lion para que todos los puertos funcionen adecuadamente. Consulta también este hilo de Shiecldk referido al modelo ASUS EAH6850.

 

Mientras esperamos la aplicación que modifique ATI6000Controller de forma más sencilla y aprovechando que tenemos una información de conectores elaborada por Hard233 (¡gracias!) que funciona muy bien, voy a comentar en este texto cómo modificar la extensión original de Apple con un script de Perl (SP en adelante).

 

El método de Alexander Martinez para su tarjeta XFX HD6850 se basa en:

  • extraer la ROM de la tarjeta ATI y descodificarla para identificar el orden y tipo de conectores que la GPU utiliza como enlaces físicos para comunicarse con cada puerto
  • obtener las personalidades (framebuffers) existentes en nuestro sistema leyéndolas desde las extensiones gráficas (ATI6000Controller en nuestro caso)
  • probar con diferentes framebuffers y conectores hasta conseguir averiguar la combinación adecuada para que todos los puertos de la tarjeta funcionen correctamente, esta es la parte más laboriosa del proceso y la que requiere mayores conocimientos para llevarla a cabo
  • modificar el archivo ATI6000Controller a nivel hexadecimal, substituyendo los datos de los conectores por los datos válidos anotados en el paso anterior.
  • el post contiene los nombres de los programas requeridos para extraer la ROM (GPU-Z en Windows), descodificarla (radeon_bios_decode creado por bcc9) y obtener los framebuffers (aty_personality.py también creado por bcc9).

En resumen, se trata de crear una extensión ATI6000Controller.kext modificada específicamente para el modelo concreto de nuestra tarjeta gráfica. Si se realiza con éxito, todos los puertos (2xDVI, 1xHDMI y 1xDP) mandan correctamente la señal al monitor, aceptando el cambio de puerto en caliente, sin necesidad de usar "Graphics Enabler = Yes" y sin retardos del ratón.

 

Para aquellos que no están familiarizados con ésto, Perl busca una determinada cadena y la reemplaza por otra. La primera cadena contiene la información de conectores (IC) obtenida desde ATI6000controller (original de Apple). La segunda cadena contiene la IC modificada para coincidir con las características de nuestra tarjeta, esta cadena ha de crearse siguiendo el método de Alexander Martinez o recurrir a alguna de las ya probadas para un modelo idéntico a nuestra gráfica. Yo he utilizado la que amablemente creó Hard233 específica para mi tarjeta (ASUS EAH6850).

 

El esquema que sigue el SP es:

 

sudo perl -pi -e 's|primera_cadena|segunda_cadena|g' /System/Library/Extensions/ATI6000Controller.kext/Contents/MacOS/ATI6000Controller

 

Para crear la primera cadena desde la extensión ATI6000controller original tal como la instala Mac OS X se utiliza el script ati-personality.py que proporciona la IC de esta forma:

 

Personality: Duckweed
ConnectorInfo count in decimal: 4
Disk offset in decimal 176800 (2b2a0 in hex)

0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 04 01
0000010 00 04 00 00 04 03 00 00 00 01 00 00 22 05 05 02
0000020 00 08 00 00 04 02 00 00 00 01 00 00 11 02 03 04
0000030 00 02 00 00 14 02 00 00 00 01 00 00 00 00 06 05

 

Personality es el framebuffer y disk offset es el sitio en que comienza la cadena dentro del archivo binario ATI6000controller (176800 en decimal y 2b2a0 en hexadecimal). Necesitamos las 4 líneas de 16 pares de caracteres cada una:

 

00 04 00 00 04 03 00 00 00 01 00 00 12 04 04 01
00 04 00 00 04 03 00 00 00 01 00 00 22 05 05 02
00 08 00 00 04 02 00 00 00 01 00 00 11 02 03 04
00 02 00 00 14 02 00 00 00 01 00 00 00 00 06 05

 

Copiamos estas 4 líneas y las pegamos en un editor de texto como por ej. TextWrangler (gratuito), reemplazamos los espacios entre caracteres por \x, añadimos \x al inicio de cada línea y ponemos todo en una sola línea:

 

\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x00\x00\x12\x04\x04\x01\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x00\x00\x22\x05\x05\x02\x00\x08\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x11\x02\x03\x04\x00\x02\x00\x00\x14\x02\x00\x00\x00\x01\x00\x00\x00\x00\x06\x05

 

Hacemos lo mismo con la segunda cadena, creándola desde la IC que sea más adecuada. Aparte de la de Hard233, he probado otras 2 que parecen funcionar bien:

 

Hard233

00 04 00 00 04 03 00 00 00 01 00 00 12 04 04 01
00 08 00 00 04 02 00 00 00 01 00 00 22 05 01 04
04 00 00 00 14 02 00 00 00 01 00 00 00 00 03 05
00 02 00 00 14 00 00 00 00 01 00 00 11 02 06 06

 

Esta es la segunda cadena con los datos de Hard233:

 

\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x00\x00\x12\x04\x04\x01\x00\x08\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x22\x05\x01\x04\x04\x00\x00\x00\x14\x02\x00\x00\x00\x01\x00\x00\x00\x00\x03\x05\x00\x02\x00\x00\x14\x00\x00\x00\x00\x01\x00\x00\x11\x02\x06\x06

 

The DJey

 

00 04 00 00 04 03 00 00 00 01 00 00 12 04 04 01
04 00 00 00 14 00 00 00 00 01 00 00 11 02 01 06
00 08 00 00 00 02 00 00 00 01 00 00 22 05 03 04
00 02 00 00 14 02 00 00 00 01 00 00 00 00 06 05

 

Sollarman

 

00 04 00 00 04 03 00 00 00 01 00 00 12 04 04 01
00 08 00 00 04 02 00 00 00 01 00 00 22 05 06 04
04 00 00 00 14 02 00 00 00 01 00 00 00 00 05 05
00 02 00 00 04 00 00 00 00 01 00 00 11 02 03 06

 

Combinándolo todo, obtenemos el PS completo para ser ejecutado desde Terminal:

 

sudo perl -pi -e 's|\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x00\x00\x12\x04\x04\x01\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x00\x00\x22\x05\x05\x02\x00\x08\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x11\x02\x03\x04\x00\x02\x00\x00\x14\x02\x00\x00\x00\x01\x00\x00\x00\x00\x06\x05|\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x00\x00\x12\x04\x04\x01\x00\x08\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x22\x05\x01\x04\x04\x00\x00\x00\x14\x02\x00\x00\x00\x01\x00\x00\x00\x00\x03\x05\x00\x02\x00\x00\x14\x00\x00\x00\x00\x01\x00\x00\x11\x02\x06\x06|g' /System/Library/Extensions/ATI6000Controller.kext/Contents/MacOS/ATI6000Controller

 

Es importante hacer desde Terminal "sudo touch /System/Library/Extensions" antes de reiniciar.

 

No es necesario tener "Graphics Enabler = Yes" ni AtiConfig ni AtiPorts en org.chamelon.boot.plist. Para que Perfil de Sistema muestre una información más completa sobre la tarjeta gráfica se puede utilizar el código DSDT de Hard233.

 

 

Actualización 10.7.4

He actualizado a Lion 10.7.4 y he comprobado que la información de conectores en el archivo ATI6000Controller es la misma que en la versión 10.7.3 y está en el mismo off set por lo que este método funciona también después de la actualización que instala la versión vanilla de la extensión y nos hace perder la configuración de los 4 puertos.

  • Like 1
Link to comment
Share on other sites

Tarjeta gráfica ASUS EAH6850 (Radeon 6850) en Lion 10.7.3: modificar ATI6000controller mediante script de Perl

 

Buen aporte miliuco :hammer:

 

Lo que será RFE: Radeon FrameBuffer Editor, va bastante avanzado. Espero poder subir alguna captura luego y poder subir la primera beta en breve para que podámos probarla :angel_not:

Link to comment
Share on other sites

Esperando con ganas, pues. Ahora que he aprendido cosas que desconocía el primer día en que te leí sobre ésto me doy cuenta de la compeljidad del asunto: diferentes conector info para idénticos modelos de chip pero de marcas diferentes, la información sobre conectores a nivel de código no está completa del todo, etc.. ánimo.

Link to comment
Share on other sites

Lo prometido es deuda:

 

capturadepantalla201205e.png

 

Aún estoy ultimando todos los parámetros de edición (he estado estudiando a fondo los conectores DVI para autodetectar si son Single o Dual Link).

 

El lunes retomaré la programación y espero poder terminarla para comenzar a probarla durante la semana que viene...

 

Salu2 y buen finde! :moil:

  • Like 2
Link to comment
Share on other sites

Mis disculpas por el retraso, estuve muy liado, con la ultima versión v3 totalmente perfecto, vamos no me trae los cafés y es un problema grave de desacato pero sobre os X imposible que vaya mejor, cambio de monitor o salidas en caliente, mucha info, todo OK, mil gracias y esperamos ansiosos ese pequeño soft y enorme trabajo que has hecho para facilitarnos la vida mas aun

Link to comment
Share on other sites

Mis disculpas por el retraso, estuve muy liado, con la ultima versión v3 totalmente perfecto, vamos no me trae los cafés y es un problema grave de desacato pero sobre os X imposible que vaya mejor, cambio de monitor o salidas en caliente, mucha info, todo OK, mil gracias y esperamos ansiosos ese pequeño soft y enorme trabajo que has hecho para facilitarnos la vida mas aun

 

Hola surcaster,

 

Me alegro que por fin funcionara como es debido.

 

Deciros que aunque llevo tiempo sin postear nada, no he dejado de lado la aplicación en absoluto. He aquí una captura:

 

capturadepantalla201205y.png

 

Novedades:

 

- Nueva sección de preferencias para configurar las rutas de las utilidades de terceros usadas por la aplicación (gracias a Dong, bcc9 y redsockosx).

 

- He confeccionado lo que a priori sería una lista de tarjetas compatibles con los kexts desde ATI4xxx al ATI 6xxx englobando todas las tarjetas que podrían ser "en teoría" soportadas usando una inyección DSDT correcta y su correspondiente edición KEXT. La lista la he confeccionado basandome en el codename de la GPU según cada modelo, soportando modelos HD y HD Mobility para portátiles. Esta tarea parece fácil pero no es sencillo encontrar todos los device id.

 

En total 87 "posibles" tarjetas compatibles. La idea es elegir primero nuestra tarjeta de la lista (si no está, en principio no se soporta) y el programa elegirá el FrameBuffer de la serie a utilizar. La aplicación añadirá "NATIVE SUPPORT 10.x.x" al final del nombre de la tarjeta tras analizar los kexts de /System/Library/Extensions en busca de los deviceid soportados por cada kext. Esto significa que si nuestra tarjeta no esta soportada por defecto, la aplicación añadirá el deviceid correspondiente al kext, aparte de la edición HEX del Framebuffer.

 

- Dump de la ROM con solo pulsar un botón. Solo funciona en Snow Leopard iniciando con arch=i386 (x32). Está basado en la herramienta RadeonDump de dong (thanks dong), y puede ser útil para no tener que hacerlo desde msdos o windows si disponemos de Snow (como es mi caso).

 

- Estudio más a fondo de todas y cada una de las personalities usadas por Apple, asociando éstas a las "en teoría" tarjetas gráficas utilizadas en todos los modelos que vende, para sacar conclusiones sobre los ConnectorInfo de cara a la sección de Edición.

 

- Actualización automática tanto de la aplicación como de la lista de tarjetas / framebuffer soportadas.

 

- Estudio a fondo de los conectores DVI para decidir el ConnectorType a utilizar. Tras el estudio, creo que no es correcto especificar 04 00 00 00 y 00 02 00 00 como Dual Link y Single Link, sino más bien como DVI1 y DVI2. La decisión de si es Dual Link o no la tomará el usuario final en la aplicación (basandose en las especificaciones del fabricante de la tarjeta utilizada). no he visto ninguna manera "exacta" de identificar este flag para acomodar el "Transmitter" correcto para este tipo de conectores (también para conectores tipo LVDS de pantallas de portátiles).

 

Y hasta ahí he llegado. Ahora queda las secciones divertidas, así que os mantendré informados para empezar cuanto antes con el beta-testing :D

 

Un saludo a todos y buen finde! :thumbsup_anim:

 

NOTA: Si alguno de vosotros tiene una tarjeta NO SOPORTADA y quiere colaborar, me gustaría hacer algunas pruebas para saber si se puede solventar el problema con inyección de un fake deviceid por DSDT. En mis pruebas con una 6770 (Juniper XT) con deviceid no soportado (0x68BA ), con el método de "rebranding" flasheando la tarjeta con el device id de la 5770 (Juniper XT) con deviceid soportado por ATI5000Controller.kext (0x68B8), la tarjeta funciona correctamente con aceleración gráfica en 10.6.8, sin embargo con el método de inyectar el fake deviceid de la 5770 (0x68B8) sin rebranding, la tarjeta no tiene aceleración. Ahora no dispongo de dicha tarjeta para hacer más pruebas, por eso si alguno quiere colaborar, será bienvenido para hacer pruebas de este tipo para decidir si realizamos inyección fake por DSDT o simplemente añadimos el deviceid correspondiente al KEXT en cuestión (que a priori sería lo lógico puesto que si o sí, lo modificaremos en HEX para tener corectamente los ConnectorInfo que es en lo que se basa la aplicación).

Link to comment
Share on other sites

Si hay que volver a los viejos (originales) kexts avisas y vamos probando ese soft para reportar funcionamiento

 

Justo, esa es la idea. Partir de nuevo con el KEXT sin modificar, y llegar al mismo KEXT que hemos probado, pero realizandolo de una forma sencilla y comprensible desde la aplicación.

 

Con esto, generaremos una base de datos de FrameBuffers correctos que parten de los datos de los usaurios que deseen aportar su ConnectorInfo cuando lo den "por bueno" tras la edición y prueba de todos los conectores de la tarjeta. De esta forma la aplicación comprobará si la ROM analizada se encuentra en la base de datos, para sugerir el ConnecroInfo "probado" que se supone funciona ok (ya subido por otro usuario), haciendo "inteligente" a la aplicación de alguna manera en beneficio de todos. Además dicha base de datos, ayudará a comprender aún más los datos analizados, con el fin de automatizar más -si cabe- el proceso de edición.

 

Salu2

Link to comment
Share on other sites

 Share

×
×
  • Create New...