Respuesta: El post de los Hackintosh: o cómo instalar Mac OS X en tu PC
Instalación "vanilla" de Snow Leopard 10.6.2 en una Asus P5B-Deluxe utilizando myHack, un pendrive y el disco original de Apple
Aprovechando una media gripe que me está fastidiando el fin de semana, esta mañana me he levantado pronto y me he puesto con el proyecto de Snow Leopard en mi Asus P5B Deluxe y puedo decir que ahora mismo está instalada la versión 10.6.2, iLife 09, iWork 09 y Aperture, todo actualizado a la últilma versión.
Aquí os dejo una captura del escritorio, con el resultado de un GeekBench y el Perfil del Sistema mostrando los valores de la tarjeta gráfica, procesador, memoria y la versión de Mac OS X instalada.
Podéis hacer clic sobre la imagen para descargarla a pantalla completa en 1650x1080 pixeles.
Me ha sorprendido el rendimiento de Snow Leopard, la verdad es que es muy bueno y aunque realmente no es que haya mucha más fuerza bruta, el sistema se percibe mucho más fluido, que al final es lo que cuenta en la experiencia del usuario.
Os preguntaréis cuál ha sido el método que he utilizado para poder llevar a cabo la instalación ¿no? El culpable del éxito es una pista que me ha dado juanerson y que me ha llevado hasta el programa
myHack, un asistente para personalizar instalaciones de Snow Leopard y que finalmente ha sido el que me ha permitido configurar un arranque adecuado para efectuar la instalación.
Antes de empezar: Las pruebas... con gaseosa
Antes de meterme en el lío de revisar mi actualizar mi instalación de Leopard en el disco duro interno del ordenador, he realizado unas cuantas pruebas sobre un disco viejo SATA de 80 GB que he introducido en una caja USB Sharkoon QuickDeck, de forma que lo he convertido en un disco externo por USB.
Y para llegar a este resultado he realizado muchas pruebas sobre ese disco, hasta tener la configuración fina y definitiva. Una vez validada, he retirado el disco SATA de la caja QuickDeck, lo he etiquetado convenientemente, y de esa forma se queda como una copia de seguridad con la que reiniciar el sistema en caso de que las cosas vayan mal.
No he probado a realizarlo sobre una llave USB, y como tengo una de 16 GB, creo que probaré a instalar Mac OS X Snow Leopard en ella. Si funciona, será un sistema de rescate muy interesante, y dado lo universal de la solución, me apuesto lo que queráis a que funciona en casi cualquier hardware que sea capaz de ejecutar el kernel vanilla.
Pero vayamos al grano. Básicamente el método es el siguiente. Si tengo tiempo y ganas lo aderezaré con alguna captura de pantalla, pero de momento creo que así queda realmente claro.
FASE 1. Preparar un pendrive USB para la instalación
- Iniciar la Utilidad de discos en un Mac o en un Hackintosh e iniciar la Utilidad de Discos
- Conectar un pendrive de al menos 8GB de capacidad
- Particionarlo en formato GUID con una única partición en formato Mac OS Plus (con registro) a la que he llamado "Mac OS Install USB"
- Introducir el DVD original de Snow Leopard o montar una imagen ISO ó DMG del mismo
- De nuevo en la Utilidad de Discos, desde la pestaña restaurar de la partición creada, arrastrar el volumen "Mac OS Install DVD" al campo origen y "Mac OS Install USB" al campo destino. Como acabamos de borrar el pendrive, no marcar el check-box "Borrar destino"
- Esperar un tiempo - en mi caso unos 20 minutos - a que se copie la imagen del DVD en el pendrive.
Instalar myHack (Bootloader y carpeta de Extras con Extensiones)
- Descargar el instalador myHack 1.0 RC4.1
- Ejecutarlo y seleccionar el pendrive como destino de la instalación
- Personalizar las opciones que correspondan a cada equipo. Realmente este esta es la clave del proyecto y donde he tenido que poner a prueba el método de prueba y error e incluso he tenido que buscar kexts más actualizados pues con los que vienen de serie obtenía kernel panics tras actualizar a la versión 10.6.2. Más adelante os detallaré los que he seleccionado.
- Añadir al directorio raíz del pendrive el archivo DSDT.aml compilado para nuestro equipo y a ser posible mejorado con DSDT SE v1.2.4. Este es un capítulo que tengo pendiente de profundizar y he contado con la colaboración de juanerson para editar el DSDT de mi Asus P5B Deluxe.
Ejecutar pfix para arreglar permisos y reconstruir mkext.kext
- Es muy importante ejecutar el programa pfix que viene incluido con myHack cada vez que modificamos el contenido de las extensiones en la carpeta Extra. Esto se realiza de la siguiente forma:
- Ejecutar la aplicación terminal
- Escribir sudo -s
- Introducir la contraseña del administrador del equipo
- Arrastrar el programa pfix de la raíz del pendrive hasta la línea de comandos y pulsar Intro en el terminal
- Aparecerá una lista de todos los volúmenes del sistema y por defecto nos ofrece "/" como opción para realizarlo sobre el volumen con el que hemos iniciado el sistema.
- Si estamos tratando de ejecutar pfix en el volumen de arranque, pulsamos intro, en caso contrario debemos escribir el volumen correspondiente.
Antes de proseguir con la instalación del sistema, veamos gráficamente el resultado de nuestro trabajo. Este es el aspecto que presenta el DVD original de Snow Leopard si lo introducís en la unidad de DVD y lo visualizáis en el Finder
Aunque si lo inspeccionáis desde el terminal, veréis que hay más archivos en su interior que no se ven:
Y este es el que presenta la copia del mismo una vez adaptada por myHack
Y este el detalle de su contenido desde el terminal
FASE 2. Instalar Snow Leopard
- Iniciar el PC desde el pendrive
- Cuando aparezca la interfaz de Chameleon, elegir el icono correspondiente a vuestro pendrive. En mi caso "Mac OS Install USB" y pulsar la flecha hacia abajo para mostrar el menú de opciones y elegir el modo "Verbose" para ver lo que sucede en el arranque. Esta es la opción más "vanilla" de todas y no aplicamos ningún modificador especial, realmente es lo mismo que haría un Mac.
- Aparece el instalador de Mac OS X y nos solicita el idioma de instalación. Elegimos español.
- En el menú de Herramientas elegimos la opción "Perfil del Sistema" para comprobar si los dispositivos son reconocidos adecuadamente. La gráfica presenta el escritorio en la resolución nativa de mi Dell 2209WA a 1680x1050 pixeles y compruebo que la tarjeta de red también ha sido detectada. Todo va bien.
- En el mismo menú, elegimos la Utilidad de Discos y preparamos el disco que vaya a recibir Snow Leopard. En mi caso he utilizado una partición en el disco donde tengo instalado Leopard y eso me causa algún que otro conflicto que os contaré, pero si no queréis tener problemas, inicializar el disco completo en formato GUID y elegir al menos un esquema de dos particiones, una para tener vuestra instalación de producción y otra de test.
- Una vez preparado el disco, continuamos con el instalador como de costumbre hasta que solicite reiniciar. Os recomiendo no instalar toda la colección de impresoras ni los idiomas, dejando sólo el español y el inglés que no es opcional.
Primer reinicio. Seguimos arrancando desde el pendrive
- Cuando el PC se reinicia, volvemos a iniciarlo desde el pendrive. Esto es muy importante, pues el disco de Snow Leopard no está preparado para iniciarse de forma autónoma.
- Cuando aparezca la interfaz de Chameleon, elegir el icono correspondiente a "Snow Leopard" y de nuevo pulsad la flecha hacia abajo para mostrar las opciones y elegir el modo "Verbose"
- En unos instantes tendremos disponible el escritorio de Snow Leopard a la vista.
Preparar el volumen de Snow Leopard para arranque autónomo
- Ejecutar de nuevo myHack, eligiendo ahora Snow Leopard como disco de destino
- Seleccionamos las mismas opciones que antes
- Para asegurarnos que tenemos las mismas opciones que han funcionado en el pendrive, he borrado la carpeta Extras del volumen de Snow Leopard y he copiado la del pendrive, con la misma configuración exacta.
- Ejecutar de nuevo pfix, seleccionando como volumen /Volumes/Snow Leopard en lugar de "/" como propone
Reinicio de Snow Leopard sin pendrive
- Desconectar el pendrive
- Reiniciar el PC, seleccionando el disco que contiene la partición de Snow Leopard como disco de boot. En mi caso el PC se inicia normalmente desde otro disco duro y debo pulsar F8 y seleccionar el disco de Mac OS X cuando quiero usarlo, así evito problemas al mezclar sistemas de archivos en un mismo disco.
- Cuando aparezca la interfaz de Chameleon, elegir el icono correspondiente a "Snow Leopard" y de nuevo pulsad la flecha hacia abajo para mostrar las opciones y elegir el modo "Verbose"
- En unos instantes tendremos disponible el escritorio de Snow Leopard a la vista.
FASE 3. Actualización de Snow Leopard a la versión 10.6.2
- Es posible hacerlo en dos etapas pasando por la 10.6.1, pero siendo una actualización acumulativa he preferido hacerlo de una sola vez.
- Descargad el Mac OS X v10.6.2 Update (Combo) de http://support.apple.com/kb/DL959
- Ejecutar el instalador
- Reiniciar el equipo y arrancar de nuevo en modo verbose (-v) para ver lo que sucede.
- Si habéis dado con el conjunto de kexts adecuado no tendréis problema alguno y en caso contrario sufriréis algún kernel panic, como os explico más abajo. Me ha tocado investigar un poco, pero el modo -v cuenta bastantes cosas que ayudan a identificar el problema.
Actualización del resto de componentes del sistema a la última versión
- Apple Remote Desktop 3.3
- Safari v4.0.4
- AirPort Client Update 2009-002
- iTunes v9.0.2
- Java for Mac OS X 10.6 Update 1
Y con esto tendremos nuestra instalación de Snow Leopard al día. Yo he añadido además la instalación de iLife'09 y iWork '09 con sus correspondientes actualizaciones.
Por último os dejo la sección más importante, la de las opciones que he elegido en myHack
APÉNDICE: Opciones elegidas en myHack
A continuación os dejo toda la lista de opciones que incorpora myHack a la hora de instalarlo. He copiado las descripciones de cada una de ellas para una mejor comprensión de lo que hace. Dejo en verde el título de las que he instalado y en rojo las que no. Si he añadido algún otro kext que no venía en el pack o lo he tenido que actualizar por resultar problemático, lo indico en azul.
Core
Esta opción instalará
Chameleon 2.0 RC3, PC EFI 10.5, myHack pfix v2.1.1 & una versión de LSPCI adaptada para Snow Leopard en el volumen seleccionado. Por defecto colocará un archivo
com.apple.Boot.plist preconfigurado en /Extra. Asegúrate de modificarlo posteriormente como sea necesario. También realizará un chequeo para determinar si el volumen seleccionado es un disco de instalación, en cuyo caso instalará OSInstall.mpkg y OSInstall Framework para permitir la instalación en sistems con particiones MBR automáticamente.
com.apple.Boot.plist
Esta opción colocará un archivo
com.apple.Boot.plist preconfigurado en /Extra. Por defecto está configurado para utilizar el flag del kernel arch=i386, soporte de red ethernet y gráficos VESA a 1024x768 . Asegúrate de modificarlo posteriormente si es necesario.
GraphicsEnabler
Sobreescribe el anterior archivo com.apple.Boot.plist
incluyendo la opción GraphicsEnabler = Y. Esto permitirá la aceleración gráfica en la mayoría de las tarjetas nVidia y en algunos modelos de ATI. Nota: Si esto no funciona prueba a indicar -pci1 en el prompt de Chameleon a la hora de iniciar el sistema. Lee la documentación del instalador para más información.
Kernel Chocolate
Esta opción colocará el kernel
chocolate_kernel en / y modificará el archivo com.apple.Boot.plist para utilizarlo por defecto. Este kernel es necesario para ejecutar OS X en procesadores Intel que no son directamente soportados (Pentium4, i5, etc). Incluye el emulador SSE3EMU para procesadores que sólo soportan SSE2 pero se ha informado de problemas de estabilidad con determinadas aplicaciones, aunque no se activará si tu CPU soporta SSE3. Este kernel funcionará en la mayoría de sistemas AMD también, pero no incluye el parcheo del CPUID "al vuelo" por lo que si pretendes utilizarlo en un sistema AMD necesitarás conseguir una herramienta de terceros para parchear los archivos binarios. Para una explicación completa de lo que este kernel puede y no puede hacer, y cuando debiera ser utilizado y cuándo no, consulta la documentación en línea de myHack. NOTA: No utilices este kernel si tienes un procesador Core 2 o i7, se ha informado de que este kernel provoca kernel panics en esos procesadores que funcionan mejor con el kernel "vanilla" mach_kernel.
AHCIPortinjector.kext
Añade un nombre de dispositivo a los controladores AHCI que no están incluídos en el KEXT original. Aplicable a ICH9 y chipsets ICHx anteriores.
AppleIntelPIIXATA.kext & IOATAFamily.kext
Proporciona soporte PATA (IDE) para la mayoría de sistemas. También os permitirá a la mayoría de usuarios utilizar dispositivos SATA con AHCI desactivado como sucede en muchas de las placas basadas en chipsets ICH6/7/8/9/10. NOTA: Este AppleIntelPIIXATA.kext es un Kext BETA para Snow Leopard, y se ha informado como causante de Kernel Panics para algunos usuarios. El kext IOATAFamily.kext sin embargo, ha sido compilado recientemente a partir de código fuente parcheado de la versión 10.6 y para él no se conocen problemas.
Apple Azalia Audio
He descargado de la web www.kexts.com el kext correspondiente a mi tarjeta de audio en http://www.kexts.com/view/156-azalia_audio.html para poder tener soporte de sonido. Al añadir este kext he alterado el paquete de kexts de la carpeta /Extra y por lo tanto ha sido necesario utilizar pfix para reconstruir el archivo mkext. Insisto en este concepto pues si no lo hacéis, no tendréis soporte de audio aunque coloquéis el kext en la carpeta de extensiones /Extra
PS2Controller
Permite el uso de teclados y ratones PS/2 en muchos sistemas. Añade dos kexts: AppleACPIPS2Nub.kext & ApplePS2Controller.kext.
AppleUpstreamUserClientDisabler.kext
Un disabler.kext genérico modificado para deshabilitar la protección DRM del kext Nvidia (AppleUpstreamUserClient) el cual se sabe que causa un retardo en el movimiento del ratón al utilizar iTunes/Quicktime en *ALGUNAS* gráficas de NVIDIA. NOTA: Instálalo sólo si experimentas un retraso del puntero del ratón muy acusado al ejecutar iTunes/Quicktime.
AttansicL1eEthernet.kext
KEXT para el chipset de la tarjeta de rede Ethernet Attansic L1e.
FakeSMC.kext
FakeSMC.kext (Copyright © 2009 Netkas) es un emulador de un Sistema de Gestión de Controladores (SMC) para MAC OS X. Si esto OS X 10.6 no funcionaría en hardware no-Apple. Esta versión es FakeSMC v2. NOTA: FakeSMC.kext es incompatible con el antiguo “dsmos.kext” que se utilizaba en versiones anteriores de OSX y para ejecutarse en hardware no-Apple, por lo que no debe utilizarse dsmos.kext si se usa FakeSMC.kext. Merece también especial atención el hecho de que dsmos.kext supone una violación de los términos de la licencia de usuario final (EULA) de Apple para OS X. FakeSMC es un emulador, no un kext que descifra como era dsmos – y por lo tanto no viola la EULA de Apple para OS X hasta donde sabemos. Visualiza las notas de la versión y la licencia para FakeSMC.kext en
netkas.org.
Existe una versión más actualizada a día de hoy de FakeSMC (2.5) y la he utilizado en lugar de la versión 2.0. La ha publicado netkas en su blog
http://netkas.org/?p=338 y allí podéis descargarla.
FramebufferDisabler.kext
Desactiva los kexts del framebuffer (NVDAResman.kext, ATIFramebuffer.kext, AppleIntelIntegratedFramebuffer.kext) los cuales se sabe que causan kernel panics al iniciar la instalación o en los procesos de post-instalación en un entorno que no tenga aún activada la aceleración gráfica. (Esto no se requiere si estás utilizando la opción GraphicsEnabler o un string EFI en tu archivo com.apple.Boot.plist)
IOAHCIBlockStorageInjector.kext
Es un kext inocuo que cambia los iconos AHCI para que los discos SATA internos se muestren con los iconos industriales de color gris en lugar de los iconos de discos removibles en color naranja. Puramente cosmético.
JMicronATA.kext
Kext para permitir el correcto funcionamiento del controlador JMicron ATA (PATA) en sistemas que tengan más de 4GB de memoria RAM.
LegacyAppleRTC.kext
El kext Legacy AppleRTC.kext reempaquetado para funcionar con Snow Leopard. Esto previene el error de "Reset de la memoria CMOS" que se encuentra en la mayor parte de las placas que ejecutan Mac OS X 10.6. NOTA IMPORTANTE: Este kect DEBE ser eliminado (y reemplazado con un archivo DSDT con el CMOS fix) antes de iniciar el sistema con un kernel x86_64 a 64 bits.
LegacyJMB36xSATA.kext
Kext inocuo para proporcionar información sobre el controlador SATA JMB36X el el Perfil del Sistema.
NullCPUPowerManagement.kext
Desactiva el kext AppleIntelCPUPowerManagement.kext - esta extensión es obligatoria hasta que hayas construido un archivo DSDT adecuado para tu sistema. Sin ella o sin el DSDT tu sistema no se iniciará (kernel panic). NOTA IMPORTANTE: Se sugiere que la utilicemos siempre, aunque nuestro sistema funcione bien sin ella. Actualmente hay algunos asuntos sin resolver acerca de la forma en que AppleIntelCPUPowerManagement.kext maneja HPET en los sistemas con hardware no-Apple que causa que la CPU se caliente más de lo normal. [Esto no se requiere si estás ejecutando el kernel "Chocolate" pero no causará problemas si lo mantienes]
OpenHaltRestart.kext
Añade funcionalidades de Renincio y Apagado para la mayoría de sistemas que utilizan el kext NullCPUPowerManagement.kext. [Esto no se requiere si estás ejecutando el kernel "Chocolate" pero no causará problemas si lo mantienes]
PlatformUUID.kext
Elimina el error UUID 35 Error inyectando un UUID genérico. [Esto no se requirer si estás ejecutando el kernel "Chocolate" pero no causará problemas si lo mantienes]
SKGE.kext
Proporciona funcionalidad a algunos controladores de red Marvell.
Este kext funcionaba correctamente con la instalación de Snow Leopard 10.6.0, pero tras actualizar a la 10.6.2 provocaba un kernel panic, tal y como lo comenta netkas en la entrada de su blog MacOSX 10.6.2 Released
Sleepenabler.kext
Activará la funcionalidad de suspensión aunque AppleIntelCPUPowerManagement esté deshabilitado en muchos sistemas. NOTA: Sólo es necesario si se utiliza NullCPUPowerManagement.kext o "Chocolate Kernel".
Este kext funcionaba correctamente con la instalación de Snow Leopard 10.6.0, pero tras actualizar a la 10.6.2 provocaba un kernel panic. No he encontrado documentación sobre el tema, pero he encontrado una versión actualizada y compatible en http://www.kexts.com/view/20-skge_%2832--64-bit%29.html.