Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
macbuild [2009/08/03 11:36] rwcr |
macbuild [2010/06/15 11:17] (current) jared.jennings |
||
---|---|---|---|
Line 11: | Line 11: | ||
Open a new terminal window and type | Open a new terminal window and type | ||
$ sudo port install i386-elf-gcc | $ sudo port install i386-elf-gcc | ||
- | Find something else to do for a while; it will take at least a half hour to install, depending on your machine. | + | Find something else to do for a while; it will take over an hour hour to install, depending on your machine. |
With the toolchain installed, you should be able to run e.g. ''i386-elf-gcc -v'' and get version information. | With the toolchain installed, you should be able to run e.g. ''i386-elf-gcc -v'' and get version information. | ||
+ | |||
+ | If you have a recent Mac with 64-bit EFI, and intend on making an EFI binary to run on it, you will need a 64-bit cross compiler. I don't know of any automated way of getting one, so you'll have to build it yourself following the instructions at http://wiki.osdev.org/GCC_Cross-Compiler_for_x86_64 --- good luck! | ||
===== Building gPXE ===== | ===== Building gPXE ===== | ||
Line 26: | Line 28: | ||
$ make bin-i386-efi/sky2.efi CROSS_COMPILE=i386-elf- BINUTILS_DIR=/usr/local BFD_DIR=/usr/local/i386-apple-darwin9.6.0/i386-elf | $ make bin-i386-efi/sky2.efi CROSS_COMPILE=i386-elf- BINUTILS_DIR=/usr/local BFD_DIR=/usr/local/i386-apple-darwin9.6.0/i386-elf | ||
- | It's necessary to be specific with the driver to exclude ''undionly'', since that requires 16-bit code support that's not present in EFI targets. The ''sky2'' driver is used by some Macs, and ''forcedeth'' by others; you can also make ''bin-i386-efi/sky2--forcedeth.efi'' for a gPXE that will support both. | + | It's necessary to be specific with the driver to exclude ''undionly'', since that requires 16-bit code support that's not present in EFI targets. The ''sky2'' driver is used by some Macs, and ''forcedeth'' by others; you can also make ''bin-i386-efi/sky2-''''-forcedeth.efi'' for a gPXE that will support both. |
If you have a recent Mac, it may use a //64-bit// EFI environment. You can compile gPXE for that too, but you need a 64-bit cross-compiler (''x86_64-elf-gcc''). If you've got one, | If you have a recent Mac, it may use a //64-bit// EFI environment. You can compile gPXE for that too, but you need a 64-bit cross-compiler (''x86_64-elf-gcc''). If you've got one, | ||
$ make bin-x86_64-efi/sky2.efi CROSS_COMPILE=x86_64-elf- BINUTILS_DIR=/usr/local BFD_DIR=/usr/local/i386-apple-darwin9.6.0/x86_64-elf | $ make bin-x86_64-efi/sky2.efi CROSS_COMPILE=x86_64-elf- BINUTILS_DIR=/usr/local BFD_DIR=/usr/local/i386-apple-darwin9.6.0/x86_64-elf | ||
+ | |||
+ | Some recent Macs have Intel Ethernet chipsets. Try the e1000e driver instead of sky2. | ||
===== Running gPXE under PC BIOS emulation on a Mac ===== | ===== Running gPXE under PC BIOS emulation on a Mac ===== |