Radeon 6850 (1)

Tarjeta gráfica AMD Radeon 6850 de 1Gb en Mac OS X Lion 10.7.3

Se trata del modelo Asus EAH6850 Direct CU que tiene 1Gb de memoria DDR5. Es una tarjeta de gama media con potencia suficiente para no echar de menos a los modelos más caros en la gran mayoría de las tareas. Es bastante silenciosa. Su identificador es 0x67391002 y está incluido en extensiones como ATI6000Controller.kext y ATIRadeonX3000.kext:

  • Fabricante: ATI (0x1002)
  • ID del dispositivo: 0x6739.

Se puede usar en Lion con excelente rendimiento pero con algunas limitaciones en cuanto al número de salidas disponibles, se comentarán en este artículo junto con métodos diferentes de instalación.

Es importante remarcar que esta tarjeta viene con 4 puertos, 2 DVI (uno puramente digital que es Single-Link y otro con salida analógica para poder conectar convertidores DVI-VGA en caso necesario, éste es Dual-Link), 1 HDMI y 1 DisplayPort (DP en adelante):

No he conseguido que DVI 2 funcione de ninguna manera, el monitor se apaga como cuando entra en modo de ahorro de energía. DVI 1 funciona siempre, independientemente del método de instalación utilizado. Los otros 2 puertos funcionan de forma variable según los casos.

Instalación sin DSDT

La forma más simple de instalar esta tarjeta es colocándola sin más y configurando en el archivo org.chameleon.boot.plist (o.c.b.p en adelante) el modificador Graphics Enabler (GE en adelante) = Yes, en mi sistema (placa Gigabyte P55-USB3) arranca y funciona con buenas resoluciones y con aceleración gráfica completa (se puede comprobar arrancando DVD Player o Chess). Se muestra correctamente en Perfil de Sistema como AMD Radeon 6850. Funcionan los puertos DVI 1 y DP, con los otros 2 el monitor se apaga al llegar al escritorio de OSX.

Usando GE = No (Chameleon no carga datos para la tarjeta) en Perfil de Sistema aparece mal reconocida (se muestra como AMD Radeon 6xxx). No hay aceleración gráfica completa (DVD Player o Chess fallan y no llegan arrancar) Solamente funciona el puerto DVI 1.

Los chips gráficos AMD (ATI) utilizan distintos framebuffers dependiendo del chip, el framebuffer nativo del chip 6850 parece ser Duckweed. Con GE=No se utiliza el framebuffer genérico de ATI que se llama Radeon, no proporciona aceleración gráfica completa. Con GE=Yes se utiliza Duckweed. Se puede averiguar el framebuffer utilizado con el comando ioreg | grep ATY en Terminal, se obtiene una salida similar a ésta:

| +-o ATY,Duckweed@0 <class AtiFbStub, id 0x1000002f8, registered, matched, active
| +-o ATY,Duckweed@1 <class AtiFbStub, id 0x1000002f9, registered, matched, active
| +-o ATY,Duckweed@2 <class AtiFbStub, id 0x1000002fa, registered, matched, active
| +-o ATY,Duckweed@3 <class AtiFbStub, id 0x1000002fb, registered, matched, active

Desde o.c.b.p se puede configurar qué framebuffer utilizar con el modificador AtiConfig en la clave Kernel Flags, suele acompañarse del modificador AtiPorts que indica el nº de puertos de la tarjeta gráfica, 4 en este caso.

Por ejemplo, forzando la utilización del framebuffer Bulrushes:

<key>Kernel Flags</key>
<string>AtiConfig=Bulrushes AtiPorts=4</string>

se consigue que funcionen 3 puertos, todos menos DVI 2, pero se observa el fallo ya comentado con DVD Player y además paradas y retrardos del ratón. Estos framebuffers a veces se llaman personalidades (personalities) en archivos de configuración y en los Info.plist.

Como resumen, si usas GE=Yes y te conformas con 2 puertos (DVI 1 y DP) la tarjeta gráfica funciona muy bien en Lion.

Puedes realizar pruebas con los modificadores AtiConfig y AtiPorts porque algunos usuarios con modelos diferentes de placa base han conseguido resultados distintos a los míos.

Instalación con DSDT

También es posible inyectar datos del chip gráfico desde el archivo DSDT.aml. En las pruebas que yo he realizado no he obtenido todavía la situación ideal de aceleración gráfica completa y los 4 puertos funcionantes, pero sí se consiguen resultados interesantes como cambiar el nombre de la tarjeta en Perfil de Sistema o conseguir buena aceleración con GE=No.

Puedes leer sobre inyección de código gráfico en DSDT en
http://tonymacx86.blogspot.com.es/2010/01/advanced-dsdt-fixes-nvidia-graphics.html
y en
http://www.insanelymac.com/forum/index.php?showtopic=270566
entre otros sitios.

iFabio

He probado un código propuesto por iFabio con el que se obtiene:

  • tarjeta bien reconocida en Perfil de Sistema
  • aceleración gráfica sin necesidad de usar GE=Yes
  • 2 puertos funcionantes: DVI 1 y DP.

El código se añade en el dispositivo PCI0, en mi DSDT se añade un dispositivo PEGP dentro de PCI0, PEGP ha de tener correcta la dirección de memoria en que está la tarjeta gráfica, la línea Name (_ADR, 0x00030000), normalmente es 0x00030000 (en mi caso) o 0x00010000 (en otras placas), se puede ver con el programa de Apple llamado Ioregistry Explorer aunque esa referencia de memoria no es sencilla de localizar: DSDT

Hard233

Este usuario tiene un código más extenso que configura más parámetros:

  • tarjeta bien reconocida en Perfil de Sistema, es el único DSDT que muestra la gráfica en la sección de tarjetas PCI
  • aceleración gráfica sin necesidad de usar GE=Yes
  • 2 puertos funcionantes: DVI 1 y DP.

Puedes verlo aquí: DSDT

Resumen

El puerto DVI 1 y el DP funcionan en todas las situaciones. El puerto DVI 2 no ha funcionado con ningún método.

Sin DSDT:

  • Con GE=Yes hay aceleración, funcionan DVI 1 y DP
  • Con GE=No falta aceleración, funcionan DVI 1 y DP.

Los DSDT de Fabio2203 y de Hard233 no necesitan GE=Yes para tener aceleración, funcionan DVI 1 y DP.

La única forma de que funcione el puerto HDMI es cambiando al framebuffer Bulrushes pero hay fallos con paradas y retardos del ratón y falta aceleración.

Nota: para usuarios expertos con ganas de trabajar en profundidad existe una guía desarrollada por Alexander Martinez, se trata de un texto muy profesional que tiene un enorme trabajo detrás pero excesivamente complejo para la mayoría de los usuarios. En resumen, se trata de modificar a nivel hexadecimal el archivo ATI6000Controller.kext para configurar correctamente los conectores internos de cada puerto de la tarjeta gráfica, si se modifica correctamente se consigue que los 4 puertos funcionen bien. Puedes leer más sobre ello en el artículo Radeon 6850 (2).

AVISO: las instrucciones y propuestas de esta página se proporcionan sin garantía de ningún tipo a la hora de llevarlas a la práctica. Lo que ha funcionado bien en mi caso pudiera no hacerlo en el tuyo.

Anuncios

11 pensamientos en “Radeon 6850 (1)

  1. Excelente, veo que mi contestación en Insanely llegó tarde y ya conocías el post de Alexander.

  2. Hola, Eduardo, ya ves que lo conocía pero ¡ojo! el trabajo que tiene Alexander detrás de ese artículo, impresionante, aunque muy complejo para la mayoría de nosotros los “mortales”.
    Sin olvidar que se apoya en trabajos previos de bcc9, Mucha y otros (él mismo lo reconoce).

  3. Qué tal, Emilio, veo y puedo deducir entonces por lógica que agregando los cuatro (4) framebuffers (en tu caso los Duckweed) al código que propuse para la DSDT de Eduardo debería ser la formula adecuada. Por supuesto con GE=No. Saludos.
    Por cierto el Amigo iFabio ahora se llama .: ErmaC :. jejeje.

  4. Pues en teoría sí, debería ser, el dsdt de Fabio añade los 4 Duckweed y permite usar GE=No pero no aumenta el n° de puertos funcionantes, tanto con ese dsdt como con el de surfcaster (tuyo) como sin dsdt + GE=Yes los únicos puertos son DVI1 y DP.

    Comentaré más cosas sobre el artículo de Alexander Martínez porque estoy haciendo pruebas aunque lo del retoque hexadecimal del kext me supera, es cierto que es posible tener los 4 puertos en marcha, incluso DVI2 digital que parece imposible con Duckweed, pero cuando arranco con el kext modificado aparecen los retardos de ratón y no consigo eliminarlos.

  5. Se me olvidaba: entoces ¿iFabio, .:ErmaC:. y Fabio2203 son el mismo?

  6. Pues parece que sí son el mismo Fabio los tres, pero ahora se llama Fabio71 y Ermac. Qué conflicto de identidades! jajaja.

  7. Yo creo que son el mismo original iFabio, moderador de InsanelyMac, italiano, gurú del mundo hackintosh, residente según su perfil en las Islas Canarias, pero lo que me despista es que tiene edades diferentes en cada uno de esos perfiles.
    En fin…

  8. Es el mismo, tiene un castellano perfecto, prueba a preguntar algo en cualquiera de los post con cualquiera de los nicks, haz la pregunta en castellano y verás como no falla.

  9. Una pregunta:
    ¿Mediante DSDT solamente se logra la aceleración? ¿o es necesario dejar algun kext?
    En mi caso, mi ATI Radeon HD 4650 de 512 Mb funcionó perfecto al inyectarla con DSDT, pero me extrañó que algunos screensavers que necesitan OpenGl y aceleración funcionaban bien, pero otros (por ejemplo LotsaWater) no lo logran, me pone la pantalla de todos los colores y pareciera que el efecto lo hace pero no sobre la imagen del escritorio…
    Lo mismo que sólo me funciona si tengo enchufado algo en el puerto vga, ya que mi monitor tiene vga y dvi, si lo conecto sólo por dvi, se me apaga.
    ¿Ese tipo de cosas se soluciona modificando algo en el DSDT?
    Una consultita más: ¿no se puede declarar en el apple.com.boot.plist el DSDT que tengo yo para que lo cargue automáticamente?
    Muchas gracias…

  10. No he probado esa gráfica. Por lo general es más importante usar Graphics Enabler en o.c.b.p y que Chameleon levante la tarjeta que añadir código gráfico en DSDT. El DSDT suele completar la instalación o añadir alguna funcionalidad pero no suele ser imprescindible. Y es difícil que añada aceleración a la tarjeta que sin él no la tiene o la tiene incompleta.
    Lo del puerto es más frecuente, hay gráficas que no funcionan bien en OSX con DVI directamente y sí con VGA o con adaptador VGA a DVI.
    Busca información sobre cómo decir en o.c.b.p qué archivo DSDT cargar si no son los que Chameleon busca que son /DSDT.aml o /Extra/DSDT.aml, ésos no es necesario especificarlos. Cualquier otra ruta se puede usar bien en el archivo o.c.b.p o bien en el momento del arranque.

Los comentarios están cerrados.