Michelasso wrote:
When I wrote "boot in 64 bit mode" I obviously meant boot and load the 64 bit kernel. Once the kernel is loaded, the EFI should be discarded. The major thing is that with an EFI32 OSX 64 bit shouldn't be able to access the NVRAM so commands like "nvram" (indeed) and the boot disk selection in system preferences probably won't work anymore.
No offense intended, but you may need to study those links you say are nothing new. From them, you should learn that on a Mac, boot disk selection is handled by the
BootROM, not by the +kernel environment loader+, which on an Intel Mac is the boot.efi file. (If you think about it, common sense should also tell you this: you can't load something from a disk until a disk is selected to load it from.) It is the BootROM firmware that reads the preset disk selection from NVRAM (if there is one set) & optionally allows a different selection at boot time by querying the option key. Note that this is
not handled by anything (including the boot.efi file) that resides on a disk, because of the common sense requirement given above. (This is why you can still get to the Startup Manager, even if no disks are accessible.)
IOW, this part of EFI is in the firmware of Intel Macs. If this is still not clear, refer to the Intel link -- this has nothing to do with "Unix internals" (which refers to an OS) but only with EFI, which is a method of
loading an OS. Apple uses Intel’s reference implementation (the
Intel Platform Innovation Framework, also just called "the framework"), so everything that applies to it applies to Intel Macs.
Moreover, for Mac OS X, the "kernel environment" is not just the kernel, but a combination of the kernel & all device drivers that are involved in the boot process. The boot.efi file does initiate this process, but you must understand that each OS can handle this differently, which is part of why you can't generalize from what one OS can do to what another OS can do.
IOW, the boot.efi file must specifically be written to support booting the desired OS, taking into account what is provided in the kernel itself & what may be abstracted into other essential parts of the OS. There are various ways to do this. For instance, the kernel might handle loading device drivers, or the boot.efi file might instead. Whatever the method, it is another common sense requirement that all device drivers that are involved in the boot process actually are loaded before the OS can use them & finish booting.
For Mac OS X, this requires that more than the kernel is loaded because in Mac OS X, device drivers are abstracted in the I/O Kit, not in the kernel. (This is why your earlier statement that the kernel manages the I/O devices is too simplistic.) If you study the Dev Center link I provided, you will see that Apple actually provides three different ways to load the OS X kernel environment (including both the kernel & the necessary drivers), & that only after all that loads does the boot loader start the kernel initialization procedure. The kernel will then initialize the I/O Kit, which in turn links the loaded drivers into the kernel. Only after all this occurs can the kernel find the root BSD directory & use its contents to complete booting into OS X.
I understand that this is probably more than you are interested in considering, but you really do have to consider it all to understand what is involved in booting a "fully 64 bit OS" & why you can't achieve it simply by editing a table entry in the boot.efi file to remove the "artificial" restriction Apple made to prevent you from using it. Sure, you can probably hack the file to force the 64-bit kernel to load, but that is only a small part of the boot process, at least if you want a functioning version of OS X to load, initialize, & run.
Where I was mistaken before, is that I didn't think that SL should come with the 64 bit kext for standard VGA adapters. At least that's what the author of the article made me thinking. So even a Mac with Intel GMA 950 should be able to run the 64 bit kernel, obviously after hacking of the boot.efi. Maybe on 640x480 mode, or maybe not. For sure the graphics will be much slower.
It isn't at all obvious to me if the 64-bit kernel could do more than get a GMA 950 (or similar) graphics processor to display a grey screen (or anything else not provided by the EFI firmware) unless there is a 64-bit kernel compatible driver for it already provided on the boot drive. (Likewise for any other device involved in the boot process, which in OS X could cover a lot of hardware.) Snow Leopard definitely did not install a 64-bit extension for the GMA X3100 in my Macbook 4,1 & I would be surprised if it did for MacBooks with the GMA 950.
I'm not sure what you refer to when you mention "that guy" who made a hack that proves a MacBook like mine can boot into a functional version of OS X, especially if the hack just consists of editing an entry in the boot.efi file. The only hacks I've seen are for a limited number of recent Mac models, especially those with NVIDIA GeForce 9000 series graphics systems, & I'm not even certain any mention the suggested hack works with more than a few MBP models, or that the results support what most users would consider a fully functional OS.
If you have a link to whatever it is you refer to, I would appreciate your posting it here. I can't guarantee that I will try it, but I would at least like to see what the hack consists of.
I am not sure that's really needed either, because the original boot.efi is stored in
/usr/standalone/i386/boot.efi
Not to sound like a broken record but if you check the Apple Dev Center link you will see that this isn't that simple, either.
So I believe that if the loader pointed by "bless" is corrupted OSX should be smart enough to use the one above. Not sure, tho. In any case messing with this wouldn't fry a Mac, that's for sure!!!
I agree that the chances are very slim that anybody would fry their Mac just by editing the efi.boot file's table. However, this really isn't about what "bless" does (again, see the Dev Center link) or just editing the table. I do not want to be the first one to discover some obscure bug or critical dependency in (for instance) the 64-bit SMC kext that a hack reveals causes the OS to tell the SMC in my MacBook that everything is (literally!) cool when it is not. The chances of this are extremely slim but I am not interested in taking even that small risk because my MacBook is essential to my work.
Of course, if somebody else wants to be the guinea pig, that is another matter …. 😉