Mi mac tiene EFI de 64 bits, pero solo arranca con kernel de 32 bits

Seguí la guía en http://macperformanceguide.com/SnowLeopard-64bit.html para arrancar en modo de 64 bits. No tuve problemas con las instrucciones y en la pantalla de inicio dice "PAE habilitado, modo de 64 bits habilitado", pero cuando el sistema arranca, tanto uname -a como System Profiler me dicen que ha arrancado en modo de 32 bits.

Realmente necesito iniciar el kernel de 64 bits, ¿qué debo hacer?

El sistema es MacBook Unibody (principios de 2009, 6 GB de RAM, 2.4 CPU Intel, 10.6.6)

¿Por qué "necesita" arrancar en el kernel de 64 bits? No es necesario para nada...
Hay varios métodos enumerados en esa página. ¿Los probaste todos? ¿Los mismos resultados para todos? Mejore la pregunta con más detalles. No se limite a vincular a esa página, díganos lo que hizo.
@mankoff: probé todas y todas las combinaciones, sin resultados. Los hice todos.
@itaiferber: Dije explícitamente que debo hacerlo, por lo que tu comentario se marcó como erróneo. Tengo libs que enlazan con módulos kernel de 64 bits.
¿ Cuál es la salida de ioreg -l -p IODeviceTree | grep firmware-abi?
| | "firmware-abi" = <"EFI64"> Como dije, se cumplen todos los requisitos descritos en ese documento.
@AbiusX Lo siento por eso. La mayoría de las personas asumen incorrectamente que "necesitan" arrancar en un kernel de 64 bits para ejecutar aplicaciones de 64 bits y yo estaba tratando de evaluar la situación. Aunque hiciste lo correcto.
@itaiferber: sin problemas, pero ¿alguna solución? :D
Tenga en cuenta que el mensaje "PAE habilitado, modo de 64 bits habilitado" no significa que se haya utilizado el kernel de 64 bits. Pero supongo que eso es obvio para ti ahora :)

Respuestas (5)

Las CPU Mac de 64 bits no pueden iniciar el kernel de 64 bits debido a una de las siguientes razones:

  1. La máquina tiene EFI de 32 bits.
  2. El modelo de la máquina tiene prohibido arrancar K64 a través de una lista codificada dentro del cargador de arranque. (La lista excluye las máquinas "no Pro").

Ambas limitaciones son artificiales e impuestas por Apple, aunque la primera es importante porque si se permitiera arrancar un EFI de 32 bits, el kernel no podría usar los servicios de firmware.

SI realmente, realmente, realmente desea iniciar estas máquinas con un kernel de 64 bits, deberá realizar una piratería en /System/Library/CoreServices/boot.efi. Esto es bastante arriesgado. Más información:

Enlace

Pero mi EFI es de 64 bits, y 64 bits están habilitados en el arranque (como dice) Pero solo cuando arranco, dice que 64 bits no están cargados.
Debido a que su máquina no es PRO, no puede hacerlo a menos que intente modificar el efi (como lo describe ghoppe en su enlace). Hay una lista que excluye su máquina, sin importar la EFI de 64 bits que tenga.
Desafortunadamente, el boot.efi definido en ese artículo es demasiado antiguo y su hash no es el mismo que el mío, por lo que no se encontró el byte al que se hace referencia. ¿Alguna instrucción más reciente?

El modo kernel de 64 bits no es compatible con ninguna de las MacBooks (consulte el artículo KB de Apple #HT3770 ), incluso si tienen una CPU de 64 bits y un firmware EFI de 64 bits. No sé por qué no es posible arrancarlos de 64 bits, pero no he encontrado la manera de hacerlo (estoy en el mismo barco, ya que tengo una MacBook Pro 2007, también EFI de 64 bits, pero Apple solo admite kernel de 64 bits en los MacBook Pro presentados en 2008 o posteriores).

Pero el mio es del 2009?
@AbiusX: según el artículo de Apple KB, los MacBook Pro desde 2008 pueden arrancar K64; ninguna de las MacBooks que no son Pro puede hacerlo. Lo siento.
Bueno, un mes después de que compré esto, se cambió a profesional. Nada cambió, solo el nombre.
@AbiusX Realmente no sabe si "solo cambió el nombre", tal vez algún otro interno, en cualquier caso, la respuesta es simple, no puede iniciar en 64 bits con una Macbook "no profesional", a menos que intente el arranque. modificación efi (que es arriesgada) pero podría funcionar.
@Martin: Creo que la modificación de boot.efi no será tan arriesgada, simplemente puedo volver a mi antiguo sistema si algo sale mal, ¿verdad? ¿Podría por favor proporcionarme instrucciones de modificación?
@AbiusX: El enlace que publicó Ghoppe tiene instrucciones para modificar boot.efi.
@AbiusX: Verifique el enlace proporcionado por ghoppe, cerca del final debe cambiar un poco en el archivo hexadecimal. Maneje con cuidado ;) En lugar de una máquina del tiempo, le sugiero que cree un CLON de arranque de su disco. Muchas cosas pueden salir mal y obligarlo a reinstalar el sistema operativo. No estás tocando una configuración, estás tocando archivos de arranque. Si te equivocas, tu OS X ya no arranca. ¡Buena suerte!

Hay un plist en /Library/Preferences/SystemConfiguration/com.apple.Boot.plist que controla qué kernel se usa en el momento del arranque.

Puede mantener presionadas las teclas 6 y 4 para iniciar en modo kernel de 64 bits durante el inicio. Además, puede iniciar 32 bits manteniendo presionados 3 y 2 durante el inicio. o puedes probar

sudo systemsetup -setkernelbootarchitecture x86_64

y luego reiniciar.

Tengo la misma computadora que tu.

No hay forma de arrancar en modo de 64 bits.

Intenté modificar tantos archivos del sistema. No se puede hacer, y no necesita ser.

Si no has encontrado una manera, ¿Crees que significa que no hay ninguna?
Dada la cantidad de búsqueda que hice, sí.

Apple prohíbe artificialmente que las MacBooks como la suya arranquen el kernel de 64 bits. Esta restricción está en boot.efi. Para eludir esta restricción en el boot.efi 10.10.3 actual, debe hacer lo siguiente.

1) Cree una copia del archivo boot.efi y asígnele el nombre boot64.efi (boot.efi generalmente se encuentra en /System/Library/CoreServices/ o en su partición esp

2) Usando un editor hexadecimal, busque la cadena 20 00 40 02 y reemplácela con 40 00 80 04

3) Guarde el archivo boot64.efi

4) bendice el boot64.efi

5) sudo nvram boot-args="arch=x86_64"

6) reiniciar