From: srs5694 Date: Thu, 19 Apr 2012 22:30:19 +0000 (-0400) Subject: Version 0.2.7 release. X-Git-Url: https://code.delx.au/refind/commitdiff_plain/40d02977ac1bcda34f2e8851dd8eb8c01282dc5a Version 0.2.7 release. --- diff --git a/BUILDING.txt b/BUILDING.txt index f9fe9a2..1c48099 100644 --- a/BUILDING.txt +++ b/BUILDING.txt @@ -15,17 +15,24 @@ rEFIt package (http://packages.debian.org/sid/refit) that includes extensive patches to enable the program to compile under Linux using the GNU-EFI package (http://sourceforge.net/projects/gnu-efi/). Although GNU-EFI is less sophisticated than recent versions of TianoCore's toolkit, -GNU-EFI is my preferred environment because I prefer working in Linux and -because TianoCore's toolkit relies on obsolete versions of Microsoft's -Visual C++, and I had trouble tracking that down. For this reason, I used -Debian's patched version of rEFIt as a starting point in forking rEFInd. -The main down side to doing this is that a few rEFIt features got lost. -Most notable among these is the ability to load filesystem drivers. I've -also dropped ancillary programs, such as the ext2fs driver module and +GNU-EFI is my preferred environment because versions of TianoCore that can +build under Linux use a very different set of include files and support a +somewhat different set of system calls than are used by rEFIt/rEFInd. Thus, +converting to a new TianoCore toolkit would entail a lot of work. Using an +older version would require building under Windows and using old versions +of Microsoft's Visual C. I neither have this toolchain nor do I want to use +it. For this reason, I used Debian's patched version of rEFIt as a starting +point in forking rEFInd. + +I've dropped ancillary programs, such as the ext2fs driver module and gptsync program, from rEFInd. You can still use these tools with rEFInd, -but you'll need to install them separately; and in the case of filesystem -drivers, you'll need to configure your EFI to load them before you launch -rEFInd. +but you'll need to install them separately. + +The patched version of rEFIt that I used as a starting point disabled the +program's ability to load EFI drivers because of limitations in the GNU-EFI +library. A combination of improvements in recent versions of the library +and implementing a (now apparently abandoned) EFI function directly in +rEFInd has enabled me to add this support back to rEFInd 0.2.7 and later. Requirements @@ -42,7 +49,13 @@ To compile rEFInd, you'll need the following: * A standard set of Linux development tools, based on GCC. * The GNU-EFI package (http://sourceforge.net/projects/gnu-efi/). You - can usually install this from a package called "gnu-efi". + 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). 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 @@ -74,12 +87,21 @@ With your development system set up, you can compile rEFInd as follows: 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 tools installed, including GCC, make, and GNU-EFI. You may also need to -adjust the Makefile or Make.common file for your system. For instance, on -Fedora, you must change the following variables in Make.common as shown: - -GNUEFILIB = /usr/lib64 -EFILIB = /usr/lib64 -EFICRT0 = /usr/lib64/gnuefi +adjust the Makefile or Make.common file for your system. The most likely +thing you'll need to change is the path to the various GNU-EFI include +files and libraries. Since rEFInd 0.2.7, the default Make.common file +includes the following definitions: + +EFIINC = /usr/local/include/efi +GNUEFILIB = /usr/local/lib +EFILIB = /usr/local/lib +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 +"lib64". As noted earlier, though, as of 4/2012, most distributions provide +out-of-date GNU-EFI implementations that will not work with rEFInd 0.2.7 +and later. Installing rEFInd diff --git a/NEWS.txt b/NEWS.txt index 7c4dfab..459db91 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -1,4 +1,4 @@ -0.2.7 (?/??/2012): +0.2.7 (4/19/2012): ------------------ - After much trial and tribulation, I've overcome a GNU-EFI limitation and @@ -10,7 +10,12 @@ "scan_driver_dirs" entry to refind.conf to tell rEFInd where to look. (As always, you should specify the driver directory relative to the root of the filesystem.) Note that you can't launch drivers from another - filesystem; they must be on the same volume that holds rEFInd. + filesystem; they must be on the same volume that holds rEFInd. Those who + compile from source code should note that implementing this feature + necessitated using a more recent version of the GNU-EFI library. I'm + currently using version 3.0p, and version 3.0i does NOT work. I don't + know where the change occurred, but you may need to upgrade your GNU-EFI + installation. - Fixed bug that caused rEFInd to show up in its own menu sometimes. diff --git a/README.txt b/README.txt index 332c055..14e5822 100644 --- a/README.txt +++ b/README.txt @@ -44,4 +44,7 @@ rEFInd source code can be obtained from https://sourceforge.net/projects/refind/. Consult the BUILDING.txt file in the source code package for build instructions. Once you've built the source code, you should duplicate the directory tree described above by -copying the individual files and the icons directory to the ESP. +copying the individual files and the icons directory to the ESP. Note that +the binary file created by the build process will be called "refind.efi". +You can use that name or rename it to include your architecture code, as +you see fit. diff --git a/docs/refind/configfile.html b/docs/refind/configfile.html index ccbfb5b..8083021 100644 --- a/docs/refind/configfile.html +++ b/docs/refind/configfile.html @@ -175,7 +175,7 @@ timeout 20 scan_driver_dirs directory path(s) - Scans the specified directory or directories for EFI driver files. If rEFInd discovers .efi files in those directories, they're loaded and activated as drivers. + Scans the specified directory or directories for EFI driver files. If rEFInd discovers .efi files in those directories, they're loaded and activated as drivers. This option sets directories to scan in addition to the drivers subdirectory of the rEFInd installation directory, which is always scanned, if present. scanfor @@ -202,12 +202,12 @@ timeout 20 # Sample refind.conf file timeout 5 banner custom.bmp -scan_driver_dirs drivers,EFI/refind/drivers +scan_driver_dirs drivers,EFI/tools/drivers scanfor manual,external,optical default_selection elilo -

This example sets a timeout of 5 seconds; loads a custom graphic file called custom.bmp from the directory in which refind.efi resides; scans the drivers and EFI/refind/drivers directories for EFI drivers; uses manual boot loader configuration but also scans for external EFI boot loaders and EFI boot loaders on optical discs; and sets the default boot loader to the first loader found that includes the string elilo. Of course, since this file specifies use of manual boot loader configuration, it's not complete; you'll need to add at least one OS stanza to be able to boot from anything but an external disk or optical drive, as described shortly.

+

This example sets a timeout of 5 seconds; loads a custom graphic file called custom.bmp from the directory in which refind.efi resides; scans the drivers and EFI/tools/drivers directories for EFI drivers; uses manual boot loader configuration but also scans for external EFI boot loaders and EFI boot loaders on optical discs; and sets the default boot loader to the first loader found that includes the string elilo. Of course, since this file specifies use of manual boot loader configuration, it's not complete; you'll need to add at least one OS stanza to be able to boot from anything but an external disk or optical drive, as described shortly.

Creating OS Stanzas

@@ -412,7 +412,7 @@ menuentry Gentoo {

Go to the main rEFInd page

-

Learn about how to adjust rEFInd's appearance

+

Learn about how to use EFI drivers with rEFInd

Return to my main Web page.

diff --git a/docs/refind/index.html b/docs/refind/index.html index 59c8a86..5032ac0 100644 --- a/docs/refind/index.html +++ b/docs/refind/index.html @@ -117,6 +117,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

  • Configuring the Boot Manager—For advanced users, information on customizing a rEFInd installation
  • +
  • Using EFI Drivers—Why and how to have rEFInd launch EFI drivers
  • +
  • Theming rEFind—Information on third-party themes for rEFInd
  • Options for Booting Linux—Methods of booting Linux, particularly with the EFI stub loader (distribution maintainers should read this!)
  • diff --git a/docs/refind/linux.html b/docs/refind/linux.html index b31d20d..a2df431 100644 --- a/docs/refind/linux.html +++ b/docs/refind/linux.html @@ -14,7 +14,7 @@

    by Roderick W. Smith, rodsmith@rodsbooks.com

    -

    Originally written: 3/19/2012; last Web page update: 4/14/2012, referencing rEFInd 0.2.6

    +

    Originally written: 3/19/2012; last Web page update: 4/19/2012, referencing rEFInd 0.2.7

    I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

    @@ -184,6 +184,8 @@ total 17943 +

    Ordinarily, a kernel booted in this way must reside on the ESP, or at least on another FAT partition. On a Macintosh, though, you can use HFS+ to house your kernel files. In fact, that may be necessary; my Mac Mini hangs when I try to boot a Linux kernel via an EFI stub loader from the computer's ESP, but it works fine when booting from an HFS+ partition. If you use EFI drivers, though, you can place your kernel on any filesystem for which an EFI driver exists. This list is currently rather limited (ext2fs/ext3fs, ReiserFS, ISO-9660, and HFS+), but even just one or two options might help a lot if you've got an undersized ESP or if copying your kernel file to the ESP is a hassle you'd rather avoid.

    +

    On the whole, this method of configuration has a lot going for it. For distribution maintainers, if you place your Linux kernel files (with EFI stub support) on the ESP, with suitable filenames, matching initial RAM disk files, and a refind_linux.conf file, then any rEFInd 0.2.3 or later installation should detect your files, even if the user installs another distribution with another rEFInd that takes over from yours. (If the user, or this other rEFInd installation, disables auto-detection, this won't work.)

    diff --git a/docs/refind/revisions.html b/docs/refind/revisions.html index 9b39aad..788d8f6 100644 --- a/docs/refind/revisions.html +++ b/docs/refind/revisions.html @@ -14,7 +14,7 @@

    by Roderick W. Smith, rodsmith@rodsbooks.com

    -

    Last Web page update: 4/14/2012

    +

    Last Web page update: 4/19/2012

    I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

    @@ -93,6 +93,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com