Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

cdf

macrumors 68020
Original poster
Jul 27, 2012
2,256
2,583
Great job!
Now if someone converted the typeface that is used on the genuine Apple boot screen under the icons into the .png form as OC uses it, that would be just perfect.

Do you now which one is it?
San Francisco? Roboto?
What about file specs?

You could always just wait for OpenCanopy to mature. It follows the Apple design.

 

hwojtek

macrumors 68020
Jan 26, 2008
2,274
1,277
Poznan, Poland
You could always just wait for OpenCanopy to mature. It follows the Apple design.

Yeah, but that's not the tinkerer's spirit!
macos-sierra-startup-disk.png


Helvetica Neue or San Francisco?
 

converse320

macrumors newbie
Apr 3, 2020
15
6
Thanks for all your work on this. I have Opencore up and running now. Very nice to have a boot screen again!
 

joevt

macrumors 604
Jun 21, 2012
6,968
4,262
Helvetica Neue or San Francisco?
Would it be the same font used by the bless command in Catalina to make the .disk_label_2x file?

sudo bless --folder /Volumes/rEFInd2/refind --file /Volumes/rEFInd2/refind/refind_x64.efi --label rEFInd2

I made a script to make multi line disk labels:
Code:
dump_label () { local contents=$(xxd -p -c99999 "$1"); echo ${contents:10} | perl -pe "s/(..)/\1 /g;s/00/../g;s/ //g;s/(.{$((0x${contents:2:4}*2))})/\1\n/g" ; }

makemultilinedisklabel () {
    local folder="$1"
    local lines="$2"
    local alllines=""
    local alllines2x=""

    IFS=$'\n'
    local linenum=0
    local theline=""
    for theline in $(echo "$lines"); do
        sudo bless --folder "$folder" --label "$theline"
        if (( $linenum )); then
            alllines+="$(dump_label "$folder/.disk_label" | sed '1,/[^.]/ {/^[.]*$/d; }')"$'\n'
            alllines2x+="$(dump_label "$folder/.disk_label_2x" | sed '1,/[^.]/ {/^[.]*$/d; }')"$'\n'
        else
            alllines+="$(dump_label "$folder/.disk_label")"$'\n'
            alllines2x+="$(dump_label "$folder/.disk_label_2x")"$'\n'
        fi
        ((linenum++))
    done

    local suffix=""
    local thelines=""
    for suffix in "" "_2x"; do
        [[ -z $suffix ]] && thelines="$alllines" || thelines="$alllines2x"

        local linewidths="$(echo "${thelines}" | tr '0-9a-f' '.' | sort -ur)"
        local maxlinewidth=$(echo "$linewidths" | sed -n '1p')
        linewidths=$(echo "$linewidths" | sed '1d')

        local centercommands=""
        local linewidth=""
        for linewidth in $(echo "$linewidths"); do
            local left=${maxlinewidth:0:(${#maxlinewidth}-${#linewidth})/4*2}
            local right=${maxlinewidth:0:(${#maxlinewidth}-${#linewidth}-${#left})}
            centercommands+="s/^(${linewidth})$/$left\1$right/; "
        done
        thelines=$(echo "$thelines" | sed -E "$centercommands s/\./0/g")
        [[ -d "/tmp/$folder" ]] || mkdir -p "/tmp/$folder"
        printf "01%04x%04x$thelines" $((${#maxlinewidth} / 2)) $(echo "$thelines" | wc -l) | xxd -p -r > "/tmp/$folder/disk_label$suffix"
        sudo cp "/tmp/$folder/disk_label$suffix" "$folder/.disk_label$suffix"
        [[ -f $folder/.disk_label.contentDetails ]] && sudo touch $folder/.disk_label.contentDetails
        #sudo bless --folder "$folder" --labelfile "/tmp/$folder/disk_label$suffix"
        #dump_label "$folder/.disk_label$suffix"
    done
}

You run it like this (add a linefeed between lines):
makemultilinedisklabel "/Volumes/ElCapitan/System/Library/CoreServices" "ElCapitan"$'\n'"10.11.6"
 

joevt

macrumors 604
Jun 21, 2012
6,968
4,262
AFAIK, no. MP5,1 firmware will totally ignore the option ROM on the TB card for boot purposes.
Do TB add-in cards have option roms? The rom they do have is the firmware that runs in the Thunderbolt controller, and is probably not EFI code that runs on the computer's CPU?

Anyway, you need an XHCi EFI driver that works in the Mac Pro to boot from a USB Device connected to the USB-C port of a Thunderbolt card.
To boot from a Thunderbolt device instead of a USB device requires the Mac Pro's EFI to enumerate PCI devices on the downstream Thunderbolt devices.
There is code on github for XHCI EFI drivers and Thunderbolt EFI drivers but I've never checked if they could work on the Mac Pro (probably require modification).
 

tsialex

Contributor
Jun 13, 2016
13,455
13,601
Do TB add-in cards have option roms? The rom they do have is the firmware that runs in the Thunderbolt controller, and is probably not EFI code that runs on the computer's CPU?

Anyway, you need an XHCi EFI driver that works in the Mac Pro to boot from a USB Device connected to the USB-C port of a Thunderbolt card.
To boot from a Thunderbolt device instead of a USB device requires the Mac Pro's EFI to enumerate PCI devices on the downstream Thunderbolt devices.
There is code on github for XHCI EFI drivers and Thunderbolt EFI drivers but I've never checked if they could work on the Mac Pro (probably require modification).
There are two SPI flashes, I'm assuming that one is the TB controller firmware and the second is an option ROM, someone correct me please.

Anyway, you have to modify the MP5,1 EFI to enable enumeration and boot support from the TB side, along the way Apple did with NVMe, currently the EFI firmware ignore it at all.
 
  • Like
Reactions: JedNZ

joevt

macrumors 604
Jun 21, 2012
6,968
4,262
There are two SPI flashes, I'm assuming that one is the TB controller firmware and the second is an option ROM, someone correct me please.
Has anyone dumped the other SPI flash? Looking at that might be the easiest way to see if it's a PCI option rom since PCI option roms need to follow a specific structure.

You can do sudo lspci -nnvvvxxx > lspci.txt and search for Expansion ROM. But devices can hide their expansion rom.
You can do ioreg -flw0 > ioreg.txt and egrep for phys\.hi: [0-9A-F]{6}3[08] but devices that showed an expansion rom in lspci might not show it in ioreg.
 

joevt

macrumors 604
Jun 21, 2012
6,968
4,262
The contents of the blue and green rom chips both appear to be TPS65983 related and not PCI. The blue chip appears to have more stuff in it. The blue chip has an older firmware for the TPS65983. The blue chip has all the thunderbolt sections (DROM etc).
 

hwojtek

macrumors 68020
Jan 26, 2008
2,274
1,277
Poznan, Poland
Would it be the same font used by the bless command in Catalina to make the .disk_label_2x file?
I believe the bless command doesn't "use" any particular font, as it is just a terminal command, Finder shows the contents of the .disk_label_2x in whatever font it its supposed to display it in... Isn't the weight of the typeface too heavy for boot screen? I think Finder shows bold, and the boot screen uses regular.
 

joevt

macrumors 604
Jun 21, 2012
6,968
4,262
I believe the bless command doesn't "use" any particular font, as it is just a terminal command, Finder shows the contents of the .disk_label_2x in whatever font it its supposed to display it in... Isn't the weight of the typeface too heavy for boot screen? I think Finder shows bold, and the boot screen uses regular.
The disk label is a 8 bit greyscale bit map. Use the dump_label command to show what it looks like.

The Finder does not use the .disk_label files. It uses the name of the volume. Only the Startup Manager uses the disk label files.

The font used by bless is different for different macOS versions. It is different than what the Startup Manager uses in cases where a disk label does not exist (like the default strings "Windows" or "EFI Boot"). The font used by Catalina is slightly more bold than the default Startup Manager font.

However, macOS creates disk labels automatically, so the font it uses can be considered the font that is used by the Startup Manager.
 
  • Like
Reactions: hwojtek

leoaf79

macrumors member
Mar 28, 2013
51
7
Thank you for sharing the NdkBootPicker.


Thanks for sharing the NdkBootPicker. Looks great and works well. For those who would like iconic images of their Mac OS as their icons I have attached a zip file of icons for High Sierra, Mojave and Catalina and a dark version of the pointer to drop into the Ndk Icons folder. The dark version of the pointer shows up well on a light background. Just rename your old pointer.png to pointer_light.png and place pointer.png in the Ndk Icons folder too.

View attachment 911042 .

In my case, both mojave and catalina got the same icon, os_mac.icns.
 

TheSwissMatrix

macrumors newbie
May 3, 2020
8
1
Hi guys
So first of all thanks to all who post their important experiences here. These entries helped me a lot to install and configure OpenCore on my system.
But I still have some questions about the current OC 0.5.8 and the NdkBootPicker:
1. i use a 49 inch screen with the resolution 3840x1080 and i only get a distorted picture. Is there a way to change this?
2. i can't use any icons i have created and only a border is displayed. I have tried exactly as described in the post #1.803.
3. I tried to enable hardware acceleration and I can only enable HEVC, not H264, which I use most.

I look forward to your answers.
 

Attachments

  • Bildschirmfoto 2020-05-03 um 13.24.07.png
    Bildschirmfoto 2020-05-03 um 13.24.07.png
    513.4 KB · Views: 136

h9826790

macrumors P6
Apr 3, 2014
16,656
8,587
Hong Kong
Hi guys
So first of all thanks to all who post their important experiences here. These entries helped me a lot to install and configure OpenCore on my system.
But I still have some questions about the current OC 0.5.8 and the NdkBootPicker:
1. i use a 49 inch screen with the resolution 3840x1080 and i only get a distorted picture. Is there a way to change this?
2. i can't use any icons i have created and only a border is displayed. I have tried exactly as described in the post #1.803.
3. I tried to enable hardware acceleration and I can only enable HEVC, not H264, which I use most.

I look forward to your answers.
3840x1080 is fine with my Radeon VII.
0.1.9 edit.png


Are you using direct Display Port connection?
 
  • Like
Reactions: t8er8 and Alex-IN

h9826790

macrumors P6
Apr 3, 2014
16,656
8,587
Hong Kong
You can give your EFI?
My own config is customised, which may not fit for your cMP.

My public EFI folder is at here.
 

h9826790

macrumors P6
Apr 3, 2014
16,656
8,587
Hong Kong
Cut the picture out from the Mac Pro Apple Technician Guide, make the PNG icons, and replace the associated pictures inside Assets.car
 

TheSwissMatrix

macrumors newbie
May 3, 2020
8
1
3840x1080 is fine with my Radeon VII.
View attachment 911699

Are you using direct Display Port connection?

I have just loaded your EFI folder and checked everything again.
The HW acceleration for H264 I managed to get with the NVRAM boot args shikigva=80. I had this value set to 96 as in the HW acceleration thread describe.

Also I have working icons now and the only thing missing is the correct display with 3840x1080.
I compared your config with mine and we have exactly the same values except for the kernel patch (IONVMeFamily Patch#External).
Can you tell me what this patch is for?
The display problem; Could it be that my graphics card (Radeon Pro WX9100), which has a Vegachip 10, is completely different?

Yes I use direct display port, because my graphics card has only display ports and six of them.
 

Attachments

  • Bildschirmfoto 2020-05-03 um 18.40.54.png
    Bildschirmfoto 2020-05-03 um 18.40.54.png
    143.5 KB · Views: 121
  • 9FA2678E-5375-4C8E-B5BC-E815FCC63FC1_1_201_a.jpeg
    9FA2678E-5375-4C8E-B5BC-E815FCC63FC1_1_201_a.jpeg
    162.1 KB · Views: 156
  • 19C567EB-BB94-4E31-B927-C65C882CBD9F_1_201_a.jpeg
    19C567EB-BB94-4E31-B927-C65C882CBD9F_1_201_a.jpeg
    418.7 KB · Views: 143

h9826790

macrumors P6
Apr 3, 2014
16,656
8,587
Hong Kong
I have just loaded your EFI folder and checked everything again.
The HW acceleration for H264 I managed to get with the NVRAM boot args shikigva=80. I had this value set to 96 as in the HW acceleration thread describe.

Also I have working icons now and the only thing missing is the correct display with 3840x1080.
I compared your config with mine and we have exactly the same values except for the kernel patch (IONVMeFamily Patch#External).
Can you tell me what this patch is for?
The display problem; Could it be that my graphics card (Radeon Pro WX9100), which has a Vegachip 10, is completely different?

Yes I use direct display port, because my graphics card has only display ports and six of them.
You may try force the resolution to 3840x1080
Screenshot 2020-05-04 at 8.07.39 AM.png


But if your WX9100's GOP can't do that, then nothing we can do.

For your info, debug mode can log all the available resolutions.
Screenshot 2020-05-04 at 8.14.19 AM.png


You better use a USB drive to test this resolution settings. In case that cause black screen or system hang, you can simply remove the USB drive and use your current setup.

That NVMe patching is to make it shows up as internal drive.
 
Last edited:

dataid

macrumors regular
Feb 1, 2020
100
66
USA
In my case, both mojave and catalina got the same icon, os_mac.icns.
In my case, both mojave and catalina got the same icon, os_mac.icns.

When properly named there will be separate icons for High Sierra: os_mac.icns, Mojave: os_moja.icns and Catalina: os_cata.icns. Check the naming of the icons in your EFI/EFI/OC/Icons folder.

Attached is a screenshot of my NDK-BootPicker screen showing High Sierra, Mojave and Catalina.

There are two functions available at the boot screen which are not apparent.
1. If you do not let the BootPicker timeout you can press the F10 key to capture a screenshot which is stored in EFI/EFI.
To retrieve the screenshot, after booting, determine which disk has the EFI partition of your operating system, use: diskutil list
Mine is on disk0s1
then mount the EFI partition: sudo diskutil mount /dev/disk0s1
Use Finder to locate the screenshot in EFI/EFI

2. Pressing the spacebar will reveal the recovery partitions, the date and time. The recovery partitions are represented by the icon os_recovery.icns for which I have chosen a hard drive with a time machine like symbol on top. Date and time are displayed in the upper right hand corner. The time is not adjusted for your timezone, it appears to be set to time.euro.apple.com

NDK BootPicker screenshot.png
NDK Boot Picker Showing Recovery Partitions.png
 
  • Like
Reactions: leoaf79

leoaf79

macrumors member
Mar 28, 2013
51
7
When properly named there will be separate icons for High Sierra: os_mac.icns, Mojave: os_moja.icns and Catalina: os_cata.icns. Check the naming of the icons in your EFI/EFI/OC/Icons folder.

Attached is a screenshot of my NDK-BootPicker screen showing High Sierra, Mojave and Catalina.

There are two functions available at the boot screen which are not apparent.
1. If you do not let the BootPicker timeout you can press the F10 key to capture a screenshot which is stored in EFI/EFI.
To retrieve the screenshot, after booting, determine which disk has the EFI partition of your operating system, use: diskutil list
Mine is on disk0s1
then mount the EFI partition: sudo diskutil mount /dev/disk0s1
Use Finder to locate the screenshot in EFI/EFI

2. Pressing the spacebar will reveal the recovery partitions, the date and time. The recovery partitions are represented by the icon os_recovery.icns for which I have chosen a hard drive with a time machine like symbol on top. Date and time are displayed in the upper right hand corner. The time is not adjusted for your timezone, it appears to be set to time.euro.apple.com

View attachment 911921 View attachment 911922

Wow, what a nice background picture. Would you share it?

So, I have to rename the drivers, right? I didn't get that before.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.