]> code.delx.au - refind/blobdiff - BUILDING.txt
Small menu improvements; bug fixes & improvements to install.sh
[refind] / BUILDING.txt
index 3dcad8d2c6836527adeb9abd88ee8331d81ba69a..7c14bf69e4503dcc53d485c6e9ea8a86d76d0ce3 100644 (file)
@@ -48,14 +48,14 @@ To compile rEFInd, you'll need the following:
 
 * A standard set of Linux development tools, based on GCC.
 
 
 * A standard set of Linux development tools, based on GCC.
 
-* The GNU-EFI package (http://sourceforge.net/projects/gnu-efi/). You
-  can install this from a package called "gnu-efi"; however, rEFInd relies
-  on features that were added somewhere between GNU-EFI 3.0i and 3.0p to
-  provide driver-loading capabilities. As of 4/2012, most Linux
-  distributions seem to deliver rather elderly versions of GNU-EFI, so you
-  may need to download the latest source code, compile it, and install it
-  locally. Since rEFInd version 0.2.7, the Makefiles assume this (see
-  below).
+* The GNU-EFI package (http://sourceforge.net/projects/gnu-efi/). You can
+  install this from a package called "gnu-efi"; however, rEFInd relies on
+  features that were added in (I think) 3.0l to provide driver-loading
+  capabilities. The versions I've used and that work are 3.0p and 3.0q. As
+  of 5/2012, most Linux distributions seem to deliver rather elderly
+  versions of GNU-EFI, so you may need to download the latest source code,
+  compile it, and install it locally. Since rEFInd version 0.2.7, the
+  Makefiles assume this (see below).
 
 It's possible that you could use a non-Linux platform to compile rEFInd. To
 the best of my knowledge, the rEFInd code doesn't rely on anything
 
 It's possible that you could use a non-Linux platform to compile rEFInd. To
 the best of my knowledge, the rEFInd code doesn't rely on anything
@@ -99,12 +99,12 @@ EFICRT0         = /usr/local/lib
 
 If you've installed GNU-EFI from a distribution's package, you may need to
 remove "local" from those paths, and perhaps change references to "lib" to
 
 If you've installed GNU-EFI from a distribution's package, you may need to
 remove "local" from those paths, and perhaps change references to "lib" to
-"lib64". As noted earlier, though, as of 4/2012, most distributions provide
+"lib64". As noted earlier, though, as of 5/2012, most distributions provide
 out-of-date GNU-EFI implementations that will not work with rEFInd 0.2.7
 and later.
 
 When I tried to compile rEFInd under Ubuntu 12.04 (i386), even with a
 out-of-date GNU-EFI implementations that will not work with rEFInd 0.2.7
 and later.
 
 When I tried to compile rEFInd under Ubuntu 12.04 (i386), even with a
-locally-compiled GNU-EFI 3.0p, I got errors like this:
+locally-compiled GNU-EFI 3.0p or 3.0q, I got errors like this:
 
 main.o: In function `StartLegacy.isra.0':
 main.c:(.text+0x8b1): undefined reference to `__stack_chk_fail_local'
 
 main.o: In function `StartLegacy.isra.0':
 main.c:(.text+0x8b1): undefined reference to `__stack_chk_fail_local'
@@ -112,8 +112,8 @@ lib.o: In function `ScanVolumeBootcode.part.3':
 lib.c:(.text+0xf2f): undefined reference to `__stack_chk_fail_local'
 lib.o: In function `ScanExtendedPartition.isra.4':
 
 lib.c:(.text+0xf2f): undefined reference to `__stack_chk_fail_local'
 lib.o: In function `ScanExtendedPartition.isra.4':
 
-The solution was to recompile GNU-EFI 3.0p with the -fno-stack-protector
-GCC flag. In GNU-EFI, this can be added to the CFLAGS line in Make.common.
+The solution was to recompile GNU-EFI with the -fno-stack-protector GCC
+flag. In GNU-EFI, this can be added to the CFLAGS line in Make.defaults.
 
 Installing rEFInd
 =================
 
 Installing rEFInd
 =================
@@ -129,3 +129,11 @@ want to copy files on the ESP as follows:
 You'll then need to activate rEFInd in your EFI. This can be done with
 tools such as "efibootmgr" under Linux or "bless" under OS X. See the
 docs/installing.html file for details.
 You'll then need to activate rEFInd in your EFI. This can be done with
 tools such as "efibootmgr" under Linux or "bless" under OS X. See the
 docs/installing.html file for details.
+
+You may have noticed an install.sh script in the source package. This
+script is intended for distribution with my own binary packages of rEFInd,
+and it copies files from the "refind" subdirectory (relative to the
+script's location) -- namely refind_x64.efi or refind_ia32.efi,
+refind.conf-sample, and an icons subdirectory. You can rearrange your files
+to provide this layout, but it's no more work to copy the files as just
+described.