Instalación de EFI en Leopard y Pentium 4

miliuco

Activo
Instalación de EFI en Leopard y Pentium 4

¿Qué es EFI PC?

Volviendo atrás en la historia reciente, podemos recordar que Apple lanzó su primer Mac Intel en enero de 2006. Este ordenador utilizaba EFI (Extensible Firmware Interface) en lugar de BIOS que era lo que habían utilizado la mayoría de los PCs x86 hasta entonces. Ello añadía un obstáculo importante a la instalación de OSx86 en PCs, además de los que ya existían en la fase de versiones beta de OSx86 previas al lanzamiento oficial:

1. TPM o chip Trusted Platform Module que era necesario para que Rosetta funcionase
2. procesadores con instrucciones SSE3, tambíen necesarias para que Rosetta funcionase
3. procesadores con bit NX habilitado (No eXecute bit, llamado DEP en entornos Windows), técnica de protección de memoria

Cada uno de estos obstáculos fue solventado con sus correspondientes parches que aparecían con regularidad.

El primer MacIntel llevaba Mac OS X 10.4.4. A las pocas semanas, un hacker llamado Maxxuss puso en la Red las herramientas que permitieron instalar OSX 10.4.4 en PCs. A lo largo de las semanas siguientes, Apple fue lanzando nuevas versiones de OSX; estos lanzamientos eran respondidos en poco tiempo por hackers que sacaban los parches apropiados.

Hay que recordar los nombres del ya comentado Maxxuss, SemjaZa, JaS, Mifki, Vitaliy, Semthex, Rufus y, ya en la era Leopard, Uphuck, BrazilMac y ToH, como los más importantes creadores de parches y versiones aptas para PCs durante 2006 y 2007.

Pero el kernel constituía un gran problema hasta el punto que, desde la versión 10.4.4 hasta la 10.4.8, todas las versiones de OSx86 que se utilizaron en PCs llevaban el kernel 10.4.4 modificado. Incluso cuando se han utilizado kernels más modernos, siempre han sido kernels modificados (y casi siempre desactualizados) para esquivar la ausencia de EFI, con lo que se pierden algunas de sus características más importantes.

A finales de 2007, Netkas publicó su método para emular EFI en PCs mediante un cargador de arranque Darwin modificado. La importancia de esta propuesta radica en que, con el emulador de EFI instalado, el PC puede ser visto por el sistema operativo prácticamente como si de un Mac real se tratase, permitiendo la utilización del kernel original de Apple (Vanilla kernel, por similitud con el mundo Linux en el que los kernels directamente liberados por Linus Torvalds y su grupo se llaman así para indicar que todavía no los ha modificado nadie más). Las ventajas de ésto son enormes:

1. utilizar el kernel de Apple original
2. utilizar algunas extensiones de Apple originales de las que hasta ahora era obligatorio que fuesen modificadas
3. mayor protección frente a errores de memoria y ataques malintencionados
4. aumento teórico del rendimiento en procesadores Core 2 Duo

Existe abundante información en la Red sobre la emulación de EFI, sobre todo en los sitios web de Netkas (netkas.freeflux), DigitMemo (digitmemo.com), OSx86 Project, Applesana, etc. Es un proyecto muy joven que está en plena fase de desarrollo, con varias versiones sucesivas de lo que se ha dado en llamar PC_EFI. La más reciente a la hora de escribir este artículo es la versión 8.

Hardware requerido para usar emulador EFI

Procesadores Core Duo y Core 2 Duo, básicamente, con chipsets Intel en la placa base. Las instrucciones SSE3 y el bit NX habilitado son obligatorios. El emulador EFI puede ser instalado en hardware diferente pero las probabilidades de éxito disminuyen al alejarse de esa base.

¿Qué es el bit NX (No eXecute bit)?

Es una técnica que se puede implementar a nivel de procesador (hardware, verdadero NX bit)) o de sistema operativo (software, emulación muy inferior). En entornos Windows se llama DEP (Data Execution Prevention).

Mediante esta técnica se protege la memoria diferenciando las áreas de instrucciones de las áreas de datos para evitar su colisión. Se consigue una disminución de errores de memoria pero, sobre todo, una mayor protección frente a ataques malintencionados. Generalmente se puede habilitar o deshabilitar en BIOS, donde puede aparecer como NX bit o como DEP.

Procesadores sin DEP no pueden implementar emulación de EFI. Para saber si un procesador lo soporta:

1. consultar las páginas de BIOS
2. si se tiene Windows XP instalado en ese PC: botón derecho en Mi PC >> Propiedades >> Avanzadas >> Rendimiento >> Data Execution Prevention >> si las casillas de activar o desactivar DEP están deshabilitadas o si en la parte inferior dice que se utiliza DEP por software >> el procesador no tiene la opción del bit NX.

Si el procesador lo soporte, existe una forma sencilla de habilitar o deshabilitar DEP en Windows XP: modificar el parámetro noexecute en el archivo boot.ini de manera que, en la entrada correspondiente a Windows XP, si aparece

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP HOME" /noexecute=alwaysoff /fastdetect

DEP estará dehabilitado pero si aparece

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP HOME" /noexecute=optin /fastdetect

DEP estará habilitado.

Instalar el emulador de EFI en mi PC [/SIZE](P4 Prescott 3 GHz con SSE3 y NX bit)

Este proceso se ha hecho en un sistema Leopard funcionante, instalado desde el DVD RC2 de ToH. Es necesario disponer de algunos archivos:

1. Pc_Efi que incluya la herramienta startupfiletool y arrancadores Darwin modificados (boot_v8, etc.) así como el arrancador Darwin sin modificar (suele llamarse booti386 y su utilidad radica en que con él se puede revertir el proceso si algo sale mal)
2. kernel original (Vanilla) de Leopard
3. extensiones originales de Leopard (sobre todo ApleACPIPlattform.kext y AppleSMBIOS.kext)
4. extensión dsmos.kext (obligatoria si se quiere arrancar con kernel Vanilla pero no si se arranca con kernel modificado)
5. kernel modificado (el del sistema Leopard que se tenga en uso o el del DVD de instalación de ToH) que debemos conservar pues permite arrancar con EFI y sin ella por lo que es necesario en caso de que el proceso de arranque con el kernel Vanilla no salga bien

En la carpeta de Pc_Efi versión 8 (la más reciente) no aparece booti386 que viene en la carpeta de Pc_Efi versión 5.1. No conviene olvidar este archivo.

En mi PC, OSx está instalado en un disco duro particionado según el esquema MBR (clasico de sistemas DOS y Windows) pero la versión 8 de Pc_Efi permite su instalación tanto en particiones MBR como en particiones GUID (específicas de los MacIntel).

Los pasos necesarios para instalar el emulador EFI son:

Preparación

1. Crear una carpeta iamefi en / en la que depositaremos los archivos de Pc_Efi

sudo mkdir /iamefi
sudo cp /ruta_a_los_archivos_de_PcEfi/* /iamefi

2. Cambiar el nombre al kernel actual

sudo mv /mach_kernel /mach_kernel_toh

3. Copiar el kernel Vanilla a /

sudo cp /ruta_al_kernel_sin_modificar/mach_kernel /

4. Copiar dsmos.kext, ApleACPIPlattform.kext y AppleSMBIOS.kext de Pc_Efi a la carpeta Extensions

sudo cp -R /ruta_a_dsmos.kext /System/Library/Extensions
cd /System/Library/Extensions
sudo mv ApleACPIPlattform.kext ApleACPIPlattform.kext.back
sudo mv AppleSMBIOS.kext AppleSMBIOS.kext.back
(de esta manera las podemos recuperar fácilmente volviendo a su nombre original)
sudo cp -R /ruta_a_ApleACPIPlattform.kext /System/Library/Extensions
sudo cp -R /ruta_a_AppleSMBIOS.kext /System/Library/Extensions

5. Borrar estas 2 extensiones de la carpeta Extensions (pueden interferir con el sistema de gestión de energía)

sudo mv AppleEFIRuntime.kext AppleEFIRuntime.kext.back
sudo mv AppleIntelCPUPowerManagement.kext AppleIntelCPUPowerManagement.kext.back
(de esta manera las podemos recuperar fácilmente volviendo a su nombre original)
(estas extensiones pueden no estar presentes en algunos sistemas)

6. Borrar la caché de extensiones

sudo rm /System/Library/Extensions.mkext

7. Reparar permisos

sudo diskutil repairPermissions /

8. Conocer el identificador del disco o partición que contiene a Leopard

diskutil list
(apuntar el que corresponda a Leopard, por ej: disk0s1)

Instalar EFI

1. Reiniciar el PC pulsando F8 y tecleando en el menú de Darwin

mach_kernel_toh -s
(todavía no es posible arrancar con el kernel Vanilla)

2. Instalar EFI

cd /iamefi
./startupfiletool /dev/rdisk0s1 ./boot_v8
(el disco se nombra con la letra r seguido del identificador que se obtuvo anteriormente)

Ha de aparecer un mensaje que informa "HFS+ partition detected..."

Si el mensaje dice "Filesystem unrecognized" quiere decir que nos estamos dirigiendo a otro disco diferente al de Leopard por lo que habría que probar con otros identificadores (rdisk1s1...)

3. Reniciar (reboot + INTRO)

Arrancar con EFI

En mi caso el PC arranca con EFI solamente si utilizo el kernel modificado de ToH. Cualquier maniobra para arrancar con el kernel Vanilla cuelga el PC inmediatamente después del menú de Darwin. Pero arrancando con el kernel modificado, Leopard parece funcionar igual de bien con EFI que sin EFI.

Ello va a favor de la teoría que dice que en hardware como el mío la utilización del emulador de EFI es muy problemática.

Para desinstalar Efi_Pc hay que hacer lo mismo que para instalarla pero utilizando el cargador Darwin sin modificar (booti386):

./startupfiletool /dev/rdisk0s1 ./booti386

Y reiniciar con el kernel modificado de ToH que habrá de ser colocado de nuevo como mach_kernel principal, eliminando el kernel Vanilla, recuperando las extensiones que fueron renombradas con la extensión back y reparando permisos.
 

AlexDM

Activo
Buenísimo tutorial y además con mi misma CPU jejeje
Me haces un favor? me subes a algún sitio todo el paquete para probarlo? Porque no consigo que me chute todo limpio...

Por cierto, tu has tenido que utilizar el kernel vanilla con la distro de ToH?

Un saludete
AlexDM.
 

miliuco

Activo
Los kernel los puedes coger de sitios web o de los DVDs tanto de ToH como del original de Apple del que también se pueden sacar las extensiones originales con Pacifist pero es más cómodo buscarlo en la Red.

Tienes prácticamente todo lo necesario en DigitMemo PcEfi 5.1, kernel Vanilla y ToH, extensiones originales...

Y recuerda que la web "oficial" de EFi_PC es Netkas pero para descargar PC_EFi desde allí hay que conectarse al irc al canal leopard lo que es más latoso.
 

miliuco

Activo
Alex, te hago unas precisiones que están recogidas en mi artículo:

- NO he conseguido arrancar en mi PC OSX con kernel Vanilla aunque sí he conseguido instalar y desinstalar EFI_PC sin problemas y usar OSX con el kernel de ToH y el emulador de EFI tanto instalado como desinstalado (la verdad es que no he notado cambio alguno, lógico por otra parte)

- nunca he usado kernel Vanilla con el sistema instalado desde el DVD RC2 de ToH porque no arranca, sería casi milagroso que lo hiciese

- sigo pensando que pocos de los que tenemos micros previos al Core Duo conseguiremos una emulación de EFI correcta, con kernel Vanilla en regla.
 

gnanduuu

New member
buenas...ademas seria interesante hacer algunos benchmarks para saber realmente donde se gana rendimiento...

se podria comprar:
  • Hackintosh sin EFI
  • Hackintosh con EFI
  • Macintosh real
lo malo de esto es que para sacar conclusiones reales las pruebas deberian realizarse en equipos con especificaciones similares sobre todo para poder compararlas con una mac real...pero calculo que debe haber alguien en el foro que tenga una mac y una hackintosh con hard similares!

en fin es una idea que creo que nos puede ayudar a ver si realmente vale la pena y cuanto se gana en rendimiento usando el kernel original...estoy seguro que debe haber una buena diferencia...
 

miliuco

Activo
Para quienes puedan utilizar EFI y kernel Vanilla estaría bien la comparativa, pero los que tenemos hardware más antiguo... no podremos.

Pero no te centres sólo en el rendimiento que tiene más que ver con la posibilidad de usar a 64 bits en Core 2 Duo el sistema operativo que también es de 64 bits (ahora sin EFI en los Hackintosh con Core 2 Duo se usa en modo 32 bits). Recuerda que las ventajas del kernel original son además del rendimiento:

- mayor ptotección frente a errores de memoria y ataques malintencionados
- mayor estabilidad del sistema operativo
- posibilidad de actualizar directamente desde la web de Apple

Y éso no se puede medir en pruebas de rendimiento.
 
A

aragonXXX

Guest
hola gente, yo e hecho todos los pasos, el problema es que cuando quiero reiniciar para entrar con f8 preciono y escribo sudo -s pero luego aparece de nuevo el contador de tiempo del darwin para presionar f8 , todo esto con el cd puesto yaque el mio es de brasillMac , alguien sabe por q pasa esto


alguien me puede decir cm actualizar el brasilmac, ya q no encuentro por ningun lado plesaseeeeeeeeeeeeeeeeeeeeeeee
 

migueldsr

New member
Perdón si me repito mucho pues ya he hecho esta pregunta en otros post, pero me preguntaba si es posible que en algún futuro se pueda emular efi en un procesador AMD64 o es imposible
 

miliuco

Activo
Imposible no será pero hará falta saber si la gente que lo está programando lo hace.

Ya sabes que la página "oficial" de Efi_Pc es la de netkas, allí tienes la información de en qué están trabajando. Seguro que saben más que nosotros de su trabajo.
 

miliuco

Activo
Aragonxxx ¿cómo quieres que te demos siquiera una respuesta con la información que aportas? ¿Te imaginas que alguien pregunta por qué falla su vehículo y no dice la marca, ni si es gasoil o gasolina, viejo o nuevo, coche o camión...? Dinos algo más, qué hardware tienes, etc... (mira cómo algunos ponemos esos datos en la firma y así cualquiera que lea el mensaje tiene más datos para poder ayudar).

Y por favor, deja el lenguaje sms para éso, sms.
 

eder710

Activo
pues yo utilice el otro tutorial pero no me arranco solo se reiniciaba y al leer tus comentarios desias que no estaba cargando el kernel o algunos de los kext.

Ahora voy a intentar con este manual aver si por fin puedo iniciar o ver algun kernel panic o señal de prohibido.

Salu2
 

Tothek

New member
Ola, quisiera saber una cosilla.
Con el EFI BIOS PC, y el kernel original instalados en el Pc y funcionando, cuando te sale la actualizacion a la version 10.5.1 ( porque yo tengo la 10.5.0 ) puedes actualizarlo directamente y ya esta.
¿O da algun error despues porque modifique algo esa actualización?
Muchas Gracias.
 

miliuco

Activo
En teoría, con EFi y kernel original deberías poder actualizar sin problemas. Pero recuerda que ésto es el mundo Hackintosh, y apenas hay cosas completamente seguras de antemano.
 

eder710

Activo
POR FINNNNNNNNNNN logre que funcionara mi hacintosh con EFI gracias a tu manual :) :) :)

Ahora solo falta que le cambie la resolución a mi GMA 950 ya que al actualizar de 10.5.0 a 10.5.1 se a bloqueado el poder cambiar de resolución.

Salu2 y GRACIAS.
 

terrybogarti

New member
que necesito modificar de mi bios para instalar leopard ya baje el iso el brasilian_dvd patched, ya lo queme pero inicia el darwin boot y aparece la ventana blnaca con la manzana gris y de spues de como 15 minutos se gongela y no avanza, revise varios foros y dicen que hay que modificar el bios pero que muevo o que tipode boot uso para inciar la instalacion.
mi pc es un p4 630 a 3ghz, 512 mb en ram, placa p13g+, 1 dd 120 gb ide, 1dd40 gb ide, 250 gb sata 1
espero sus respusestas gracias
 

camilosaldias

New member
intente hacerlo en mi PC, pero cuando intente arrancar el kernel ToH, me arroja un kernel panic!

A alguien le ha pasado esto,o hice algo mal? (hice todo lo que decia el tutorial, al pie de la letra).
 
Arriba