Jump to content

custom boot entries for Open Core 0.6.8


23 posts in this topic

Recommended Posts

Does anyone have a tutorial for adding custom boot entries to Open Core (0.6.8)?

 

How to find the correct syntax for PciRoot entries for partitions and enter them in config.plist in a format that OC can parse?

 

Any other mods other than config.plist necessary?

Edited by HenryV
4 minutes ago, HenryV said:

Does anyone have a tutorial for adding custom boot entries to Open Core (0.6.8)?

 

How to find the correct syntax for PciRoot entries for partitions and enter them in config.plist in a format that OC can parse?

 

Any other mods other than config.plist necessary?

https://medium.com/macoclock/guide-multiboot-dualboot-opencore-with-windows-macos-linux-kextcache-131e96784c3f

Schermata 2021-04-11 alle 22.30.38.png

Edited by antuneddu
12 hours ago, HenryV said:

Does anyone have a tutorial for adding custom boot entries to Open Core (0.6.8)?

 

How to find the correct syntax for PciRoot entries for partitions and enter them in config.plist in a format that OC can parse?

 

Any other mods other than config.plist necessary?

Look at the link posted by @antuneddu  

 

The interesting section for you is POST - INSTALLATION where it says Boot Into OpenCore and Select OpenShell.efi. There is what you need to add entries into config.plist. 

10 hours ago, miliuco said:

Look at the link posted by @antuneddu  

 

The interesting section for you is POST - INSTALLATION where it says Boot Into OpenCore and Select OpenShell.efi. There is what you need to add entries into config.plist. 

As a matter of fact I went into shell but was unable to get the map command to redirect output to a file.  The strings scroll past when the shell initializes so I need to capture them to file. 

 

For instance when I open FS1 and get prompt FS1: and use map > map.table.linux.txt the shell complains it cannot redirect the output.

 

So any ideas how to capture the map output to file?  

 

Would it be the same as boot Clover log EFI strings?

 

I checked in diskutil and it appears Open Core is using the partition ID UUID in the strings.

 

Also ran across an unusual issue after resetting NVRAM where the first entry on the menu has an asterisk and all of the boot functions are shifted one line down from the actual boot menu entry.  For instance, if I put the cursor on OpenShell.efi it actually runs the boot menu entry directly above.  Anybody else seeing this behavior with 0.6.8?

2 hours ago, HenryV said:

As a matter of fact I went into shell but was unable to get the map command to redirect output to a file.  The strings scroll past when the shell initializes so I need to capture them to file. 

 

For instance when I open FS1 and get prompt FS1: and use map > map.table.linux.txt the shell complains it cannot redirect the output.

 

So any ideas how to capture the map output to file?  

 

Would it be the same as boot Clover log EFI strings?

 

I checked in diskutil and it appears Open Core is using the partition ID UUID in the strings.

 

Also ran across an unusual issue after resetting NVRAM where the first entry on the menu has an asterisk and all of the boot functions are shifted one line down from the actual boot menu entry.  For instance, if I put the cursor on OpenShell.efi it actually runs the boot menu entry directly above.  Anybody else seeing this behavior with 0.6.8?

 

If you use the map command directly from FS0: (or any FSX) it may not work. You must be placed on a device that UEFI Shell can write to (EFI partition or any other FAT or FAT32 device).

This is an example with Windows:

  • From the EFI shell prompt type FS0: (note the 2 dots after 0).
  • Enter the FS0 device.
  • Type ls or dir (both commands work) to check if you are on the Windows EFI partition.
  • If there is an EFI folder, write cd EFI to check if there are 3 folders inside: APPLE, Boot and Microsoft.
  • In this case, you are already in the Windows EFI folder. If not, write FS1: and check again. So on until you know where the Windows EFI folder is.
  • Make a note of which FSX device is the Windows device.
  • Put yourself in the root of the Windows EFI partition with the cd command.
  • When you are at the root of the EFI partition, type map > map-table.txt.
  • Exit the shell and go to macOS.
  • Mount the Windows EFI partition and inside it, next to the EFI folder, there should be a map-table.txt file that contains all the EFI and PCI paths to the boot devices.
  • Find the path that corresponds to FSX noted in a previous step.
  • This entire path followed by \EFI\Microsoft\Boot\bootmgfw.efi is what you must enter in the Path key of config.plist.


Try also to name the file map-table-linux.txt instead of map.table.linux.txt.

 

@antuneddu

Really it's almost the same text as in the link you posted, I have only placed the different steps followed 1 by 1 so that they can be followed more easily.

 

Edited by miliuco
Posted (edited)
12 minutes ago, miliuco said:

 

If you use the map command directly from FS0: (or any FSX:) it won't work. You must be placed on a device that UEFI Shell can write to (EFI partition or any other FAT or FAT32 device).

This is an example with Windows:

  • From the EFI shell prompt type FS0: (note the 2 dots after 0).
  • Enter the FS0 device.
  • Type ls or dir (both commands work) to check if you are on the Windows EFI partition.
  • If there is an EFI folder, write cd EFI to check if there are 3 folders inside: APPLE, Boot and Microsoft.
  • In this case, you are already in the Windows EFI folder. If not, write FS1: and check again. So on until you know where the Windows EFI folder is.
  • Make a note of which FSX device is the Windows device.
  • Put yourself in the root of the Windows EFI partition with the cd command.
  • When you are at the root of the EFI partition, type map > map-table.txt.
  • Exit the shell and go to macOS.
  • Mount the Windows EFI partition and inside it, next to the EFI folder, there should be a map-table.txt file that contains all the EFI and PCI paths to the boot devices.
  • Find the path that corresponds to FSX noted in a previous step.
  • This entire path followed by \EFI\Microsoft\Boot\bootmgfw.efi is what you must enter in the Path key of config.plist.

Thank you for the detailed explanation, that is what I needed to know.  I had already managed to add one entry to revert to the GRUB2 bootloader on the ESP, but wanted to add additional entries for Linux.  Thank you.

Edited by HenryV
11 minutes ago, HenryV said:

Thank you for the detailed explanation, that is what I needed to know.  I had already managed to add one entry to revert to the GRUB2 bootloader on the ESP, but wanted to add additional entries for Linux.  Thank you.

 

Forget the first line of my message. I have tried running map > map-table-linux.txt  directly from FX0 and it worked fine. I was wrong about this. Sorry.

 

In your case, it may be that FS1 is a device formatted in something other than FAT or FAT32, in that case UEFI Shell cannot write to it.

 

map-table.png.6471ed3716adeca09d5a319dff5ddf04.png

 

Edited by miliuco
3 minutes ago, antuneddu said:

probably the guide is a little old for the Windows path instead of
\EFI\Microsoft\Boot\bootmgfw.efi put
/\EFI\BOOT\BOOTX64.EFI as you can see in my working plist...

 

Curious! I have bootmgfw.efi in my entry for Windows in config.plist. And you're done well remembering there is a / between the EFI path and the boot loader path.

This is mine:

PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)/NVMe(0x1,18-CC-1C-49-8B-44-1B-00)/HD(1,GPT,DF3F0348-A4F8-4A34-9C86-963B0E98F2BE,0x800,0x54747)/\EFI\Microsoft\Boot\bootmgfw.efi

 

4 minutes ago, miliuco said:

 

Curious! I have bootmgfw.efi in my entry for Windows in config.plist. And you're done well remembering there is a / between the EFI path and the boot loader path.

This is mine:


PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)/NVMe(0x1,18-CC-1C-49-8B-44-1B-00)/HD(1,GPT,DF3F0348-A4F8-4A34-9C86-963B0E98F2BE,0x800,0x54747)/\EFI\Microsoft\Boot\bootmgfw.efi

 

even before I had used that path but it don't work  like that instead yes
PciRoot (0x0) / Pci (0x17,0x0) / Sata (0x2,0xFFFF, 0x0) / HD (1, GPT, 0000014D-3110-1321-230C-D7019A020000,0x800,0xADE81) / \ EFI \ BOOT \ BOOTX64.EFI  

however now @HenryV  has 2 paths available if it is not male it is definitely female  :D

 

21 hours ago, antuneddu said:

probably the guide is a little old for the Windows path instead of
\ EFI \ Microsoft \ Boot \ bootmgfw.efi put
/\EFI\BOOT\BOOTX64.EFI as you can see in my working plist

Schermata 2021-04-12 alle 23.53.13.png

Thank you for the info to extract the map/EFI strings and I was able to add boot entries to the OC boot (text) menu.  However, whenever I add an entry the cursor shifts down one line so that the menu entries all show, but it is necessary to click on the menu item directly below the one I want to get the desired item to launch.  This is bizarre.  Is anyone else experiencing this issue with 0.6.8?  I tried making the new boot entry with OCC for 0.6.8 and it would not save the PciRoot string, so I used an XML editor to manually enter the information.  If I remove the added menu entries the menu functionality goes back to normal  I even edited the sample CustomOS menuentry so there would not be any question of altering the XML syntax, but this also produced the menu navigation issue described above.   Based on everyone elses' experience give me some feedback if you think this a bug that needs to be reported.

 <key>Entries</key>
            <array>
                <dict>
                    <key>Arguments</key>
                    <string></string>
                    <key>Auxiliary</key>
                    <false />
                    <key>Comment</key>
                    <string></string>
                    <key>Enabled</key>
                    <true />
                    <key>Name</key>
                    <string>GRUB menu</string>
                    <key>Path</key>
                  <string>PciRoot(0x0)/Pci(0x17,0x0)/Sata(0x0,0x0,0x0)/HD(1,GPT,B7D04E32-40B2-2B15-DE43-DEC45D145312,0x600,0xF4100)/\EFI/Ubuntu\shimx64.efi</string>
                    <key>TextMode</key>
                    <false />
                </dict>
            </array>

 

58 minutes ago, HenryV said:

Thank you for the info to extract the map/EFI strings and I was able to add boot entries to the OC boot (text) menu.  However, whenever I add an entry the cursor shifts down one line so that the menu entries all show, but it is necessary to click on the menu item directly below the one I want to get the desired item to launch.  This is bizarre.  Is anyone else experiencing this issue with 0.6.8?  I tried making the new boot entry with OCC for 0.6.8 and it would not save the PciRoot string, so I used an XML editor to manually enter the information.  If I remove the added menu entries the menu functionality goes back to normal  I even edited the sample CustomOS menuentry so there would not be any question of altering the XML syntax, but this also produced the menu navigation issue described above.   Based on everyone elses' experience give me some feedback if you think this a bug that needs to be reported.


 <key>Entries</key>
            <array>
                <dict>
                    <key>Arguments</key>
                    <string></string>
                    <key>Auxiliary</key>
                    <false />
                    <key>Comment</key>
                    <string></string>
                    <key>Enabled</key>
                    <true />
                    <key>Name</key>
                    <string>GRUB menu</string>
                    <key>Path</key>
                  <string>PciRoot(0x0)/Pci(0x17,0x0)/Sata(0x0,0x0,0x0)/HD(1,GPT,B7D04E32-40B2-2B15-DE43-DEC45D145312,0x600,0xF4100)/\EFI/Ubuntu\shimx64.efi</string>
                    <key>TextMode</key>
                    <false />
                </dict>
            </array>

 

sorry but I didn't understand this step "However, whenever I add an entry the cursor shifts down one line so that the menu entries all show, but it is necessary to click on the menu item directly below the one I want to get the desired item to launch ". Do you intend to edit the playlist? I recommend PlistEdit Pro

Schermata 2021-04-13 alle 22.18.50.png

Schermata 2021-04-13 alle 22.20.22.png

Schermata 2021-04-13 alle 22.24.56.png

17 minutes ago, antuneddu said:

sorry but I didn't understand this step "However, whenever I add an entry the cursor shifts down one line so that the menu entries all show, but it is necessary to click on the menu item directly below the one I want to get the desired item to launch ". Do you intend to edit the playlist? I recommend PlistEdit Pro...

 

I think that @HenryV refers to the picker in text mode. It looks like a graphical glitch. I've never seen it before.
The asterisk may be normal because it indicates the input that is selected to be started. The behavior that the other inputs are lowered one level and you have to press a level above the input you want to start ... It's weird for me, I have no explanation.

On the other hand, I want to remind to @HenryV that you have to fill in the data of your machine in your Signature (User Profile). It is the only way to know what hardware you use and so we are able to help better.

 

Edited by miliuco
6 minutes ago, miliuco said:

 

I think that @HenryV refers to the picker in text mode. It looks like a graphical glitch. I've never seen it before.
The asterisk may be normal because it indicates the input that is selected to be started. The behavior that the other inputs are lowered one level and you have to press a level above the input you want to start ... It's weird for me, I have no explanation.

I was not sure if I had understood correctly, I also thought about a graphic problem it could be that I set something different on Uefi / AppleInput or similar :worried_anim:

16 minutes ago, antuneddu said:

I was not sure if I had understood correctly, I also thought about a graphic problem it could be that I set something different on Uefi / AppleInput or similar :worried_anim:

 

I think what @HenryV says is as in the attached image. But I'm not 100% sure. I hope he will solve our doubt.

 

picker.thumb.png.668d675cc533e0f6e92da2d2e960d22e.png

 

Edited by miliuco
13 minutes ago, antuneddu said:

curious i wanted to start without gui, it is shown regular

 

Schermata 2021-04-14 alle 00.06.53.png

Yes, me too, I modified the screenshot of the picker to be like the one I imagine HenryV sees :)
My picker looks the same as yours.

Posted (edited)
On 4/13/2021 at 8:11 PM, antuneddu said:

curious i wanted to start without gui, it is shown regular

 

Schermata 2021-04-14 alle 00.06.53.png

 

Ok, thanks for the feedback antuneddu and miliuco. 

 

Am not using the GUI for now with 0.6.8.

 

When adding a text menu item, either by enabling UEFI Shell option in config.plist, OR by adding only one entry via the menu entries area of config.plist, the menu displays and functions as expected in text mode. 

 

When adding an additional entry, such as another linux dstro to the config.plist menu entries area, that is when the issue manifests with the picker text menu.

 

The list of menu items displays normally but the function does not correspond to the text.

 

For instance, if I have two entries from the vertical list say:

 

UEFI Shell

GRUB bootloader

 

I have to click on GRUB bootloader to invoke the UEFI Shell.  If I want GRUB bootloader I have to click on the menu item directly below that entry.  If I want the last item on the list I have to click on the empty space below the last item on the list.  

 

With this issue the appearance of the list isn't necessarily the issue, it is that when adding more than one item to the list the functions associated with the new entry and all the other entries become disassociated.  The menu entry does not execute the expected function.

 

The function is shifted to the next line in the vertical menu.

 

If I remove all but one of the newly added entries then the menu looks and functions as expected.

 

One new entry is OK, more than one and the problem occurs.

 

I hope this is clear enough.

 

If either one of you has duplicated this issue on your machine let know.  If it is a bug should it be reported to a developer in this forum?  Of not, where?

 

This is the first time for me trying to do custom menu entries, and because of changing developer code this issue may not have existed with previous releases of OC.

 

I do not know of any hardware issues nor strictly OS software issues resulting from this.   Only the mismatch between the menu text entries and the expected function, and only when making more than one new menu entry.    I also used ProperTree to see if making the entries that way would produce a different result, and it didn't, so I don't think it is an issue of incorrect XML syntax/format.

 

What are your thoughts?

Edited by HenryV
On 4/14/2021 at 8:49 PM, HenryV said:

Ok, thanks for the feedback antuneddu and miliuco. 

 

Am not using the GUI for now with 0.6.8...

 

You have explained the problem perfectly.

Before answering I have tried on my PC. I have tested with partitions and tools, first with 1 entry and adding entries little by little and I have put the picker in text mode.

It boots with the asterisk in the entry selected by default and, when moving the cursor by keyboard, it moves correctly and activates the entry on which it is located.
I have not observed the behavior that you comment. On my PC it apparently works as expected.


It may be an OpenCore bug. The bug tracker is in
https://github.com/acidanthera/bugtracker/issues
You have to have a GitHub account to be able to add an issue.


But I tell you something that is also necessary in the bug tracker. In the forum there is a rule: you have to fill in the signature in your user profile with the data from your hardware. It is very important to know the hardware to better focus the problem and even to be able to help. Do it and, if you create a new issue, do not forget to say your hardware and version of macOS in addition to the description of the problem.

 

Have you tried graphic picker? Just to check if the problem is fixed in that mode.

the difference between 

 

Microsoft\Boot\bootmgfw.efi AND  EFI \ BOOT \ BOOTX64.EFI 

 

is, with  BOOTX64.EFI i do think OC still see windows as a mac because you are using boocamp

 

conversly with  Microsoft\Boot\bootmgfw.efi  OC see you as a PC

 

don' you think?

2 hours ago, odemolay said:

the difference between 

 

Microsoft\Boot\bootmgfw.efi AND  EFI \ BOOT \ BOOTX64.EFI 

 

is, with  BOOTX64.EFI i do think OC still see windows as a mac because you are using boocamp

 

conversly with  Microsoft\Boot\bootmgfw.efi  OC see you as a PC

 

don' you think?

 

Well, I'm not sure about it. I know that OpenCore can automatically boot entries leading to \EFI\Microsoft\Boot\bootmgfw.efi since version 0.5.9 (before this version, it was sometimes necessary to type this path in Misc > BlessOverride). But I don't know if it can boot the ones that lead to EFI\Boot\bootx64.efi.
In my particular case, OpenCore boots Widnows only from bootmgfw.efi, not from bootx64.efi.

 

×
×
  • Create New...