Giter Site home page Giter Site logo

dakanji / refindplus Goto Github PK

View Code? Open in Web Editor NEW
278.0 12.0 63.0 15.68 MB

A Boot Manager for Mac and PC

License: Other

C++ 3.26% C 95.05% Makefile 1.14% Python 0.49% Shell 0.05% Roff 0.01% Perl 0.01%
refindplus-boot-manager refind multiboot bootloader refind-bootloader

refindplus's People

Contributors

dakanji avatar dimitarnestorov avatar startergo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

refindplus's Issues

Error during compiling

/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/Library/RpApfsLib/RpApfsLib.c:54:9: error: use of undeclared identifier 'Handle'
    if (Handle != NULL) {
        ^
/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/Library/RpApfsLib/RpApfsLib.c:56:13: error: use of undeclared identifier 'Handle'
            Handle,
            ^
/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/Library/RpApfsLib/RpApfsLib.c:93:23: warning: implicit declaration of function 'OcApfsConnectHandle' is invalid in C99 [-Wimplicit-function-declaration]
            Status2 = OcApfsConnectHandle (
                      ^
/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/Library/RpApfsLib/RpApfsLib.c:95:17: error: use of undeclared identifier 'VerifyPolicy'
                VerifyPolicy
                ^
1 warning and 3 errors generated.
make: *** [/Users/g5/Documents/RefindPlus/edk2/Build/RefindPlus/RELEASE_XCODE5/X64/RefindPlusPkg/Library/RpApfsLib/RpApfsLib/OUTPUT/RpApfsLib.obj] Error 1


build.py...
 : error 7000: Failed to execute command
	make tbuild [/Users/g5/Documents/RefindPlus/edk2/Build/RefindPlus/RELEASE_XCODE5/X64/RefindPlusPkg/Library/RpApfsLib/RpApfsLib]

OC loads in text mode despite "Restore Graphics Mode ...Success"

Describe the bug
OC loads in text mode instead of graphics mode as usual.
To Reproduce
Steps to reproduce the behaviour:
Boot RP-->OC

Expected behaviour
Graphical boot picker to load

Environment:

  • RefindPlus Version : 0.13.1.AC
  • Hardware
    • Computer : MacPro 5,1
    • GPU Model : RX 580
    • GPU Port : DP
    • GPU Flash : NO
  • Affected OS : OC

Log and Config Files
21f08z5028.log.zip

Use RefindPlus in MultiBoot Environment

Hey,
so I've installed 3 Operating Systems on my Intel Nuc: Windows, Ubuntu and MacOS X. At first I had Ubuntu and Windows with Grub, but decided to switch to Refind, when using the MacOS. So yesterday I installed MaOS on an APFS Partiton (that's why the switch away from Grub2). Then Via Ubuntu I installed the Piano Core version of Refind and Booted rebooted. Everything works fine, except I can't Boot MacOS (Windows and Ubuntu worked find). I installed Refind Plus and hoped it can fix it.

I thought I can use this out of the Box an can select on Bootup MacOS, but thats not the case.

Now the interesting part: When I add the OpenCore boot loader, Refind Plus found it and I can "boot chain" to the next boot loader. From there I could start Windows and MacOS (not Ubuntu) or "restart" Refind Plus again. When I do this, now I've the Option to Boot MacOS directly from Refind. Is there maybe a driver missing which OpenCore loads?

I just want to boot into Refind Plus and from there directly start MacOS/Windows/Ubuntu.

Appears to be broken

I upgraded to v0.12.0.AP, left configuration exactly the same except renamed the force_trim to trim_force per the release notes. The debug log shows it starting, and then no more logging after that...and I get nothing but a black screen.

Environment:

  • RefindPlus Version : v0.12.0.AP
  • Hardware
    • Computer 5,1
    • GPU Model RX580
    • GPU Port DVI
    • GPU Flash NO
  • Affected OS Catalina

config+logs.zip

Manual Stanza Handling Issues

Describe the Bug:
RELEASE Version does NOT load any entry if any .efi drivers are present in the drivers_x64 folder.
Same as described in Aditional Context section on the already closed issue #49

To Reproduce:

  1. Boot up RefindPlus
  2. Screen shows as blank / black / grey (depending on themes applied or not), no icons are shown

Expected Behaviour:
RefindPlus would load without throwing any error message.

Environment:

  • RefindPlus Version : [v0.13.2.AE] - RELEASE version
  • Hardware
    • Computer : [Microsoft Surface Pro 4]
    • Motherboard : [Microsoft]
  • Affected OS : [ALL - None are shown]

Additional Context:
Workaround provided in #49 (comment) does not work anymore.

Out-of-bounds access (OVERRUN) in filesystems/fsw_ext4.c >> fsw_ext4_readlink

Memory Corruption from Out-of-Bounds Access

Checking dno->g.size > 4096ULL (implies that dno->g.size may be up to 4096 on the false branch) in:

if (dno->g.size > FSW_PATH_MAX)

Assigning: s.len = (int)dno->g.size (The value of s.len may now be up to 4096) in:

s.size = s.len = (int)dno->g.size;

Assigning: s.data = dno->raw->i_block.
s.data now points to byte 0 of dno->raw->i_block (which consists of 60 bytes) in:

s.data = dno->raw->i_block;

Overrunning buffer pointed to by s.data of 60 bytes by passing it to a function which accesses it at byte offset 4095 using argument s.len (which evaluates to 4096) in:

status = fsw_strdup_coerce(link_target, vol->g.host_string_type, &s);

Linux partitions are not displayed

Describe the Bug:
RP only displays 4 out of the 9 bootable systems on its menu. See details below.

To Reproduce:
Install RefindPlus
Modify config to support APFS
Boot machine

Expected Behaviour:
All 9 bootable volumes should display.

Environment:
RefindPlus Version : v0.13.2.AG
Hardware
Computer : Mac mini 2014, Macmini7,1 with internal an SSD and hard drive (originally fusion drive)
Motherboard : Dual-Core Intel Core i7
GPU Model : Intel Iris
Affected OS : All macOS, Opensuse Linux, Elementary OS Linux

Log Files
I ran the debug version of RefindPlus and attached the RP log (level 3):
21r13t2138.log

Screenshots
Here are the 4 macOS systems RP displays:
IMG_1978

Here are the 9 systems Refind displays (requires 2 screen files since many Preboots take space):
IMG_1976
IMG_1977

Additional Context:

See the two attached diskutil lists for locations and volume names of the 5 macOS systems:
diskutil list.txt
diskutil apfs list.txt

This system has 9 bootable systems that display in refind:
Linux BTRFS partition Vsuse153bum
Linux BTRFS partition Vsuse153bu
Linux EXT4 partition Velementary
Linux EXT4 partition Open1
APFS volume FX 10.15.7
APFS volume Monterey Beta
APFS volume FS 10.14.6
APFS volume FS 10.15.7
APFS volume FS 11.5.

Additional information for the 4 Linux partitions:

  1. Elementary OS on disk1s6 (EXT4)
  2. Elementary OS on disk1s8 (EXT4)
  3. Opensuse on disk1s7 (BTRFS)
  4. Opensuse on disk1s9 (BTRFS)

The missing systems are all 4 linux and APFS volume FX 10.15.7. Note they are on the HD not SSD.

I noticed the log shows “Found MBR Partition Table” which is looks wrong since it’s GPT.

Here is the config:
config.conf.txt

RefindPlus Hangs when Scanning Linux Disk

Describe the Bug:

Linux Disk or EXT4 Driver let RP v0.13.2.AA freeze
Linux Disk (a dedicated Sata drive) let RP freeze.

Environment:

  • RefindPlus Version : v0.13.2.AA
  • Hardware
    • Computer : MacPro 3,1
    • Motherboard : Apple OEM
    • GPU Model : Nividia Quadro K2000 UGA (Mac EFI Bootscreen)
    • GPU Port : [DVI-I]
    • GPU Flash : Yes-Self
  • Affected OS : EFI

Log and Config Files

21h06q0856.log
Archive.zip
Archive.zip

Screenshots

added a log in Log Level 4, config Files and a Screenshot

Additional Context:

MyBootMgr 068 Package
Tested the ext4 driver from 067 Package, same freeze.
It works when the Ext4 driver is removed.

Blank screen after blessing new snapshot in MacOS 11.1

Description
Not sure if it's a bug or an error on my end. RefindPlus shows a blank screen after blessing a new snapshot of the volume. Before modifying this, RefindPlus works as intended. The blank screen is shown after the apple logo.

To Reproduce
Steps to reproduce the behavior:

  1. Boot to recovery
  2. Create a custom snapshot through bless --folder /Volumes/osvolume/System/Library/CoreServices --bootefi --create-snapshot
  3. Reboot

Environment

  • RefindPlus Version: [v0.12.0.M]
  • OS: [MacOS 11.1]
  • Hardware: Macbook Pro 15,1 (with T2 chip)

Additional context
Tried to re-bless refind_x64.efi but the problem still persists.
refind.conf
log when RefindPlus is working
log after blessing a new snapshot

Cannot Set RefindPlus to Always Select the Last Booted Loader

Discussed in #66

Originally posted by volcbs July 31, 2021
I honesty don't know where to put this thread, but can you tell me what's wrong with my config?

I'm trying to make RefindPlus picking my previous selection for the next boot, but it keeps booting the first choice. I already enable use_nvram and set default_selection to +, I also tried with just set default_selection to + and it still doesn't work.

config.conf.zip

Initial Answer by dakanji July 31, 2021
RefindPlus keeps selecting one option because you have set the default_selection token. By setting this, you are telling it to ALWAYS select a certain item

If you don't want it to do this, and want it to select the previously booted option each time instead, you should deactivate the token by deleting or commenting it out as explained in the notes that come with the sample config file:

#
# Boots the previously booted loader when commented out
#
#default_selection 1
#default_selection Microsoft
#default_selection "+,bzImage,vmlinuz"
#default_selection Maintenance 23:30 2:00
#default_selection "Maintenance,Mac OS" 1:00 2:30

does rEFInd / RefindPlus allow to run Older OSX in Newer Macs?

everybody wants the opposite,
Run a New OSX in Older Macs,

but owners of legal software & hardware, that invested $$$ back in the day,
want to run the old Software & Hardware "like scanners" in a Faster Mac
want to buy a New Mac HW,
but don´t want to pay for the software again,
some manufacturers discontinued the Old SW & HW,
there is No way, No New SW for the Old HW, can´t be purchased,
other developers require to buy a completely New Hardware to use the New Software in a New Mac,
New SW does Not work with older HW, feature was removed.
etc...
many reasons.
usually most desired OSX to run are OSX Mavericks 10.9.5 and OSX SnowLeopard 10.6.8
in Newer Macs.
OSX Mavericks 10.9.5 latest update was in year 2016
but OSX Mavericks does Not work in Mac Mini 2014.
https://en.wikipedia.org/wiki/Mac_Mini#Supported_operating_systems

OSX SnowLeopard has Rosetta v1 that allows to run 32-Bit PowerPC G4 G5 software,
mostly abandonware but available in websites like MacGarden and MacRepository.

i´ve tested Clover, and rEFInd standard, None works,
OSX Snow has the Apple logo but stops loading from USB2.0 drive,
OSX Mavericks gives a forbiden icon.
= it´s impossible to run Older Mac OSX on a Genuine Mac.
but is possible to run OSX in a Non Genuine Mac.
that´s insane.
someone has lost the mind.

some people install Parallels or VMWave Fusion Player 12.x
but...
is Not the same as True Native,
from the test i´ve done Parallels feels better than VMWware FusionPlayer 12.x
but 1 time only payment license is limited to 4-Threads and the HDD/SSD is also limited to 60 MB/s.
it´s a paid Downgrade. from 800MB/s M.2 drive to 60MB/s, makes No sense.
No logic to buy a faster machine a Parallels license, to use it slower than an older machine.

Fusion Player 12.x it´s free, and Not limited, but...
both have same problem:
there is No FireWire Pass Through Virtual Driver.
some older apps require FireWire, but New Mac does Not have FireWire,
the only Option is the Thunderbol to FireWire adapter, but as far as i know does Not have drivers for older OSX.
maybe looking really hard in the ASIX website, or chip manufacturer.
similar happens with Apple USB Ethernet adapter, does have drivers for older OSX and works ok when installed.

installing rEFInd in Kubuntu was very easy because it has a PPA

$ sudo apt-add-repository ppa:rodsmith/refind
$ sudo apt-get update
$ sudo apt-get install refind

installing Clover in Kubuntu to a USB was also easy because it has a CD image,
using Disks from gnome-disk-utility
and restoring the D Image to the USB drive, works ok

but RefindPlus seems more complicated...
to rename & replace the .efi and .config files seems the better option.
but requires booting from a different OS that allows to see & edit the partition.

Build error

Documents/RefindPlus/edk2/RefindPlusPkg/MainLoader/main.c:942:61: warning: empty character constant [-Winvalid-pp-token]
                        ourLoaderEntry->me.ShortcutLetter = '';
                                                            ^
/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/MainLoader/main.c:942:61: error: expected expression
/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/MainLoader/main.c:1087:61: warning: empty character constant [-Winvalid-pp-token]
                        ourLoaderEntry->me.ShortcutLetter = '';
                                                            ^
/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/MainLoader/main.c:1087:61: error: expected expression
2 warnings and 2 errors generated.
make: *** [/Users/g5/Documents/RefindPlus/edk2/Build/RefindPlus/RELEASE_XCODE5/X64/RefindPlusPkg/RefindPlus/OUTPUT/MainLoader/main.obj] Error 1


build.py...
 : error 7000: Failed to execute command
	make tbuild [/Users/g5/Documents/RefindPlus/edk2/Build/RefindPlus/RELEASE_XCODE5/X64/RefindPlusPkg/RefindPlus]


build.py...
 : error F002: Failed to build module
	/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/RefindPlus.inf [X64, XCODE5, RELEASE]

- Failed -
Build end time: 22:39:32, Mar.30 2021
Build total time: 00:00:24


Runtime Error ... Exiting

Out-of-bounds access (OVERRUN) in libeg/load_icns.c >> egDecodeICNS

Memory Corruption from Out-of-Bounds Access

Checking IconSize == 128ULL implies that IconSize is 128 on the true branch in:

if (IconSize == 128) {

Assigning: PixelCount = IconSize * IconSize.
The value of PixelCount is now 16384 in:

PixelCount = IconSize * IconSize;

Overrunning buffer pointed to by (UINT8 *)&NewImage->PixelData->a of 1 bytes by passing it to a function which accesses it at byte offset 65532 using argument PixelCount (which evaluates to 16384) in:

egSetPlane(PLPTR(NewImage, a), WantAlpha ? 255 : 0, PixelCount);

OpenCore not working with use_graphics_for

Describe the Bug:
When loading OpenCore via RefindPlus, the only bootloader that still shows "RefindPlus Using load options (...)" is OpenCore, even though use_graphics_for is enabled and opencore is there as well.

To Reproduce:

  1. Boot up RefindPlus
  2. Choose my manually entered MacOS entry (pointing to OpenCore.efi)
  3. Shows (RefindPlus - Starting OpenCore.efi - Using load options ' ')

Expected Behaviour:
After choosing the manually added entry to MacOS poiting to OpenCore.efi, the expected behaviour was for the (RefindPlus - Starting OpenCore.efi - Using load options ' ') not to show.

Environment:

  • RefindPlus Version : [v0.13.2.AD]
  • Hardware
    • Computer : [ACER Nitro 5 AN-515-52]
    • Motherboard : [ACER]
  • Affected OS : [OpenCore --› MacOS]

Additional Context:
Running the latest OpenCore (0.6.9) and the latest OCBinaryData.

Wrong Mac OS Volume Names Displayed

Describe the Bug:
The RefindPlus menu lists 4 macOS systems on APFS volumes, but displays the same volume name for the last three as you move the cursor (see pics below):
Monterey Beta, FS 11.5, FS 11.5, FS 11.5.
Each of the last three boot the correct macOS, but the names should be as described below.

To Reproduce:

Install RefindPlus
Modify config to support APFS
Boot machine

Expected Behaviour:
Volume names should be correct: Monterey Beta, 10.14.6, FS 10.15.7, FS 11.5.

Environment:

  • RefindPlus Version : v0.13.2.AG
  • Hardware
    • Computer : Mac mini 2014, Macmini7,1 with internal an SSD and hard drive (originally fusion drive)
    • Motherboard : Dual-Core Intel Core i7
    • GPU Model : Intel Iris
  • Affected OS : All macOS, Opensuse Linux, Elementary OS Linux

Log Files
I ran the debug version of RefindPlus and attached the RP log (level 3):
21r13t2138.log

Screenshots
One for each volume to see volume name:

IMG_1978
IMG_1979
IMG_1980
IMG_1981

Additional Context:

Here are: diskutil list, diskutil apfs list (rtf files):
diskutil apfs list.txt
diskutil list.txt

What's the function of【RefindPlus_x64-DBG.efi】?

What's the function of【RefindPlus_x64-DBG.efi】?
How is【RefindPlus_x64-DBG.efi】different from 【RefindPlus_x64-REL.efi】?
【RefindPlus_x64-REL.efi】is to be renamed【RefindPlus_x64.efi】and put into ESP: /EFI/refindplus/ ,
but
is【RefindPlus_x64-DBG】to be renamed【BOOTX64.EFI】and put into ESP: /EFI/BOOT/ ?

Allow SyncAPFS to work with multiple macOS system volumes in the same container

Is your feature request related to a specific problem?
It's not practical to put macOSs in their own container and own partition with many partitions, I may have up to 10 macOSs on a test machine, and several Linux's. On top of that, I have an HD and SSD with 3 containers, need to write down all the Preboot locations on paper, or boot the wrong one often since they change location often on a test machine. APFS makes life easy.

Describe the solution you would like
Allow RP to use SyncAPFS for multiple macOS boot volumes in the same container.

Describe alternatives you have considered
There are none currently.

Additional context
None

RefindPlus Hangs After Scanning Drives

RefindPlus stalls on HP Z440 after scanning drives, showing only the banner and otherwise a blank light grey sceen.

Steps to reproduce the behaviour:

  1. Boot RefindPlus

The expected behaviour would be to show the boot alternatives and tools.

Environment:

  • RefindPlus Version : 0.13.1.AB
  • Hardware
    • Computer : HP Z440 Xeon E5-1660 v4, 32 GB 2400MHz ECC DDR4, latest UEFI BIOS version (11/03/2020), all security features turned off
    • GPU Model : Nvidia GeForce GTX 645 OEM
    • GPU Port : DP
    • GPU Flash : no
  • Affected OS : issue prior to loading any OS; installed operating systems Win 10 and Manjaro.

Log file from the debug version and configuration file attached.

Original Refind also stalls similarly. There were no issues with my old HP computer (HP Compaq 8200 Elite) with the same GPU and operating systems. I also have a Mac Pro 3,1 that has no issues booting with RefindPlus.

21f24p2433.log

config.txt

Does this implementation of Refind has any fixes for serial input?

Is your feature request related to a problem? Please describe.

Running Refind in textmode on a GCE (Google Compute Environment) instance, I can see the menu in the serial connection, but I can't select any options or interact with it any way.

Describe the solution you would like

I'm wondering if there is any fixes in this fork regarding serial input.

Latest few commits do not let cMP5,1 boot

Describe the bug
No booting occurs through latest few commits and no log file is generated

To Reproduce
Steps to reproduce the behaviour:
Try to boot any OS

Expected behaviour
Expected to see the RP bootpicker or the login screen

Environment:

  • RefindPlus Version : 0.13.0.AA (Pre-Release)
  • Hardware
    • Computer : MacPro 5,1]
    • GPU Model : RX 580, GT-640 Mac EFI
    • GPU Port : DP
    • GPU Flash : YES-MacVidCards and regular RX-580. With or without MVC card same result except with the MVC card gray screen remains.
  • Affected OS : Any Mac OS

Log and Config Files
No Log file is generated.

Additional context
Restored working RP (sorry don't know which revision), but chain loading with the MVC GT-640 OC Hangs. Attached please find the OC log file hang:
Archive.zip

After soft blessing OC directly it boots to the login screen. Attached the log file:
opencore-2021-02-24-231046.txt.zip

Sorry the working RP version is the RELEASE version so no RP log file is generated. Here it is attached. Maybe you can find out what version it is:
Refind_x64.efi.zip

Only Shows a Blank Screen

I was trying to use RefindPlus to chainload OpenCore and Windows 10, and also have a boot menu entry for Clover EFI boot loader which is installed in another drive EFI. RefindPlus was successfully loading the Clover boot loader until very recently, when I installed an update of Clover and for some reason after applying the update, RefindPlus stopped loading successfully Clover boot menu. I have not done anything else other than updating Clover files to v5129 and OpenCore files to v0.6.6. Do you know if I need to change something else in the refind.config file to fix this?

Does not show volumes when dummy driver is absent

Using the latest version of RefindPlus that you posted today with the fix for previous issue. However, this version does not display the non-OC volumes in the boot picker unless I use the dummy driver trick. I thought that was supposedly going to be fixed in this AP release, but anyway, just letting you know its not.

Also, after using the dummy driver trick, I see two volumes, one of which I was keeping hidden using rEFInd hide volume command (select Volume and press backspace). This does not hide the volume though and the fact that it confirms with a name "??" must mean its confused by something. This was working previously in version AN.

Also, after attempting to hide the one volume, and it didn't work, it also came back to the main boot menu with all the icons shrunken to a smaller size and not displaying the icons correctly. (see images)

IMG_0176
IMG_0175
IMG_0174

Environment:

  • RefindPlus Version : 0.12.0.AP
  • Hardware
    • Computer 5,1
    • GPU Model RX580
    • GPU Port DVI
    • GPU Flash NO
  • Affected OS Catalina

config+log.zip

Additional context
Add any other context about the problem here.

Boot volumes do not appear

RefindPlus and OC had been working fine for a week or two, I did not change anything in my EFI partition at all since then, but today I went to reboot and when RefindPlus came up the boot screen did not show ANY volumes, including OC and native volumes...nothing. I had to clear NVRAM and boot direct to Mojave without RefindPlus, I looked at the EFI configuration for RefindPlus/OC,It all looked fine, same as before. By the way, I have RefindPlus configured with use-nvram false. Then I re-bless my EFI partition again and rebooted...this time RefindPlus brought up the OC volumes on the boot screen, but not the Mojave bootable volume.

This happened before a few weeks ago when I updated RefindPlus. At that time I couldn't figure anything out. I commented out the RefindPlus parameter: force_hidpi true, because I think that was an experimental setting no longer used. And somehow that cleared something so that RefindPlus then showed all volumes. This time I can't do that because its already commented out, and I guess that wasn't specifically the problem...though I am wondering if somehow by changing something in the RefindPlus config file, that caused RefindPlus to refresh some cache somewhere or something?

I don't know, but this is strange behavior.... as of now

Environment:

  • RefindPlus Version :12.0.AN
  • Hardware
    • Computer 5,1
    • GPU Model RX580
    • GPU Port DVI
    • GPU Flash NO
  • Affected OS Catalina and Mojave

Log and Config Files
n/a yet

SBAT support for secure boot

Is your feature request related to a specific problem?
Secure Boot

Describe the solution you would like
SBAT support

Describe alternatives you have considered

Additional context
Cant get secure boot to work due to the lack os SBAT support

Can't compile. EFI.h is missing

refind % make
/usr/bin/gcc -Os -fno-strict-aliasing -fno-stack-protector -fshort-wchar -Wall -DEFIX64 -DEFI_FUNCTION_WRAPPER -m64 -mno-red-zone -fpic -I/usr/include/efi -I/usr/include/efi/x86_64 -I/usr/include/efi/protocol -I../include -I../refind -I../libeg -I../mok -I. -I./../include -I./../libeg -I./../mok
-D__MAKEWITH_GNUEFI -c apple.c -o apple.o
In file included from apple.c:22:
../refind/global.h:49:10: fatal error: 'efi.h' file not found
#include <efi.h>
^~~~~~~
1 error generated.
make: *** [apple.o] Error 1

Build failure

Describe the Bug:
Debug build fails:

/Users/8570p/Documents/RefindPlus/edk2/RefindPlusPkg/BootMaster/lib.c:2305:44: warning: incompatible pointer types passing 'REFIT_VOLUME *' to parameter of type 'REFIT_VOLUME **'; take the address with & [-Wincompatible-pointer-types]
            VolDesc  = SanitiseVolumeName (Volume);
                                           ^~~~~~
                                           &
/Users/8570p/Documents/RefindPlus/edk2/RefindPlusPkg/BootMaster/lib.c:867:20: note: passing argument to parameter 'Volume' here
    REFIT_VOLUME **Volume
                   ^
/Users/8570p/Documents/RefindPlus/edk2/RefindPlusPkg/BootMaster/lib.c:2305:22: error: assigning to 'CHAR16 *' (aka 'unsigned short *') from incompatible type 'void'
            VolDesc  = SanitiseVolumeName (Volume);
                     ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning and 1 error generated.
make: *** [/Users/8570p/Documents/RefindPlus/edk2/Build/RefindPlus/DEBUG_XCODE5/X64/RefindPlusPkg/RefindPlus/OUTPUT/BootMaster/lib.obj] Error 1


build.py...
 : error 7000: Failed to execute command
	make tbuild [/Users/8570p/Documents/RefindPlus/edk2/Build/RefindPlus/DEBUG_XCODE5/X64/RefindPlusPkg/RefindPlus]


build.py...
 : error F002: Failed to build module
	/Users/8570p/Documents/RefindPlus/edk2/RefindPlusPkg/RefindPlus.inf [X64, XCODE5, DEBUG]

- Failed -
Build end time: 11:59:54, Aug.07 2021
Build total time: 00:00:21


Runtime Error ... Exiting

To Reproduce:
run

/RefindPlus/edk2/000-BuildScript/RefindPlusBuilder.sh

Expected Behaviour:
no errors during build

Environment:

  • RefindPlus Version : current source
  • Hardware
    • Computer : Hack 8570W
    • Motherboard : HP
    • GPU Model : NVIDIA quadro 2000m
    • GPU Port : n/a
    • GPU Flash : [n/a
  • Affected OS : RefindPlus

Ability to load ChromeOS kernels directly - like GRUB does

It is NOT related to a problem.

Describe the solution you would like

It would be amazing if there were any way for RefindPlus to be able to load a ChromeOS kernel the same way GRUB does.
As it stands, to boot ChromeOS install in a multi-boot environment, GRUB needs to be chainloaded in order for it to work, thus requiring either a Linux Distro installed or Grub2Win or something like that, as I am yet to find a true standalone GRUB install to the EFI folder in the ESP partition.

Describe alternatives you have considered

My only approach to this was trying (with no success) to force grubx64.efi to load a grub.cfg file stored locally, but it failed to load those settings everytime.

Would be great to eliminate the process of having to use a Linux Distro to store our grub.cfg in its boot partition in order for ChromeOS to boot.

This way, we would be able to format and do whatever changes needed to our Linux Distro partition or even eliminate it entirely, if needed, without ever affecting our ability to boot into ChromeOS.

Additional context

All my testing have been done using the latest Brunch framework and using the multi_install.sh.
That way, ChromeOS gets installed to a single partition on my NVMe rather than partitioning it whole and creating 12 partitions by itself.
What it does is basically create a .img file in the single partition I set during install.

Allow Arbitary Boot Argument Strings

Describe the solution you'd like
RefindPlus currently allows some boot arguments by using the DisableMacCompatCheck and DisableAMFI tokens but it would be nice to be able to similarly add other boot arguments

Describe alternatives you've considered
Arguments can be manually added when booted into MacOS but these can be overwritten when booting in via tools such as OpenCore

Mac OS installations do not appear

Describe the bug
After installing RefindPlus per instructions, boot picker does not show native Mac OS (Mojave) installation. I only see two OpenCore options (default and alternate).

To Reproduce
N/A

Expected behaviour
Mac OS volume should be available in boot picker after soft bless reboot.

Environment:

  • RefindPlus Version: v0.12.0.AN
  • Hardware: Mac Pro 5,1. Vega 64. Dual 3.46 Xeon CPUs. 128gb RAM. Mojave APFS boot volume located on OWC 6g PCIe SSD card.
  • OS: Mojave 10.14.6 (18G7016)

Log and Config Files
21b21x4313.log
MyBootMgrOld.zip

Screenshots
refindplus_bootpicker

Additional context
N/A

What about drivers, keys, themes or so on?

Describe the Bug:

What about drivers, keys, themes or so on?
May I copy those from rEFInd?
Additionally, how about the relative path to the folder named keys?
And in order to boot Chrome OS on Brunch Framework, may I add brunch.ber into the folder named keys?

OpenCore Hangs When Chainloaded From RefindPlus

Describe the bug
A Memory leak was introduced in upstream rEFInd 0.13.1. As a result rEFInd does not load on cMP5,1 and RP cannot chainload OC

To Reproduce
Steps to reproduce the behaviour:
Run rEFInd 0.13.1 on cMP5,1 (you may need to use a UGA card with a boot screen) or RP version 0.13.1.AC with the same UGA card with the boot screen.

Expected behaviour
A clear and concise description of what you expected to happen.

Environment:

  • RefindPlus Version : v0.13.1.AC (Pre-Release)
  • Hardware
    • Computer : MacPro 5,1
    • GPU Model : RX 580, GT-640 MVC bios
    • GPU Port : DVI-D and DVI-I on GT-640
    • GPU Flash : YES-MacVidCards GT-640
  • Affected OS : OC chainloading

Log and Config Files
21f07e2749.log.zip
config.conf.zip

Log Level is Always One Step Below Configured Value

Describe the Bug:

The actual log level output is one step below the value set in the config file

To Reproduce:

  1. Enter log_level Value 4 in config file
  2. Boot RefindPlus
  3. Level 3 logs are produced

Expected Behaviour:

Level 4 logs should be produced

Environment:

  • RefindPlus Version : v0.13.2.AA

Log and Config Files

Screenshots

Additional Context:

Error during compilation

/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/MainLoader/screen.c:411:1: error: conflicting types for 'SwitchToGraphics'
SwitchToGraphics (
^
/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/MainLoader/screen.h:107:6: note: previous declaration is here
VOID SwitchToGraphics(VOID);
     ^
/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/MainLoader/screen.c:776:5: error: use of undeclared identifier 'Status'
    Status = SwitchToGraphics();
    ^
2 errors generated.
make: *** [/Users/g5/Documents/RefindPlus/edk2/Build/RefindPlus/RELEASE_XCODE5/X64/RefindPlusPkg/RefindPlus/OUTPUT/MainLoader/screen.obj] Error 1


build.py...
 : error 7000: Failed to execute command
	make tbuild [/Users/g5/Documents/RefindPlus/edk2/Build/RefindPlus/RELEASE_XCODE5/X64/RefindPlusPkg/RefindPlus]


build.py...
 : error F002: Failed to build module
	/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/RefindPlus.inf [X64, XCODE5, RELEASE]

- Failed -
Build end time: 21:37:19, Mar.08 2021
Build total time: 00:00:24

Hidden Items feature is not working

Greetings.
So, I have an (originally Windows) laptop that I've been trying to install rEFInd Plus onto.
I have successfully made it to the point where all my custom entries are shown, but I am unable to delete the auto-filled entries.

It throws an error and then pauses rEFInd Plus and I cannot delete any of those entries.

On a side note, I am also unable to theme it using themes that work flawlessly with the "main" version of rEFInd.

I have deleted all drivers from the "drivers_x64" folder.
Is there something I'm doing wrong or missing?

I am using config.conf and not refind.conf as per recommendation.

Error during compilation

RefindPlus/edk2/RefindPlusPkg/MainLoader/main.c:1464:9: error: expected ')'
        gST->Hdr.Revision >> 16,
        ^
/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/MainLoader/main.c:1462:5: note: to match this '('
    MsgLog (
    ^
/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/MainLoader/globalExtra.h:13:32: note: expanded from macro 'MsgLog'
  #define MsgLog(...)  DebugLog(REFIT_DEBUG, __VA_ARGS__)
                               ^
1 error generated.
make: *** [/Users/g5/Documents/RefindPlus/edk2/Build/RefindPlus/RELEASE_XCODE5/X64/RefindPlusPkg/RefindPlus/OUTPUT/MainLoader/main.obj] Error 1


build.py...
 : error 7000: Failed to execute command
	make tbuild [/Users/g5/Documents/RefindPlus/edk2/Build/RefindPlus/RELEASE_XCODE5/X64/RefindPlusPkg/RefindPlus]


build.py...
 : error F002: Failed to build module
	/Users/g5/Documents/RefindPlus/edk2/RefindPlusPkg/RefindPlus.inf [X64, XCODE5, RELEASE]

- Failed -
Build end time: 22:09:36, Feb.23 2021
Build total time: 00:00:19


Runtime Error ... Exiting

RefindPlus Hangs on Displaying Message About Config File Name

Describe the Bug:

RefindPlus hangs on displaying a message about unavailability of the default configuration file, config.conf.
The message says the rEFInd configuration file, refind.conf, will be tried but nothing happens.

To Reproduce:

  1. Load RefindPlus without the default configuration file, config.conf
  2. A message is shown advising that the rEFInd configuration file, refind.conf, will be tried
  3. Loading stops at this point

Expected Behaviour:

RefindPlus loading should proceed based on the rEFInd configuration file, refind.conf

Environment:

  • RefindPlus Version : v0.13.2.AG
  • Hardware
    • Computer : MacPro 3,1
    • Motherboard : Apple OEM
    • GPU Model : XFX RX 580
    • GPU Port : DVI-I
    • GPU Flash : NO
  • Affected OS : RefindPlus itself

Additional Context:

Affects any runtime pause initiated before the main menu is fully loaded

Various Errors with Manual Stanzas

Describe the Bug:
When loading manual boot stanzas for any Linux Distro (tested Ubuntu 20.04 and Linux Mint 20.1) pointing to vmlinuz and initrd.

To Reproduce:

  1. Boot up RefindPlus
  2. Choose my manually entered Linux Distro entry.
  3. RefindPlus throws following message: RefindPlus - Booting OS --> Starting vmlinuz-5.4.0.73-generic --> Using load options (....) ---> Error: Load Error while loading vmlinuz-5.4.0.73-generic --> Paused: Press Any Key to Continue

Expected Behaviour:
After choosing the manually added entry to any of the Linux Distros, RefindPlus would load without throwing any error message.

Environment:

  • RefindPlus Version : [v0.13.2.AD]
  • Hardware
    • Computer : [ACER Nitro 5 AN-515-52]
    • Motherboard : [ACER]
  • Affected OS : [Linux Distro --> Ubuntu 20.04 and Linux Mint 20.1]

Additional Context:

Unaware if it's a bug and / or related, but the DEBUG Version does not show ANY entry at all.
Also, RELEASE Version does NOT load any entry if any .efi drivers are present in the drivers_x64 folder.

EDIT: Dev provided workaround for these two issues: #49 (comment)

Manual boot stanzas work correctly in "main" version of rEFInd.
Entries regarding the Linux Distros are as follows:

menuentry "Linux Mint 20.1" {
graphics on
icon /EFI/refindPlus/themes/refind-black/icons/os_linuxmint.png
volume 8804259d-cd36-4a0b-9afc-e0429e3b7319
loader /boot/vmlinuz-5.4.0-73-generic
initrd /boot/initrd.img-5.4.0-73-generic
options "ro root=UUID=196cb73c-2f3f-4a32-8a37-85051fe93225 ro fsck.mode=skip quiet splash"
}

menuentry "Ubuntu 20.04" {
graphics on
icon /EFI/refindPlus/themes/refind-black/icons/os_ubuntu.png
volume 91240980-28cd-4c2a-ae18-950fc40d5143
loader /boot/vmlinuz-5.8.0-53-generic
initrd /boot/initrd.img-5.8.0-53-generic
options "ro root=UUID=ec62f342-0947-4392-bade-0aa7005a6867 ro fsck.mode=skip quiet splash $vt_handoff"
}

Log Files
Log file attached, as well as config.conf (zipped).
Bruno_21j20k0953.log
config.zip

Just like OC, could you give a bootstrap.efi?

Is your feature request related to a problem? Please describe.

Just like OpenCore, RefindPlus to be set the default boot manager, could you give a bootstrap.efi to protect RefindPlus to be forever always default from alteration of other boot even manager such as OC?😅😅😅

Out-of-bounds access (OVERRUN) in filesystems/fsw_hfs.c >> fsw_hfs_volume_mount

Memory Corruption from Out-of-Bounds Access

kHFSMaxVolumeNameChars is set to 27 in

kHFSMaxVolumeNameChars = 27,

Assigning: s.len = kHFSMaxVolumeNameChars (That is, 27) in:

s.size = s.len = kHFSMaxVolumeNameChars;

Assigning: s.data = "HFS+ volume".
s.data now points to byte 0 of "HFS+ volume" (which consists of 12 bytes) in:

s.data = "HFS+ volume";

Overrunning buffer pointed to by s.data of 12 bytes by passing it to a function which accesses it at byte offset 26 using argument s.len (which evaluates to 27) in:

status = fsw_strdup_coerce(&vol->g.label, vol->g.host_string_type, &s);

Information about blank screens

I don't get a blank screen.
(i7 8700,ASUS Prime H370-A,RX-570)

And I looked at the log of how at least two blank screens happened.

What is different in the log
”1: 735 0:010 Scan Volumes ...”
There is no UUID displayed inside.

And they also specified by UUID, healed from the blank screen and couldn't boot when the entry came out.

Is it possible that the UUID is not scanned due to some environmental difference?

I have also been informed of the problem.

If you have time, I would like to know it.
Also, if such a UUID is not scanned, is the volume specification on the GTP label valid?

21f08z0541.log

Not recognizing my 4k monitor as HiDpi

I am trying to use RefindPlus. I have been using MyBootMgr to create the initial configuration of RefindPlus and OpenCore.

Unfortunately RefindPlus is not recognizing my monitor as HiDPI, so everything is really small at native 4k resolution.

I get the following debug messages with RefindPlus in DEBUG mode:

15:582   0:057  Set Screen Resolution:
 15:671   0:088    - BestMode: GOP Mode[0] @ 3840x2160
 18:281   2:610    - Switch to GOP Mode[0] ...Success
 18:312   0:030  Screen Resolution Set

 18:342   0:029  INFO: Implemented Graphics Output Protocol

 18:390   0:048  INFO: Implement Text Renderer ...Success

 18:420   0:029  Setup Screen...
 18:450   0:029  Prepare for Graphics Mode Switch:
 18:478   0:028    - HiDPI Not Detected ...Maintain Icon Scale

So it appears to recognize correctly the 4k resolution of my GPU (RX580) and monitor, but then it goes on to ignore HiDPI scaling later on. This is on a MacPro 5,1, with Sapphire Pulse RX580 GPU.

Is this a bug in RefindPlus or something I can configure somehow to work properly?

PreviousBoot Not Updated After Selecting Different Loader

Describe the Bug:
It seems that PreviousBoot file in /vars/ doesn't get written when you select a new booted loader. That makes RefindPlus doesn't remember what previous booted loader is and keeps selecting the first selected booted loader.

To Reproduce:

  1. Keep everything as default for boot setting (meaning it should ignore "ignore_previous_boot" flag and create PreviousBoot file as default)
  2. Boot to OS "A" (first picked booted loader)
  3. Restart then boot to OS "B"
  4. Wait until RefindPlus pick the booted loader from the PreviousBoot file

Expected Behaviour:
RefindPlus will select the first picked booted loader (OS "A"), despite previously we pick OS "B" to load.

Environment:

  • RefindPlus Version : v0.13.2.AG
  • Hardware
    • Computer : Lenovo 510S-14ISK
    • CPU Model : Intel i7-6500U
    • GPU Model : Intel HD520 and AMD RADEON M460
  • Affected OS : Opencore and Windows 10 (UEFI)

Log Files

log0_BootToOS_B.log
log4_BootToOS_B.log
log0_BootToPreviousBoot.log
log4_BootToPreviousBoot.log

Screenshot:
Look at the file date for respected files:
PreviousBoot
Screenshot 2021-08-14 215349
Logs
Screenshot 2021-08-14 215414

Additional Context:

If the RefindPlus folder is needed: refind.zip

Incorrect icons shown for Elementary OS partitions

Describe the Bug:
This is a minor issue but thought since original refind displays the correct icons so should RP. There are 2 linux Opensuse BTRFS and 2 Linux elementary OS EXT4 partitions. Also 5 macOS volumes in APFS. All display the correct icons except the 2 Elementary OS partitions.

To Reproduce:
Boot RP.

Expected Behaviour:
All menu items should display the same as Original Refind does, using the correct icons for Elementary OS.

Environment:
RefindPlus Version : v0.13.2.AH beta, AG cannot test because it does not display linux partitions.
Hardware
Computer : Mac mini 2014, Macmini7,1 with internal an SSD and hard drive (originally fusion drive)
Motherboard : Dual-Core Intel Core i7
GPU Model : Intel Iris
Affected OS : All macOS, Opensuse Linux, Elementary OS Linux

Log Files
21r18u2006.log

Screenshots
RP menu, notice the penguin and dimmed elementary os icon:
IMG_1984

Original Refind menu, both elementary os icons blue and bright white:
IMG_1976

Additional Context:
I found .VolumeIcon.icns and .VolumeIcon.png in "/" (top level root). These display in the original refind menu. I found it odd that although both elementary partitions are identical (one cloned from the other), RP displays a penguin on one and a dimmed elementary icon on the other.

Bogus Bootable Legacy Windows BIOS Instances

Describe the bug
RefindPlus detects the presence of bogus bootable Legacy Windows instances when running UEFI Windows.

To Reproduce
Steps to reproduce the behaviour:

  1. Allow Legacy Internal or Legacy External scans in the ScanFor config but only have UEFI Windows present
  2. Reboot into RefindPlus
  3. Bogus instances of Windows (Legacy) boot loaders will appear along with the UEFI Windows Instances

Expected behaviour
Only UEFI Windows Instances should appear

Environment:

  • RefindPlus Version: [v0.12.0.M]
  • OS: [Mac OS]

Additional context
The code to filter out such instances was added to rEFInd 0.3.1.2 (20 Apr 2012) here: https://sourceforge.net/p/refind/code/ci/b7734df2ccc0b0e943a8ce2c1f6d25e76e78e6f8 but does not appear to currently work.

Windows 7 was current at the time (Windows 8 was released later that year)

OpenCore skips OpenCanopy when chain loaded from RefindPlus

Describe the bug
When chain loading OC a message appears:
RefindPlus - Loading OS (in text mode)
OC boot screen is completely skipped and I can see the verbose text after the timeout selects the default boot option.
To Reproduce
Chainload OC through RefindPlus v0.13.2.AA (Pre-Release) on Apple Firmware

Expected behaviour
Expected to boot to Open Canopy bootpicker.

Environment:

  • RefindPlus Version : v0.13.2.AA
  • Hardware
    • Computer : MacPro 5,1
    • GPU Model :GTX Titan
    • GPU Port : HDMI
    • GPU Flash : YES-MacVidCards
  • Affected OS : OpenCore bootpicker

Log and Config Files
21f28u5900.log.zip
config.conf.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.