Jump to content

Post Instalacion ML en Asus K52JU (notebook)


LesGaR
 Share

15 posts in this topic

Recommended Posts

Hola, recien acabo de realizar una instalación satisfactoria de Mountain Lion en mi portátil Asus K52JU con el siguente Hardware:

 

 

Tipo de CPU: Intel Core i3-370M, 2400 MHz (18 x 133)

Placa base: Asus K52JU Series Notebook

Chipset : Intel Ibex Peak-M HM55, Intel Ironlake-M

DIMM1: Samsung 4 GB DDR3-1333 DDR3 SDRAM (8-8-8-22 @ 609 MHz)

DIMM3: Elpida 2 GB DDR3-1333 DDR3 SDRAM (8-8-8-22 @ 609 MHz)

BIOS : K52JU.206

Video : AMD Radeon HD 6370M (512 MB) (Robson)

Monitor : Samsung LTN156A [15.6" LCD]

Audio: ATI Radeon HDMI @ ATI Cedar/Park - High Definition Audio

Audio: Conexant Cx20585 @ Intel Ibex Peak PCH - HDAudio Controller [b-3]

IDE: Intel® 5 Series 4 Port SATA AHCI Controller

Lecto tarjeta: JMB38X MS/SD/MMC/xD Host Controller

Unidad ópt: Slimtype DVD A DS8A5SH

Teclado: Keyboard Device Filter

Mouse: ELAN PS/2 Port Smart-Pad

Ethernet: JMicron PCI Express Gigabit Ethernet Adapter

Wifi: Qualcomm Atheros AR9285 Wireless Network Adapter

USB2 : Intel Ibex Peak PCH - USB 2.0 EHCI Controller 1 [b-3]

USB2: Intel Ibex Peak PCH - USB 2.0 EHCI Controller 2 [b-3]

Webcam: USB2.0 UVC VGA WebCam

BaterÍa : ¿?

 

Kexts:

 

ACPISensors.kext (no aparece cargado)

AppleACPIPlatform.kext v1.3.6

VoodooBattery.kext v1.3.3 (obsoleto, no funciona AppleACPIBatManager )

AppleACPIPS2Nub.kext v1.0.0d1 (obsoleto, no me funciona ningún otro)

VoodooPS2Controller.kext v1.1.0 (obsoleto, no me funciona ningún otro)

AppleHDA.kext v2.1.3f7 (copiado de Lion no hay nativo ML que funcione)

AsusHotkeys.kext v1.0.15 (funciona, pero intentare inyectarlo en DSDT)

ATI5000Controller.kext v8.0.0 (nativo ML pero editando device-id de mi grafica)

AMDRadeonAcceator.kext v1.0.0 (nativo ML editado device-id soporte QE/CI)

FakeSMC.kext v4.2.0 (creo que es el último de la rama estable)

JMB38X.kext v1.5.0 (funciona lector SD, pero modificando device-id)

jmc250.kext v1 (NO FUNCIONA Ethernet, pero permite acceder . Appstore y facetime + flag EthernetBuildIn

 

 

Asi que si podeis ayudarme a conseguir:

- activar los gestos en el touchpad

- activar el speedstep

- monitorizar temperaturas

- activar suspensión

- editar dsdt para cargar el AppleACPIBateryManager.kext (que gracias a Juarenson se que es el que hay que utilizar, según el foro hay que hacer modificaciones SERIAS en el dsdt. )

- Quitar el error pci configuration begin (aunque consigue arrancar, en el modo verbose se traba)

- editar kexts de la grafica para que reconozca de forma nativa la pantalla y las salidas HDMI i VGA (en breve subiré la bios dumpeada)

....

 

Os lo agradeceria Mucho.

 

Añado mi dsdt original (que ni siquiera compila) y el que uso actualmente (con inyección de Atheros y HDA i fixes para que arranque)

DSDT.zip

Link to comment
Share on other sites

Hola. Te he corregido la dsdt original para que compile sin errores, sólo quedaron 2 warnings que son insignificantes, no son errores y se pueden obviar. Ahora puedes trabajar en ella como base limpia:

dsdtAsusK52JUOriginal_sinerrores.dsl.zip

 

Por cierto, el código referente a la batería (device BAT0) se ve correcto y compatible con la especificación ACPI 4.0a de Lion y ML. Entonces te recomiendo que le apliques lo arreglos (fixes) básicos a esa nueva dsdt corregida, y pruebes a ver qué resultados obtienes con "AppleACPIBatteryManager" o la de tu preferencia.

 

Arreglos usuales: http://olarila.com/f....php?f=19&t=634

 

Me llama la atención que uses una versión antigua de "AppleACPIPlatform.kext" (v1.3.6), ni siquiera es de Lion 10.7, esa versión es de Snow Leopard 10.6.7 si no me equivoco, y deberías usar la versión vanilla v1.6 de ML 10.8... Por qué usas esa versión antigua?

 

En fin, con el código original que tienes en la batería debería funcionar con la "AppleACPIPlatform.kext" (v1.6). Esa extensión es el corazón ACPI para la administración de energía del sistema, todo lo referente a energía depende de esa extensión crítica.

 

Para el audio nativo conexant CX20585 utilizo "AppleHDA" (v2.3.0f2) de ML 10.8 parcheado:

AppleHDA.kext.zip

 

+ inyección DSDT dentro del dispositivo HDEF. Los resultados son buenos pero no excelentes, es lo que hay:

 

 

	Method (_DSM, 4, NotSerialized)
	{
		Store (Package (0x08)
			{
				"codec-id",
				Buffer (0x04)
				{
					0x69, 0x50, 0xF1, 0x14
				},

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

				"layout-id",
				Buffer (0x04)
				{
					0x0C, 0x00, 0x00, 0x00
				},

				"PinConfigurations",
				Buffer (Zero) {}
			}, Local0)
		DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
		Return (Local0)
	}

 

Saludos.

Link to comment
Share on other sites

Ya he actualizado el AppleHDA.kext

v2.3.0f2

(el que me mandaste en el post anterior ) y el AppleACPIPlatform.kext v1.6 (Nativo ML) funcionan bien, aunque he perdido el medidor de bateria (supongo que será por el dsdt).

 

Mañana probare con el dsdt que me has mandado.

 

Eres un Crack !!!

 

Muchas Gracias.

 

PD: el step speed ya funciona de forma nativa y el ordenador ya se suspende, aunque no se despierta (como yo mañana si no me acuesto AHORA). :wallbash:

Link to comment
Share on other sites

He aplicado los fixes basicos al dsdt que me pasaste (DTGP, IRQ RTC y EHCI).

 

Con la inyección por defecto de DsdtEditor>Patches>Notebook Core i Nehalem>HDEF _DSM.txt Ya funciona, pero prefiero la mía pq sale la info en Acerca de este Mac (supongo que es meramente cosmético) ¿que opinais?

 

 

Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method

{

Store (Package (0x0E)

{

"AAPL,slot-name",

Buffer (0x09)

{

"Built in"

},

 

"device-id",

Buffer (0x04)

{

0x69, 0x50, 0xF1, 0x14

},

 

"layout-id",

Buffer (0x04)

{

0x0C, 0x00, 0x00, 0x00

},

 

"model",

Buffer (0x1A)

{

"HD Audio Conexant Cx20585"

},

 

"name",

Buffer (0x11)

{

"Conexant Cx20585"

},

 

"device_type",

Buffer (0x11)

{

"Audio Controller"

},

 

"PinConfigurations",

Buffer (One)

{

0x00

}

}, Local0)

DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

Return (Local0)

}

 

 

Y la inyección de la wifi (para usar el IO80211Family.kext vanilla):

 

 

Name (_SUN, One) // _SUN: Slot User Number

Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method

{

Store (Package (0x0C)

{

"AAPL,slot-name",

Buffer (0x08)

{

"AirPort"

},

 

"device-id",

Unicode ("*"),

"device_type",

Buffer (0x08)

{

"AirPort"

},

 

"model",

Buffer (0x34)

{

"Atheros 9285 8802.11 b/g/n Wireless Network Adapter"

},

 

"subsystem-id",

Buffer (0x04)

{

0x8F, 0x00, 0x00, 0x00

},

 

"subsystem-vendor-id",

Buffer (0x04)

{

0x6B, 0x10, 0x00, 0x00

}

}, Local0)

DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

Return (Local0)

}

 

 

HASTA AQUí TODO CORRECTO

 

El medidor no funciona y en la consola me salen los sigiuentes errores:

 

AppleACPIBatteryManager:getBatteryBIF(0xE00002BC) failed

AppleACPIBatteryManager:getBatteryBST(0xE00002BC) failed

 

Alguna idea?

 

PD: no se como se ponen los spoilers (para que sea mas fácil leer este post)

Añado el dsdt (que tu me pasaste con los fixes antes mencionados) y la extensión AppleACPIBatteryManager.kext v1 (según el foro compatible con 10.7.3 y supongo que siguientes) para dar mas información.

 

Cualquier ayuda es bien recibida

 

Gracias

dsdtLimpioJuarensonEdicion01.zip

AppleACPIBatteryManager.kext.zip

Link to comment
Share on other sites

Ya vi los "errores" en los métodos (Method _BIF) y (_BST) que son los encargados de suministrar información sobre la batería al sistema. Efectivamente tienes registros de 16-bit incompatibles con la especificación ACPI 4.0a que sólo admite registros de 8-bit (e inferiores). Así que hay trabajo por hacer para dividir cada registro de 16-bit o superior (por ejemplo busca MNAM y verás que es de 64-bit), por lo tanto hay que convertirlo en ocho (8) registros de 8-bit cada uno, e implementarlo en cada instancia dónde aparezca. Complicado está ese arreglo. En eso consiste el fix de bcc9... pedazo de hallazgo que hizo el gran maestro. Voy a tratar de corregírtelo al estilo tradicional, con calma para probar, aunque no garantizo nada.

 

Otra manera de corregirlo es a través de un método auxiliar creado por Zprood, que él ha llamado por ejemplo: "Method (B1B2, 2, NotSerialized)" A partir del cual se agregan entradas que hacen las respectivas llamadas que convierten los registros de 16-bit (o superiores) en registros de 8-bit, compatibles con ACPI 4.0a. Aquí se explica el procedimiento, es muy sencillo de esa manera: http://www.insanelym...howtopic=272459

 

Bien, además hice una lista de los registros de 16-bit que hay que convertir en pares de 8-bit. Creo que hallé todos.

Relacionados con el método _BIF (Información de la batería):

- B0MD

- B1MD

- B0DC

- B1DC

- B0FC

- B1FC

- B0DV

- B1DV

 

Relacionados con el método _BST (Estado de la batería):

- B0ST

- B1ST

- B0CC

- B1CC

- B0RC

- B1RC

- B0VL

- B1VL

 

Por cierto, excelente trabajo con la dsdt, la editaste tu mismo, con los comentarios y todo eso? Te felicito. Saludos.

 

P.D. Recomendación: por experiencia te digo que es mejor tener los comentarios o referencias en el .dsl entre /* ... */, por ejemplo:

Device (BAT0) // dispositivo bateria blablabla

Cambiarlo por /* dispositivo bateria blablabla */ Así será compatible con cualquier versión del compilador / desamblador IASL.

Link to comment
Share on other sites

Hola, he estado mirando lo de modificar el dsdt para

que

cumpla con la especificación ACPI 4.0a y la verdad es que lo veo MUY DIFICIL para mi. Así que voy a aparcar de momento este fix para cuando tenga mas tiempo libre (finales de septiembre) así además intentare aplicarle otros parches mas (fix para cargar IOPCI.kext nativo, que chameleon detecte RootPci=1, injección de la gráfica y su correspondientes framebufers, ...) de pensarlo ya me agobio.

 

Gracias por tu tiempo y esfuerzo en ayudarme y ya te contaré mis resultados.

 

PD: Con el AppleHDA.kext que me pasaste no tengo la entrada de linea ni el microfono funcionando, no se si a ti te pasara lo mismo.

He conseguido que funcione la entrada de linea, con lo que ya puedo hablar por facetime (con un micro externo conectado a LineIn)

pero se me resiste la activación del micro (buit-in). Te adjunto el kext modificado por si quieres probarlo

 

Si alguien tiene alguna sugerencia de como activar el micro, por favor comentarlo.

 

Gracias

AppleHDA.kextLineIN.zip

post-284341-0-80519100-1346369942_thumb.png

Link to comment
Share on other sites

Te adjunto el AppleHDA vanilla parcheado (el binario y lo demás) de la beta 10.8.2 (12C35) para mi variante de Conexant Cx20585. Puedes hacerle tus ajustes propios si lo deseas a los tres (3) archivos esenciales en sus respectivas ubicaciones:

1) AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.plist

2) AppleHDA.kext/Contents/Resources/layout12.xml.zlib -- y -- Platforms.xml.zlib

Captura de pantalla 2012-08-31 a la(s) 22.58.32.png

Nota: Funciona junto con la misma inyección DSDT del post #2

Fuente: http://www.insanelym...howtopic=274218

Saludos.

AppleHDA.kext_10_8_2_RESUBIDO.zip

Edited by juanerson
Resubido el archivo - levemente corregido el Info.plist
Link to comment
Share on other sites

Me podrias pasar tu audio dump de linux?

He comparado mi dump de audio con el de post al que me has dirigido y aparte de que difiere el codec (por eso necesito el tuyo) tampoco cuadran los nodos.

En el mio en micro se implementa asi: 0x14>0x17>0x1A (20>23>26)

En el dump si funciona audio es 0x14>0x23 y el nodo 0x17 apunta a 0x1b

En windows todavia difiere mas...

 

Mi codec:

 

Codec: Conexant CX20585

Address: 0

AFG Function Id: 0x1 (unsol 1)

Vendor Id: 0x14f15069

Subsystem Id: 0x104313f3

Revision Id: 0x100302

post-284341-0-38255400-1346524540_thumb.png

card0-codec#0.txt.zip

Link to comment
Share on other sites

Hola. Te adjunto mi dump de linux extraído con ubuntu 10.10 live desde un pendrive. Te comento que en OS X aún no obtengo entrada de micrófono funcional, de ningún tipo (interno o externo). Sólo funcionan las salidas de los altavoces internos y auriculares. Espero que sirva de ayuda. Saludos.

linux_dump.zip

Link to comment
Share on other sites

Hola de nuevo, por favor prueba este primer intento de corregir el medidor de la batería desde la DSDT:

 

1) NO había hecho la comparación, y apenas hoy me vengo a dar cuenta que tu código es muy parecido al mío, sobre todo el de la batería "Device (BAT0)" y sus respectivos métodos _BIF y _BST, siendo hasta obvio y lógico porque Pegatron es una dependencia menor de Asus, al menos creo que todavía lo es. Porque estaban a punto de divorciarse, pero eso no es tan importante en todo caso jejeje.

 

2) Para información, en el archivo .dsl están los comentarios, buscando la palabra 8-bit verás que sólo hice el arreglo a únicamente dos registros B1DV y B1MD (ambos relacionados con _BIF), y creo que será suficiente con ese par de ajustes. Aunque de todas formas tengo varias cosas en mente para probar con otros registros y cambios en una segunda prueba.

 

3) Te quedarás sorprendido (como yo) que mi dsdt funcione con tantos registros de 16-bit en el código original. Pero aunque no es necesario en mi caso, igual los iré adaptando a 8-bit poco a poco para mejorar la armonía con la especificación ACPI 4.0a. Prácticamente son los mismos tuyos, un poco incomprensible para la teoría que manejo. En fin, te adjunto mi dsdt para que los compares y compruebes por ti mismo. Saludos.

prueba1_BATERIA.zip

Mi_dsdt.aml.zip

Link to comment
Share on other sites

No Funciona, aunque con tu dsdt (se que no se debe hacer) si que me ha llegado a funcionar marcando la cantidad de bateria restante, aunque los valores de carga máxima modelo, ... no salían correctamente.

He ojeado tu dsdt y he visto que ademas de modificar el B1MD y el B1DV, tambien modificas el B1SN a 8 bits "a pelo". Cosa que también he probado y nada ... de momento.

Link to comment
Share on other sites

No compañero, B1SN y absolutamente todos los demás registros que veas de 8-bit vienen así de fábrica en mi dsdt. Todavía no he cambiado nada en ese apartado. Es decir, esos registros no se cambian "a pelo" como tu dices, sino de la manera que adapté B1MD y B1DV en tu dsdt. Esa es la forma correcta según bcc9. Y los de 16-bit llevarlos a pares de 8-bit ya ves que es muy sencillo de hacer en tu misma dsdt, sólo hace falta invertir un poco de tiempo. En un rato te subo otra dsdt para una segunda prueba, creo que tienes código de más en la sección de la batería que no lee o reconoce el driver, ni el sistema. En mi dsdt hay menos código si te fijas bien, en los dos métodos importantes. Saludos.

 

Editado: Listo, ahora con menos código, y casi exacto al mío. Debería funcionar, aunque se puede mejorar un poco más. Buena Suerte.

prueba2_BATERIA.zip

 

Re-editado: Por cierto, ya tengo todos los registros de 16-bit implementados en pares de 8-bit en el código de la batería, los 16 registros del post #5, y...

 

Captura de pantalla 2012-09-04 a la(s) 00.19.31.png

 

Pues que rinde sus frutos, ya que el impacto se ve reflejado en una mayor duración de la batería, sobrepasando las 4 horas (como en windows 7) cuando antes marcaba un máximo de 3:30 - 3:35 horas. Es lo esperado, lo mismo me sucedió con la HP cuando apliqué el ajuste en su momento, bendito fix de bcc9, tiene doble beneficio. Esto se ve realmente muy prometedor, aunque el reto mayor será el de 64-bit, tendré que consultarle a él y pedirle ayuda... pero ya estoy muy contento con los resultados preliminares.

Link to comment
Share on other sites

Ya tengo funcionando el medidor de batería siguiendo las indicaciones del foro que me pasaste.

 

El próximo paso que voy a dar va a ser cambiarle la ram de 2gb (la elpida) por una de 4gb (identica a la samsung ), para tener 8gb de RAM total en "dual channel".

 

Supongo que este cambio me forzará a regenerar el dsdt original, adaptarle los fixes que me pasaste (no se cuales son exactamente, pero no me preocupa, le haré un diff entre el que te mandé limpio y el que me devolviste ) e intentare implementarle los métodos DTGP en SSDT-5 en como has hecho con el tuyo (he seguido el link de tu firma al foro NosoloHD).

 

Supongo que este cambio también me obligará a dumpear las tablas ssdt, añadirlas a EXTRA y añadirle DROPSSDT=Yes al org.chameleon.Boot.plist

 

Una vez hecho el cambio volveré a meterle mano al dsdt para conseguir que durante el arranque no se me quede bloqueado en "PCI configuration begin",

hacer que chameleon detecte que uso PCIRoot=1 y lo más importante:

 

Inyectar por dsdt en la gráfica el ATY,device-id correcto (el kext nativo ML necesita la 0x68e0 y la mia es 0x68e4)

Inyectar el framebufer correcto (de momento tengo que usar el forceEdid para que funcione el LCD) y no funcionan los puertos vga y hdmi.

 

Cuando dices en el otro foro que las tablas SSDT1, SSDT2 y SSDT3 son comunes a todos los procesadores incluyes a los Nehalem (Como el mio) o solo a la familia sandybrydge?

Te lo comento porque estaba pensando en dumpear desde linux las tablas SSDT y SSDT4 y usar las SSDT1, SSDT2 y SSDT3 tuyas. Y por supuesto crear la SSDT5 con la inyección de mis dispositivos.

 

PS: me parece que tu forma de implementar la inyección de dispositivos en el dsdt es súper elegante y práctica. Felicidades por ello.

Te adjunto mi dsdt mientras hago el cambio de la RAM

post-284341-0-37420800-1346795566_thumb.png

dsdtCorregJarenson+Bateria.zip

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

Hola, parece que por fin he conseguido que funcione correctamente el applehda para nuestro codec de audio (funcionan tanto el MicIn como el LineIn).

Te lo adjunto por si quieres probarlo (según el linux dump que me pasaste, deberia funcionarte).

Tambien te adjunto un voodooHda que funciona al 100% (sin sonidos raros, con autodetección de jacks y con todas las entradas y salidas funcionando correctamente, incluidos el MicIn, LineIn y HDMI,que a mi no me funciona por problemas con los framebufers de mi Ati). Se que no te gusta usar este driver, pero a mi me vino bien para averiguar los nodos a parchear en el Applehda.

 

No he conseguido documentación suficiente para poder editar a fondo el layoutid (uso el mismo que usaste tu en esta versión de applehda), el platform.xml (al que solo le he modificado los nodos del MicIn y el LineIn) ni de como parchear el binario applehda para elimimar los warnings sound asertion

 

PD: he conseguido que funcione el medidior de batería correctamente modificando mi dsdt adaptando un parche que hay en este foro para el

Asus M60J que hizo el usuario Jingu (aunque hay una parte del código que tuve que meter "a pelo") y usando el

AppleACPIBatteryManager.kext de rehabman (que es en esencia el mismo, pero corrige el bug que aparece al arrancar el equipo sin la batería puesta, te decía No hay baterias puestas, Fuente de alimentación:Batería, un sin sentido a todas luces).

 

 

Como voy hasta arriba de trabajo no voy a date la lata con la edición de mi dsdt, pues no me gustaría que ocupes tu tiempo ayudándome y que yo por falta de tiempo no pueda probarlo (sería una falta de respeto hacia ti). Aunque poquito a poquito voy progresando, ya he podido inyectar los devices (Wifi, GIGA, HDEF) a través de una tabla ssdt, dejando el dsdt.aml lo mas "limpio" posible. Ahora intentaré inyectar la gráfica (de momento ha sido un fracaso absoluto) pero lo necesito pq sino mi equipo no puede despertar de sleep (despierta pero la pantalla no se enciende) ni usar un bootloader diferente del chimera (pues es el único que inyecta correctamente mi Ati, con la opción GraphicsEnabler=Yes, framebufer=baboom y sobreescribiendo el edid de mi LDVS) .

Audio10.8.2.zip

  • Like 2
Link to comment
Share on other sites

  • 8 months later...

Hola Lesgar, ya te mande un mensaje hace tiempo, pero tuve que abandonar el proyecto por otros temas, espero no te causara molestias y si eres tan amable me gustaria retomarlo, y veo que tu lo tienes ya casi al 100%. Despues de leer mucho he conseguido instalar el sistema en mi disco duro, pero estoy aun bastante verde en esto, despues de instalarlo no me funciona teclado, track ni nada de nada y la verdad no  se muy bien que debo hacer ahora. veo que deberia usar multo beast (de hecho lo he hecho) y he usado un dsdt tuyo, el ultimo que pones en el post que dice algo de + batería, lo puse en escritorio y use [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] y le dije dsdt user, creo que funciona así. sigue sin funcionarme nada, ademas no soy capaz de entrar directamente desde el disco duro, o me salta pci configuration begin o si me lo salto con "pci=off" anda una linea mas y me pone 10240x768 y ahi se queda. si arranco desde el usb que cree y le doy graphicsenabler=no consigo entrar pero sigo sin tener nada instalado. Que estoy haciendo mal? puedes ayudarme con algo?? muchisimas gracias!

Link to comment
Share on other sites

 Share

×
×
  • Create New...