Jump to content

-Archive- Macefix86 2006 -Archive-


bofors
 Share

443 posts in this topic

Recommended Posts

EFI Learning, Documentation and Toolkits: Find, post and discuss EFI related resources

 

This thread is for general reference information and advanced technical issues with the EFI toolkits available from the likes of Intel and the Tiancore project. MacEFIx86 toolkits and specific application goals should be discussed their respective threads.

 

 

:D Intel EFI online tutorial (highly recommended):

Using the EFI Shell: http://or1cedar.cps.intel.com/softwarecoll...sp?courseID=172

 

Intel EFI training videos (free registration required):

Introduction to EFI OS Loaders: http://or1cedar.cps.intel.com/softwarecoll...sp?courseID=169

Introduction to Programming in EFI: http://or1cedar.cps.intel.com/softwarecoll...sp?courseID=170

Introduction to the EFI Tookit: http://or1cedar.cps.intel.com/softwarecoll...sp?courseID=171

 

These seem to be the two most important EFI pages:

http://www.intel.com/technology/efi/

https://www.tianocore.org/

 

EFI application details:

Intel's EFI Presentations page: http://www.intel.com/technology/efi/efi.htm

 

Other EFI references:

Amit Singh's EFI overview (excellent): http://www.kernelthread.com/publications/firmware/

The Wikipedia EFI page: http://en.wikipedia.org/wiki/Extensible_Firmware_Interface

OSx86Project's EFI Wikipag: http://wiki.osx86project.org/wiki/index.php/EFI

OnMac.net's EFI Wikipage: http://wiki.onmac.net/index.php/Developers/EFI

 

 

EFI Toolkits

 

Intel EFI Application Toolkit: http://www.intel.com/technology/efi/toolkit_overview.htm

 

Intel EFI Sample Implementation: http://www.intel.com/technology/efi/main_sample.htm

 

TianoCore EFI Development Kit (EDK): https://edk.tianocore.org/

 

TianoCore EFI Shell: https://efi-shell.tianocore.org/

Link to comment
Share on other sites

macefix8622ux.jpg

 

Welcome to the MacEFIx86 Project!

 

This thread is for the discussion of the MacEFIx86 Project's motivation and goals

 

EFI is the Extensible Firmware Interface that Intel has designed to replace BIOS. EFI is also the firmware system that Apple is using on all x86 Macintoshes. For more information on EFI and links to references see our EFI Learning, Documentation and Toolkits thread: http://forum.osx86project.org/index.php?showtopic=17917

 

The continued use of BIOS for OSx86 while Apple builds on EFI will likely result in a difficult series of technical problems for the OSx86 community. Furthermore, we wish to be able to use graphics drivers like Apple's ATI x1600 which require EFI environment. We also ultimately want to be able to use Macintosh firmware feartures like BootCamp, BootSelector and Target Disk Mode on our machines. In short, we want to build more perfect Macintosh clones by using EFI just like Apple. For more information, on why we should be working on EFI and also opposing arguments see our Why People Should Work On EFI thread: http://forum.osx86project.org/index.php?showtopic=13493

 

The MacEFIx86 Project has been formed to bring people together who are interested in moving beyond the limitations of the BIOS environment when running OSx86. We view this as a long term project that will be near the core of OSx86 community development effort. We have established three goals:

 

Extracting Apple's EFI firmware: http://forum.osx86project.org/index.php?showtopic=18011

 

Booting EFI OS's on a BIOS Platform: http://forum.osx86project.org/index.php?showtopic=17932

 

EFI Motherboards, Flashing and Native Booting: http://forum.osx86project.org/index.php?showtopic=17930

 

 

:D

 

Join the MacEFIx86 Project, we can use everyone's help!

Link to comment
Share on other sites

Aye! Welcome from Rogabean as well.

 

Bofors is getting the forum in line while I prepare the first release of the environment from which we are working.

 

Please excuse our dust.

 

We need more people as well. I will be posting soon with a list of people I need at the moment for this project.

Link to comment
Share on other sites

Extracting Apple's EFI firmware: Omni got it and we want it

 

A sub-goal of this project is find a technique to abstract the EFI firmware from Intel Macintoshes in the form of .efi modules. Omni was able to get a copy of radeon.efi, so we know this is possible. Alternatively, Intel Macintosh EFI firmware is freely downloadable from Apple itself and it certainly is possible to unarchive it to the .efi modular form.

 

Some of Apple's EFI firmware: http://www.apple.com/downloads/macosx/appl...eupdate101.html

 

Wim's BIOS Page and forum has a lot of potentially useful information and knowledgeable people: http://www.wimsbios.com/

 

Use this thread to discuss the possibility of extracting and examining the Apple EFI Firmware.

Link to comment
Share on other sites

Specifically what we are in need of right now are the boot files being used to tell the system how to boot OS X. It is quite possible that Apple has reworked the EFI firmware to read HFS+ partitions, but that is unconfirmed.

 

We need to see how this puppy really works.

Link to comment
Share on other sites

My first request of anyone would be to sit at the EFI shell prompt on the Intel mac and issue a drivers command and give me a listing of the output.

 

it will be more then one page... so drivers -b will break it up. for now I don't need the memory addresses, just the driver name and image name.

Link to comment
Share on other sites

Thanks, that is another EFI resource from Amit Singh, "EFI Programming on Mac OS X".

 

It is also useful to note that he has compiled his own EFI toolkits for both PPC and x86 OS X which are linked on that page.

Link to comment
Share on other sites

I've managed to dump the output from the drivers command using the efi shell on my macbook pro 15", however, for some reason it truncates the output to an 80 column width, despite having run 'mode 180 47' before hand. output as follows, let me know if you need anything else. more than happy to experiment.

 

EDIT: Output attached to post as DriversDump.rtf

 

In order to get the -full- guid image names, here's the output from 'dh' for the device handles. these map to the start of the image names from the previous 'drivers' output:

 

EDIT: Output attached to post as HandlesDump.rtf

DriverDump.txt

HandlesDump.txt

Link to comment
Share on other sites

Hey Anomaly, thanks for posting your data. I put the dumps into attached text files so the thread is easier to read.

 

Is there anyway you could post some instructions on how to get into the EFI Shell on a Intel Mac?

 

We also trying to figure out how to save the loaded EFI drivers as .efi files, this is something you may be able to figure out with a little experimentation.

Link to comment
Share on other sites

its trivial to get to the EFI shell with reFit (http://refit.sf.net) I still can't get their EFIAppLoader.efi to write the current firmware out from there. I'm thinking its going to be easier to extract the bin files. I decided to work on something else for the weekend (convertmake) I'll come back to this in a week or so when i feel up to unpacking PE binaries.

 

Glad to help anyone else who wants to try tho :)

 

-manch

Link to comment
Share on other sites

I've managed to dump the output from the drivers command using the efi shell on my macbook pro 15", however, for some reason it truncates the output to an 80 column width, despite having run 'mode 180 47' before hand. output as follows, let me know if you need anything else. more than happy to experiment.

 

EDIT: Output attached to post as DriversDump.rtf

 

In order to get the -full- guid image names, here's the output from 'dh' for the device handles. these map to the start of the image names from the previous 'drivers' output:

 

EDIT: Output attached to post as HandlesDump.rtf

 

 

Here is a relate page at Intel: http://www.intel.com/technology/efi/help/m...ice_handles.htm

Link to comment
Share on other sites

The rEFIt Project is another resoure: http://refit.sourceforge.net/

 

rEFIt is a boot menu and maintenance toolkit for EFI-based machines like the Intel Macs. You can use it to boot multiple operating systems easily, including triple-boot setups with Boot Camp. It also provides an easy way to enter and explore the EFI pre-boot environment

 

Apparently, it also provides easy EFI Shell access on Intel Macs.

Link to comment
Share on other sites

Are we emulating EFI?

 

Yes, we are working on emulating EFI on BIOS boards.

 

or are we hacking the Mobo firmware to enable it.

 

Sort of, we are also interested in flashing Apple's EFI firmware on to Intel EFI boards.

Link to comment
Share on other sites

As manchmod said, I'm using rEFIt to run the efi shell (aswell as other things). I've been pretty busy at work lately, a deadline for our current project is getting close so I haven't had much free time to play around with efi. However I have some free time coming up soon and will gladly devote my time to trying to pull this stuff apart :)

 

I'll post anything I find here.

 

One thing in particular I would like to pull out of the firmware is the ATI 'vbios' driver that bootcamp uses so I can preload it for enabling 3d acceleration when booting using elilo instead of having to boot standard lilo through bootcamp and losing the framebuffer support

Link to comment
Share on other sites

Ok i did not know that this project existed. For the past few months i have been hacking my mobo firmware to try and enable the EFI chipp that is already onboard (All boards that use the Intel 945 chipset support EFI).

 

The only problem is that no mobo maker wants to enbale it :D

 

I think that it would be much more useful to work on enabling this EFI chip instead of trying to emulate it. I do not think the BIOS will be able to Emulate it properly, and i also think taht it would take much more time to emulate it as we would have to initiate the Emualtion before booting an OS.

 

I was also thinking (and hoping) that the mobo manufacturers would release an udae to support EFI (i dont know why this would happen, maybe a petition of sorts (but that is just stupid, no?))

Link to comment
Share on other sites

I think that the EFI specification has much larger room for low-level drivers. BIOS chips are purdy small.

 

Isnt the point of EFI to get away from 1985 technological limitations in Bios?

Link to comment
Share on other sites

Sorry i didnt read above, yes i know taht we want to flash apples EFI onto intel boards. This is a very good idea. but if we had to do so we would still haver to enable the EFI from the ground up. instead of having a CD environment.

Link to comment
Share on other sites

This is a very good idea. but if we had to do so we would still haver to enable the EFI from the ground up.

 

I think there is mass confusion on the issue of "enabling" EFI. In short, EFI is not "disabled" on Intel's boards, but rather the normal EFI firmware emulates BIOS.

Link to comment
Share on other sites

well than would it be possible to stop it emualting BIOS...?

 

Yes, that is one of the main goals for this project. We are interested in using Apple's flashing EFI firmware onto Intel EFI boards to do this. Intel also regular (not BIOS emulating) EFI firmware that will eventualy be released (perhaps when Vista supports EFI), so we could and probably will work with that too.

Link to comment
Share on other sites

As manchmod said, I'm using rEFIt to run the efi shell (aswell as other things). I've been pretty busy at work lately, a deadline for our current project is getting close so I haven't had much free time to play around with efi. However I have some free time coming up soon and will gladly devote my time to trying to pull this stuff apart :)

 

I'll post anything I find here.

 

Great, looking forward to your assistance.

Link to comment
Share on other sites

  • 2 weeks later...

hi guys. i just read this. i thought it was important so here it is:

 

"And just by coincidence," Brookwood remarked, "the fact that their system relies on EFI, and no commodity Intel hardware at the motherboard level supports EFI, means that you can't start their stuff on a commodity board." In other words, Apple might not need fancy code to determine for Mac OS X to determine whether an attempt is being made to launch it in a non-Macintosh system. It could simply try tripping a BIOS interrupt - what developers call an "INT 13h." If it works...then OS X could easily halt itself.

 

We had been wondering for quirte a while whether a certain implementation of Intel's long-awaited Trusted Platform Module, known as LaGrande Technology (LT), would be making its premiere in the new Macs. Such a system, with its well-buried cryptographic keys, could make it easier for Apple to protect its intellectual property - both its operating system and the media components a user may download from iTunes. But we know that the 945 chipset does not carry LT. If it is the 945 that's running the Macs, this means that TPM won't play a role in 32-bit iMac and MacBook Pro architecture, at least for the next six months or so. If Apple truly does have something unique to hide beneath the lid of its new systems, this apparently isn't it.

 

hope you guys are on the rigth path.

 

best luck

Link to comment
Share on other sites

That is from an article at TG Daily posted in January: http://www.tgdaily.com/2006/01/12/how_diff...tel-based_macs/

 

Not that this has much to do with EFI, but I had thought some form of LaGrande Technology was being used to secure OSx86. We know for sure that Apple is using encrypted binaries which were being decoded by the TPM chip, but perhaps the memory was not protected because LaGrande was fully operational and that is how Maxxuss was able to get the decrypted files needed.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...