Jump to content
Sign in to follow this  
miliuco

ATI Radeon 6850 en Lion

29 posts in this topic

Recommended Posts

Hola, surfcaster (y compañía), veo en tu firma que tienes una Radeon 6850, yo tengo una desde hace pocas semanas, el modelo ASUS EAH6850 de 1gb. Comento brevemente mis conclusiones acerca de su instalación por si tú o algún otro usuario tiene otra experiencia diferente y aprendo algo nuevo.

 

La tarjeta en sí es buena en cuanto al precio, tiene potencia de sobra para el uso que yo le doy y este modelo en concreto es bastante silencioso. Sin embargo no parece posible usar todas las características en OSX:

  • la puedo usar con GraphicsEnabler Yes o No en org.chameleon.boot.plist
  • con GraphicsEnabler=Yes aparece bien reconocida en Perfil de Sistema
  • con GraphicsEnabler=No aparece como Radeon 6xxx en Perfil de Sistema
  • con GraphicsEnabler=No fallan algunos programas como DVD Player (parece faltar aceleración gráfica)
  • con GraphicsEnabler=Yes la aceleración gráfica parece completa y DVD Player funciona bien
  • el conector DVI que es sólo-DVI no funciona bien (cuando sale el escritorio el monitor entra en reposo o sale fuera de rango, el caso es que se apaga)
  • el conector DVI que admite VGA funciona bien, es el único conector que funciona con cualquier configuración
  • los conectores HDMI y DP sólo funcionan si añado AtiConfig=Bulrushes y AtiPorts=4 en org.chameleon.boot.plist pero entonces el ratón se atasca brevemente de vez en cuando
  • por ello, para usar más de 1 monitor he de usar AtiConfig=Bulrushes y AtiPorts=4 con esos pequeños fallos del ratón.

Conclusión: la tengo conectada al DVI que admite modo VGA, como sólo tengo 1 monitor no es problema, sin AtiConfig / AtiPorts y con GraphicsEnabler=Yes en boot.plist. Uso Chimera 1.8.

 

El ID de la tarjeta es 6739 (1002) y he visto que ese ID ya está incluido por defecto en ATI6000Controller.kext y en ATIRadeonX3000.kext.

 

¿Coincide toto éso con tu/vuestra experiencia?

Share this post


Link to post
Share on other sites
Advertisement

Pos no ... a mi me va fenomenal, estoy contento con la compra, la mia es la Shappire, te dejo aqui lo que me retoco Juanerson (espero no te importe) en el DSDT, es poca cosa pero ya te digo que esta todo funcionando perfectamente, los dos puertos DVI los he probado y van exactamente igual, no he probado nunca el HDMI ya que tengo un buen monitor y va directo por DVI, te dejo esas lineas, decir que logicamente esta en el PciE principal x16 y que no hay ninguna otra pci que "recorte" o se reparta el ancho del puerto, no tengo ninguna linea en el o.c.b.p. sobre el tema de graficos, mi bootloader es Chimera 1.9 que es la revision r1903 http://forge.voodooprojects.org/p/chameleon/source/commit/1903/

 

Device (GFX0)
{
Name (_ADR, Zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0A)
{
"AAPL,aux-power-connected",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"built-in",
Buffer (One)
{
0x00
},

"graphic-options",
Buffer (0x04)
{
0x04, 0x00, 0x00, 0x00
},

"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
},

"model",
Buffer (0x13)
{
"AMD Radeon HD 6850"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Share this post


Link to post
Share on other sites

Pues muchas gracias, de la gráfica no tengo nada inyectado en DSDT así que probaré ésto que me has pasado (gracias a Juanerson por el código) y te comentaré los cambios. También tengo Chimera 1.9 desde ayer.

 

Entonces no tienes nada de AtiConfig / AtiPorts ni GraphicsEnabler=Yes en boot.plist.

 

(Edito)

 

He probado el código que publicaste pero no he observado cambios, con GraphicsEnabler=No sigue fallando DVD Player y la tarjeta aparece como Radeon 6xxx y con GraphicsEnabler=Yes todo va bien pero sólo funciona el puerto DVI que está en línea con los puertos HDMI y DP.

 

No sé si he colocado bien el código, he buscado el dispositivo PCI0 que en mi DSDT se mostraba así:

	Device (PCI0)
	{
		Name (_HID, EisaId ("PNP0A03"))
		Name (_ADR, Zero)
		Name (_UID, One)
		Name (_BBN, Zero)
		Method (SS3D, 0, NotSerialized)
		{
			If (LEqual (OSFL, 0x02))
			{
				Return (0x02)
			}
			Else
			{
				Return (0x03)
			}
		}

e inmediatamente debajo del último paréntesis he añadido GFX0 dejándolo así:

	Device (PCI0)
	{
		Name (_HID, EisaId ("PNP0A03"))
		Name (_ADR, Zero)
		Name (_UID, One)
		Name (_BBN, Zero)
		Method (SS3D, 0, NotSerialized)
		{
			If (LEqual (OSFL, 0x02))
			{
				Return (0x02)
			}
			Else
			{
				Return (0x03)
			}
		}
		Device (GFX0)
		{
			Name (_ADR, Zero)
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x0A)
					{
						"AAPL,aux-power-connected",
						Buffer (0x04)
						{
							0x01, 0x00, 0x00, 0x00
						},
						"built-in",
						Buffer (One)
						{
							0x00
						},
						"graphic-options",
						Buffer (0x04)
						{
							0x04, 0x00, 0x00, 0x00
						},
						"hda-gfx",
						Buffer (0x0A)
						{
							"onboard-1"
						},
						"model",
						Buffer (0x13)
						{
							"AMD Radeon HD 6850"
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

¿Es correcto? Pero ya te digo que con ello no he observado cambios.

Share this post


Link to post
Share on other sites

Sobre el tema de la inyección, el dispositivo gráfico (GFX0) debe ir dentro del Slot PCI que corresponde físicamente mirando el IOREG, por ejemplo POP2 en el caso de la PC de surfcaster (ruta: 0x00010000) ahí va. La clave de la inyección está en las rutas o "path" (_ADR = Address) que son particulares de cada equipo... y se miran desde el OIREG, la DSDT necesita del IOREG y viceversa, son inseparables en tareas de edición, correcciones, etc.

Captura de pantalla 2012-03-28 a la(s) 15.10.34.png

Surfcaster, una recomendación Amigo... para efectos de aprendizaje es recomendable colocar el código junto con los comentarios, en el archivo BASE.dsl están todos los que hice para tu inyección. Saludos.

 

Editado: Estábamos escribiendo al mismo tiempo, surfcaster. Bueno, van en el mismo orden de ideas.

Share this post


Link to post
Share on other sites

gracias Juanerson, tengo ese archivo base.dsl guardado como paño en oro ya que es como tu dices la base de cualquier consulta o modificacion para futuras actualizaciones

Share this post


Link to post
Share on other sites

Gracias a los 2, comprobaré con Ioreg y compararé con un DSDT base teniendo en cuenta el código GFX que tiene surfcaster en su DSDT. Ahora entiendo por qué no tengo dispositivo P0P2 y algunos otros que en vuestro PC sí aparecen.

 

Comentaré.

 

Edito: supongo que he de consultar el registro sin haber arrancado con el código GFX en DSDT y con GraphicsEnabler=No pero ¿incluso sin DSDT del todo?

Share this post


Link to post
Share on other sites

Siempre es bueno tener a la mano una copia de tu .ioreg en estado puro, es decir sin DSDT puesta... en los casos que se pueda, obvio. En ese sentido cabe recordar que normalmente el S.O. NO arranca sin una DSDT (al menos básica) por conflictos en las IRQs (el fix más importante) entre HPET, RTC y TIMR, todos con incidencia directa en los puertos USB y en algunos casos los SATA. Pero, de conseguirlo, sería de mucha utilidad para tareas de impacto medio-avanzado como por ejemplo renombrar dispositivos estilo Mac, lo cual es importante porque tiene influencia por ejemplo para el Sleep (botones, USB, control de brillo y reposo de pantalla en portátiles, etc), así como agregar dispositivos faltantes (puertos PCI, AirPort, ethernet, etc), incluso colocar inyecciones de IDs nativos por ejemplo el de LPCB (indispensable para SpeedStep) y SBUS (que es el Bus de gestión de energía), entre otras cosas que dan mayor estabilidad al Sistema.

 

Sin embargo, para consultar desde el árbol, en este caso sólo sobre la gráfica y su correspondiente puerto PCI, cuya raíz madre es PCI0 (y de todos los dispositivos PCI también), bastaría arrancar con una DSDT sin código de inyección gráfica y con GraphicsEnabler=Yes. La idea es tomar nota de los datos que inyecta Chameleon, y hacer los ajustes y en lo posible cubrir desde la DSDT la mayor cantidad de aspectos que genera el bootloader por sí solo. Pero lo más importante son las carencias, que sí existen en las iMac genuinas que poseen gráficas similares, y que Chameleon NO sea capaz de generar (algunos pocos datos), las cuales deben ser inyectadas manualmente como hicimos con surfcaster. Por lo tanto, es necesario tener a la mano como referencia el .ioreg del equipo genuino acorde a nuestro perfil (smbios) para hacer dichas comparaciones, ajustes y/o correcciones finales. Saludos.

Share this post


Link to post
Share on other sites

Gracias por la información, podría arrancar sin DSDT con el método [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] pero para intentar mejorar la gráfica haré lo que comentas de arrancar con DSDT sin gráficos inyectados pero con GraphicsEnabler=Yes. Me voy haciendo a la idea de la gran cantidad de parches que existen actualmente para DSDT y de las mejoras que suponen.

 

Hoy no he podido hacer nada pero en cuanto pueda lo miraré con detenimiento, salu2, Emilio.

Share this post


Link to post
Share on other sites

No he sido capaz de hacer que la 6850 sea reconocida desde el DSDT, No sé suficiente sobre DSDT y dudo a la hora de reconocer desde IORegistryExplorer la dirección de memoria de la gráfica o del puerto PCIe que ocupa. Con lspci veo que el dispositivo VGA tiene dirección 01:00:0 pero no sé interpretarlo ¿0x00010000? En IORegistryExplorer no veo algo como ADR o similar, veo propiedades como address-cells o pcidebug que pudieran ser direcciones.

 

El caso es que he incluido el dispositivo GFX0 dentro de PEGP y a su vez dentro de PCI0 de esta forma:

    Device (PCI0)
    {
	    Name (_HID, EisaId ("PNP0A08"))
	    Name (_CID, EisaId ("PNP0A03"))
	    Name (_ADR, Zero)
	    Name (_UID, One)
	    Name (_BBN, Zero)
	    Method (SS3D, 0, NotSerialized)
	    {
		    If (LEqual (OSFL, 0x02))
		    {
			    Return (0x02)
		    }
		    Else
		    {
			    Return (0x03)
		    }
	    }
	    Device (PEGP)
	    {
		    Name (_ADR, 0x00030000)
		    Device (GFX0)
		    {
			    Name (_ADR, Zero)
			    Method (_DSM, 4, NotSerialized)
			    {
				    Store (Package (0x0A)
					    {
						    "AAPL,aux-power-connected",
						    Buffer (0x04)
						    {
							    0x01, 0x00, 0x00, 0x00
						    },
						    "built-in",
						    Buffer (One)
						    {
							    0x00
						    },
						    "graphic-options",
						    Buffer (0x04)
						    {
							    0x04, 0x00, 0x00, 0x00
						    },
						    "hda-gfx",
						    Buffer (0x0A)
						    {
							    "onboard-1"
						    },
						    "model",
						    Buffer (0x13)
						    {
							    "AMD Radeon HD 6850"
						    }
					    }, Local0)
				    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				    Return (Local0)
			    }
		    }
	    }

Modificando la dirección que sale al principio en

	    Device (PEGP)
	    {
		    Name (_ADR, 0x00030000)
		    Device (GFX0)

utilizando 0x00030000 y también 0x00010000 pero sin resultado.

 

Un hallazgo nuevo es que la tarjeta instalada solamente con GraphicsEnabler=Yes tiene salida por el puerto DisplayPort además del puerto DVI que está junto a los otros 2 puertos. HDMI y DVI digital no muestran nada (como si el monitor estuviese fuera de rango) pero DP y DVI analógico mandan bien la imagen al monitor. Sin AtiConfig ni AtiPorts, por supuesto.

Share this post


Link to post
Share on other sites

Yo tengo el mismo modelo y encontre por la red un Kext modificado, en mi caso el HDMI me daba pantalla negra con AtiConfig=Duckweed que entiendo es el nativo, probe con otras personalidades en vano y ahora funciona con Duckweed y AtiPorts=4 sin retrasos en el mouse y con OpenGL.

Share this post


Link to post
Share on other sites

Yo también supongo que Duckweed es el nativo pero solamente con Bulrushes tengo HDMI, claro que entonces tengo retrasos de ratón y DVD Player no va. La solución ideal parece ser una correcta inyección DSDT como dice Juanerson y de esa forma le va bien a Surfcaster pero yo no he podido hacerlo.

 

Aunque no localices el origen de ese kext que dices ¿cuál es? Me refiero a cómo se llama el archivo (Atixxxx.kext o lo que sea) para buscarlo.

 

Edito: ya lo he visto en tu firma, lo pruebo y te comento.

Share this post


Link to post
Share on other sites

Solamente he mirado las diferencias entre ATI6000Controller.kext descargado de tu firma y el que instala Lion 10.7.3. Excepto las líneas que hacen referencia a la versión del sistema (la descargada parece ser de una versión anterior de Lion) el resto del archivo Info.plist es idéntico, da la impresión que sólo son versiones diferentes de ese kext, la que tengo es ATI6000Controller 7.18.11 10601 y la descargada es ATI6000Controller 7.10.2 10080.

 

Más tarde lo pruebo para ver cómo resulta. Salu2.

Share this post


Link to post
Share on other sites

Emilio, si lo deseas súbeme dos (2) ioregs por privado (así no revelas tu serial acá), uno con GE=Yes y otro con GE=No, ambos sin código de inyección gráfica desde la DSDT, esos archivos junto con tu dsdt también sin inyección gráfica (por supuesto), y te fijo el hack en las rutas correctas (esa es la parte "difícil"), y te lo subo con comentarios incluidos para que sepas.

 

En este tópico también tenemos información con inyección de una Nvidia, hay buen material en el caso del compañero pgsubuntu que pudiera servir de referencia de aprendizaje sobre el tema, por favor léelo y descarga los archivos. Sobre las rutas, en el ioreg se busca por PATH y en la DSDT se busca por _ADR. Es importante tener claro que el ioreg es nuestra guía de orientación, en tal sentido las entradas a la izquierda (ejemplo: 8086,168c@0) que NO tengan un dispositivo asignado en la DSDT con nombre propio (ejemplo: GFX0) pues se agregan en la DSDT con su ruta específica.

 

En fin, en teoría NO necesitas drivers modificados, ni nada más. Aunque la única referencia de funcionamiento correcto que tengo con esa misma gráfica es la del amigo surfcaster. PERO todavía no me aclaro si él usa GE=No, ya que NO es lo mismo que no usar nada en el o.c.B.p... ese flag en particular se recomienda fijarlo (en Si o No), pero repito hay que fijarlo para que el bootloader lo interprete de manera precisa, sin lugar a ambigüedades, independientemente de la rama (branch) que se utilice. Saludos.

Share this post


Link to post
Share on other sites

<key>GenerateCStates</key>
<string>Yes</string>
<key>GeneratePStates</key>
<string>Yes</string>
<key>EnableC2State</key>
<string>Yes</string>
<key>EnableC3State</key>
<string>Yes</string>
<key>EnableC4State</key>
<string>Yes</string>
<key>EthernetBuiltIn</key>
<string>Yes</string>
<key>Kernel Flags</key>
<string>npci=0x2000 darkwake=0</string>
<key>SystemType</key>
<string>1</string>
<key>Theme</key>
<string>Blackosx_Button_Theme</string>
<key>Timeout</key>
<string>2</string>

 

pues lo habilitare en no despues de leerte ya que lo quite del ocbp hace ya un tiempo viendo que no hacia nada (yo no lo he notado) este es mi ocbp en ML, la unica diferencia con el de Lion es que allí uso UseKernelCache=yes y en ML me da algun problema cuando le da la gana con la wifi (hay veces aleatoriamente que no la encuentra en el arranque), por supuesto he probado para ver la diferencia entre GraficsEnabler=yes/no y la verdad es que no veo ninguna diferencia, los dos DVI funcionan, el HDMI lo probé hace un par de días con el cable de una consola del chaval y un Tv, funciona pero sin audio, he visto por ahí en mas de un post como slucionar lo del audio pero es algo que no voy a usar (HDMI) ya que solo fue una prueba por curiosidad, otra cosa que no he probado ha sido dos monitores al mismo tiempo.

 

 

EDITO: pido disculpas, hay una diferencia entre GE=Y y GE=n, con "yes" se reconoce como HD 6850 y con "no" es una 6xxx series, es que no le hago mucho casi, mientras funcione bien

Share this post


Link to post
Share on other sites

Gracias a los 2, a juanerson por supuesto por el ofrecimiento (prepararé los 2 ioreg) y a surfcaster también. Pensé que con GE=No surfcaster tenía el modelo bien reconocido pero ya veo que no, que salía como 6xxx, aunque no sé si es un detalle solamente estético.

 

Miraré bien lo del usuario pgsubuntu, seguro.

 

Haciendo más pruebas he cogido un DSDT limpio desde Windows porque el que usaba tenía bastantes retoques, le he aplicado los parches típicos (los que tiene tonymacx86 para mi placa) y he añadido el código de la gráfica de nuevo, el que pongo más arriba en el post #12, tal como sale ahí, con la dirección "Name (_ADR, 0x00030000)", he cambiado "AMD Radeon HD 6850" por "EMI Radeon HD 6850" sólo como indicador para ver si carga ese código en particular y no el de Chameleon y efectivamente la tarjeta aparece en System Profiler como "EMI Radeon HD 6850" pero solamente si utilizo GE=Yes, con GE=No sigue apareciendo como "ATI Radeon HD 6xxx".

 

Total, que por un lado parece inyectar bien desde DSDT pero por otro lado necesito GE=Yes.

Share this post


Link to post
Share on other sites

Hola, compañero, el rendimiento en muchas tareas puede ser el mismo pero muchos usuarios (me incluyo) ven que algunos programas (DVD Player...) no funcionan con GE=No por lo que algún tipo de comportamiento gráfico se pierde, posiblemente QuartzExtreme. El que aparezca con un nombre u otro es lo que puede ser solamente estético.

Share this post


Link to post
Share on other sites

si en eso tienes razón, yo he tenido suerte pues desde que la adquirí tuve la ayuda de Juanerson y no he sufrido ese comportamiento que solo conozco de leerlo por los foros sobre DVD Player y algun otro soft que se rompe cuando no esta bien instalada o reconocida la gráfica, por eso puedo decir que el nombre es solamente estético al menos en mi caso, sobre la Shappire hay que decir que hay dos versiones una con el reloj muy bajo y otra con el mismo nombre pero con algo mas de reloj, la mia es la sencilla, si no recuerdo mal el reloj funciona a 775mhz no se si a nivel de chipset de la gráfica hay otras diferencias pero si creo que la version instalada en el iMac 27" de mediados de 2011 debido a sus caracteristicas (version M y lo cerrado del iMac por temas de calentamiento) es casi con toda probabilidad la misma versión que tengo yo a 775mhz, en el momento en que la compre había varias versiones, la Toxic, la Toxic X y de esta en particular que tengo tambien había 2 versiones a diferentes mhz, la mia es esta:

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

Share this post


Link to post
Share on other sites

La mía es ASUS EAH6850, viene a 790 MHz osea que trae un poco de OC, es bastante silenciosa. Para Hackintosh es preferible versiones no OC de las gráficas, cuando cogí ésta no me fijé en que estaba un poco subida.

Share this post


Link to post
Share on other sites

Hay muchos que se fijaron en el post de Tonimac para comprarse la grafica mirando el modelo solamente, yo también me confie, pero en dicho foro hay que tomar como referencia modelo y fabricante, otras no son exactamente iguales ya que cada fabricante "toca" sus firmwares y no hay muchas diferencias pero las hay y mas de uno ha tenido problemas, mi suerte fue la oferta de Amazon ya que la compre por el precio estirandome al máximo y por pura suerte acerté con ella ......y con Juanerson.

 

Miliuco te he enviado una ayuda por privado para la configuración de CLOVER, realmente es el manual de un tal CLUBBER_77 con TODOS los parámetros que se deben configurar y como hacerlo es el enlace pasado por Google Translator pero se entiende perfectamente con capturas incluidas, seguro que le sacas provecho, ese boot promete mucho.

Share this post


Link to post
Share on other sites

Lo acabo de ver, lo miraré pero hace unos días probé Clover y me pareció muy complejo. Ya te comentaré, gracias por la traducción y los datos del foro ruso.

Share this post


Link to post
Share on other sites

miliuco, gracias al usuario Fabio2003 que posteo un parche de su DSDT para poder usar la AMD 6870 sin GE y AtiConfig, ya puedo utilizar mi AMD 6850 sin ser "levantada" por chameleon pero solo lo he probado en el HDMI sin audio. en mi caso _ADR es 0x00010000

 

Device (PEGP)
	    {
		    Name (_ADR, 0x00010000)
		    Device (GFX0)
		    {
			    Name (_ADR, Zero)
			    Method (_DSM, 4, NotSerialized)
			    {
				    Store (Package (0x0C)
					    {
						    "@0,name",
						    Buffer (0x0D)
						    {
							    "ATY,Duckweed"
						    },
						    "@1,name",
						    Buffer (0x0D)
						    {
							    "ATY,Duckweed"
						    },
						    "@2,name",
						    Buffer (0x0D)
						    {
							    "ATY,Duckweed"
						    },
						    "@3,name",
						    Buffer (0x0D)
						    {
							    "ATY,Duckweed"
						    },
						    "model",
						    Buffer (0x13)
						    {
							    "AMD Radeon HD 6850"
						    },
						    "hda-gfx",
						    Buffer (0x0A)
						    {
							    "onboard-1"
						    }
					    }, 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)
			    }
		    }
	    }

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×