sábado, 11 de agosto de 2012

3 años después: actualizando mi OSx86 a Lion

Parece mentira cómo pasa el tiempo. Tres años ya desde que me lancé a construir un hackintosh basado en una placa base Gigabyte GA-EP45-UD3R y OS X 10.5.8, es decir, Leopard, y gráficos NVIDIA.


El engendro que monté me ha venido funcionando estupendamente a lo largo de estos meses, pero hace unos días llegué a la conclusión de que había llegado el momento de la actualización. No del hardware, que sigue siendo magnífico para mis necesidades, a pesar del paso del tiempo, sino del software. Muchas aplicaciones empiezan ya a requerir de Snow Leopard hacia arriba para funcionar, así que venciendo la innegable pereza que me daba me puse manos a la obra.

Y de esto precisamente va esta entrada, como no.

Acto I: Los preparativos.
 
Si releéis el artículo enlazado más arriba podréis comprobar que el montaje original incluía 2 discos SATA internos Samsung Spinpoint de 1TB. Tiempo después fueron sustituidos, no sin ciertas dificultades causadas por la partición EFI oculta y el cargador de arranque, Chameleon, por sendas unidades Western Digital de WD20EADS de 2TB. Dado que es absolutamente suicida tratar de realizar una actualización de este tipo sobre el disco de arranque de un OSx86 (es decir, un Mac que no es un Mac) que está funcionando correctamente, opté por instalar un tercer disco duro, también de 2TB, para trabajar sobre él. Una alternativa más económica hubiera sido emplear la unidad dedicada a Time Machine, gemela de la de arranque en mi sistema, pero puesto que de todos modos tenía decidida la compra de un nuevo disco duro para copias de seguridad parciales de mi NAS doméstico preferí ir a lo seguro.

Dos advertencias muy importantes con respecto a la elección del disco duro:
  • La instalación debe realizarse en una partición de un tamaño menor a 1TB. En caso contrario será posible completarla, pero el SO no arrancará, mostrando en pantalla KP (Kernel Panic) de lo más variados. Los mensajes en pantalla que aparecen al producirse estos KP pueden inducir a pensar que el fallo se debe a algún problema con kexts, módulos de compatibilidad, etc. (que también podría ser). No fue ése mi caso, solucionándose el problema al repetir la instalación sobre una partición de 900GB.
  • Mucho cuidado con los discos que tienen sectores de 4K. Hace ya unos años los fabricantes de discos duros, en su imparable carrera por el espacio, comenzaron a entregar unidades con un formato físico con sectores de 4K en lugar de los 512 bytes que venían siendo habituales. Esto se manifestó inicialmente con unidades de gran tamaño, típicamente superiores a 2TB, aunque hoy en día no es extraño encontrarse con discos más pequeños que también presentan esta peculiaridad. Como os podéis imaginar esto supuso, en términos generales, problemas de compatibilidad a varios niveles, problemas que, aunque más o menos subsanados ya a estas altura, afectan también a la instalación de OS X en un PC. Los discos que yo utilicé originalmente allá por agosto del 2009 no eran 4K, ni tampoco los de 2TB por los que fueron sustituidos. Pero sí el moderno Seagate ST2000DL003 de 2TB que adquirí para la ocasión. El resultado: el cargador de arranque del SO ya instalado no es capaz de hacer eso mismo, arrancar, y nos deja por toda respuesta con un escueto boot0: error en pantalla.

Más adelante veremos cómo solucionar ambos problemas.

La segunda consideración tiene que ver con la versión de OS X a instalar. En el momento de plantearme la actualización había 3 posibles candidatas:
  • Snow Leopard (10.6).
  • Lion (10.7).
  • Mountain Lion (10.8).
Snow Leopard es ya demasiado antigua, aunque perfectamente operativa, todo hay que decirlo, en tanto que Mountain Lion peca justo de lo contrario, es demasiado reciente y todavía presenta algunos problemas de compatibilidad con ciertas aplicaciones que me interesaba poder instalar. Además, Lion (a secas) ya ha recibido diversos paquetes de actualización que la han ascendido a la 10.7.4, que probablemente sea la última, o casi. Es decir, Lion es ya un sistema probado, actualizado, con los bugs iniciales corregidos y ya conocido por todos, incluyendo en ese todos a la comunidad de usuarios OSx86. Del mismo modo que hace 3 años opté por Leopard en lugar de Tiger (anterior) y Snow Leopard (posterior), ahora vuelvo a adoptar el mismo criterio, que hasta el momento me parece que se ha demostrado acertado. Al fin y al cabo he estado 3 años sin pensar en actualizaciones de ningún tipo. A ver si hay suerte y con Lion puedo estar al menos otros 2 o 3.

Ya tenemos por tanto ganador: Lion.

Recordad que Apple prohíbe la instalación de sus sistemas operativos en hardware distinto al que ella misma fabrica y vende, aunque hayáis adquirido el software de manera legal. Por ello, y del mismo modo que hice en el artículo original, os animo a que formateéis el disco duro tan pronto como hayáis conseguido que el leoncito ruja en él a la perfección. Esto es solo por la ciencia ;-).

Acto II: La instalación.

Las cosas han cambiado mucho, para bien, en 3 años. Lo que entonces era un proceso extremadamente artesanal hoy se ha convertido en algo casi casi semi automático... si disponemos del hardware adecuado, claro. En esto sentido me gustaría presentaros, sin olvidarnos por supuesto de insanelymac, dos iniciativas que facilitan enormemente la instalación de OS X en un PC, tonymacx86 y Kakewalk. La primera de ellas contiene una gran cantidad de artículos, guías, tutoriales, vídeos, software y otros recursos de gran valor y, por si fuera poco,  excelentemente organizados. La segunda, por su parte, va un paso más allá y trata de simplificar aún más las cosas, especialmente si disponéis de una placa Gigabyte compatible. Incluso dispone de una sección con hardware recomendado para acertar a la primera. Increíble.

Como podéis intuir si habéis echado un vistazo a tonymac o Kakewalk y a diferencia de mi primera instalación, en la que utilicé un DVD modificado, ahora trataremos de hacer una instalación vanilla, es decir, lo que pretendemos es engañar al software original de instalación de Apple para hacerle creer que se está ejecutando en hardware Apple y no en un PC convencional. Yo he tenido que recurrir, tras varias pruebas, a una combinación de los procedimientos descritos en ambas webs para conseguir mi objetivo, aunque a posteriori he tenido que hacer también algunos ajustes manuales para dejarlo todo rodando al 100%. Tened en cuenta que la enorme cantidad de combinaciones de hardware en el mundo PC hace realmente complicado que todo sea tan sencillo como instalar y listo. A pesar de esto y tras unos intensos días de frenético uso del nuevo sistema con Lion tengo que decir que no he encontrado ni un solo problema. Cero. El resultado ha sido incluso mejor que el que obtuve hace 3 años con iDeneb y Leopard.

Resumamos pues los pasos a seguir:
  1. Obtener una copia del DVD original de Lion o descargarlo de la Apple Store. La necesitaremos en el paso (2). Aquí cada cual con su conciencia.
  2. Crear un pendrive utilizando el método descrito en la guía de instalación de Kakewalk. La versión que yo usé fue la última en ese momento (4.5). Es necesario que disponga de unos 5GB. El que yo utilicé tenía 16GB, pero fue imposible arrancar con él (paso 4) para efectuar la instalación ¿Solución? Muy simple: crear previamente una partición de 5GB con sistema de archivos Mac OS Plus (con registro) y esquema de particiones GUID. Yo lo hice desde un Mac real, desconozco si hubiera sido posible hacer algo similar desde un PC con Windows.
  3. Grabar en el pendrive dos elementos que al menos en mi caso fueron necesarios a posteriori, cortesía de tonymacx86. Nos servirán para, tras el primer arranque ya con Lion, conseguir que todos los dispositivos hardware queden funcionando perfectamente.
    • MultiBeast Lion Edition 4.6.1 (es necesario registrarse para descargarlo).
    • El archivo DSDT para mi placa base, una Gigabyte GA-EP45-UD3R rev.1.1 F4. El nº de revisión de la placa está serigrafiado  en el lateral inferior izquierdo, junto a los slots PCI. El código (F4) aparece en el POST, justo tras encender el ordenador.
  4. Arrancar el PC utilizando el pendrive que Kakewalk ha construido. En este pendrive tenemos 2 elementos cruciales: a) Un cargador de arranque que emula el entorno EFI de un Mac original y b) Una imagen de Lion lista para instalar. Si todo se desarrolla según lo previsto en unos instantes debería darnos la bienvenida el asistente de instalación del sistema operativo.
  5. En ese punto tendremos que utilizar la Utilidad de Discos del entorno de instalación para crear una partición de 900GB en el disco duro destino. Nuevamente esta partición deberá ser Mac OS Plus (con registro) y esquema GUID. De este modo evitaremos los kernel panic mencionados anteriormente. Si lo deseamos podremos extender la partición hasta el tamaño completo del disco más adelante.
  6. Ya solo queda seleccionar la partición creada en la etapa anterior y seguir el asistente para que de comienzo la instalación.
Tras unos minutos el sistema se reiniciará. Retiraremos el pendrive y, tras asegurarnos de que la BIOS está configurada para arrancar desde el disco duro en el que hemos instalado Lion, iniciaremos ya Lion y...

¡Chasco morrocotudo! Esto fue lo que me encontré:


Acto III: Primer arranque ¿y ahora qué?

De no haber empleado un HD con sectores 4K probablemente todo se hubiera desarrollado sin incidentes. Lamentablemente no fue ése mi caso. En este momento no es posible solucionar este, digamos, incidente. Pero que no cunda el pánico. Lo haremos más tarde. De momento volveremos a iniciar con el pendrive pero esta vez pulsaremos una tecla cuando aparezca la cuenta atrás y seleccionaremos el volumen en el que hemos instalado Lion como disco de arranque. 

Mi flamante OSx86 completó así perfectamente el primer inicio con la parafernalia habitual (selección de idioma, zona horaria, usuario, registro, etc. etc.) ¡Bienvenido al Finder de Lion!

Y como era de esperar, problemas, problemas: ni red ni soporte completo para mi gráfica, una NVIDIA GTS 250. Como veis Kakewalk no consiguió totalmente su objetivo. Me extrañó sobremanera que el adaptador de red no fuera correctamente reconocido, dado que está integrado en la placa base y la mía (supuestamente) es una de las soportadas. Quizás tenga que ver con que no pude arrancar desde el gestor de arranque del disco duro personalizado por Kakewalk, que hace su "magia" particular para que el hardware del sistema sea reconocido correctamente.

El caso es que en este punto recurrí a MultiBeast y al archivo DSDT descargado de la web de tonymacx86. Estos archivos DSDT son mágicos. Las definiciones recogidas en sus tablas permiten inyectar correctamente el hardware adecuado para que OS X funcione en nuestro OSx86, siendo por tanto la piedra angular que puede condicionar el éxito o fracaso de la construcción de vuestro hackintosh. En la mayor parte de ocasiones tienen que ser elaborados o modificados artesanalmente a partir de la información contenida en la BIOS de la placa base. Si disponéis de un DSDT diseñado y probado para vuestro hardware estáis de enhorabuena.

Así pues ejecutaremos MultiBeast para marcar únicamente UserDSDT Install como opción y seleccionar a continuación el archivo DSDT correspondiente, en mi caso DSDT-GA-EP45-UD3R-1.1-F4.aml.


Tras el reinicio de rigor, de nuevo utilizando el pendrive de Kakewalk puesto que Lion seguía mostrando obstinadamente el dichoso boot0: error a pesar de que MultiBeast había escrito de nuevo en el sector de arranque el código necesario para iniciar el sistema, lo que me encontré esta vez fue un maravilloso Finder a 1920x1080 y a la red  ya perfectamente configurada vía DHCP y conectada a 1Gbps y duplex completo con mi switch.


Aquí ya se olía la victoria. Pero no se vayan todavía... aún hay más.

Acto IV: Actualización combinada a 10.7.4.

El siguiente paso fue, naturalmente, actualizar a 10.7.4: Manzanita > Actualización de software. Tras un buen rato y un nuevo reinicio el sistema quedó actualizado sin mayor contratiempo que la desaparición del adaptador ethernet en el panel de preferencias de la red. Curiosamente, y a pesar de ello, el sistema seguía teniendo conectividad en red. De hecho, la dirección IP cedida por mi servidor DHCP aparecía asignada a un adaptador bluetooth de tipo PAN. De lo más extraño, pero afortunadamente intrascendente.

La solución fue bien simple: bastó con acceder al panel de preferencias de la red para eliminar el adaptador bluetooth aparecido de la nada y añadir uno nuevo ethernet, que a continuación desactivé y reactivé para que ya se auto configurará  y comenzara a funcionar sin rechistar.

  1. Preferencias del Sistema > Red.
  2. Clic en adaptador bluetooth anómalo; clic en símbolo [-].
  3. Clic en símbolo [+].
  4. Interfaz: Ethernet; Nombre del servicio: Ethernet. Clic en Crear.
  5. Clic en adaptador Ethernet recién creado.
  6. Clic en símbolo [engranaje] > Desactivar servicio.
  7. Clic en símbolo [engranaje] > Activar servicio.
Tras un reinicio posterior el adaptador bluetooth PAN volvió a aparecer pero ya sin ocasionar más problemas.

Acto V: A vueltas con el disco duro: tamaño de la partición y arranque.

Vamos ahora a solucionar 2 inconvenientes de peso. Por orden de importancia, el arranque desde el disco duro y el tamaño de la partición en la que se ha instalado Lion, que si hacéis memoria ha sido de 900GB por las razones anteriormente expuestas.

Recordemos que era el ominoso boot0: error quien nos separaba de un Lion funcional. Lo que vamos a hacer es escribir manualmente en el sector de arranque del disco duro de Lion un archivo denominado boot1h que forma parte de UniBeast,  un pendrive de arranque que emula un entorno EFI similar a Kakewalk. Nuestro amigo tonymac lo explica muy bien aquí.

Ahora bien, yo he utilizado UniBeast sino Kakewalk y en este último no hay ni rastro de ese archivo. Rebuscando en mi instalación de Lion resulta que como consecuencia de la ejecución post-instalación de MultiBeast (véase Acto III) ese archivo se encuentra en /usr/standalone/i386. Estupendo. Esta es la secuencia de pasos que seguí:
  • Arrancar nuevamente desde el pendrive de Kakewalk.
  • En lugar de comenzar una nueva instalación, invocar el Terminal del mismo modo que hicimos antes (Acto I, paso 5) con la Utilidad de Discos.
  • Copiar boot1h a algún lugar al que podamos acceder tras desmontar el volumen del sistema. Yo lo hice a otros de mis discos duros (Time Machine), pero perfectamente podría haber utilizado un pendrive adicional (la barra invertida \ es necesaria en este caso puesto que el nombre del volumen contiene un espacio). Otra posibilidad si no disponéis de una unidad de almacenamiento adicional a mano es copiar boot1h previamente sobre el pendrive de Kakewalk, por ejemplo  en raíz (/). Una vez arrancamos con Kakewalk no es posible ya copiar nada sobre él puesto que se monta en solo lectura.
sudo cp /usr/standalone/i386/boot1h /Volumes/Time\ Machine
  • Desmontar el volumen donde reside Lion. Esto es necesario para tener acceso físico al sector de arranque:
umount /Volumes/Lion
  • Teclear el siguiente comando para sobre escribir el sector de arranque a partir del fichero que hemos guardado en algún otro lugar
dd if=/Volumes/Time\ Machine/boot1h of=/dev/disk2s2

Como os podeis imaginar, lo que he marcado en rojo es crítico. De hecho toda esta operación lo es porque si os confundís a la hora de identificar los elementos destacados podéis hacer una maleza y de las buenas, especialmente si tenéis más discos duros conectados. Lion es el nombre del volumen en el que hemos hecho la instalación, en tanto que disk2s2 es el nombre del dispositivo que representa al disco físico correspondiente. Casi nada.

Para saber lo que tenemos que escribir aquí habremos utilizado previamente la Utilidad de Discos, en la que haremos clic en la lista de unidades y volúmenes, a la izquierda, sobre el volumen (partición) en el que hemos instalado  Lion para a continuación hacer clic en el botón Información localizado en la barra de botones superior.


Tras completar la anterior secuencia de acciones ya nos podremos olvidar tranquilamente del pendrive de Kakewalk. No lo necesitaremos más. Nuestro Lion es ya plenamente operativo de forma autónoma.

Segunda cuestión: si preferimos tener una sola partición en el disco de Lion bastará con extenderla utilizando la Utilidad de Discos. Esto es posible hacerlo totalmente en caliente aún teniéndola montada y ¡habiendo arrancado desde ella! Impresionante. Seleccionaremos el disco (no en la partición) del sistema, iremos a particiones, eliminaremos la segunda y extenderemos la primera hasta que ocupe la totalidad del espacio disponible en la unidad.


No os olvidéis de hacer clic en Aplicar.

Acto VI: ¿Algún ajuste adicional?

Pues sí, pero solo uno.

El único inconveniente que detecté en el sistema, que funcionaba a las mil maravillas, tenía que ver con la unidad óptica. Cada 5 o 10 minutos se oía un ligero chasquido procedente de ella, como el que se produce al insertar un disco. Daba la sensación de que el sistema operativo tratara periodicamente de realizar algún tipo comprobación. Aunque no constituía más que una leve molestia, una rápida visita al Economizador, en las Preferencias del Sistema, bastó para solucionarlo:


Acto VII: Conclusiones finales.

Unas 8 o 10 horas (robadas al sueño en su mayoría) es el tiempo que calculo me ha llevado todo esto. Mucho o poco según cómo se mire. Desde luego es un tiempo escaso si lo comparamos con lo que me supuso instalar Leopard hace 3 años. Las cosas son ahora más fáciles y, me gustaría pensar, yo también he aprendido algo desde entonces.

El resultado es algo parecido a un Mac Pro corriendo Lion de un modo que de momento solo puede decir que es perfecto. Incluso pequeños inconvenientes que nunca pude solucionar con mi anterior montaje (elevado tiempo de reconexión de un Mighty Mouse bluetooth tras reactivar el sistema desde reposo, algún que otro kernel panic inesperado, imposibilidad de apagarlo de un modo controlado en ciertas ocasiones) han desaparecido sin dejar ni rastro, al menos en la semana que llevo conviviendo con él.

Definitivamente creo que el tiempo empleado ha merecido la pena. Y mucho. Veremos si el tinglado me dura otros 3 años o antes me veo en la necesidad de actualizarlo nuevamente. Quizás la próxima vez ya sea cosa de actualizar también el hardware, que en cualquier caso ha resultado excelente.

De momento a disfrutarlo.

1 comentario :

Vicente dijo...

Muy bueno Pablo, mi hijo también montó uno para ver que tal iba, realizó pruebas comparativas con el blender
, y el MAC, resultó ser exactamente el doble de rápido con el mismo hardware que el Windows 7.