]> code.delx.au - refind/commitdiff
ChromeOS icon.
authorsrs5694 <srs5694@users.sourceforge.net>
Thu, 2 May 2013 19:36:02 +0000 (15:36 -0400)
committersrs5694 <srs5694@users.sourceforge.net>
Thu, 2 May 2013 19:36:02 +0000 (15:36 -0400)
14 files changed:
BUILDING.txt
CREDITS.txt
NEWS.txt
docs/refind/todo.html
gptsync/gptsync.c
libeg/image.c
libeg/screen.c
refind.inf
refind.spec
refind/config.c
refind/config.h
refind/global.h
refind/lib.c
refind/main.c

index 3899967917ede147e7aaf2fb124206b5c2d3819e..a553148ef9e19d8bb8db17ac29b644685247e5d0 100644 (file)
@@ -38,7 +38,7 @@ To compile rEFInd, you'll need the following:
     a locally-compiled GNU-EFI package, but older and more recent versions
     assume GNU-EFI installation in typical locations for
     distribution-provided packages. The legacy BIOS boot support on
-    UEFI-based PCs doesn't work when GNU-EFI is compiled under GNU-EFI, so
+    UEFI-based PCs doesn't work when rEFInd is compiled under GNU-EFI, so
     as of rEFInd 0.4.6, GNU-EFI is no longer the primary build environment,
     although it's easier to set up on a Linux system.
 
@@ -98,7 +98,7 @@ is a bit unclear about others. Here's how I installed the toolkit:
 
 2) Type "mkdir /usr/local/UDK2010". You can use another directory, but the
    Makefile for rEFInd's EFI drivers assumes this location. You'll need to
-   edit the EDK2BASE line in the Make.common file if you install somewhere
+   edit the EDK2BASE line in the Make.tiano file if you install somewhere
    else.
 
 3) Type "cd /usr/local/UDK2010".
@@ -177,13 +177,15 @@ With your development system set up, you can compile rEFInd as follows:
 4) Type "make gnuefi" to build with GNU-EFI, or either "make" alone or
    "make tiano" to build with TianoCore EDK2. With any luck, rEFInd will
    compile without error, leaving the "refind_ia32.efi" or "refind_x64.efi"
-   file, depending on your platform, in the "refind" subdirectory. If you
-   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 toolkit. 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.
+   file, depending on your platform, in the "refind" subdirectory. This same
+   step builds the "gptsync_x64.efi" or "gptsync_ia32.efi" program file, in
+   the "gptsync" subdirectory. If you 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 toolkit.
+   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
index 0ed0b4761fef58e8f653eb4caaff3a344ffe42f4..72cadfb5cd69f53b12f0009ca12a3fed04cd1b86 100644 (file)
@@ -89,5 +89,10 @@ Icons and graphics:
 * The ALT Linux icon was donated by the ALT Linux developers (see
   http://www.altlinux.com).
 
+* The ChromeOS icon (os_chrome.icns) is a cropped version of the icon from
+  Wikipedia
+  (http://en.wikipedia.org/wiki/File:Google_Chrome_icon_and_wordmark_%282011%29.svg),
+  which in turn is Google's original work.
+
 * Erik Kemperman provided the rEFInd icon, which is a combination of
   the common refresh/reload icon and the search/find icon.
index 46ce92fc514c43e4ef96d8755875663457d49fc1..68e771c6236590f17af7a19736460d37d4a3683c 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,6 +1,12 @@
 0.6.10 (?/??/2013):
 -------------------
 
+- Added icon for ChromeOS (os_chrome.icns in the icons subdirectory).
+  ChromeOS reportedly boots using the fallback filename, but if a user
+  wants to install rEFInd on a ChromeBook, renaming the original EFI/BOOT
+  directory to EFI/chrome and then installing rEFInd in the fallback
+  filename will bring up this new icon for ChromeOS.
+
 - Added new option to reboot the computer into the firmware's user
   interface. This option is active by default, or can be set via the
   "firmware" option to the "showtools" token in refind.conf. It works
index 89835be31a8ac5742da844acd87b3b901331153f..ef4520b8b21c54ba8157ec94f064f06c416aafd6 100644 (file)
@@ -343,6 +343,9 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
        loader settings&mdash;say, to disable one specific boot loader or
        change its icon.</li>
 
+    <li>The ability to rotate the display for users who rotate their
+       monitors would be helpful.</li>
+
     <li>A GUI configuration tool would be nice, but it's low on my personal
        priority list. If you'd like to contribute, I prefer something
        written in a cross-platform GUI toolkit, so that a single code base
index 5d442c54119b68bd569f0f257e220c0f4f5887f5..6cc156269a7b942d68029dc2c444b7ff0a1c890f 100644 (file)
@@ -268,7 +268,7 @@ static VOID generate_hybrid_mbr(VOID) {
     i = 0;
     do {
         if ((gpt_parts[i].start_lba > 0) && (gpt_parts[i].end_lba > 0) &&
-            (gpt_parts[i].end_lba <= MAX_MBR_LBA) &&
+            (gpt_parts[i].end_lba <= MAX_MBR_LBA) &&                    /* Within MBR limits */
             (gpt_parts[i].gpt_parttype->kind == GPT_KIND_BASIC_DATA) && /* MS Basic Data GPT type code */
             (gpt_parts[i].mbr_type != 0x83)) {                          /* Not containing Linux filesystem */
            copy_gpt_to_new_mbr(i, new_mbr_part_count);
@@ -282,7 +282,8 @@ static VOID generate_hybrid_mbr(VOID) {
 
     // Second, do Linux partitions. Note that we start from the END of the
     // partition list, so as to maximize the space covered by the 0xEE
-    // partition if there are several Linux partitions.
+    // partition if there are several Linux partitions before other hybridized
+    // partitions.
     i = gpt_part_count - 1; // Note that gpt_part_count can't be 0; filtered by check_gpt()
     while (i >= 0 && new_mbr_part_count <= 3) {
         if ((gpt_parts[i].start_lba > 0) && (gpt_parts[i].end_lba > 0) &&
@@ -377,7 +378,7 @@ static VOID generate_hybrid_mbr(VOID) {
                     count_active++;
                 }
         }
-    }
+    } // for
 } // VOID generate_hybrid_mbr()
 
 // Examine partitions and decide whether a rewrite is in order.
index 8b6078d5074c19444b78648431969041ffe6bc08..9f2262838cead9c9e3482e48395e04a29c2a8390 100644 (file)
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+/*
+ * Modifications copyright (c) 2012-2013 Roderick W. Smith
+ * 
+ * Modifications distributed under the terms of the GNU General Public
+ * License (GPL) version 3 (GPLv3), a copy of which must be distributed
+ * with this source code or binaries made from it.
+ * 
+ */
 
 #include "libegint.h"
 #include "../refind/global.h"
index 4b9c580c52e84984316f60dd80dde03417173af9..a10ee6b117a097c601951aee6482775e70d2ada2 100644 (file)
@@ -34,7 +34,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 /*
- * Modifications copyright (c) 2012 Roderick W. Smith
+ * Modifications copyright (c) 2012-2013 Roderick W. Smith
  *
  * Modifications distributed under the terms of the GNU General Public
  * License (GPL) version 3 (GPLv3), a copy of which must be distributed
index 8619ec415716073ebe43a249cab9ac1557a38387..d555ce66c8b212912539293c24556a1655539a79 100644 (file)
@@ -48,6 +48,7 @@
   libeg/load_bmp.c\r
   libeg/load_icns.c\r
   libeg/lodepng.c\r
+  libeg/lodepng_extra.c\r
   libeg/screen.c\r
   libeg/text.c\r
 \r
index 7f96a6019f316bdf376f9e51632af8395dc705e1..4fc1869ce1c213861bfcbb148c315d71e9d9ea93 100644 (file)
@@ -1,6 +1,6 @@
 Summary: EFI boot manager software
 Name: refind
-Version: 0.6.9
+Version: 0.6.9.2
 Release: 1%{?dist}
 Summary: EFI boot manager software
 License: GPLv3
index 36f0464ae4ea06aebb8f343cbc78851cdb59b02f..30b3c1ff94ac8806854bf0cab68781bdff7cc089 100644 (file)
@@ -35,7 +35,7 @@
  */
 
 /*
- * Modifications copyright (c) 2012 Roderick W. Smith
+ * Modifications copyright (c) 2012-2013 Roderick W. Smith
  * 
  * Modifications distributed under the terms of the GNU General Public
  * License (GPL) version 3 (GPLv3), a copy of which must be distributed
index af2b7309a7e7ecfc27bd80afd44be7ec0d8929b5..fd26572ef4dedd0c52f79692625ef4506c91b4bb 100644 (file)
@@ -35,7 +35,7 @@
  */
 
 /*
- * Modifications copyright (c) 2012 Roderick W. Smith
+ * Modifications copyright (c) 2012-2013 Roderick W. Smith
  * 
  * Modifications distributed under the terms of the GNU General Public
  * License (GPL) version 3 (GPLv3), a copy of which must be distributed
index a4d8355481449203bf81cbf34951b54c8099106c..cfc50531ff140ea8e5abd4a3ac3940bfb7208eaa 100644 (file)
@@ -34,7 +34,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 /*
- * Modifications copyright (c) 2012 Roderick W. Smith
+ * Modifications copyright (c) 2012-2013 Roderick W. Smith
  *
  * Modifications distributed under the terms of the GNU General Public
  * License (GPL) version 3 (GPLv3), a copy of which must be distributed
index 601038c741f63100dfd847df5d06cda4ba839b28..d0262c1ff279b351f26ef9d92ccf54594b6f8e02 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 /*
- * Modifications copyright (c) 2012 Roderick W. Smith
+ * Modifications copyright (c) 2012-2013 Roderick W. Smith
  * 
  * Modifications distributed under the terms of the GNU General Public
  * License (GPL) version 3 (GPLv3), a copy of which must be distributed
  * with this source code or binaries made from it.
- * 
+ *
  */
 
 #include "global.h"
index 8679fd639f072b632081a071fa36ab920bd55f09..3c4f958fa2e81838ef5aa0cb2c8bb3cfa50f0643 100644 (file)
@@ -34,7 +34,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 /*
- * Modifications copyright (c) 2012 Roderick W. Smith
+ * Modifications copyright (c) 2012-2013 Roderick W. Smith
  *
  * Modifications distributed under the terms of the GNU General Public
  * License (GPL) version 3 (GPLv3), a copy of which must be distributed
@@ -326,13 +326,15 @@ static EFI_STATUS EfivarGetRaw(const EFI_GUID *vendor, CHAR16 *name, CHAR8 **buf
    CHAR8 *buf;
    UINTN l;
    EFI_STATUS err;
+   EFI_GUID vendor2;
 
+   CopyMem(&vendor2, vendor, sizeof(EFI_GUID));
    l = sizeof(CHAR16 *) * EFI_MAXIMUM_VARIABLE_SIZE;
    buf = AllocatePool(l);
    if (!buf)
       return EFI_OUT_OF_RESOURCES;
 
-   err = uefi_call_wrapper(RT->GetVariable, 5, name, vendor, NULL, &l, buf);
+   err = refit_call5_wrapper(RT->GetVariable, name, &vendor2, NULL, &l, buf);
    if (EFI_ERROR(err) == EFI_SUCCESS) {
       *buffer = buf;
       if (size)
@@ -345,12 +347,14 @@ static EFI_STATUS EfivarGetRaw(const EFI_GUID *vendor, CHAR16 *name, CHAR8 **buf
 // From gummiboot: Set an EFI variable
 static EFI_STATUS EfivarSetRaw(const EFI_GUID *vendor, CHAR16 *name, CHAR8 *buf, UINTN size, BOOLEAN persistent) {
    UINT32 flags;
+   EFI_GUID vendor2;
 
+   CopyMem(&vendor2, vendor, sizeof(EFI_GUID));
    flags = EFI_VARIABLE_BOOTSERVICE_ACCESS|EFI_VARIABLE_RUNTIME_ACCESS;
    if (persistent)
       flags |= EFI_VARIABLE_NON_VOLATILE;
 
-   return uefi_call_wrapper(RT->SetVariable, 5, name, vendor, flags, size, buf);
+   return refit_call5_wrapper(RT->SetVariable, name, &vendor2, flags, size, buf);
 } // EFI_STATUS EfivarSetRaw()
 
 // From gummiboot: Reboot the computer into its built-in user interface
@@ -371,7 +375,7 @@ static EFI_STATUS RebootIntoFirmware(VOID) {
    if (err != EFI_SUCCESS)
       return err;
 
-   uefi_call_wrapper(RT->ResetSystem, 4, EfiResetCold, EFI_SUCCESS, 0, NULL);
+   refit_call4_wrapper(RT->ResetSystem, EfiResetCold, EFI_SUCCESS, 0, NULL);
    Print(L"Error calling ResetSystem: %r", err);
    PauseForKey();
 //   uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
@@ -1197,7 +1201,7 @@ static VOID ScanEfiFiles(REFIT_VOLUME *Volume) {
       } // if should scan Mac directory
 
       // check for Microsoft boot loader/menu
-      StrCpy(FileName, L"EFI\\Microsoft\\Boot\\Bootmgfw.efi");
+      StrCpy(FileName, L"EFI\\Microsoft\\Boot\\bootmgfw.efi");
       if (FileExists(Volume->RootDir, FileName) && ShouldScan(Volume, L"EFI\\Microsoft\\Boot") &&
           !IsIn(L"bootmgfw.efi", GlobalConfig.DontScanFiles)) {
          AddLoaderEntry(FileName, L"Microsoft EFI boot", Volume);