tedacuen Posted August 7, 2012 Share Posted August 7, 2012 Después de varias semanas intentando realizar la instalación del Mountain Lion, por fin he conseguido que funcione el tema de audio/vídeo al 100% en mi barebone. Mi hardware es el siguiente: - CPU Intel Core I3 2320 - Placa base Gigabyte GA-H61N-USB3 - Kingston DDR3 4GB - Ati Radeon ASUS EAH6670 1Gb DDR3 - Disco duro Western Digital Green 2Tb - Combo regrabadora DVD/reproductor BLU-RAY HL-DT-ST BDDVDRW La instalación del ML la realicé preparando un pendrive de 8Gb con la imagen oficial del instalador de ML y el programa MyHack: http://myhack.sojugarden.com/guide/ El primer problema aparece porque el instalador no es capaz de iniciar correctamente la radeon HD6670, por lo tanto fué necesario seguir un pequeño truco que encontré en otro post: consiste en eliminar el ATI6000Controller.kext del pendrive de instalación generado por myHack, realizar la instalación del ML inciando con GraphicsEnabler=No, y después instalar el ATI6000Controller.kext una vez iniciado el S.O. al terminar la instalación, con kext Utility u otra utilidad en S/L/E. Instalé los controladores de red realtek RTL8111, y de paso el bootloader chimera que más tarde actualizé a la versión 1.11.0 La placa base lleva el controlador de audio ALC889. Desde osx86.net descargué la extensión AppleHDA.kext y el parche para el DSDT. Si se modifica el DSDT, no hay que instalar el HDAEnabler889.kext Descargar los archivos de: http://www.osx86.net...do=file&id=2922 El DSDT correspondiente a mi placa lo descargé de tonymac86-DSDT database, allí encontré mi placa base con la versión F8 de la bios, que es la que tengo actualmente instalada. Ahora con el programa DSDTSE parcheamos nuestro DSDT, compilamos e instalamos en /Extra. Al arrancar de nuevo, tenemos activado el audio de la placa base, tanto analógico como SPDIF. El contenido de mi org.chamaleon.Boot.plist es el siguiente: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>AtiConfig</key> <string>Pithecia</string> <key>DSDT</key> <string>/Extra/dsdt.aml</string> <key>EthernetBuiltIn</key> <string>Yes</string> <key>GenerateCStates</key> <string>Yes</string> <key>GeneratePStates</key> <string>Yes</string> <key>Graphics Mode</key> <string>1024x600x32</string> <key>GraphicsEnabler</key> <string>Yes</string> <key>Kernel Flags</key> <string>npci=0x2000 darkwake=0</string> <key>PciRoot</key> <string>1</string> <key>SMBIOS</key> <string>/Extra/SMBios.plist</string> <key>Theme</key> <string>iCham2</string> <key>Timeout</key> <string>3</string> <key>UseKernelCache</key> <string>Yes</string> </dict> </plist> El barebone lo tengo conectado a un televisor panasonic plasma de 720p, que es la pantalla principal. Como pantalla secundaria hay conectado un proyector por VGA. Desde http://www.osx86.net/downloads.php?do=file&id=2916 descargué el ATI6000Controller.kext, ATIFramebuffer.kext y el parche para el DSDT, que aplicamos con DSDTE. En Exra/org.chameleon.boot.plist añadimos las claves GraphicsEnabler=Yes y AtiConfig=Pithecia, La salida HDMI funciona correctamente, pero sin audio . Funciona también la salida VGA, tanto en escritorio extendido como la opción de clonar pantallas. La gráfica es reconocida ahora como radeon HD6670 y la aceleración gráfica también funciona correctamente. Ahora nos queda corregir el tema del HDMI para conseguir video y audio. Del artíc u l o Lion HDMI Audio - Part 2a: DSDT Edits/Discrete - AMD/Nvidia, descargamos el archivo DSDT-HDMI_Audio_Edits_v3.dsl , copiamos las líneas de la 290 a la 335 tituladas como "AMD_GE=Y-DSDT_HDMI_Audio_Edit - Complete (Same as Generic)" y sustituimos el aparatado correspondiente en nuestro DSDT. Al arrancar de nuevo el equipo, en el informe del sistema podemos ver que aparece en el apartado Audio una entrada llamada "Salida HDMI/DisplayPort: Conexión: pantalla", pero no aparece el nuevo dispositivo en el mezclador de audio. Para conseguir activar dicha salida, tendremos que parchear el ATI6000Controller.kext Será necesario descargar los siguientes programas: GPU-Z (desde windows, programa que nos permite grabar el fichero de la bios de nuestra gráfica) redsock's bios decoder - Nos permitirá obtener los valores de transmitter, encoder radeon_bios_decode.0.2.zip - Como el anterior, para obtener el sense_id de nuestra bios de la vga HexEdit - Para editar el archivo kext y modificar algunos bytes. ati-personality.pl.0.10.zip - para ver información de la ubicación de los framebuffers dentro del ati6000controller - Ejecutamos el ati-personality desde la consola de comandos: perl ./ati-personality.pl -x (si aparece un error relacionado con las o tools, es que es necesario tener el xcode instalado con las herramientas de linea de comandos) Apuntamos el offset correspondiente al framebuffer Pithecia, que es el que tenemos seleccionado en AtiConfig: Personality: Pithecia ConnectorInfo count in decimal: 3 Disk offset in decimal 179456 0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 01 05 0000010 10 00 00 00 10 00 00 00 00 01 00 00 00 00 00 04 0000020 00 04 00 00 04 03 00 00 00 01 00 00 21 03 02 06 En el siguiente link hay una extensa explicación del uso de códigos usados para definir las conexiones. En este caso, básicamente tengo que modificar la primera línea para indicar que se trata de un conector HDMI y no DVI como está codificado. La información que muestra el comando redsock_bios_decoder para la rom de mi tarjeta es la siguiente: $ ./redsock_bios_decoder <bios6670.rom C095XT.bin : 6758.13.12.0.8.AS01 Subsystem Vendor ID: 1043 Subsystem ID: 3e0 Object Header Structure Size: 203 Connector Object Table Offset: 34 Router Object Table Offset: 0 Encoder Object Table Offset: 9d Display Path Table Offset: 12 Connector Object Id [12] which is [HDMI_TYPE_A] encoder obj id [0x21] which is [iNTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true Connector Object Id [4] which is [DVI_D] encoder obj id [0x1e] which is [iNTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false Connector Object Id [5] which is [VGA] encoder obj id [0x15] which is [iNTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false El conector que tengo que modificar es el que está indicado como HDMI_TYPE_A, del cual obtengo la siguiente información: Transmitter: 0x22 Encoder: 0x5 con radeon_bios_decoder obtenemos la siguiente información: $ ./radeon_bios_decode <bios6670.rom ATOM BIOS Rom: SubsystemVendorID: 0x1043 SubsystemID: 0x03e0 IOBaseAddress: 0x0000 Filename: C095XT.bin BIOS Bootup Message: 6758.13.12.0.8.AS01 PCI ID: 1002:6758 Connector at index 0 Type [@offset 44258]: HDMI-A (11) Encoder [@offset 44262]: INTERNAL_UNIPHY2 (0x21) i2cid [@offset 44332]: 0x94, OSX senseid: 0x5 Connector at index 1 Type [@offset 44268]: DVI-D (3) Encoder [@offset 44272]: INTERNAL_UNIPHY (0x1e) i2cid [@offset 44359]: 0x93, OSX senseid: 0x4 Connector at index 2 Type [@offset 44278]: VGA (1) Encoder [@offset 44282]: INTERNAL_KLDSCP_DAC1 (0x15) i2cid [@offset 44386]: 0x90, OSX senseid: 0x1 obtenemos el sense_id correspondiente al conector HDMI: OSX senseid: 0x5 En el artí{censored} anterior, podemos ver como se asigna el código de cada tipo de conector: 1- ConnectorType: (I added single link, from bbc9's post) /* 4 bytes ,from bbc9 radeondump */ #define CONNECTORTYPE_LVDS 0x00000002 #define CONNECTORTYPE_DVIDL 0x00000004 //Dual Link #define CONNECTORTYPE_VGA 0x00000010 #define CONNECTORTYPE_S-V 0x00000080 #define CONNECTORTYPE_DP 0x00000400 #define CONNECTORTYPE_HDMI 0x00000800 #define CONNECTORTYPE_DVISL 0x00000004 //Single Link Y aquí está la estructura de cada conexión dentro del ATI6000Controller: AAAAAAAA BBBBBBBB CCCC DDDD EE FF GG HH A = Connector type B = Control Flags C = Features D = ??? E = Transmitter F = Encoder G = HotPlugID H = Sense ID Como la primera línea tiene el Sense_id (último byte) con 5 y se corresponde con mi sense_id de la salida HDMI, (información de radeon_decoder), entonces la modificaré con HexEdit para adaptarla a los datos recopilados: Línea original: 0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 01 05 Línea modificada (connector type:00080000, transmitter:22, controller:05, sense_id:05) 0000000 00 08 00 00 04 03 00 00 00 01 00 00 22 05 01 05 Ahora guardamos los cambios del archivo y lo instalamos con el kext utility y reincidamos el sistema. Si todo ha ido bien, debería aparecer el dispositivo HDMI en las opciones de sonido. Después de esto, me funciona el audio HDMI perfectamente, y también el reposo de pantalla e inactividad en las opciones de energía apagan ambos monitores sin problemas. Aquí tengo algunas fotos, no se como meterlas dentro del post: https://picasaweb.go...050185144801122 https://picasaweb.go...050276876032530 https://picasaweb.go...052012926521522 https://picasaweb.go...053107004645010 4 Link to comment Share on other sites More sharing options...
surfcaster Posted August 8, 2012 Share Posted August 8, 2012 Buena guia compañero pero me permito hacerte una sugerencia, leete las normas y edita tu post para solventarlo, te dejo un enlace a ellas, mas concretamente esta parte que te corto y pego aquí, debajo esta el enlace a dichas normas: Discusión de los productos comerciales derivados de la escena OSx86. Sólo está permitido si se trata de entender su existencia o naturaleza, pero NO se permite su promoción, tampoco discutir cómo utilizarlos, ni ningún tipo de soporte o apoyo para estos materiales comerciales será permitido en el foro, ya que no están en el espíritu de la escena OSx86. Esto va especialmente dirigido a tonymacx86 y sus "bestias". http://www.insanelym...howtopic=272217 1 Link to comment Share on other sites More sharing options...
tedacuen Posted August 8, 2012 Author Share Posted August 8, 2012 Buena guia compañero pero me permito hacerte una sugerencia, leete las normas y edita tu post para solventarlo, te dejo un enlace a ellas, mas concretamente esta parte que te corto y pego aquí, debajo esta el enlace a dichas normas: http://www.insanelym...howtopic=272217 Gracias Surfcaster, he editado el post y ahora supongo que cumple las reglas. Link to comment Share on other sites More sharing options...
ctroncosor Posted August 14, 2012 Share Posted August 14, 2012 Muy buen post, felicitaciones. Link to comment Share on other sites More sharing options...
miliuco Posted September 19, 2012 Share Posted September 19, 2012 Excelente texto, tedacuen, tengo que probarlo en mi tarjeta Radeon 6850 porque imagino que el método que propones funcionará también en ella. A quien corresponda: ¿sería posible evitar este esperpento: artí{censored}? Link to comment Share on other sites More sharing options...
javierandress Posted April 7, 2013 Share Posted April 7, 2013 Me puedes decir la ruta de donde están esos kexts para poder eliminarlos. Saludos Link to comment Share on other sites More sharing options...
federico1978 Posted July 25, 2014 Share Posted July 25, 2014 Hola compañero, no entiendo cuando para instalacion eliminamos el kext ati6000 para volver a ponerlo despues y mas tarde volver a instalar los kext de osx86. y si puedes decirnos donde esta el AtiFramebuffer.kext en la pagina de osx86 que o lo veo. muchas gracias por el trabajo Link to comment Share on other sites More sharing options...
Recommended Posts