Jump to content

[ PCI configuration begin ]


5 posts in this topic

Recommended Posts

Nota1: si usas Snow Leopard 10.6.7 o anterior no deberías tener este fallo, lee ésto antes de actualizar.

 

Nota2: Derty tiene un hilo titulado "Odio el PCI configuration begin" (y quién no...) que merece la pena leer .

 

Apple ha modificado algunas cosas de la capa ACPI en la actualización 10.6.8 de Snow Leopard y en Lion. Estas modificaciones aportan mejoras en el encendido y apagado y la gestión de energía de los Macintosh pero en muchos Hackintosh causan un fallo que se puede presentar de esta manera:

 

- al arrancar en modo gráfico normal, desaparece la ruedecita que gira debajo del logo de Apple

 

- al arrancar en modo -v (verbose, mostrando mensajes de texto en pantalla) no se muestran más mensajes después de la línea [ PCI configuration begin ] aunque el ordenador puede seguir trabajando y al final mostrar el escritorio

 

- al arrancar en modo -s (single user, monousuario) o -x (fail safe, a prueba de fallos) el ordenador se cuelga justo después de la línea [ PCI configuration begin ] y el arranque se interrumpe.

 

Numerosos usuarios utilizan el PC sin mayores inconvenientes ya que el arranque en modo gráfico parece normal salvo por la desaparición de la ruedecita que gira y Mac OS X parece funcionar bien. Pero cuando necesitan arrancar en modo -s o -x es cuando descubren que no pueden hacerlo.

 

Uno de los hilos con más seguimiento de este asunto es el de la actualización a 10.6.8 en InsanelyMac, cuyo título es "10.6.8 officially released". También es útil el titulado "A “fix” for [PCI Configuration begin] bug" en el foro de netkas.

 

Se han propuesto varias formas de solucionarlo. En principio parece estar muy relacionado con el DSDT aunque éste haya funcionado perfectamente en las versiones anteriores de Snow Leopard. La prueba está en que si se elimina el DSDT (por ej., utilizando el método [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] Install de [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url]) este error desaparece por completo en la mayoría de los casos. Pero sin DSDT suelen perderse algunas características relacionadas con la gestión de energía, como por ej. el reposo (sleep), y otras que mejoran mucho el sistema (USB, dispositivos bien reconocidos, etc...).

 

Este error se puede evitar de 2 formas (aparte de la comentada de trabajar sin DSDT):

 

- Utilizando el modificador de arranque "npci=0x2000" (sin las comillas). Se puede hacer de forma directa en el arranque de Chameleon 2 o añadiéndolo al archivo com.apple.Boot.plist (org.chameleon.Boot.plist en las últimas versiones de Chameleon). No siempre da resultado (por ej. en mi caso este modificador no corrige el error). A otros usuarios les funciona "npci=0x3000" (sin las comillas) en su lugar

 

- Utilizando las extensiones AppleACPIPlatform.kext / IOPCIFamily.kext de la versión 10.6.7 de Snow Leopard en lugar de las equivalentes de 10.6.8 o Lion, el inconveniente es que ésto rompe el reposo en los sistemas que lo tenían bien implementado. Esta solución sí funciona en mi PC, se vuelve a mostrar la ruedecita que gira y se puede arrancar con -s y con -x.

 

Recientemente Oleg ha modificado la extensión IOPCIFamily.kext de Snow Leopard 10.6.8 con lo que ya no sería necesario usar AppleACPIPlatform.kext junto con IOPCIFamily.kext de 10.6.7, bastaría con la versión modificada por Oleg.

Link to comment
Share on other sites

Se ha propuesto también un arreglo realizando una pequeña modificación en el DSDT, yo creo que fue Oleg el primero que la propuso pero no estoy seguro. No la he comentado antes porque no todo el mundo se mete a modificar DSDT.

 

Se trata de localizar el dispositivo (PCI0) y allí:

 

- la línea Name (_UID... ha de quedar así: Name (_UID, Zero), si no existe ha de añadirse en primer lugar

 

- la línea Name (_ADR, Zero) ha de ser borrada.

 

La entrada Device (PCI0) quedaría así (puede ser diferente en tu PC):

 

Device (PCI0)

{

Name (_UID, Zero)

Name (_HID, EisaId ("PNP0A03"))

Name (_BBN, Zero)

Method (_S3D, 0, NotSerialized)

{

If (LEqual (OSFL, 0x02))

{

Return (0x02)

}

Else

{

Return (0x03)

}

}

 

Yo lo he probado en 10.6.8 sin ninguna otra modificación y el error PCI configuration begin parece arreglarse sin que se estropee el reposo.

Link to comment
Share on other sites

Hola, muchas gracias por recopilar esta información tan útil. Ahora bien, debo mencionar sobre el arreglo en la DSDT, que en mi opinión es el más adecuado y no es difícil de hacer. Sin embargo, es importante respetar la estructura del código, cuyo orden en la mayoría de las DSDT, incluyendo Mac genuinos es así (caso particular del dispositivo PCI0):

Device (PCI0)
{
Name (_HID, EisaId ("PNP0A08")) // HID = Hardware ID. Es la referencia de búsqueda.
Name (_CID, EisaId ("PNP0A03")) // CID = Compatible ID. Es opcional, a veces no aparece.
[color="#FF0000"]Name (_ADR, 0x00) [/color] // ADR = Adress, o dirección del dispositivo. En mi caso no es necesario.
[color="#FF0000"]Name (_UID, 0x00)[/color] // UID = Unit ID, la parte escencial del fix (también puede ser 0x01).
                    Para que 10.6.8 & Lion con sus nuevas "AppleACPIPlatform & IOPCIFamily"
                    encuentren con precisión lo que buscan.

Saludos.

Link to comment
Share on other sites

Gracias por la info, fíjate que yo creo haber leído en algún sitio que la línea Name (_UID, 0x00) ha de ir la primera del bloque, por éso lo comentaba.

 

Y tienes razón, la forma más efectiva y que menos cambios requiere en el sistema es ésta del DSDT, con éso parece ir todo bien.

Link to comment
Share on other sites

 Share

×
×
  • Create New...