href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-6/3/2012, referencing rEFInd 0.4.2</p>
+12/21/2012, referencing rEFInd 0.6.1</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>The support for booting legacy (BIOS) OSes on UEFI-based PCs
+ currently has a number of limitations. Most importantly, it works
+ off of the list of boot devices stored in the computer's NVRAM. I'd
+ prefer to have it scan disks and partitions, as the Mac's legacy
+ boot support does. Also, the UEFI legacy boot code presents empty
+ optical drives and uses generic icons rather than OS-specific
+ icons.</li>
+
<li>Currently, rEFInd can detect whether it's compiled for <i>x</i>86
or <i>x</i>86-64 systems and displays this information in its
"About" screen (<tt>AboutrEFInd()</tt> in <tt>main.c</tt>). I'd
from the partition data is harder than extracting the volume's
label or counting up the filesystem numbers.</li>
+ <li>Currently, if a filesystem's label comes up empty, rEFInd
+ substitutes the size, so you get displays like <tt>boot
+ EFI\foo\bar.efi from 90 GiB volume</tt>. I'd like to add more
+ checks to substitute the GPT <i>partition</i> label if the
+ <i>filesystem</i> label comes up empty, or add a filesystem type
+ identifier to the size.</li>
+
<li>The default_selection option in refind.conf could be improved by
supporting a list of default options, so that if the first item
isn't found, rEFInd will try to boot the second one in the list,
and/or initial RAM disks relative to the rEFInd directory (or the
boot loader's directory, in the case of initrds).</li>
+ <li>Various options (<tt>dont_scan_dirs</tt>, <tt>also_scan_dirs</tt>,
+ <tt>scan_driver_dirs</tt>, etc.) refer to directories or files,
+ either on the ESP or on all partitions. A way to identify specific
+ partitions for these options would be useful in some
+ situations.</li>
+
</ul></li> <!-- Improvements -->
<li><b>Known bugs that need squashing:</b>
<ul>
- <li>I'd like to find a way to get rEFInd to launch BIOS boot loaders on
- UEFI-based systems. This option currently works only on
- Macs—or at least, I've not gotten it to work on any of my
- UEFI-based PCs. (I've done some experiments to try to get this to
- work, but so far without success. If you'd like to help on this, <a
- href="mailto:rodsmith@rodsbooks.com">e-mail me</a> for my
- thoughts.)</li>
+ <li>When in Secure Boot mode, rEFInd can launch just one driver that's
+ signed with a shim key or MOK. The second and later drivers
+ generate "access denied" errors. <!-- I think this is because of
+ the fast-and-loose sample code I borrowed from shim, which re-uses
+ rEFInd's own image handle (the <tt>image_handle</tt> variable in
+ <tt>start_image()</tt>) for launching shim/MOK-signed binaries. The
+ result is that when the second driver is loaded, it can't register
+ itself with the firmware because the firmware believes it's already
+ been registered. The solution is likely to involve creating a child
+ image handle rather than re-using rEFInd's own image handle, but
+ this is likely to be tedious to do—see
+ <tt>/usr/local/UDK2010/MyWorkSpace/MdeModulePkg/Core/Dxe/Image/Image.c</tt>
+ for the reference UEFI implementation. --> </li>
+
+ <li>When setting a resolution higher than about 800x600 (or maybe even
+ 640x480) in text mode, the text displayed by rEFInd, and on some
+ systems shells and other programs launched from rEFInd, is
+ restricted to an 80x24-character area in the top-left corner of the
+ screen.</li>
<li>The <a href="http://www.rodsbooks.com/gb-hybrid-efi/">Gigabyte
Hybrid EFI</a> has a bug that causes the allegedly case-insensitive
shell's pathname but not the device identifier.</li>
<li>The code is in need of review to search for memory leaks and
- similar problems.</p>
+ similar problems.</li>
</ul></li> <!-- Known bugs -->
forum thread</a> for more information.</li>
<li>I'd like to find a way to enable users to enter customizations for
- boot options and then save them to the <tt>refind.conf</tt>
- file.</li>
+ boot options and then save them to the <tt>refind.conf</tt> file.
+ One possible way to implement this would be to have manual boot
+ stanzas override auto-detected boot loader definitions for the same
+ boot loader file.</li>
+
+ <li>I have thoughts about creating an EFI configuration tool and
+ information utility—something to tell you about your hard
+ disks, enable you to manage MOKs, adjust boot loader priority in
+ the NVRAM, and so on. This would be useful in system maintenance
+ and in recovering from boot problems.</li>
+
+ <li>An installation tool for the EFI environment would be useful.
+ A simple EFI shell script might work, but because this function
+ requires access to the <tt>bcfg</tt> command, this would work
+ only from a version 2 shell or if <tt>bcfg</tt> were implemented
+ as a standalone program. Another alternative would be a program
+ written in C.</li>
<li>It should be possible to override specific auto-detected boot
loader settings—say, to disable one specific boot loader or
boot. Perhaps this could be done via a separate tool that could be
launched much like the shell or <tt>gptsync</tt>.</li>
- <li>I'd like to give the user the ability to set custom options on a
- single-boot basis, similar to what's possible in GRUB.</li>
-
<li>A way to set the color of the font would be useful for theming
purposes.</li>
</ul></li> <!-- New features -->
- <li><b>Improvements to the EFI drivers:</b>
+<li><b>Improvements to the EFI drivers:</b>
<ul>
- <li>The drivers I've built fail to load on a 32-bit Mac Mini; I get an
- "incompatible version" error message at an EFI shell, or an error
- code of 80000019 when rEFInd tries to load them. (These two
- messages are equivalent.) I suspect the problem is related to the
- EFI version 1.<i>x</i> used on the Mac, as opposed to UEFI
- 2.<i>x</i> used on PCs. I'm looking into the problem. In the
- meantime, if you have this problem, I recommend tracking down
- equivalent drivers from other sources. (See the <a
- href="drivers.html">drivers page</a> for some pointers.) I'd
- appreciate <a href="mailto:rodsmith@rodsbooks.com">hearing from
- you</a> if you have problems along these lines. Please tell me what
- type of computer you're using, and especially the firmware version
- data (from rEFInd's "about" screen). This may help me narrow down
- the cause.</li>
-
- <li>Drivers for additional filesystems are required. Given the recent
- shift to ext4fs, that should be the priority; however, other Linux
- filesystems, UDF, and perhaps others would all be welcome
+ <li>Drivers for additional filesystems are desirable. Given the talk of
+ shifting to Btrfs, that should be the priority; however, other
+ Linux filesystems, UDF, and perhaps others would all be welcome
additions. Also along these lines, adding drivers for Linux LVM and
RAID setups would be useful, too.</li>
href="http://www.rodsbooks.com/bios2uefi/">DUET</a>). Nonetheless,
I'd like to track down the cause and fix it.</li>
- <li>The driver installation procedure could be improved, perhaps by
- adding support for drivers to the <tt>install.sh</tt> script.</li>
-
<li>The HFS+ driver returns a volume label of "HFS+ volume", no matter
what the volume's real label is.</li>
+ <li>This may not be possible, or it may require a new driver, but a way
+ to have the drivers access files (like a Linux loopback mount) is
+ desirable.</li>
+
</ul></li> <!-- Drivers -->
</ul>