1. #1
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad roisoft
    Avatar de roisoft

    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:


    o esta:


    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....

  2. #2
    Activo Progreso OSx86 Spain Nivel 3 Karma y autoridad juker12 Karma y autoridad juker12
    Avatar de juker12

    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
    Archivos Adjuntos Archivos Adjuntos

  3. #3
    Activo Progreso Nivel 1 OSx86 Spain Karma y autoridad miliuco
    Avatar de miliuco

    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.

  4. #4
    Activo Progreso en OSx86 Spain Nivel 0 Karma y autoridad darthside
    Avatar de darthside

    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.

  5. #5
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad roisoft
    Avatar de roisoft

    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...

  6. #6
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad roisoft
    Avatar de roisoft

    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....

  7. #7
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad roisoft
    Avatar de roisoft

    Posteo de nuevo para corregir un par de errores en el post anterior

    en el fix de la GMA he puesto
    Store (Package (0x1A)
    lo correcto sería
    Store (Package (0x06)
    y en el codigo para las ATI 38xx he puesto

    "model",
    Buffer (0x13)
    {
    "ATI Radeon HD 2600"
    },
    lo correcto sería
    "model",
    Buffer (0x13)
    {
    "ATI Radeon HD 3800"
    },

  8. #8
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad roisoft
    Avatar de roisoft

    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....

  9. #9
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad nani-pitch
    Avatar de nani-pitch

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

    gracias men por tu dedicacion!!

  10. #10
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad fnahue
    Avatar de fnahue

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

  11. #11
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad fnahue
    Avatar de fnahue

    Perdon no subi las capturas
    Miniatura de Adjuntos Imágenes del artículo   

  12. #12
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad fnahue
    Avatar de fnahue

    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

  13. #13
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad fnahue
    Avatar de fnahue

    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

  14. #14
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad fnahue
    Avatar de fnahue

    Funciono. Gracias a la ayuda de pere y el codigo de roisoft
    Muchas gracias

  15. #15
    Activo Progreso en OSx86 Spain Nivel 0 Karma y autoridad falloutboyemo
    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

  16. #16
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad roisoft
    Avatar de roisoft

    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.

  17. #17
    Activo Progreso en OSx86 Spain Nivel 0 Karma y autoridad falloutboyemo
    te refieres a el appleintelcpupowermanagement.kext ?

  18. #18
    Activo Progreso en OSx86 Spain Nivel 0 Karma y autoridad falloutboyemo
    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,
    Archivos Adjuntos Archivos Adjuntos

  19. #19
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad roisoft
    Avatar de roisoft

    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.
    Archivos Adjuntos Archivos Adjuntos

  20. #20
    Activo Progreso en OSx86 Spain Nivel 0 Karma y autoridad falloutboyemo
    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

  21. #21
    Tímido Progreso en OSx86 Spain Nivel 0 Karma y autoridad bernardo415
    Avatar de bernardo415

    Hola

    les escribo para saber si es posible utilizar esta tarjeta con este sistema ya que con los inyectores Nvdarwin o cualquier otro el sistema demora para arrancar en modo grafica al menos hasta 2 minutos, he tambien probado con las cadenas EFI pero me quedo sin acelaracion.

    y es un poco penoso mostrar como instalo un MAC OS X LEOPARD en un pc aa los compañeros de la U y tener este bug.

  22. #22
    Activo Progreso en OSx86 Spain Nivel 0 Karma y autoridad CyberSoft
    Hola alguien me puede ayudar con la inyección de mi gráfica por favor, que ya tengo varios días intentando y me salen 200 y pico de errores luego de ponerle el código de la gráfica y tratar de compilar.

    Si hay un alma caritativa que me pueda ayudar por favor, les dejo mi dsdt y un dump de ioregistry.

    Saludos y gracias de antemano.

  23. #23
    Activo Progreso en OSx86 Spain Nivel 0 Karma y autoridad milon
    Avatar de milon

    Que susto me has dado cuando he bajado tu DSDT y me he encontrado con un exe.


    Mira site vale esto
    Device (PEG1)
    {
    Name (_ADR, 0x00010000)
    Method (_PRW, 0, NotSerialized)
    {
    Return (Package (0x02)
    {
    0x0B,
    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"
    }
    }, Local0)
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
    Return (Local0)
    }
    }
    }

    Cita CyberSoft dijo: Ver Mensaje
    Hola alguien me puede ayudar con la inyección de mi gráfica por favor, que ya tengo varios días intentando y me salen 200 y pico de errores luego de ponerle el código de la gráfica y tratar de compilar.


    Mis disculpas, los subo a putlocker porque no se como subirlos aqui.

  24. #24
    Activo Progreso en OSx86 Spain Nivel 0 Karma y autoridad CyberSoft
    Hola Milon muchas gracias, pero no se donde debo de pegar el trozo de código, ya que si lo pego debajo de POP3 que es donde el ioreg me dice que esta mi gráfica me da 201 errores como todos los demás, me podrías decir donde lo debo de pegar por favor.

    Y sobre los archivos que subí no son exe son dos .zip uno es el aml de mi DSDT y el otro es el dump del ioreg, kextstar y demás, trata de descargarlo nuevamente a ver.

    Un saludo y muchas gracias nuevamente.

Notas relacionadas que te pueden interesar

  1. PCEFi 10.3 con inyección de vídeo en 10.5.8
    por miliuco en categoría OS X 10.5
    Comentarios: 9
    Último comentario: 28/09/09, 23:35:06
  2. Guía DSDT- OSX86 - Solución problemas Time Machine
    por roisoft en categoría OS X 10.7
    Comentarios: 8
    Último comentario: 17/09/09, 10:06:25
  3. Guía DSDT-OSX86 - Activar SpeedStep nativo.
    por roisoft en categoría Tutoriales y guías
    Comentarios: 1
    Último comentario: 05/06/09, 22:28:59
  4. Guía DSDT-OSX86
    por roisoft en categoría Tutoriales y guías
    Comentarios: 32
    Último comentario: 07/05/09, 17:40:11
  5. Nvidia presenta nuevas gráficas serie 100
    por charlszone2 en categoría Noticias osx86spain.com
    Comentarios: 1
    Último comentario: 23/03/09, 18:11:58

Etiquetas en este tema

No te pierdas: