]> code.delx.au - refind/blobdiff - BUILDING.txt
Ext4fs support.
[refind] / BUILDING.txt
index f41a6665942910673e6526dada3f59d745cebfac..e5501c2c6d91f2e1957d052fb1b575e0ad74ab84 100644 (file)
@@ -159,7 +159,8 @@ installed the toolkit:
    - ACTIVE_PLATFORM = MdePkg/MdePkg.dsc
    - TARGET = RELEASE (DEBUG might work, but I've not tested it).
    - TARGET_ARCH = X64 (on x86-64; leave this as IA32 on x86). If you plan
-     to build both architectures, you can set this to "IA32 X64".
+     to build both architectures on an x86-64 system, you can set this to
+     "IA32 X64".
    - TOOL_CHAIN_TAG = GCC46 (or other value depending on your GCC version;
      type "gcc -v" to learn your GCC version number). Note that GCC 4.7
      doesn't have its own entry, so use GCC46 for GCC 4.7.
@@ -212,13 +213,17 @@ With your development system set up, you can compile rEFInd as follows:
    want to build IA32 binaries on an x86-64 (X64) system, type "ARCH=ia32
    make". This works only if you're using the TianoCore build kit, and only
    if you set TARGET_ARCH to either "IA32" or "IA32 X64" in target.txt when
-   you set up the TianoCore.
+   you set up the TianoCore. If you plan to build both architectures, be
+   sure to copy the .efi file for the first build out of the refind
+   subdirectory before building the second architecture.
 
 5) The default build process does NOT build the filesystem drivers. If you
    want to build them, you must type "make fs" in the main rEFInd source
-   directory. The result is filesystem drivers in the filesystems
-   subdirectory, and also copies placed in the drivers subdirectory. You
-   must install the TianoCore EDK2 to build the drivers.
+   directory. (Typing "ARCH=ia32 make fs" builds IA32 filesystem drivers on
+   an x86-64 system, provided TianoCore is properly configured, as
+   described earlier.) The result is filesystem drivers in the filesystems
+   subdirectory, and also copies placed in the drivers_{arch} subdirectory.
+   You must install the TianoCore EDK2 to build the drivers.
 
 If rEFInd doesn't compile correctly, you'll need to track down the source
 of the problem. Double-check that you've got all the necessary development
@@ -263,8 +268,8 @@ Installing rEFInd
 With rEFInd compiled, you can install it. The easiest way to do this is
 with the install.sh script, which works on both Linux and Mac OS X.
 Alternatively, you can type "make install" to install using this script.
-Note that this installation copies files to the ESP and uses "efibootmgr"
-(on Linux) or "bless" (on OS X) to add rEFInd to the firmware's boot loader
+Note that this script copies files to the ESP and uses "efibootmgr" (on
+Linux) or "bless" (on OS X) to add rEFInd to the firmware's boot loader
 list. The docs/refind/installing.html file provides more details on this
 script and its use.
 
@@ -303,21 +308,25 @@ Compiling the EFI Filesystem Drivers
 
 To build all the drivers, you can type "make fs" from the main directory,
 which builds the drivers and places copies in both the filesystems and
-drivers subdirectories. If you want to build just one driver, you can
-change into the "filesystems" directory and type "make {fsname}", where
+drivers_{arch} subdirectories. If you want to build just one driver, you
+can change into the "filesystems" directory and type "make {fsname}", where
 {fsname} is a filesystem name -- "ext2", "reiserfs", "iso9660", or "hfs".
 
 To install drivers, you can type "make install" in the "filesystems"
 directory. This copies all the drivers to the
 "/boot/efi/EFI/refind/drivers" directory. Alternatively, you can copy the
-files you want manually.
+files you want manually. As of version 0.4.8, the install.sh script
+includes an optional "--drivers" option that will install the drivers along
+with the main rEFInd program, but to the drivers_{arch} subdirectory of the
+main rEFInd installation directory.
 
 *CAUTION:* Install drivers for your system's architecture *ONLY*.
 Installing drivers for the wrong architecture causes some systems to hang
-at boot time.
+at boot time. This risk can be minimized by including the architecture code
+in the drivers subdirectory name (drivers_x64 or drivers_ia32).
 
 The drivers all rely on filesystem wrapper code created by rEFIt's author,
-Christoph Phisterer. Most of the drivers seem to have passed through
+Christoph Pfisterer. Most of the drivers seem to have passed through
 Oracle's VirtualBox project (https://www.virtualbox.org) and the Clover
 boot loader project (https://sourceforge.net/projects/cloverefiboot/),
 which I used as the source for this build.