I'm afraid I haven't been very active here of late, but for the past couple of weeks I have been busy working on rEFInd. The git repository holds my latest changes, and I'm making a pre-release binary available here:
This version fixes several bugs and add some new features, which are likely to be of particular interest to Mac users:
A memory management bug is fixed. I believe this bug to be the source of multiple problem reports of rEFInd hanging with its banner on the screen but before it can display any loader icons. Such problem reports have been common with Mac users (although my own Macs have been unaffected).
I've incorporated some (but by no means all) of the changes to video initialization from RefindPlus. This might help Mac users with third-party video cards; however, preliminary testing by the developer of RefindPlus suggests you shouldn't get your hopes up. The changes may prove to be a useful base for future development, though.
Related to the above, I've added a new option to the resolution token in refind.conf: Set resolution max on a computer with GOP video (all UEFI-based PCs and most modern Macs) and rEFInd will attempt to use the highest resolution that the EFI believes is available. This is usually the optimal resolution, but I have seen systems in which higher resolutions than the monitor can handle are advertised, in which case the display is likely to be blank.
The big one is a new ability to reboot the computer into an EFI-defined boot loader (as shown by efibootmgr in Linux or EasyUEFI in Windows, for example). This feature can be enabled in either of two ways:
A new scanfor option: firmware. This option causes rEFInd to display all the available EFI boot options. (Anything with shell in the name is a partial exception; these items appear as a second-row EFI shell entry if showtools includes shell, whether or not scanfor includes firmware.) Many computers have half a dozen or more such options, so you may be overwhelmed by them and have to hide them in one way or another. (Hitting Del or - should do the trick.)
A new manual boot stanza option: firmware_bootnum. Create a manual boot stanza and pass the EFI boot number, in hexadecimal, to this option to create a single entry with whatever name and icon you specify. (You must also have the manual option set in scanfor, of course.) You'll need to use efibootmgr or something similar to identify the boot number. To boot macOS, a value of 80 should almost always work.
This last option is likely to interest Mac users with HiDPI displays, since booting macOS via rEFInd on such computers results in a lower display resolution. My own iMac, for instance, produces just 3360x1890 when booted via rEFInd 0.12.0 or earlier; but using the new feature, it shows its full 4096x2304 resolution. My Linux installation is unaffected (it produces 3840x2160), but I haven't yet tried to boot a Linux EFI-stub kernel in this way. I doubt if this would help with Windows, but I have no Windows installation on my iMac with which to test. This feature may also help with booting macOS 11 ("Big Sur"), but I have yet to upgrade either of my Macs, so I can't be certain of that.
There are other potential uses for this feature, too, such as performing network boots and launching built-in EFI shells. One major drawback is that boot time is increased compared to having rEFInd launch EFI programs directly. My iMac boots in about 13 seconds (from rEFInd to macOS) when booted directly, but takes 26 seconds when booted in this way.
More information is available in the NEWS.txt file in the .zip archive, but I have yet to update the HTML documentation. The refind.conf-sample file also provides an example of the use of the firmware_bootnum token.
Both the video initialization changes and the new reboot-to-an-EFI-loader feature are pretty major changes/improvements, so if you can test them, I'd appreciate hearing how they work for you.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm afraid I haven't been very active here of late, but for the past couple of weeks I have been busy working on rEFInd. The git repository holds my latest changes, and I'm making a pre-release binary available here:
http://www.rodsbooks.com/refind-bin-0.12.0.8.zip
This version fixes several bugs and add some new features, which are likely to be of particular interest to Mac users:
resolution
token inrefind.conf
: Setresolution max
on a computer with GOP video (all UEFI-based PCs and most modern Macs) and rEFInd will attempt to use the highest resolution that the EFI believes is available. This is usually the optimal resolution, but I have seen systems in which higher resolutions than the monitor can handle are advertised, in which case the display is likely to be blank.efibootmgr
in Linux or EasyUEFI in Windows, for example). This feature can be enabled in either of two ways:scanfor
option:firmware
. This option causes rEFInd to display all the available EFI boot options. (Anything withshell
in the name is a partial exception; these items appear as a second-row EFI shell entry ifshowtools
includesshell
, whether or notscanfor
includesfirmware
.) Many computers have half a dozen or more such options, so you may be overwhelmed by them and have to hide them in one way or another. (Hitting Del or-
should do the trick.)firmware_bootnum
. Create a manual boot stanza and pass the EFI boot number, in hexadecimal, to this option to create a single entry with whatever name and icon you specify. (You must also have themanual
option set inscanfor
, of course.) You'll need to useefibootmgr
or something similar to identify the boot number. To boot macOS, a value of80
should almost always work.This last option is likely to interest Mac users with HiDPI displays, since booting macOS via rEFInd on such computers results in a lower display resolution. My own iMac, for instance, produces just 3360x1890 when booted via rEFInd 0.12.0 or earlier; but using the new feature, it shows its full 4096x2304 resolution. My Linux installation is unaffected (it produces 3840x2160), but I haven't yet tried to boot a Linux EFI-stub kernel in this way. I doubt if this would help with Windows, but I have no Windows installation on my iMac with which to test. This feature may also help with booting macOS 11 ("Big Sur"), but I have yet to upgrade either of my Macs, so I can't be certain of that.
There are other potential uses for this feature, too, such as performing network boots and launching built-in EFI shells. One major drawback is that boot time is increased compared to having rEFInd launch EFI programs directly. My iMac boots in about 13 seconds (from rEFInd to macOS) when booted directly, but takes 26 seconds when booted in this way.
More information is available in the
NEWS.txt
file in the.zip
archive, but I have yet to update the HTML documentation. Therefind.conf-sample
file also provides an example of the use of thefirmware_bootnum
token.Both the video initialization changes and the new reboot-to-an-EFI-loader feature are pretty major changes/improvements, so if you can test them, I'd appreciate hearing how they work for you.