+0.7.3 (8/7/2013):
+-----------------
+
+- Fixed bug that caused missing media-type badges on BIOS-mode boot
+ loaders on Macs.
+
+- Fixed bug that caused failure when launching BIOS-mode OSes on Macs.
+
0.7.2 (8/6/2013):
-----------------
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>\r
\r
<p>Originally written: 3/14/2012; last Web page update:\r
-8/6/2013, referencing rEFInd 0.7.2</p>\r
+8/7/2013, referencing rEFInd 0.7.3</p>\r
\r
\r
<p>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!</p>\r
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-8/6/2013, referencing rEFInd 0.7.2</p>
+8/7/2013, referencing rEFInd 0.7.3</p>
<p>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!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 4/19/2012; last Web page update:
-8/6/2013, referencing rEFInd 0.7.2</p>
+8/7/2013, referencing rEFInd 0.7.3</p>
<p>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!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-8/6/2013, referencing rEFInd 0.7.2</p>
+8/7/2013, referencing rEFInd 0.7.3</p>
<p>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!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-8/6/2013, referencing rEFInd 0.7.2</p>
+8/7/2013, referencing rEFInd 0.7.3</p>
<p>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!</p>
<ul>
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.7.2/refind-bin-0.7.2.zip/download">A
+ href="http://sourceforge.net/projects/refind/files/0.7.3/refind-bin-0.7.3.zip/download">A
binary zip file</a></b>—Download this if you want to install
rEFInd and/or its filesystem drivers on an <i>x</i>86 or <i>x</i>86-64
computer and have no need to test rEFInd first by booting it on an
href="installing.html">Installing rEFInd</a> page. Some users of Arch
Linux have reported problems booting some specific Arch Linux kernels
with rEFInd and some other tools. For them, a <a
- href="http://sourceforge.net/projects/refind/files/0.7.2/refind-bin-gnuefi-0.7.2.zip/download">variant
+ href="http://sourceforge.net/projects/refind/files/0.7.3/refind-bin-gnuefi-0.7.3.zip/download">variant
package</a> exists in which the <i>x</i>86-64 binary was compiled with
GNU-EFI rather than the usual TianoCore EDK2. This change helps some
users with this problem; but using GNU-EFI also means that this version
can't launch BIOS-mode OSes.</li>
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.7.2/refind-0.7.2-1.x86_64.rpm/download">A
+ href="http://sourceforge.net/projects/refind/files/0.7.3/refind-0.7.3-1.x86_64.rpm/download">A
binary RPM file</a></b>—If you use an RPM-based <i>x</i>86-64
Linux system such as Fedora or openSUSE, you can install the binary RPM
package rather than use the binary zip file. (I don't provide an
rEFInd</a> page) as part of the installation process. Distribution
maintainers can examine the <tt>refind.spec</tt> file in the source
package and tweak it to their needs. The <a
- href="http://sourceforge.net/projects/refind/files/0.7.2/refind-0.7.2-1.src.rpm/download">source
+ href="http://sourceforge.net/projects/refind/files/0.7.3/refind-0.7.3-1.src.rpm/download">source
RPM file</a> might or might not build on your system as-is; it relies
on assumptions about the locations of the GNU-EFI development
files.</li>
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.7.2/refind_0.7.2-1_amd64.deb/download">A
+ href="http://sourceforge.net/projects/refind/files/0.7.3/refind_0.7.3-1_amd64.deb/download">A
binary Debian package</a></b>—If you use an <i>x</i>86-64 version
of Debian, Ubuntu, Mint, or another Debian-based distribution, you can
install from this package, which was converted from the binary RPM
<p class="sidebar"><b>Note:</b> At the moment, neither the bootable CD-R image file nor the bootable USB flash drive image file supports booting with Secure Boot active.</p>
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.7.2/refind-cd-0.7.2.zip/download">A
+ href="http://sourceforge.net/projects/refind/files/0.7.3/refind-cd-0.7.3.zip/download">A
CD-R image file</a></b>—This download contains the same files as
the binary zip file, but you can burn it to a CD-R to test rEFInd
(and its filesystem drivers) without installing it first. (It boots on
computer.</p>
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.7.2/refind-flashdrive-0.7.2.zip/download">A
+ href="http://sourceforge.net/projects/refind/files/0.7.3/refind-flashdrive-0.7.3.zip/download">A
USB flash drive image file</a></b>—Although you can create
your own rEFInd USB flash drive, you may find it easier to download
this version and copy it to your USB drive with <tt>dd</tt> or some
other low-level disk copying utility.</li>
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.7.2/refind-src-0.7.2.zip/download">A
+ href="http://sourceforge.net/projects/refind/files/0.7.3/refind-src-0.7.3.zip/download">A
source code zip file</a></b>—This is useful if you want to compile
the software locally. Note that I use Linux with the <a
href="https://sourceforge.net/projects/tianocore/">TianoCore EFI
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-8/6/2013, referencing rEFInd 0.7.2</p>
+8/7/2013, referencing rEFInd 0.7.3</p>
<p>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!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-8/6/2013, referencing rEFInd 0.7.2</p>
+8/7/2013, referencing rEFInd 0.7.3</p>
<p>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!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/19/2012; last Web page update:
-8/6/2013, referencing rEFInd 0.7.2</p>
+8/7/2013, referencing rEFInd 0.7.3</p>
<p>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!</p>
<p class="subhead">by Roderick W. Smith, <a
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
-<p>Last Web page update: 7/8/2013</p>
+<p>Last Web page update: 8/7/2013</p>
<p>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!</p>
<ul>
+<li><b>0.7.3 (8/7/2013)</b>—This version fixes a bug that caused boot failures when launching BIOS-mode OSes on Macs. It also fixes a bug that caused such OSes' disk-type icons to disappear.</li>
+
<li><b>0.7.2 (8/6/2013)</b>—This version primarily fixes a number of minor bugs: A display glitch when the second row of icons is empty; improper scanning when a volume specification was used in <tt>also_scan_dirs</tt>; improper reading of volume badges from user-specific icons directory or from <tt>.VolumeBadge.icns</tt> files. Also, This version adds protection against loading invalid files as drivers, which can crash some EFIs, adds an icon for Funtoo Linux, and adds <tt>PreLoader.efi</tt> and <tt>shim-fedora.efi</tt> to the default <tt>dont_scan_files</tt> list.</li>
<li><b>0.7.1 (7/8/2013)</b>—The most important improvement to this version is a bug fix to the filesystem drivers. In version 0.7.0, drivers could hang the system (the Btrfs driver in particular generated problem reports, although the bug could theoretically affect any driver). Version 0.7.1 fixes this problem. I've also fixed a build problem with development versions of the TianoCore EDK2. In rEFInd proper, I've added a scan for <tt>EFI/Microsoft/Boot/bkpbootmgfw.efi</tt>, which is how recent versions of Ubuntu's Boot Repair utility rename the Windows boot loader. This change enables rEFInd to launch Windows even on systems that have been "repaired" by this overzealous tool. I've also fixed a bug that caused volume specifications in <tt>also_scan_dirs</tt> tokens to be ignored.</li>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 11/13/2012; last Web page update:
-8/6/2013, referencing rEFInd 0.7.2</p>
+8/7/2013, referencing rEFInd 0.7.3</p>
<p>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!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 4/19/2012; last Web page update:
-8/6/2013, referencing rEFInd 0.7.2</p>
+8/7/2013, referencing rEFInd 0.7.3</p>
<p>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!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-8/6/2013, referencing rEFInd 0.7.2</p>
+8/7/2013, referencing rEFInd 0.7.3</p>
<p>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!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-8/6/2013, referencing rEFInd 0.7.2</p>
+8/7/2013, referencing rEFInd 0.7.3</p>
<p>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!</p>
BOOLEAN ShimLoaded(void);
BOOLEAN ShimValidate (VOID *data, UINT32 size);
BOOLEAN secure_mode (VOID);
-VOID disable_secure_boot(VOID);
\ No newline at end of file
Summary: EFI boot manager software
Name: refind
-Version: 0.7.2
+Version: 0.7.3
Release: 1%{?dist}
Summary: EFI boot manager software
License: GPLv3
# wiping out the just-updated files.
%changelog
-* Tue Aug 6 2013 R Smith <rodsmith@rodsbooks.com> - 0.7.2
-- Created spec file for 0.7.2 release
+* Wed Aug 7 2013 R Smith <rodsmith@rodsbooks.com> - 0.7.3
+- Created spec file for 0.7.3 release
LOADER_ENTRY * AddLoaderEntry(IN CHAR16 *LoaderPath, IN CHAR16 *LoaderTitle, IN REFIT_VOLUME *Volume);
VOID SetLoaderDefaults(LOADER_ENTRY *Entry, CHAR16 *LoaderPath, IN REFIT_VOLUME *Volume);
LOADER_ENTRY * AddPreparedLoaderEntry(LOADER_ENTRY *Entry);
-VOID disable_secure_boot(VOID);
#endif
} /* VOID ScanVolumeBootcode() */
// Set default volume badge icon based on /.VolumeBadge.{icns|png} file or disk kind
-static VOID SetVolumeBadgeIcon(IN OUT REFIT_VOLUME *Volume)
+VOID SetVolumeBadgeIcon(REFIT_VOLUME *Volume)
{
if (Volume->VolBadgeImage == NULL) {
Volume->VolBadgeImage = egLoadIconAnyType(Volume->RootDir, L"", L".VolumeBadge", 128);
// open the root directory of the volume
Volume->RootDir = LibOpenRoot(Volume->DeviceHandle);
+
+ // Set volume icon based on .VolumeBadge icon or disk kind
+ SetVolumeBadgeIcon(Volume);
+
if (Volume->RootDir == NULL) {
Volume->IsReadable = FALSE;
return;
Volume->VolName = GetVolumeName(Volume);
- // Set volume icon based on .VolumeBadge icon or disk kind
- SetVolumeBadgeIcon(Volume);
-
// get custom volume icons if present
if (!Volume->VolIconImage)
Volume->VolIconImage = egLoadIconAnyType(Volume->RootDir, L"", L".VolumeIcon", 128);
#endif
//
-// variables
+// constants
#define MACOSX_LOADER_PATH L"System\\Library\\CoreServices\\boot.efi"
#if defined (EFIX64)
#define SUBSCREEN_HINT2 L"Insert or F2 to edit options; Esc to return to main menu"
#define SUBSCREEN_HINT2_NO_EDITOR L"Esc to return to main menu"
+// Load types
+#define TYPE_EFI 1
+#define TYPE_LEGACY 2
+
static REFIT_MENU_ENTRY MenuEntryAbout = { L"About rEFInd", TAG_ABOUT, 1, 0, 'A', NULL, NULL, NULL };
static REFIT_MENU_ENTRY MenuEntryReset = { L"Reboot Computer", TAG_REBOOT, 1, 0, 'R', NULL, NULL, NULL };
static REFIT_MENU_ENTRY MenuEntryShutdown = { L"Shut Down Computer", TAG_SHUTDOWN, 1, 0, 'U', NULL, NULL, NULL };
if (AboutMenu.EntryCount == 0) {
AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
- AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.7.2");
+ AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.7.3");
AddMenuInfoLine(&AboutMenu, L"");
AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012-2013 Roderick W. Smith");
// Launch an EFI binary.
static EFI_STATUS StartEFIImageList(IN EFI_DEVICE_PATH **DevicePaths,
- IN CHAR16 *LoadOptions, IN CHAR16 *LoadOptionsPrefix,
+ IN CHAR16 *LoadOptions, IN UINTN LoaderType,
IN CHAR16 *ImageTitle, IN CHAR8 OSType,
OUT UINTN *ErrorInStep,
IN BOOLEAN Verbose)
// set load options
if (LoadOptions != NULL) {
- if (LoadOptionsPrefix != NULL) {
+ if (LoaderType == TYPE_EFI) {
MergeStrings(&FullLoadOptions, LoadOptions, L' ');
if (OSType == 'M') {
MergeStrings(&FullLoadOptions, L" ", 0);
FindVolumeAndFilename(DevicePaths[DevicePathIndex], &Volume, &Filename);
// Some EFIs crash if attempting to load driver for invalid architecture, so
// protect for this condition....
- if (IsValidLoader(Volume->RootDir, Filename)) {
+ if ((LoaderType == TYPE_LEGACY) || IsValidLoader(Volume->RootDir, Filename)) {
// NOTE: Below commented-out line could be more efficient if file were read ahead of
// time and passed as a pre-loaded image to LoadImage(), but it doesn't work on my
// 32-bit Mac Mini or my 64-bit Intel box when launching a Linux kernel; the
} /* static EFI_STATUS StartEFIImageList() */
static EFI_STATUS StartEFIImage(IN EFI_DEVICE_PATH *DevicePath,
- IN CHAR16 *LoadOptions, IN CHAR16 *LoadOptionsPrefix,
+ IN CHAR16 *LoadOptions, IN UINTN LoaderType,
IN CHAR16 *ImageTitle, IN CHAR8 OSType,
OUT UINTN *ErrorInStep,
IN BOOLEAN Verbose)
DevicePaths[0] = DevicePath;
DevicePaths[1] = NULL;
- return StartEFIImageList(DevicePaths, LoadOptions, LoadOptionsPrefix, ImageTitle, OSType, ErrorInStep, Verbose);
+ return StartEFIImageList(DevicePaths, LoadOptions, LoaderType, ImageTitle, OSType, ErrorInStep, Verbose);
} /* static EFI_STATUS StartEFIImage() */
// From gummiboot: Retrieve a raw EFI variable.
UINTN ErrorInStep = 0;
BeginExternalScreen(Entry->UseGraphicsMode, L"Booting OS");
- StartEFIImage(Entry->DevicePath, Entry->LoadOptions, Basename(Entry->LoaderPath),
+ StartEFIImage(Entry->DevicePath, Entry->LoadOptions, TYPE_EFI,
Basename(Entry->LoaderPath), Entry->OSType, &ErrorInStep, !Entry->UseGraphicsMode);
FinishExternalScreen();
}
ExtractLegacyLoaderPaths(DiscoveredPathList, MAX_DISCOVERED_PATHS, LegacyLoaderList);
- Status = StartEFIImageList(DiscoveredPathList, Entry->LoadOptions, NULL, L"legacy loader", 0, &ErrorInStep, TRUE);
+ Status = StartEFIImageList(DiscoveredPathList, Entry->LoadOptions, TYPE_LEGACY, L"legacy loader", 0, &ErrorInStep, TRUE);
if (Status == EFI_NOT_FOUND) {
if (ErrorInStep == 1) {
Print(L"\nPlease make sure that you have the latest firmware update installed.\n");
static VOID StartTool(IN LOADER_ENTRY *Entry)
{
BeginExternalScreen(Entry->UseGraphicsMode, Entry->me.Title + 6); // assumes "Start <title>" as assigned below
- StartEFIImage(Entry->DevicePath, Entry->LoadOptions, Basename(Entry->LoaderPath),
+ StartEFIImage(Entry->DevicePath, Entry->LoadOptions, TYPE_EFI,
Basename(Entry->LoaderPath), Entry->OSType, NULL, TRUE);
FinishExternalScreen();
} /* static VOID StartTool() */
SPrint(FileName, 255, L"%s\\%s", Path, DirEntry->FileName);
NumFound++;
Status = StartEFIImage(FileDevicePath(SelfLoadedImage->DeviceHandle, FileName),
- L"", DirEntry->FileName, DirEntry->FileName, 0, NULL, FALSE);
+ L"", TYPE_EFI, DirEntry->FileName, 0, NULL, FALSE);
}
Status = DirIterClose(&DirIter);
if (Status != EFI_NOT_FOUND) {