Solución al reinicio de CMOS en Snow Leopard
Las versiones beta y Retail de Snow Leopard tienen la molesta costumbre de borrar y reiniciar la configuración CMOS de la BIOS en cada reinicio. Puedes solucionarlo fácilmente editando el dispositivo RTC en tu tabla DSDT y cambiando el parámetro Length de 0x04 a 0x02.
- Autor principal
- @candykane Publicado el 2009-07-13
- Colección
- Arquitectura Base OSx86 10.X y Arranque
- Registro histórico
- 332,582 lecturas históricas · 26 notas de campo seleccionadas (de 32 mensajes) · 2009-07-13 – 2010-04-01
- Voces acreditadas (15)
- @uman (9)@kizwan (8)@infinitek (2)@ariyako (2)@candykane@digital_dreamer@ariadri@mwgdrwg@dgandra@osxfr33k@MikeHunt79@Ianxxx@spalek83@SaCleoCheater@josefka
- Referencia de hardware
- Workstation Coolers & Thermal Gear ↗ SATA III & NVMe SSDs ↗ USB 3.2 Boot Flash Drives ↗
Las versiones beta de Snow Leopard tienen la molesta costumbre de reiniciar los valores de la CMOS al reiniciar el equipo. Puedes solucionarlo editando tu archivo DSDT.
El valor de Length debe cambiarse a 0x02 (normalmente viene en 0x04).
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x02, // Length
)
})
}
Notas de campo y pruebas de la comunidad
26 respuestas técnicas seleccionadas de 32 intervenciones originales
candykane,
Con Leopard 10.5.6, yo tengo:
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{8}
})
}
¿Sabes si:
a. el cambio que sugieres es inofensivo en Leopard?
b. la línea IRQNoFlags debe estar ahí o no en Leopard/Snow Leopard?
uman,
Es totalmente inofensivo en cualquiera de los dos sistemas operativos.
Ese 8 hay que cambiarlo a 2, aunque en Leopard no tiene ningún efecto.
El bloque IRQNoFlags y la línea siguiente {8} también deben eliminarse.
¿Estabas sufriendo Kernel Panics en SL? En Leopard no lo sé, pero se sabe que esto provoca Kernel Panics en SL sobre placas base ASUS.
Saludos,
MAJ
Disculpad mi ignorancia, pero ¿qué programa estáis usando para ver y editar vuestras tablas DSDT…?
¿Disculpad mi ignorancia, pero qué programa estáis usando para ver y editar vuestras tablas DSDT…? appl elife.ru/poleznye_keksty_utility_i_solyusheny_dlya_osx86/9675/860.html#entry93244
Después de arrastrar tu archivo dsdt.aml obtendrás un archivo dsdt.dsl que puedes editar. Una vez que hayas terminado, simplemente arrastra tu dsdt.dsl de vuelta a la aplicación y lo volverá a compilar en dsdt.aml como por arte de magia ^_^
Gracias por esto: me solucionó ese problema. Aunque todavía tengo un Kernel Panic y aún no he logrado cargar el sistema operativo con éxito…
En la sección Device (RTC) tengo el valor 0x04 para Alignment. Vi en la primera publicación que candykane tiene 0x00, pero en las publicaciones siguientes nadie comenta nada al respecto. ¿Tengo que poner el valor de Alignment en 0x00 o lo dejo con su valor actual?
¿Dónde iría ese bloque de código? ¿Al final del archivo DSDT.dsl? ¿En medio? Aquí es donde me lío. ¿Puedes mostrar unas líneas antes y después para ver dónde encaja exactamente? ¿Existe algún buen parcheador de DSDT que coloque automáticamente este código en la sección correspondiente del archivo DSDT.dsl?
Uso DSDTSE y trae muchos parches (hacks), pero se abren en una ventana de edición separada y normalmente no sé en qué parte de la ventana principal del editor DSDT.dsl debo pegar ese código.
¿Parece que no tengo ningún dispositivo RTC en mi DSDT? Y sin embargo, ¿no veo ningún problema con la CMOS? ¿Tal vez sea por mi placa base? Es una Asus Maximus Formula con chipset X38.
Hola, aquí está la sección RTC de mi Acer Aspire One; tengo length = 0x08, ¿necesito cambiar ambos valores de length?
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (BUF0, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x08, // Length
)
})
Name (BUF1, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x01, // Alignment
0x08, // Length
)
})
Method (_CRS, 0, Serialized)
{
If (LEqual (HPTS, One))
{
Return (BUF0)
}
Else
{
Return (BUF1)
}
}
}
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (ATT0, ResourceTemplate
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x02, // Length <-- EDITA SOLO ESTE
)
})
Name (ATT1, ResourceTemplate
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x04, // Length <-- DEJA ESTE SIN TOCAR
)
Solución al reinicio de CMOS (mediante kext)
k exts.com/view/151-cmos_reset_fix_%28via_kext%29.html
La modificación de la DSDT para la CMOS en Snow Leopard fue utilizada originalmente por Apple en el MacBook Air.
La modificación no fue inventada, solo descubierta.
Según BuildSmart (véase: http://netkas.org/?p=114#comment-45114 ↗), si tienes una longitud (Length) de 0x08 y una alineación (Alignment) de 0x01, entonces la DSDT del fabricante de tu placa cumple con la especificación ASL, por lo que no deberías necesitar hacer ningún cambio.
¿Por qué es importante no hacer el cambio si no hace falta? He oído que si cambias la longitud a 0x02, 10.6 y 10.6.1 van bien en lo que respecta al modo de reposo (sleep), pero en 10.6.2 introducirás un fallo de reposo. Escuché esto en la sección rusa de InfiniteMac.
¿Alguien puede confirmarlo? Me voy a pasar a SL en una semana más o menos (también voy a actualizar la CPU de mi portátil), así que si nadie lo confirma antes de esa fecha, haré la prueba yo mismo.
Ah, y por cierto, me resulta de gran ayuda consultar la DSDT del modelo de Mac real más parecido a nuestro hardware...
@umanSegún BuildSmart (véase: http://netkas.org/?p=114#comment-45114 ↗), si tienes una longitud (Length) de 0x08 y una alineación (Alignment) de 0x01, entonces la DSDT del fabricante de tu placa cumple con la especificación ASL, por lo que no deberías necesitar hacer ningún cambio. …
Mi Acer Aspire 9420 solo sufre reinicios de BIOS cuando intenta hibernar. Aún no he probado 10.6.2, pero ¿quieres decir que mi portátil se comportará con normalidad (sin reinicio de BIOS) en 10.6.2 sin aplicar el "parche de reinicio de CMOS"? Para tu información, la DSDT del Aspire 9420 sigue la especificación ASL.
kizwan
@kizwanMi Acer Aspire 9420 solo sufre reinicios de BIOS cuando intenta hibernar. Aún no he probado 10.6.2, pero ¿quieres decir que mi portátil se comportará con normalidad (sin reinicio de BIOS) en 10.6.2 sin aplicar el "parche de reinicio de CMOS"? Para tu información, la DSDT del Aspire 9420 sigue la especificación ASL. kizwan
Hola kizwan:
Mi portátil también muere si intento hibernar en 10.5.6. En cuanto a tu pregunta, el parche de RTC es necesario en algunas BIOS para 10.6, pero no en todas. ¿Estás ejecutando SL? ¿Tuviste que poner el parche de RTC en tu DSDT?
El texto ruso "sugería" que con 10.6.2 se puede volver a poner en 0x08. Pero nunca respondía a la duda de si, en caso de tener *ya* 0x08 como longitud de fábrica, era necesario cambiarlo a 0x02 en primer lugar.
Eso es lo que intentaba averiguar. En cualquier caso, pienso probarlo y publicaré aquí los resultados cuando lo descubra.
@umanMi portátil también muere si intento hibernar en 10.5.6. En cuanto a tu pregunta, el parche de RTC es necesario en algunas BIOS para 10.6, pero no en todas. ¿Estás ejecutando SL? ¿Tuviste que poner el parche de RTC en tu DSDT? …
Antes había probado 10.6.0 y 10.6.1. También probé el parche de RTC y solucionó el problema del reinicio de la BIOS cada vez que intentaba hibernar.
Esta noche, cuando tenga mi portátil, probaré 10.6.2 sin el parche de RTC en mi Acer Aspire 9420.
kizwan
Gracias por probar con 10.6.2. Yo he estado metido hasta el cuello en la hoja de datos (datasheet) del ICH7 y en el borrador para programadores de ACPI intentando verificar si los parches de apagado/reinicio y reposo para ICH9/10 funcionarán. Espero instalar SL esta semana. Pero acaba de llegar mi procesador Core 2 Duo, así que espero probarlo primero con Leopard.
@umanGracias por probar con 10.6.2. Yo he estado metido hasta el cuello en la hoja de datos (datasheet) del ICH7 y en el borrador para programadores de ACPI intentando verificar si los parches de apagado/reinicio y reposo para ICH9/10 funcionarán. Espero instalar SL esta semana. Pero acaba de llegar mi procesador Core 2 Duo, así que espero probarlo primero con Leopard.
Hola uman,
Después de varias pruebas, reinicios, quedarme sin teclado, sufrir Kernel Panics, etc. con 10.6.2, descubrí que sigo necesitando cambiar (en el dispositivo RTC) la longitud (Length) de 0x08 a 0x02. Si no lo hago, se produce un reinicio de la BIOS al reiniciar el ordenador después del reposo (hibernatemode 3).
Ahora mismo me encuentro en un callejón sin salida con mi tarjeta inalámbrica: no se vuelve a encender después del reposo.
kizwan
¡Siento las molestias! Muchísimas gracias por probarlo. ¡Supongo que BuildSmart estaba equivocado!
Ya actualicé mi CPU, así que ahora puedo probar SL en 64 bits.
Sin embargo, una cosa que me vuelve loco es lo rápido que cambia la escena de instalaciones Retail Vanilla. ¿Conoces alguna guía reciente que explique paso a paso una instalación Retail de SL? Me gustaría usar Chameleon RC4 y *creo* que quiero usar una partición EFI oculta.
Actualmente tengo instalado Leopard, y tengo un disco duro nuevo para SL y una carcasa externa USB.
Creo que necesito restaurar el DVD Retail en una imagen .dmg en mi unidad actual, luego instalar en la unidad nueva montada en la carcasa USB, después instalar varios kexts, Chameleon y mi DSDT para SL, y por último intentar arrancar desde el disco USB. Si todo funciona, intercambio los discos duros y migro mis datos desde el disco antiguo.
¿Te parece correcto el planteamiento?
@uman… Sin embargo, una cosa que me vuelve loco es lo rápido que cambia la escena de instalaciones Retail Vanilla. ¿Conoces alguna guía reciente que explique paso a paso una instalación Retail de SL? Me gustaría usar Chameleon RC4 y *creo* que quiero usar una partición EFI oculta. Actualmente tengo instalado Leopard, y tengo un disco duro nuevo para SL y una carcasa externa…
Si te resulta posible, en lugar de restaurar el DVD Retail en un archivo .dmg, ¿por qué no restauras directamente el DVD Retail en una partición (nueva) de tu unidad actual usando la Utilidad de Discos? El tamaño de esta partición no tiene por qué ser grande; con 8 GB bastará (el tamaño del DVD Retail es inferior a 8 GB).
Luego actualiza tu gestor de arranque actual a Chameleon 2 RC4. Así es como se colocan los archivos kext de 10.6 sin sobrescribir los archivos kext de 10.5:
Extra/10.5/Extensions Extra/10.5/Extensions.mkext Extra/10.6/Extensions Extra/10.6/Extensions.mkext
Aunque supongo que esto ya lo sabes. De esta forma podrás seguir arrancando tu Leopard sin problemas.
Por último, reinicia, selecciona "Mac OS X Install DVD" e instala Snow Leopard en el disco nuevo.
Por alguna razón desconocida, no puedo usar el archivo "boot" del paquete Chameleon RC4: se queda colgado justo después de seleccionar la partición de OS X. Simplemente reemplacé el archivo "boot" por el de PC EFI 10.6 descargado de netkas.org.
kizwan
@kizwanSi te resulta posible, en lugar de restaurar el DVD Retail en un archivo .dmg, ¿por qué no restauras directamente el DVD Retail en una partición (nueva) de tu unidad actual usando la Utilidad de Discos? El tamaño de esta partición no tiene por qué ser grande; con 8 GB bastará (el tamaño del DVD Retail es inferior a 8 GB).
¿Supongo que tiene que ser una partición arrancable?
@kizwanLuego actualiza tu gestor de arranque actual a Chameleon 2 RC4. Así es como se colocan los archivos kext de 10.6 sin sobrescribir los archivos kext de 10.5:- Aunque supongo que esto ya lo sabes. De esta forma podrás seguir arrancando tu Leopard sin problemas.
¿En el disco actual? No entiendo por qué instalaría Chameleon en el disco antiguo. ¿Estás dando por hecho que copiaría la instalación de Leopard al disco nuevo? No quiero hacer eso porque era una instalación muy modificada de la distro iPC, nada que ver con una Retail limpia.
@kizwanPor último, reinicia, selecciona "Mac OS X Install DVD" e instala Snow Leopard en el disco nuevo.
Cuando se ejecute el instalador de SL, ¿permitirá instalar en una unidad externa USB (mi disco nuevo)?
@kizwanPor alguna razón desconocida, no puedo usar el archivo "boot" del paquete Chameleon RC4: se queda colgado justo después de seleccionar la partición de OS X. Simplemente reemplacé el archivo "boot" por el de PC EFI 10.6 descargado de netkas.org. kizwan
He oído que algunas personas están teniendo problemas con Chameleon RC4. ¿Crees que merece la pena probarlo?
Por cierto, ¡muchas gracias por toda tu ayuda! Además, ¿tu Acer tiene el southbridge ICH7? Dediqué bastante tiempo a verificar algunas correcciones de DSDT en la Guía del Programador de ACPI y en la hoja de datos del ICH7. Las probaré cuando tenga SL funcionando y luego las publicaré en el subforo de DSDT.
@uman¿Supongo que tiene que ser una partición arrancable?
Sí.
@uman¿En el disco actual? No entiendo por qué instalaría Chameleon en el disco antiguo. ¿Estás dando por hecho que copiaría la instalación de Leopard al disco nuevo? No quiero hacer eso porque era una instalación muy modificada de la distro iPC, nada que ver con una Retail limpia.
En realidad, te estaba sugiriendo que usaras tu disco actual como medio de instalación de Snow Leopard. Por supuesto me refería a instalar Snow Leopard en el disco nuevo. Instalar Snow Leopard es fácil, pero para poder arrancar Snow Leopard (después de instalarlo) necesitarás kexts parcheados. Es decir, yo en tu lugar prepararía la partición EFI/Boot-132 para Snow Leopard antes de instalar Snow Leopard.
Tengo un disco duro externo (de 80 GB) que utilizo como unidad de instalación y que tiene 3 particiones: la primera partición es FAT32 solo para datos, la segunda es una partición Boot-132 (originalmente creada a partir de un USB Boot-132) y la tercera partición es donde restauro el DVD Retail. La segunda partición está marcada como activa/arrancable. La partición Boot-132 usaba Chameleon 2 RC2 y la actualicé a Chameleon 2 RC4 + PC EFI 10.6. Este disco externo puede considerarse mi instalador "universal", ya que puedo usarlo tanto para instalar Leopard como Snow Leopard.
@umanCuando se ejecute el instalador de SL, ¿permitirá instalar en una unidad externa USB (mi disco nuevo)?
Parece que el instalador de SL es diferente al de Leopard: me permite seleccionar la partición al lanzar el instalador manualmente.
@umanHe oído que algunas personas están teniendo problemas con Chameleon RC4. ¿Crees que merece la pena probarlo?
Creo que vale la pena probarlo. Si no te funciona, simplemente reemplaza el archivo "boot" por uno que funcione (como el de RC3 o PC EFI 10.6).
Yo uso el instalador de Chameleon 2 RC2 para instalar Chameleon en la partición EFI y luego reemplazo el archivo "boot" por el archivo "boot" del paquete RC4.
@umanPor cierto, ¡muchas gracias por toda tu ayuda! Además, ¿tu Acer tiene el southbridge ICH7? Dediqué bastante tiempo a verificar algunas correcciones de DSDT en la Guía del Programador de ACPI y en la hoja de datos del ICH7. Las probaré cuando tenga SL funcionando y luego las publicaré en el subforo de DSDT.
Mi Acer 9420 tiene ICH7. Para tu información, mi tarjeta inalámbrica ya funciona después del reposo. Creo que se solucionó actualizando IONetworkingFamily.kext en la partición EFI con la versión de 10.6.2. También modifiqué el archivo plist únicamente para mi tarjeta inalámbrica Dell (Broadcom con ID de dispositivo 4315).
También estuve trasteando con la DSDT e hice varios cambios:
- Eliminar entradas de los dispositivos USB 2.0 para que el sistema los reconozca como dispositivos integrados/externos adecuadamente y así habilitar el reposo.
- Entrar en reposo al cerrar la tapa (LID).
- Cambiar el valor NVCAP de la GeForce Go 7300 para habilitar la doble pantalla.
- Cambiar ConfigData para el códec ALC883 a fin de habilitar el micrófono interno y, con ello, también el micrófono externo.
kizwan
Argh. Estoy tan frustrado. He fracasado intentando instalar SL con los 3 primeros métodos de la guía de prasys (pra sys.co.cc/2009/08/installing-snow-leopard-for-osx86/).
Así que ahora mismo lo estoy instalando en un disco duro aparte (que luego pondré como disco principal) desde un MacBook Pro. Una vez que eso termine con éxito, ¿solo tengo que instalar Chameleon en la partición EFI y colocar los kexts que necesite antes de arrancar desde él por primera vez?
¡Debo decir que instalar SL Retail es un verdadero dolor de cabeza!
@uman… Así que ahora mismo lo estoy instalando en un disco duro aparte (que luego pondré como disco principal) desde un MacBook Pro. Una vez que eso termine con éxito, ¿solo tengo que instalar Chameleon en la partición EFI y colocar los kexts que necesite antes de arrancar desde él por primera vez?
Sí. fakesmc.kext (de netkas) y PlatformUUID.kext son los kexts fundamentales que debes poner. AppleDecrypt.kext ya no es necesario ni funciona con SL.
¿En qué parte tuviste problemas? ¿Estás instalando en una tabla de particiones MBR o GUID?
@uman¡Debo decir que instalar SL Retail es un verdadero dolor de cabeza!
Sí.
Por defecto, SL arrancará en modo de 64 bits y en algunas máquinas eso puede causar problemas (incluso aunque la máquina sea compatible con 64 bits). Así que te sugeriría ejecutarlo en modo de 32 bits: simplemente configura "Kernel Flags" con el valor "arch=i386".
kizwan
@kizwan¿En qué parte tuviste problemas? ¿Estás instalando en una tabla de particiones MBR o GUID?
GUID: quiero tener una partición EFI oculta. Mi objetivo es mantener /S/L/E lo más virgen e intacta posible para poder instalar actualizaciones del sistema más fácilmente.
@kizwanPor defecto, SL arrancará en modo de 64 bits y en algunas máquinas eso puede causar problemas (incluso aunque la máquina sea compatible con 64 bits). Así que te sugeriría ejecutarlo en modo de 32 bits: simplemente configura "Kernel Flags" con el valor "arch=i386".
Probé eso (aunque ahora que lo pienso, puede que estuviera usando el parámetro obsoleto -x32...).
He publicado más detalles sobre lo que estaba intentando hacer y algunas preguntas fuera del subforo de DSDT, ya que me he adueñado de este hilo y me sabía mal. ¡Gracias por tu ayuda!
Go 7300
Kizwan,
Veo que has solucionado lo de tu GeForce Go 7300 en la DSDT. ¿Podrías decirme cómo, por favor? Porque se me queda la pantalla en negro al despertar en mi monitor DVI. Mi Asus F3JC entra en reposo y despierta bien, pero tengo que apagarlo a la fuerza por culpa de esta pantalla negra. Tengo una cadena EFI (EFI string) en el archivo boot.plist para hacerla funcionar.
Saludos
@josefkaKizwan, Veo que has solucionado lo de tu GeForce Go 7300 en la DSDT. ¿Podrías decirme cómo, por favor? Porque se me queda la pantalla en negro al despertar en mi monitor DVI. Mi Asus F3JC entra en reposo y despierta bien, pero tengo que apagarlo a la fuerza por culpa de esta pantalla negra. Tengo una cadena EFI (EFI string) en el archivo boot.plist para hacerla funcionar. Saludos
¿Te ocurre al despertar del reposo del sistema o simplemente cuando se apaga la pantalla (por ejemplo, al apagarse por inactividad)? Yo también tengo el problema de que si se apaga la pantalla por inactividad, se queda en negro y no vuelve. Así que en Preferencias del Sistema lo tengo configurado para que nunca apague la pantalla cuando está inactivo.
Si te ocurre con el reposo del sistema, échale un vistazo al valor NVCAP en mi DSDT (busca "7300"):
media fire.com/?zmnbzhwq0mt
o
media fire.com/?mozqymgktyn
EDICIÓN: ¿Qué portátil tienes? El mío, un Acer Aspire 9420, no tiene puerto DVI.
kizwan
Fuentes y registro de autoría (15 usuarios acreditados · Hilo #3478)
| Usuario | Rol en la monografía | Mensajes | Periodo activo |
|---|---|---|---|
| @uman | Colaborador clave | 9 | 2009-07-30 → 2010-03-04 |
| @kizwan | Colaborador clave | 8 | 2009-07-13 → 2010-04-01 |
| @infinitek | Colaborador | 2 | 2009-08-19 → 2009-08-20 |
| @ariyako | Colaborador | 2 | 2009-11-20 → 2009-11-28 |
| @candykane | Autor principal | 1 | 2009-07-13 |
| @digital_dreamer | Colaborador | 1 | 2009-08-01 |
| @ariadri | Colaborador | 1 | 2009-08-20 |
| @mwgdrwg | Colaborador | 1 | 2009-08-21 |
| @dgandra | Colaborador | 1 | 2009-09-05 |
| @osxfr33k | Colaborador | 1 | 2009-09-22 |
| @MikeHunt79 | Colaborador | 1 | 2009-09-23 |
| @Ianxxx | Colaborador | 1 | 2009-11-27 |
| @spalek83 | Colaborador | 1 | 2009-12-06 |
| @SaCleoCheater | Colaborador | 1 | 2010-01-29 |
| @josefka | Colaborador | 1 | 2010-04-01 |