Jump to content

inyeccion de video en DSDT.aml


maiki1905
 Share

20 posts in this topic

Recommended Posts

Llevo desde 2009 con esto del hackintosh, he tenido Leopard, Snow y ahora uso Lion, poseo una Grafica Nvidia Geforce 8400 Gs de 512Mb hasta ahora después de pruebas y pruebas he conseguido que funcionara, medio a la perfeccion, pero en Lion no consigo habiltar todas las resoluciones ni la aceleracion grafica, gracias a Osx86 tools he editado el apple.boot.plist (creo que se escribe asi, lo he puesto de memoria) y se me ejecuta a la resolucion de mi pantalla, me detecta que es mi grafica per no consigo activar aceleracion.

 

He usado todos los metodos que conozco, he editado los kexts, Graphics Enabler yes etc..

 

La ultima opcion es inyectar el video en el archivo dsdt.aml pero tras leer y leer y probar no lo consigo, ¿alguien podria guiarme?

 

Muchas gracias

 

Asus P5l-vm 1394

Intel Core 2 Duo

Nvidia Geforce 8400Gs 512Mb

2Gb Memoria

Hd Sata 500Gb

 

Un saludo

Link to comment
Share on other sites

Bueno parece que que al fin voy consiguiendo algo, he podido inyectar el video en mi dsdt, ya que reconoce la tarjeta de video sin necesidad de enablers adicionales, lo he conseguido en snow pero sigo sin aceleración gráfica.

 

Este es el resultado, por si alguien le echa un ojo.

 


Device (P0P1)
		{
			Name (_ADR, 0x00010000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (GPRW (0x09, 0x04))
			}

			Device (GFX1)
			{
				Name (_ADR, Zero)
				Name (_SUN, 0x0B)
				Method (_PRW, 0, NotSerialized)
				{
					Return (Package (0x02)
					{
						0x0B,
						0x04
					})
				}

				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x18)
						{
							"@0,compatible",
							Buffer (0x0B)
							{
								"NVDA,NVMac"
							},

							"@0,device_type",
							Buffer (0x08)
							{
								"display"
							},

							"@0,fboffset",
							Buffer (0x04)
							{
								0x00, 0x00, 0x02, 0x00
							},

							"@0,name",
							Buffer (0x0F)
							{
								"NVDA,Display-A"
							},

							"@1,compatible",
							Buffer (0x0B)
							{
								"NVDA,NVMac"
							},

							"@1,device_type",
							Buffer (0x08)
							{
								"display"
							},

							"@1,name",
							Buffer (0x0F)
							{
								"NVDA,Display-B"
							},

							"NVCAP",
							Buffer (0x14)
							{
								/* 0000 */	0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
								/* 0008 */	0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
								/* 0010 */	0x00, 0x00, 0x00, 0x00
							},

							"device_type",
							Buffer (0x0C)
							{
								"NVDA,Parent"
							},

							"VRAM,totalsize",
							Buffer (0x08)
							{
								/* 0000 */	0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20
							},

							"model",
							Buffer (0x00)
							{
								"NVIDIA Geforce 8400GS"
							},

							"rom-revision",
							Buffer (0x06)
							{
								"nVidia GeForce 8400 GS OpenGL Engine"
							}
						},

						"reg",
		   Buffer (0x78)
		   {
			/* 0000 */	0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0008 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0010 */	0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x02,
			/* 0018 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0020 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
			/* 0028 */	0x14, 0x00, 0x04, 0x42, 0x00, 0x00, 0x00, 0x00,
			/* 0030 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0038 */	0x00, 0x00, 0x00, 0x10, 0x1C, 0x00, 0x04, 0x02,
			/* 0040 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0048 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
			/* 0050 */	0x24, 0x00, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00,
			/* 0058 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0060 */	0x80, 0x00, 0x00, 0x00, 0x30, 0x00, 0x04, 0x02,
			/* 0068 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0070 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}
			}
		}

		Device (P0P3)
		{
			Name (_ADR, 0x001E0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (GPRW (0x0B, 0x04))
			}

			Method (_PRT, 0, NotSerialized)
			{
				If (PICM)
				{
					Return (AR03)
				}

				Return (PR03)
			}
		}

 

Gracias

Link to comment
Share on other sites

Yo uso este DSDT enabler para las nvidia (GTX260 y otra 8800GT) Las 2 funcionan con QE/CI sin problemas en lion y cambian las resoluciones. He mirado tu código y tienes bastantes errores en los Buffers de los nombres "model" i "rom revision" También he visto que la Vram Totalize estaba como rara :S. Bueno, te dejo la solución en forma de código. Ya sabes, la pones donde empiece el directorio madre de PCIs (yo en Gigabyte es el Device PCI0, tu no se cual tendrás) Lo pones de la misma manera que te lo he dejado yo, entre Name (_BBN, Zero) y Method (_S3D,.....)

 

Sobretodo, quita cualquier enabler que tengas en el boot.plist y/o kext tal como el NVInject o parecido. Solo con el codigo en DSDT.

 

Ya me cuentas. Un saludo ;)

 

Device (PCI0)
       {
           Name (_HID, EisaId ("PNP0A03"))
           Name (_ADR, Zero)
           Name (_UID, One)
           Name (_BBN, Zero)            

//el codigo de la gráfica empieza aqui

          Device (PEGP)
           {
               Name (_ADR, 0x00010000)
               Device (GFX0)
               {
                   Name (_ADR, Zero)
                   Name (_SUN, One)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x16)
                           {
                               "@0,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@0,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@0,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-A"
                               }, 

                               "@1,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@1,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@1,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-B"
                               }, 

                               "NVCAP", 
                               Buffer (0x14)
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 
                                   /* 0008 */    0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "VRAM,totalsize", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x20
                               }, 

                               "device_type", 
                               Buffer (0x0D)
                               {
                                   "NVDA,GeForce"
                               }, 

                               "model", 
                               Buffer (0x16)
                               {
                                   "nVidia GeForce 8400GS"
                               }, 

                               "rom-revision", 
                               Buffer (0x24)
                               {
                                   "nVidia GeForce 8400GS OpenGL Engine"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }


//El codigo de la grafica acaba aqui

           Method (_S3D, 0, NotSerialized)
           {
               If (LEqual (OSFL, 0x02))
               {
                   Return (0x02)
               }
               Else
               {
                   Return (0x03)
               }
           }

           Method (_STA, 0, NotSerialized)
           {
               Return (0x0F)
           }

Link to comment
Share on other sites

Yo uso este DSDT enabler para las nvidia (GTX260 y otra 8800GT) Las 2 funcionan con QE/CI sin problemas en lion y cambian las resoluciones. He mirado tu código y tienes bastantes errores en los Buffers de los nombres "model" i "rom revision" También he visto que la Vram Totalize estaba como rara :S. Bueno, te dejo la solución en forma de código. Ya sabes, la pones donde empiece el directorio madre de PCIs (yo en Gigabyte es el Device PCI0, tu no se cual tendrás) Lo pones de la misma manera que te lo he dejado yo, entre Name (_BBN, Zero) y Method (_S3D,.....)

 

Sobretodo, quita cualquier enabler que tengas en el boot.plist y/o kext tal como el NVInject o parecido. Solo con el codigo en DSDT.

 

Ya me cuentas. Un saludo :)

 

Device (PCI0)
       {
           Name (_HID, EisaId ("PNP0A03"))
           Name (_ADR, Zero)
           Name (_UID, One)
           Name (_BBN, Zero)            

//el codigo de la gráfica empieza aqui

          Device (PEGP)
           {
               Name (_ADR, 0x00010000)
               Device (GFX0)
               {
                   Name (_ADR, Zero)
                   Name (_SUN, One)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x16)
                           {
                               "@0,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@0,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@0,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-A"
                               }, 

                               "@1,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@1,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@1,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-B"
                               }, 

                               "NVCAP", 
                               Buffer (0x14)
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 
                                   /* 0008 */    0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "VRAM,totalsize", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x20
                               }, 

                               "device_type", 
                               Buffer (0x0D)
                               {
                                   "NVDA,GeForce"
                               }, 

                               "model", 
                               Buffer (0x16)
                               {
                                   "nVidia GeForce 8400GS"
                               }, 

                               "rom-revision", 
                               Buffer (0x24)
                               {
                                   "nVidia GeForce 8400GS OpenGL Engine"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }


//El codigo de la grafica acaba aqui

           Method (_S3D, 0, NotSerialized)
           {
               If (LEqual (OSFL, 0x02))
               {
                   Return (0x02)
               }
               Else
               {
                   Return (0x03)
               }
           }

           Method (_STA, 0, NotSerialized)
           {
               Return (0x0F)
           }

 

Ante todo muchas muchas muchas gracias por echarme un cable estoy teniendo poco tiempo y ahora respondió desde mi móvil, ayer hice algunas pruebas con el código qué me pasaste, en principio no funcionó, tengo qué seguir investigando, pero de momento quería comentarte una cosa, he usado DSDTSE para compilar el archivo, pero ¿ debo trabajar sobre el dsdt.dsl y luego compilar o directamente sobre el aml?

haber sí luego le echo otro rato y cuelgo el código resultante.

Link to comment
Share on other sites

¡¡¡¡¡ GRACIIIIIIAAAAAASSSSS !!!!!

 

Bueno chicos por fin, estoy escribiendo desde mi LION DP2 con la gráfica 8400 gs funcionando correctamente, deciros que el código que yo introducía, el de unas respuestas mas arriba estaba mal, ademas yo introducía en código de mi gráfica en P0P1 cuando en realidad debía introducirlo en PCI0 por eso me daba numerosos errores al compilar el archivo.

 

Una vez creado el dsdt.aml sin errores ni warning lo copie en la carpeta extra y al arrancar en modo vervose (-v) se me colgaba en PCI CONFIGURATION BEGIN y de ahi no pasaba, la solucion a sido modificar el archivo apple.boot.plist que se encuentra en la carpeta EXTRA y añadir npci=0x2000 PCIRootUID=1 -v, pues nada agradecer SEROKIE el código facilitado, ya que sin el no lo hubiera conseguido.

 

 

Cualquier aclaración que pueda ayudar a alguien... me encuentro a vuestra disposición.

Link to comment
Share on other sites

Yo ta te decía que tenias que introducir el código donde empezaba el directorio madre PCI (PCI0). Sobre el archivo .aml o .dsl la diferencia es que el .aml es el archivo compilado y el .dsl, no. Puedes usar cualquiera de los dos, pero si haces un comentario en una linea y luego compilas, al abrir el .aml ya no lo tendrás, por lo que la información que puedas ir poniendo para aclararte tu mismo o a los demás, la perderás cada vez. Me alegro que te haya funcionado el código y ahora puedas disfrutar de tu Lion DP2 ;) un saludo!

Link to comment
Share on other sites

Bueno pues tengo un sabor agridulce, ya que como comentaba el post anterior una vez compilado el dsdt he intentar arrancar lion se me quedaba colgado en PCI CONFIGURATION BEGIN, y ahi se quedaba, luego lei que añadiendo una serie de comandos en el booteo se solventaria el problema, en efecto los añadi al boot.plist y listo grafica funcionando al 100 x 100, yo muy contento y tal...... pero resulta que al reiniciar por 2 vez se me vuelve a quedar colgado en el mismo sitio, asi lo reintente una 10 veces hasta que al final volvio a arrancar correctamente con grafica y todo, con lo que me indica que es algun kext o algo que a veces carga y otras no, a partir de aqui sigo investigando y detecto que si borro el dsdt de la carpeta EXTRA el sistema arranca sin problemas pero sin grafica, vamos pantalla con rayas y demas....

 

Luego he leido que para solucionarlo hay que añadir algo asi como "revised:" tras los datos de la grafica en el dsdt, pero no consigo llegar a compilar sin errores.

 

Esta claro que algo le ocurre al dsdt, ya que lo he probado en snow leopard y de momento no arranca correctamente usando la precarga del mismo

 

 

¿¿ALGUNA IDEA?

 

Muchas gracias, fue bonito mientras duro

dsdt.aml.zip

Link to comment
Share on other sites

Bueno pues tengo un sabor agridulce, ......

Esta claro que algo le ocurre al dsdt, ya que lo he probado en snow leopard y de momento no arranca correctamente usando la precarga del mismo

 

 

¿¿ALGUNA IDEA?

 

Muchas gracias, fue bonito mientras duro

 

 

Hola:

Prueba este y dime si funciona

 

http://www.megaupload.com/?d=5N5YBU8Q

 

También prueba a quitar PCIRootUID=1 de la linea (npci=0x2000 PCIRootUID=1 -v) en el com.apple.boot.plist pues debería estar solucionado en el dsdt.

 

Avisa si hay avances.

Un saludo

Link to comment
Share on other sites

Joder..... Soys unos Cracks, esto va como la seda (de momento), he reiniciado 3 veces y sin problemas, podrías aclararme donde estaba el error? para así saber que ocurría?

 

Muchas gracias ¡¡ uzmi !!

 

Cualquier cosa que yo pueda aportar no dudéis en contar conmigo.

 

PD: ¿Donde puedo informarme para seguir añadiendo el sonido y demás a mi dsdt?

 

Muchas gracias de nuevo.

 

Voy a probarlo en snow

Link to comment
Share on other sites

Hola:

No es que sea un experto pero he hecho mis pinitos con DSDT.

Si comparas uno y otro verás que esta reordenado diferente pero lo principal es lo siguiente:

 

user_size_323121.png

 

justo en la linea azul mediante el DSDT le decías a tu equipo que la UID era cero y en el boot le decías que era uno.

creo que ahí estaba el conflicto.

 

Ahora desde el DSDT le dices que es 1, por eso te comentaba de borrar parte de la línea del boot.plist.

 

Suerte y un saludo.

 

P.D. Si veo algo acerca del sonido ALC 883 te aviso.

Link to comment
Share on other sites

Pues nada, la proxima vez probare y probare antes de volver a decir que va todo bien, otra vez el dichoso PCI CONFIGURATION BEGIN,¿ (que es eso) ?, segun he podido comprobar cuando intercambio un dsdt por el otro a los primeros reinicios funciona pero luego plofff, una cosa que me he fijado es que el chameleon al inciar me reconoce mi grafica de echo aparece el nombre de ella al empezar a cargar los kext lo que pasa es que dice que es una Nvidia Geforce 8400 GS 256Mb y en la informacion de la grafica cuando me la reconoce lion me dice que es una 512Mb, por todo esto me parece que yo estoy confundido en realidad tengo una 256Mb por que en la caja pone algo de ampliable a 512Mb o algo asi.

 

¿Tendria esto algo que ver?

 

De nuevo un saludo..

 

 

PD Estoy cerca..... (O eso espero) de conseguirlo.

Link to comment
Share on other sites

Pues ahora puedo decir (no muy fuerte) que ya solucione el tema del dichoso PCI CONFIGURATION BEGIN, después de millones de pruebas, reinicios y apagar el pc a las "bravas", parece que todo fluye con normalidad.

 

Ha quedado con:

 

El DSDT del compañero Serokie (agradezco también la ayuda de uzmi).

He dejado en el archivo boot.plist de la carpeta EXTRA en Kernel Flags los parametros: npci=0x2000 PCIRootUID=1 -v.

y lo mas importante he tenido que sustituir un kext de la carpeta S/L/E por otro que encontré por la red, se llama IOPCIFamily.Kext

 

Comentar que también he actualizado Chameleon con la utilidad "Chameleon Wizard"

 

Llevo todo el día reiniciando y demás y no ha vuelto a salir el error.

 

Gracias a todos.

DSDT.aml.zip

IOPCIFamily.kext.zip

Link to comment
Share on other sites

Puedes poner el DSDT original sin que se le haya aplicado ningún parche? Quiero mirar unas cosas ;) Gracias!

 

Me temo que no es posible ya que cuando extraigo el dsdt me da como resultado el sistema junto a la inyección de la gráfica, aunque de todas maneras no funda correctamente la gran mayoría de veces me tira el error de PCI CONFIGURATION BEGIN, y es algo del dsdt por que si lo elimino de la carpeta Extra se solventa el problema.

Link to comment
Share on other sites

Viendo que no consigo dar con la tecla os expongo mi situación:

 

Si el DSDT estuviera bien configurado en Snow me debería de arrancar la grafica sin problemas ¿no?, pues no, no funciona, por eso creo que algo no estoy haciendo bien.

 

He extraido el DSDT de mi PC con la ayuda de el nuevo DSDT PATCHER del amigo Maldon, y he quitado del zocalo la Tarjeta de Video, siendo este el resultado.

  Device (PCI0)
	{
		Name (_HID, EisaId ("PNP0A08"))
		Name (_CID, EisaId ("PNP0A03"))
		Name (_ADR, Zero)
		Method (^BN00, 0, NotSerialized)
		{
			Return (Zero)
		}

		Method (_BBN, 0, NotSerialized)
		{
			Return (BN00 ())
		}

		Name (_UID, Zero)
		Method (_PRT, 0, NotSerialized)
		{
			If (PICM)
			{
				Return (AR00)
			}

			Return (PR00)
		}

		Method (_S3D, 0, NotSerialized)
		{
			If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
			{
				Return (0x02)
			}
			Else
			{
				Return (0x03)
			}
		}

 

Según me explicaba el amigo Serokie debo de poner el código que me facilito después de _BBN, pero en realidad yo no encuentro exactamente eso en mi archivo, lo mas parecido es "Method (_BBN, 0, NotSerialized)" ¿se refiere a eso?.

 

Por otro lado debo de sustituir lo que se encuentra entre "Method (_BBN, 0, NotSerialized)" y "Method (_S3D, 0, NotSerialized)" ¿por el código facilitado? o ¿no borro nada?.

 

 

Haber si le damos el ultimo arreón que esto de haber probado el caramelo y luego no encontrarlo por ningún lado..... es muy malo :-(

 

 

EDITO:

 

Cada vez estoy mas lejos, he reinstalado Lion GM y no tengo narices de conseguir que la gráfica funcione, siempre que consigo pasar el dichoso PCI CONFIGURATION BEGIN me encuentro con la siguente :

 

http://img69.imagesh...10806001738.jpg

IMG_20110806_001738.jpg.zip

IMG_20110806_001738.jpg.zip

Link to comment
Share on other sites

  • 10 months later...

a mi me pasa algo parecido con mi ati Radeon HD4650

Logre inyectar la gráfica con multiresolucion y creo que aceleracion tambien.. ya que hay un screensaver que no anda si no tenes OpenGL habilitado...

Lo que no tengo es el efecto ripple del Dashboard cuando agregas un gadget... ni tampoco anda el screensaver que se llama LotsaWater (o algo asi...) ese que es como si una gota cayera al desktop y hace todas las ondas como en el agua con un efecto impresionante...

Al activarse ese screensaver, se pone la pantalla de todos colores y parece que el efecto lo hace igual, pero al no verse bien el fondo.. no se aprecia nada.

 

Otra cosa que tuve que hacer es enchufar el monitor en la salida vga Y DVI.. sí, en las dos, o al menos que la salida tenga algo conectado.. aunque sea un cable solo...

El problema que no sé como hacer, es cargar siempre mi archivo aml y no tener que escribirlo cada vez en el bootloader.

Gracias y espero algun consejito.

Saludos.!!!

 

se supone que si lo hacemos mediante dsdt, no hay que dejar ningun kext de nuestra grafica verdad???

me refiero a los ati?????.kext

Saludos.

Link to comment
Share on other sites

  • 3 years later...

Hola a tod@s

 

soy novato en este mundo de hackintosh .... :) pero me parece muy interesante ...y estoy intentando que mi hackintosh me reconosca la grafica ..pero sin exito,e intentado con kext(AMD7000Controller.kext) y con varios dmg que me encontrado por ahi  todos estos de Vlada(AMD Radeon GPU Injector tool,)..pero ninguno me a solucionado mi problema solo me reconoce el tipo de tarjeta (Asus Radeon R9 270x) pero en la parte de la VRAM solo me muestra 7MB.... :(

 

Mi Configuracion 

 

MB : Asus P5QC

RAM : 8GB OCZ 

CPU : Quad Core Q6600

Grafica : Asus Radeon R9 270x

 

 

 

 

Link to comment
Share on other sites

 Share

×
×
  • Create New...