Guía DSDT-OSX86 - Inyección de Video (gráficas Nvidia)

Estado
No está abierto para más respuestas.

roisoft

New member
Guía DSDT-OSX86 - Inyección de Video (gráficas Nvidia)

Inyección de codigo via DSDT para gráficas NVIDIA


En esta tercera guía, abordaremos como añadir a nuestro DSDT, código para inyección de gráficos que posibilitará que dejemos de utilizar cadenas Efi o inyectores de video para tarjetas Nvidia.

*nota: Hemos tenido éxito con esta técnica para algunas GMA950, X3100 y en algunas ATI de las serie x1xxx pero todavía no en las HD.

Herramientas necesarias:
Ioregistry explorer

Tarjeta gráfica Nvidia funcionando 100% incluidas las salidas de video necesarias (QE y CI por hardware).
Haber leído previamente el capítulo uno y dos de la guía

Contenido:

1. Como reconocer donde está nuestra tarjeta de video en el registro y sus devices asociados.
2. Descompilación del archivo DSDT.aml y añadido de cófigo gráfico.
2a. El código cargador.
3. Comparación de nuestro Ioreg con el código añadido, Nvcaps, reg y renombrado.
4. Estructura básica de dispositivos de video en el DSDT y añadido de nuestro código.
4a. Ejemplo con portatil.
4b. Ejemplo con ordenador tipo torre.
5. Compilación y prueba.




1. Como reconocer donde está nuestra tarjeta de video en el registro y sus devices asociados.

Una vez descargado el programa Ioregistry explorer, procedemos ejecutarlo, nos desplazaremos por el arbol de entradas hasta que encontremos la referencia de nuestra tarjeta de video, normalmente suele ser bastante claro:
Este ejemplo es de un portátil con una tarjeta Nvidia 8600GT 256 MB usando los últimos parches de video y Nvinject como inyector.

Como vereis, no está marcada en verde la linea que corresponde a la tarjeta, sino la superior, y tiene su explicación: en el código DSDT no la encontraremos con su nombre, sino con la del dispositivo que la alberga.

Vamos a explicar un poco estos dispositivos:
Marcado en rojo está el dispositivo AGP@1, que depende de PCI@0, este dispositivo alberga un sub-dispositívo denominado VID@0, en el cual se halla nuestra tarjeta de video.
A su vez, el dispositivo VID@0 contiene otros dispositivos que no vemos, como LCD, VGA, etc.....



2. Descompilación del dsdt.aml y añadido del código gráfico.


Asumiendo que previamente a esta guía habeis conseguido tener un dsdt fijado y operativo (Hpet y RTC parcheados etc...) hacemos una copia de seguridad del archivo DSDT.aml y nos disponemos a trabajar sobre el.

En las anteriores guías ya hemos hablado del binaio llamado "iasl" que se encuentra dentro de la carpeta "toolt" del patcher creado por fassl. Repito la recomendación de que copieis este archivo en /usr/bin con esto lo tendremos siempre disponible al abrir el terminal y no tendremos que estar recordadndo donde lo hemos puesto o arrastrarlo al terminal cada vez que queremos modificar nuestro archivo dst.dsl

Dicho esto, y habiendo copiado el binario en donde hemos mencionado comenzamos con la descompilación del DSDT.aml:

Abrimos terminal, nos logueamos como root y accedemos a la carpeta en donde tenemos alamacenado el dsdt (cd "ruta a la carpeta")
una vez dentro tecleamos "iasl -d dsdt.aml"

Esto creará el archivo DSDT.dsl, hacemos una copia del mismo para tenerla como respaldo y la movemos fuera de la carpeta tools para no tener superpoblación de archivos.

Ahora ya prodemos editar el DSDT.dsl usando un editor de texto de nuestra elección (se sugiere textmate)

Para este ejemplo utilizaremos un dsdt de un equipo portátil.

Nota: El código marcado en rojo no es utilizado.
El color azul reseña la parte del código que debemos adaptar a nuestra tarjeta de video.

Renombrado de nuestra tarjeta en el código foraneo.

Si os fijáis en las letras en azul que se sugiere, veréis que están marcadas el Buffer y el nombre de la tarjeta, ¿porque?, pues es simple, deberéis de cambiar el nombre de la tarjeta por el vuestro, y el buffer lo que indica es el número de caracteres (incluyendo los espacios) que hay en el nombre entrecomillado+1, si cambiáis el nombre, pero no el buffer, la compilación fallará.


Como averiguar el buffer (que ademas está en hexadecimal).
Es bien sencillo, necesitamos un conversor decimal a hexadecimal y al contrario.

Una web que os puede venir muy conveniente es esta:

Entrar or Registrarse para completar la lectura

o esta:
Entrar or Registrarse para completar la lectura


Bien, empezemos:

Ejemplo de buffer para la línea "Nvidia GeForce 8600M GS 256 MB" , el número de letras y espacios contenidos aqui es 30 (decimal), añadimos 1 al resultado (realmente lo que pasa es que la cuenta numérica empieza desde cero), lo que nos da 31, usando las webs arriba indicadas, ponemos 31 en decimal y nos dá como resultado 1F en hexadecimal, es decir, el buffer empleado.

Si cambiamos el nombre al de nuestra tarjeta, deberemos de usar este mismo planteamiento para calcular el tamaño del buffer.

2a. El código cargador.

Daremos un repaso al concepto de código cargador del que ya hemos hablado en la anterior guía.

Nuestro código no es ACPI, es una cadena de información que añadiremos al código ACPI, y si la ponemos tal cual, nuestro registro OSX no la cargará al no ser esta compatible ACPI, para que esta sea cargada, tendremos que utilizar un "cargador", que no es mas que un poco de código que definirá nuestra entrada de código y permitirá su carga por parte del sistema.

Donde insertar el "cargador"?

Esto es sencillo, debéis de buscar con el editor de texto una zona del código que se llama _WAK, y cuando termina la definición de la misma, encajar el código cargador.

Codigo cargador:
Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}

If (LEqual (Arg2, One))
{
Return (One)
}
}
}

Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}
Zona de carga:

El código de esta zona dependerá de la máquina, y basicaménte tenéis que buscar el final del código _WAK, que terminará así:
Return (Package (0x02)
{
Zero,
Zero
})
}
o en algunas placas tb puede ser

Return (WAKP)
}

He incluir debajo el codigo cargador.

EJEMPLO:

Zona de carga mas cargador:

Method (_WAK, 1, NotSerialized)
{
P8XH (One, 0xAB)
If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
{
If (And (CFGD, 0x01000000))
{
If (LAnd (And (CFGD, 0xF0), LEqual (OSYS, 0x07D1)))
{
TRAP (0x3D)
}
}
}

If (LEqual (RP2D, Zero))
{
Notify (\_SB.PCI0.RP02, Zero)
}

If (LEqual (Arg0, 0x03)) {}
If (LEqual (Arg0, 0x04))
{
\_SB.PCI0.LPCB.EC0.SELE ()
}

P8XH (Zero, 0xCD)
Return (Package (0x02)
{
Zero,
Zero
})
}

Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}

If (LEqual (Arg2, One))
{
Return (One)
}
}
}

Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}
Salváis el archivo y lo compilamos para ver si se han producido errores en el código.

Abrimos el terminal, nos logueamos como root y accedemos a la carpeta del dsdt (cd "ruta a la carpeta") seguidamente tecleamos

iasl -f dsdt.dsl

Si se producen errores, es que habéis puesto mal el cargador, si ocurren warnings, es que es posible que vengan de antes, no les hagáis mucho caso ahora.

Si no se producen errores, borrad el archivo DSDT.aml que se ha generado y proseguimos el trabajo dentro de DSDT.dsl


3. Comparación de nuestro Ioreg con el código añadido, Nvcaps, reg y renombrado.


Ahora procederemos a buscar los datos necesarios en nuestro IOREG para insertarlos en cada parte correspondiente en el código.


Buscaremos primero las NVCAP o configuración de las salidas de nuestra tarjeta de video y el NVPM o gestión de energia.

Abrimos el IOREG y buscamos nuestra tarjeta de video, señalando el dispositivo hijo y buscaremos la entrada NVCAP y la NVPM:

Una vez tengamos los valores NVCAP y NVPM, los rectificaremos en nuestro código.

Ahora miremos el valor de la entrada REG:

Modificaremos el valor de REG en el código gráfico, para que tenga el valor real que tiene en nuestro sistema.



4. Estructura básica de dispositivos de video en el DSDT y añadido de nuestro código.


4a. Ejemplo utilizando un portátil.

Abramos el DSDT.dsl y busquemos mediante la palabra clave "device" hasta que lleguemos a:

Device (AGP)

Encontraremos el árbol de dispositivos de esta manera (diferentes colores para cada dispositivo):

Resumidamente sin nuestro código:


Resumidamente CON nuestro código:

Extendido:

4b. Ejemplo utilizando un ordenador tipo torre.

Buscaremos con el IOregistry explorer nuestra tarjeta de video, y aquí notaremos una diferencia con respecto al código en el ordenador portátil, y es la siguiente:

En el ordenador tipo torre, no encontraremos los devices de video que vimos en el ejemplo anterior, LCD, CRT etc, salvo en los casos de gráfica integrada, tendremos que buscar en el ioreg el emplazamiento de nuestra gráfica, normalmente suele estar bajo algunos de los dispositivos PCI como por ejemplo PC1, P0P1 etc.. depende del fabricante de la placa, pero algunas veces no vemos el dispositivo con una demarcación clara en el ioreg y nos aparece como PCI2BRIDGE o PCIBRIDGE en este caso añadiremos la entrada directamente en el PCI ya que todos estos dispositivos tienen como dispositivo "madre" al PCI principal ..... En placas con gráfica integrada podemos encontrarnos algo más parecido al ejemplo del ordenador portátil, pero no deberemos de caer en errores, el código deberá ser añadido en el código correspondiente al dispositivo en el que se encuentra emplazada nuestra tarjeta y no en la parte del video integrado de la placa.

Fijáros en el código del puerto PCI.

Device (PCI0)
{
Name (_HID, EisaId ("PNP0A03"))
Name (_ADR, 0x00)
Name (_UID, 0x01)
Name (_BBN, 0x00)
Method (_S3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}

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

Method (_CRS, 0, NotSerialized)
{
Name (BUF0, ResourceTemplate ()
{
El código continua mucho más, pero tomaremos esto como referencia.

Aquí tendríamos nuestro código de video añadido al puerto PCI:

5. Compilación y prueba.


Ahora solo nos quedará salvar el archivo y compilarlo para ver si tiene errores de sintaxis o no.


Abrimos el terminal, nos logueamos como root y accedemos a la carpeta en donde tenemos nuestro dsdt (cd "ruta a la carpeta") tecleamos

iasl dsdt.dsl

Si se producen errores, es que habéis puesto mal el cargador, si ocurren warnings, es que es posible que vengan de antes, no les hagáis mucho caso ahora.

Si los tiene, aseguraos de que no hayan quedado corchetes huérfanos o borrados.

Si no los tiene, renombrad el archivo DSDT.aml que tenéis en el root del sistema a "DSDTold.aml" y copiad el nuevo (que se abra creado al compilar) en la raíz del disco.

Borramos el inyector que estemos utilizando (Nvkush,Nvinject ó NVdarwin) o la cadena EFI si es que usamos éste método y procedemos a reinicíar. Si nuestro emplazamiento ha sido el correcto y la codificación adecuada nuestra gráfica deberia de estar perfectamente reconocidad y con todo activado.

Si fallase el nuevo DSDT.aml, (por ejemplo se congela el sistema), podéis arrancar el sistema utilizando el comando DSDT=DSDTold.aml (introducidlo cuando veáis el arranque chameleon presionando F8 y seleccionando la instalación de Leopard).


Esperamos que esta tercera guía sobre las posibilidades del sistema DSDT haya sido de vuestro agrado.
Estaremos actualizando las guias a medida que tengamos nuevos datos....
 

juker12

Activo
Asias Roisoft,
muy currado el trabajo que te estas dando para hacernos llegar el DSDT


Yo os adjunto un Widget que no es mas que una calculadora HEX que os vendra bien para este tipo de trabajos
 

miliuco

Activo
Gracias a la ayuda de Roisoft, DSDT con gráfica (8800gt 512) en el PC de la firma, así que a estudiar más sobre DSDT en las guías.
Gracias de nuevo.
Y a ti Juker por la calculadora.
 

darthside

Activo
Ahora si que me estan hablando en chino, vale la pena aprender, una pregunta, sera posible agregar el DSDT en mi equipo que aparece en la firma?, de ser posible, creen que realmente tenga menos problemas con las actualizaciones, ya que no puedo usar el kernel vanilla.
 

roisoft

New member
Posible es amigo, pero en tu caso no tiene mucho sentido, usas el voodoo el cual hace las veces de disabler así que no lo creo necesario...

Algo más de información

Pondré un ejemplo de inyeccion de audio via dsdt en mi placa P35-DS4 y codec ALC889a

Teniendo en cuenta que ya sabemos lo que es el código cargador y su emplazamiento al final de _WAK buscaremos la entrada AZAL (casi todas las GA la añaden) en el dsdt y la sustituiremos por HDEF. Buscando en el dsdt encontraremos

Method (_L0D, 0, NotSerialized)
{
Notify (\_SB.PCI0.EHCI, 0x02)
Notify (\_SB.PCI0.EHC2, 0x02)
Notify (\_SB.PWRB, 0x02)
Notify (\_SB.PCI0.AZAL, 0x02)
}
y mas adelante

Device (AZAL)
{
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D,
0x05
})
}
}
cambiamos AZAL por HDEF y nos queda
Method (_L0D, 0, NotSerialized)
{
Notify (\_SB.PCI0.EHCI, 0x02)
Notify (\_SB.PCI0.EHC2, 0x02)
Notify (\_SB.PWRB, 0x02)
Notify (\_SB.PCI0.HDEF, 0x02)
}

.........................................................
.......................................................

Device (HDEF)
{
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D,
0x05
})
}
Ahora nos queda inyectar el pinconfig que encontraremos en el ioreg

y nos quedará una entrada HDEF de la siguiente forma
Device (HDEF)
{
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D,
0x05
})
}

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x08)
{
"codec-id",
Buffer (0x04)
{
0x85, 0x08, 0xEC, 0x10
},

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

"device-type",
Buffer (0x12)
{
"Realtek ALC885/9A"
},

"PinConfigurations",
Buffer (0x28)
{
/* 0000 */ 0x10, 0x40, 0x01, 0x01, 0x64, 0x10, 0x01, 0x01,
/* 0008 */ 0x71, 0x60, 0x01, 0x01, 0x82, 0x20, 0x01, 0x01,
/* 0010 */ 0x30, 0x90, 0xA1, 0x01, 0x20, 0x90, 0xA1, 0x02,
/* 0018 */ 0x40, 0x30, 0x81, 0x01, 0x50, 0x40, 0x21, 0x02,
/* 0020 */ 0xF0, 0x71, 0x44, 0x01, 0x90, 0x71, 0x45, 0x11
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

espero os resulte de utilidad...
 

roisoft

New member
Salu2!

Para todos aquellos que poseais una placa sobremesa que integre una GMA 950 os posteo, este fix que hará que podais utilizar perfectamente el framebuffer original de apple con todo perfectamente activado.

Normalmente las integradas tienen una _ADR 00020000 y están bajo el dispositivo PCI que dependiendo de las placas y fabricantes de bios, podemos encontrarlo como PCI, PCI0, P0P, P0P0 etc... solo es necesarios buscar la correcta ubicacion y añadir


...........................
.........................
.............................
Device (GFX0)
{
Name (_ADR, 0x00020000)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x1A)
{
"device_type",
Buffer (0x08)
{
"display"
},

"model",
Buffer (0x08)
{
"GMA 950"
},

"built-in", //con esto fijaremos la GMA
Buffer (one)
{
0x01
}

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

................
................
................

Estoy intentando tb fijar la GMA 3100 via dsdt pero al no disponer de una placa con estas características es complicado, lo mismo tb para gráficas ATI, he conseguido que algunas HD3850/3870 funcionen con el código que postearé a continuación, pero tampoco tengo testers para poder pulir el método....

ejemplo en placa Gigabyte
Device (PEGP)
{
Name (_ADR, 0x00010000)
Device (GFX0)
{
Name (_ADR, Zero)
Name (_SUN, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x5E)
{
"@0,AAPL,boot-display",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"@0,ATY,EFIDisplay",
Buffer (0x06)
{
"TMDSA"
},

"@0,compatible",
Buffer (0x0A)
{
"ATY,Megalodon"
},

"@0,connector-type",
Buffer (0x04)
{
0x04, 0x00, 0x00, 0x00
},

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

"@0,display-connect-flags",
Buffer (0x04)
{
0x00, 0x00, 0x04, 0x00
},

"@0,display-type",
Buffer (0x04)
{
"LCD"
},

"@0,name",
Buffer (0x0A)
{
"ATY,Megalodon"
},

"@0,VRAM,memsize",
Buffer (0x10)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10
},

"@1,compatible",
Buffer (0x0A)
{
"ATY,Megalodon"
},

"@1,connector-type",
Buffer (0x04)
{
0x00, 0x02, 0x00, 0x00
},

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

"@1,display-type",
Buffer (0x05)
{
"NONE"
},

"@1,name",
Buffer (0x0A)
{
"ATY,Megalodon"
},

"@1,VRAM,memsize",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10
},

"AAPL,aux-power-connected",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"AAPL,backlight-control",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},

"AAPL,EMC-Display-List",
Buffer (0x40)
{
/* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x06, 0x10, 0x00, 0x00, 0x1B, 0x92, 0x00, 0x00,
/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0020 */ 0x06, 0x10, 0x00, 0x00, 0x1C, 0x92, 0x00, 0x00,
/* 0028 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0030 */ 0x06, 0x10, 0x00, 0x00, 0x21, 0x92, 0x00, 0x00,
/* 0038 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
},

"AAPL00,blackscreen-preferences",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x08
},

"AAPL01,blackscreen-preferences",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x08
},

"AAPL01,Coherency",
Buffer (0x04)
{
0x02, 0x00, 0x00, 0x00
},

"ATY,Card#",
Buffer (0x0E)
{
"109-B148xx-00"
},

"ATY,Copyright",
Buffer (0x32)
{
"Copyright AMD Inc. All Rights Reserved. 2005-2008"
},

"ATY,EFICompileDate",
Buffer (0x0C)
{
"Dec 18 2007"
},

"ATY,EFIDriverType",
Buffer (One)
{
0x02
},

"ATY,EFIEnabledMode",
Buffer (One)
{
0x02
},

"ATY,EFIHWInitStatus",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
},

"ATY,EFIOrientation",
Buffer (One)
{
0x01
},

"ATY,EFIVersion",
Buffer (0x0A)
{
"01.00.236"
},

"ATY,EFIVersionBios",
Buffer (0x0F)
{
"113-B14801-023"
},

"ATY,FrameBufferOffset",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
},

"ATY,HWGPIO",
Buffer (0x04)
{
0x23, 0xA8, 0x48, 0x00
},

"ATY,IOSpaceOffset",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00
},

"ATY,MCLK",
Buffer (0x04)
{
0x00, 0x35, 0x0C, 0x00
},

"ATY,MemRevisionID",
Buffer (0x02)
{
0x01, 0x00
},

"ATY,MemVendorID",
Buffer (0x02)
{
0x06, 0x00
},

"ATY,PCIConfigSpace",
Buffer (0x0100)
{
/* 0000 */ 0x02, 0x10, 0x88, 0x95, 0x07, 0x00, 0x10, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x03, 0x40, 0x00, 0x00, 0x00,
/* 0010 */ 0x0C, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
/* 0018 */ 0x04, 0x00, 0xA2, 0x90, 0x00, 0x00, 0x00, 0x00,
/* 0020 */ 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0028 */ 0x00, 0x00, 0x00, 0x00, 0x6B, 0x10, 0xA6, 0x00,
/* 0030 */ 0x00, 0x00, 0xA0, 0x90, 0x50, 0x00, 0x00, 0x00,
/* 0038 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
/* 0040 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0048 */ 0x00, 0x00, 0x00, 0x00, 0x6B, 0x10, 0xA6, 0x00,
/* 0050 */ 0x01, 0x58, 0x03, 0x06, 0x00, 0x00, 0x00, 0x00,
/* 0058 */ 0x10, 0xA0, 0x11, 0x00, 0xA0, 0x8F, 0x00, 0x00,
/* 0060 */ 0x10, 0x08, 0x00, 0x00, 0x02, 0x0D, 0x00, 0x08,
/* 0068 */ 0x42, 0x00, 0x02, 0x11, 0x00, 0x00, 0x00, 0x00,
/* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0078 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0080 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0088 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0090 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0098 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 00A0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 00A8 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 00B0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 00B8 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 00C0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 00C8 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 00D0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 00D8 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 00E0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 00E8 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 00F0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 00F8 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
},

"ATY,PlatformInfo",
Buffer (0x80)
{
/* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0028 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0030 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0038 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0040 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0048 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0050 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0058 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0060 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0068 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0078 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
},

"ATY,RefCLK",
Buffer (0x04)
{
0x8C, 0x0A, 0x00, 0x00
},

"ATY,RegisterSpaceOffset",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x90, 0xA2, 0x00, 0x00
},

"ATY,Rom#",
Buffer (0x1D)
{
"DSDT ROM v.1B by roisoft.(c)"
},

"ATY,SCLK",
Buffer (0x04)
{
0x60, 0xAE, 0x0A, 0x00
},

"ATY,VendorID",
Buffer (0x02)
{
0x02, 0x10
},

"device_type",
Buffer (0x14)
{
"ATY,MegalodonParent"
},

"model",
Buffer (0x13)
{
"ATI Radeon HD 2600"
},

"MVAD",
Buffer (0x40)
{
/* 0000 */ 0x3E, 0x5C, 0x82, 0x00, 0xFF, 0x90, 0x00, 0xCA,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x7C, 0x2E, 0x90, 0x06, 0x30, 0x07, 0x30, 0x00,
/* 0018 */ 0x20, 0x00, 0x1A, 0x04, 0x38, 0x04, 0x03, 0x00,
/* 0020 */ 0x06, 0x00, 0x1A, 0x04, 0x90, 0x06, 0x00, 0x01,
/* 0028 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0030 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0038 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
},

"name",
Buffer (0x10)
{
"ATY,MegalodonParent"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}

seguiremos informando....
 

roisoft

New member
Salu2 de nuevo!

como veis sigo insistiendo jeje ,... en mi último post os dejaba un código para gráficas ATI, bien pues ya he comprobado que funciona con diferentes testers... He conseguido hacer funcionar inyectando código via dsdt las gráficas ATI x1600 (Ati, Wormy) y ATI HD2600XT y HD3850/70 (ambas con Ati, Megalodon)

el código para la x1600

Device (GFX0)
{
Name (_ADR, Zero) // usar ioreg para correcta ADR
Name (_SUN, Zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x28)
{
"@0,compatible",
Buffer (0x0A)
{
"ATY,Wormy"
},

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

"@0,name",
Buffer (0x0A)
{
"ATY,Wormy"
},

"@1,compatible",
Buffer (0x0A)
{
"ATY,Wormy"
},

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

"@1,name",
Buffer (0x0A)
{
"ATY,Wormy"
},

"ATY,Card#",
Buffer (0x0E)
{
"109-xxxxxx-00"
},

"ATY,DeviceID",
Buffer (0x02)
{
0xC0, 0x71
},


"ATY,EFIVersion",
Buffer (0x0A)
{
"01.00.086"
},

"ATY,FrameBufferOffset",
Buffer (0x04)
{
0x80, 0x00, 0x00, 0x00
},

"ATY,HWGPIO",
Buffer (0x04)
{
0x21, 0x10, 0x00, 0x00
},

"ATY,IOSpaceOffset",
Buffer (0x08)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00
},

"ATY,MCLK",
Buffer (0x04)
{
0x50, 0x27, 0x01, 0x00
},


"ATY,RefCLK",
Buffer (0x04)
{
0x8C, 0x0A, 0x00, 0x00
},

"ATY,RegisterSpaceOffset",
Buffer (0x04)
{
0x98, 0x30, 0x00, 0x00
},

"ATY,Rom#",
Buffer (0x0F)
{
"113-xxxxxx-086"
},

"ATY,SCLK",
Buffer (0x04)
{
0xD8, 0xBD, 0x00, 0x00
},


"ATY,VRAM,MemSize",
Buffer (0x04)
{
0x00, 0x01, 0x00, 0x00
},

"device_type",
Buffer (0x10)
{
"ATY,WormyParent"
},

"model",
Buffer (0x18)
{
"ATI Radeon X1600 256 MB"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Codigo para HD2600 y HD3800

Device (GFX0)
{
Name (_ADR, Zero) // ioreg para la correcta ADR
Name (_SUN, Zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x34)
{
"@0,compatible",
Buffer (0x0E)
{
"ATY,Megalodon"
},

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

"@0,name",
Buffer (0x0E)
{
"ATY,Megalodon"
},

"@1,compatible",
Buffer (0x0E)
{
"ATY,Megalodon"
},

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

"@1,name",
Buffer (0x0E)
{
"ATY,Megalodon"
},


"AAPL,EMC-Display-List",
Buffer (0x40)
{
/* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x06, 0x10, 0x00, 0x00, 0x1B, 0x92, 0x00, 0x00,
/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0020 */ 0x06, 0x10, 0x00, 0x00, 0x1C, 0x92, 0x00, 0x00,
/* 0028 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0030 */ 0x06, 0x10, 0x00, 0x00, 0x21, 0x92, 0x00, 0x00,
/* 0038 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
},


"ATY,Card#",
Buffer (0x0E)
{
"109-B148xx-00"
},


"ATY,DeviceID",
Buffer (0x02)
{
0x88, 0x95
},


"ATY,EFIDriverType",
Buffer (One)
{
0x02
},

"ATY,EFIEnabledMode",
Buffer (One)
{
0x02
},

"ATY,EFIHWInitStatus",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
},

"ATY,EFIOrientation",
Buffer (One)
{
0x01
},

"ATY,EFIVersion",
Buffer (0x0A)
{
"01.00.236"
},

"ATY,EFIVersionBios",
Buffer (0x0F)
{
"113-B14801-023"
},

"ATY,FrameBufferOffset",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
},

"ATY,HWGPIO",
Buffer (0x04)
{
0x23, 0xA8, 0x48, 0x00
},

"ATY,IOSpaceOffset",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00
},

"ATY,MCLK",
Buffer (0x04)
{
0x00, 0x35, 0x0C, 0x00
},


"ATY,RefCLK",
Buffer (0x04)
{
0x8C, 0x0A, 0x00, 0x00
},

"ATY,RegisterSpaceOffset",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x90, 0xA2, 0x00, 0x00
},

"ATY,Rom#",
Buffer (0x0F)
{
"113-B1480A-236"
},

"ATY,SCLK",
Buffer (0x04)
{
0x60, 0xAE, 0x0A, 0x00
},

"ATY,VendorID",
Buffer (0x02)
{
0x02, 0x10
},


"device_type",
Buffer (0x14)
{
"ATY,MegalodonParent"
},

"model",
Buffer (0x1A)
{
"ATI Radeon HD 2600 Series" //cambiad esto si teneis una 38xx
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
seguiremos informando....
 

nani-pitch

New member
ostras roisoft estas echo un Messi del mac,sabiendo la mitad que tu me bastaria eternamente xDD

gracias men por tu dedicacion!!
 

fnahue

New member
Estoy nbladisimo. donde lo inyecto (tengo una HD2600 XT)
Dejo la captura de IORegistryExplorer y dsdt.dsl
 

fnahue

New member
Bueno amplio:
Cuando genero el dsdt.aml me sale 6 advertencias y ningún error, lo pongo en el disco de inicio y el sistema arranca bien con AppleIntelCPUPowerManagement y sin disabler. Hasta acá todo ok.
Ahora quiero inyectar la grafica ya que haz posteado un codigo para las 2600XT como la mia. Hago lo siguiente: descompilo dsdt.aml y obtengo el dsdt.dsl, ahora inserto el codigo y cuando lo velvo a compilar me sale las g advertencias q salian antes y un error y no genera el dsdt.aml

dsdt.dsl:

Name (PRSA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,11,12,14,15}
})
Name (PRSB, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,10,12,14,15}
})
Name (PRSC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,10,11,12,14,15}
})
Alias (PRSC, PRSD)
Alias (PRSC, PRSE)
Alias (PRSC, PRSF)
Alias (PRSC, PRSG)
Alias (PRSC, PRSH)
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A08"))
Name (_ADR, Zero)
Device (GFX0)
{
Name (_ADR, Zero) // ioreg para la correcta ADR
Name (_SUN, Zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x34)
{
"@0,compatible",
Buffer (0x0E)
{
"ATY,Megalodon"
},

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

"@0,name",
Buffer (0x0E)
{
"ATY,Megalodon"
},

"@1,compatible",
Buffer (0x0E)
{
"ATY,Megalodon"
},

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

"@1,name",
Buffer (0x0E)
{
"ATY,Megalodon"
},


"AAPL,EMC-Display-List",
Buffer (0x40)
{
/* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x06, 0x10, 0x00, 0x00, 0x1B, 0x92, 0x00, 0x00,
/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0020 */ 0x06, 0x10, 0x00, 0x00, 0x1C, 0x92, 0x00, 0x00,
/* 0028 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0030 */ 0x06, 0x10, 0x00, 0x00, 0x21, 0x92, 0x00, 0x00,
/* 0038 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
},


"ATY,Card#",
Buffer (0x0E)
{
"109-B148xx-00"
},


"ATY,DeviceID",
Buffer (0x02)
{
0x88, 0x95
},


"ATY,EFIDriverType",
Buffer (One)
{
0x02
},

"ATY,EFIEnabledMode",
Buffer (One)
{
0x02
},

"ATY,EFIHWInitStatus",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
},

"ATY,EFIOrientation",
Buffer (One)
{
0x01
},

"ATY,EFIVersion",
Buffer (0x0A)
{
"01.00.236"
},

"ATY,EFIVersionBios",
Buffer (0x0F)
{
"113-B14801-023"
},

"ATY,FrameBufferOffset",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
},

"ATY,HWGPIO",
Buffer (0x04)
{
0x23, 0xA8, 0x48, 0x00
},

"ATY,IOSpaceOffset",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00
},

"ATY,MCLK",
Buffer (0x04)
{
0x00, 0x35, 0x0C, 0x00
},


"ATY,RefCLK",
Buffer (0x04)
{
0x8C, 0x0A, 0x00, 0x00
},

"ATY,RegisterSpaceOffset",
Buffer (0x08)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x90, 0xA2, 0x00, 0x00
},

"ATY,Rom#",
Buffer (0x0F)
{
"113-B1480A-236"
},

"ATY,SCLK",
Buffer (0x04)
{
0x60, 0xAE, 0x0A, 0x00
},

"ATY,VendorID",
Buffer (0x02)
{
0x02, 0x10
},


"device_type",
Buffer (0x14)
{
"ATY,MegalodonParent"
},

"model",
Buffer (0x1A)
{
"ATI Radeon HD 2600 Series"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
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)
}
}

Name (_CID, EisaId ("PNP0A03"))
Device (MCH)



Terminal:


Last login: Wed Jan 21 07:19:52 on console
199-5-190-190:~ Flores$ Sudo -s
Password:
bash-3.2# cd /Volumes/Datos/Usuarios/Flores/Desktop
bash-3.2# iasl dsdt.dsl

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20080926 [Oct 4 2008]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a

dsdt.dsl 1711: DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Error 4063 - ^ Object does not exist (DTGP)

dsdt.dsl 8376: Method (VGET, 1, NotSerialized)
Warning 1087 - ^ Not all control paths return a value (VGET)

dsdt.dsl 8421: Method (TGET, 1, NotSerialized)
Warning 1087 - ^ Not all control paths return a value (TGET)

dsdt.dsl 8465: Method (FGET, 1, NotSerialized)
Warning 1087 - ^ Not all control paths return a value (FGET)

dsdt.dsl 8491: Store (VGET (Local0), Local1)
Warning 1092 - ^ Called method may not always return a value

dsdt.dsl 8533: Store (TGET (Local0), Local1)
Warning 1092 - ^ Called method may not always return a value

dsdt.dsl 8566: Store (FGET (Local0), Local1)
Warning 1092 - ^ Called method may not always return a value

ASL Input: dsdt.dsl - 8797 lines, 282608 bytes, 4024 keywords
Compilation complete. 1 Errors, 6 Warnings, 0 Remarks, 45 Optimizations




roisoft necesito de tu experiencia
desde ya les agradesco


Mother: P5K-SE
Micro: Core 2 Duo E8400
Memo: 4Gb DDR2 800
Grafica: HD2600 XT
Instalacion retail
 

fnahue

New member
Ya me encontre yo solo un error

Name (_ADR, Zero) // ioreg para la correcta ADR

no lo habia visto igual espero que me puedan guiar ya que estoy un poco nublado
 
hola tengo un problema en el ioregistr no encuentro ningun agp, la tarjeta esta sober un p0p2@1, , le pongo una imagen<a href="http://www.flickr.com/photos/34924424@N04/3278970114/" title="Imagen 2 por somethinghaschange, en Flickr"><img src="http://farm4.static.flickr.com/3421/3278970114_2772f30ccd.jpg" width="500" height="396" alt="Imagen 2" /></a> luego el problema en el dsdt es que no aparece el dispositivo en p0p2 sale algo asi
Device (P0P2)
{
Name (_ADR, 0x00010000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
}

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

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

Return (PR01)
}
}

alguna ayuda? quisiera arreglarlo pero no se como me podrian decir que debe hacer? me gustaria adjuntar el dsdt.dsl o el dsdt.aml pero no me lo permite el foro
bueno desde ahora gracias
 

roisoft

New member
Salu2!

No te tomes los nombres de los dispositivos que se muestran en las guias al pie de la letra, son ejemplos particulares.... cada placa puede añadir distintos nombres, simplemente debes de adaptarlo a tu caso particular...

En tu caso añade lo siguiente:

Device (P0P2)
{
Name (_ADR, 0x00010000)
Device (GFX)
{
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 (0x118)
{
/* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
/* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
/* 0010 */ 0x00, 0x00, 0x00, 0x00
},

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

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

"model",
Buffer (0x1D)
{
"Nvidia GeForce 7300 GT 256 MB"
},

"rom-revision",
Buffer (0x0E)
{
"DSDT ROM v.1B"
}

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

Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
}

no te olvides de insertar el cargador (explicado en las guias) para que este codigo sea inyectado, de lo contrario no hará nada.
 
Me sale un error, copio lo que aparece en el terminal cuando compruebo el dsdt.dsl

Mac-de-Antonio:~ Antonio$ su
Password:
sh-3.2# cd /dsdt
sh-3.2# /Volumes/Updates/Mac\ os\ 10.5.6/Patcher\ dsdt/Tools/iasl dsdt.dsl

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20080926 [Oct 4 2008]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a

dsdt.dsl 1572: DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Error 4063 - ^ Object does not exist (DTGP)

dsdt.dsl 4635: Concatenate (RETB, FZTF)
Warning 1105 - ^ Result is not used, operator has no effect

dsdt.dsl 5385: Concatenate (RETB, FZTF)
Warning 1105 - ^ Result is not used, operator has no effect

ASL Input: dsdt.dsl - 6472 lines, 210448 bytes, 2647 keywords
Compilation complete. 1 Errors, 2 Warnings, 0 Remarks, 70 Optimizations
sh-3.2#
adjunto un zip con el dsdt.dsl, espero que me ayuden. especialemte gracias a ti riosoft,
 

roisoft

New member
Al parecer no has leido demasiado las guías, si lo hubieras hecho sabrías que el cargador es ésto

Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}

If (LEqual (Arg2, One))
{
Return (One)
}
}
}

Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}

Al compilar el dsdt con el iasl te devuelve 1 error, precisamente que no encuentra definido el método DTGP, que es el encargado de inyectar lo que hemos añadido anteriormente, si te fijas al final del codigo hay una llamada a un método DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)), método que no has añadido, de ahí el error , tb te devuelve un par de warnings que no son importantes...

Te he añadido el método y corregido los warnings.
 
mil gracias riosoft, me sorprende mucho esto, después de un poco de problemas logra añadir el código al dsdt.dsl, primero inserte el de el fix de time machine y el cargador función perfecto, entonces decidí intentar una vez mas con el dsdt de la grafica, cuando reinicie sin el inyector no funcionaba, desilusionado casi tiro el dsdt.aml a la papelera cuando me doy cuanta... cuando renombre el dsdt.am, le puse por error: DSDTaml sin el punto, se lo puse, reinicie y funciona perfecto, en este momento ya solo quisiera saber si hay una guia o como puedo agregar el sonido al dsdt.y estoy pensando en meter el dsdt a la bios, pero ya tendre q leer mas e investigar ucho ogracias riosoft, y tambien pude corregir los warrings q tenia, mil gracias otra vez
 
Estado
No está abierto para más respuestas.
Arriba