Jump to content

Por fin!, instalación con éxito en barebone y radeon HD6670

- - - - -

  • Please log in to reply
6 replies to this topic

#1
tedacuen

tedacuen

    InsanelyMac Protégé

  • Members
  • Pip
  • 15 posts
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 :hammer: . 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

#2
surfcaster

surfcaster

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 441 posts
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

#3
tedacuen

tedacuen

    InsanelyMac Protégé

  • Members
  • Pip
  • 15 posts

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.

#4
ctroncosor

ctroncosor

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 109 posts
Muy buen post, felicitaciones.

#5
miliuco

miliuco

    InsanelyMac Sage

  • Donators
  • 396 posts
  • Gender:Male
  • Location:Spain
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}?

#6
javierandress

javierandress

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 122 posts
  • Gender:Male
  • Location:Viña del Mar, Chile.
Me puedes decir la ruta de donde están esos kexts para poder eliminarlos. Saludos

#7
federico1978

federico1978

    InsanelyMac Protégé

  • Members
  • Pip
  • 8 posts
  • Gender:Male
  • Location:in the intrenet

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







0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy