Skip to content

Commit

Permalink
update clover & kexts
Browse files Browse the repository at this point in the history
  • Loading branch information
maz-1 committed Nov 14, 2018
1 parent 6657ff2 commit 6b5b8ef
Show file tree
Hide file tree
Showing 681 changed files with 13,854 additions and 9,852 deletions.
Binary file modified CLOVER/.DS_Store
100644 → 100755
Binary file not shown.
Binary file added CLOVER/ACPI/.DS_Store
Binary file not shown.
Binary file added CLOVER/ACPI/patched/.DS_Store
Binary file not shown.
Binary file removed CLOVER/ACPI/patched/SSDT-XHC.aml
Binary file not shown.
Binary file modified CLOVER/CLOVERX64.efi
Binary file not shown.
801 changes: 801 additions & 0 deletions CLOVER/OEM/SystemProductName/UEFI/config-sample.plist

Large diffs are not rendered by default.

801 changes: 801 additions & 0 deletions CLOVER/OEM/SystemProductName/config-sample.plist

Large diffs are not rendered by default.

800 changes: 649 additions & 151 deletions CLOVER/config.plist

Large diffs are not rendered by default.

Binary file added CLOVER/doc/HowToFixDsdt.txt
Binary file not shown.
41 changes: 41 additions & 0 deletions CLOVER/doc/HowToInstallOSX.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@


==========================================================================================================================

How to install InstallESD.dmg to GPT with 10.7.x and 10.8.x. (since rev. 480)
----------------------------------------------------------------


First, you need to Restore InstallESD.dmg to disk by using Disk Utility.

Then, follow the stage 1 and stage 2 to install 10.7.x or 10.8.x to GPT, and auto-create the Recovery HD used for iCloud.


Stage 1
---------

1.Remove kernelcache in InstallESD.dmg/Library/Preferences/SystemConfiguration/com.apple.Boot.plist.
<key>Kernel Cache</key> remove this line.
<string>xxxxxxxxxxxxx</string> remove this line.

2.Copy BaseSystem.dmg/System/Library/Extensions to partition of InstallESD.dmg and add other kexts (FakeSMC.kext).

3.Clover select to "Boot Mac OS X with extra kexts (skips cache)", and follow the installation with restart first time.


Stage 2
---------

1.Remove kernelcache in target partition's /OS X Install Data/com.apple.Boot.plist.
<key>Kernel Cache</key> remove this line.
<string>xxxxxxxxxxxxx</string> remove this line.
( 10.7.x is /Mac OS X Install Data/com.apple.Boot.plist )

2.Copy InstallESD.dmg/System/Library/CoreServices and /mach_kernel to target partition's / .

3.Copy BaseSystem.dmg/System/Library/Extensions to target partition's / and add other kexts (FakeSMC.kext).

4.Boot to "OS X Install" with "Boot Mac OS X with extra kexts (skips cache)" and finish the installation.
(10.7.x is "Mac OS X Install")

==========================================================================================================================
265 changes: 265 additions & 0 deletions CLOVER/doc/UEFI boot with Clover.rtf
Original file line number Diff line number Diff line change
@@ -0,0 +1,265 @@
{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360
{\fonttbl\f0\froman\fcharset0 Times-Roman;\f1\fmodern\fcharset0 CourierNewPSMT;\f2\fmodern\fcharset0 Courier;
\f3\fnil\fcharset0 LucidaGrande;}
{\colortbl;\red255\green255\blue255;\red26\green26\blue26;\red253\green209\blue195;\red48\green75\blue109;
\red248\green252\blue253;\red255\green255\blue255;}
\paperw11900\paperh16840\margl1440\margr1440\vieww15340\viewh12400\viewkind0
\deftab720
\pard\pardeftab720\sl320\ql\qnatural

\f0\b\fs32 \cf0 UEFI boot with Clover
\b0\fs26 \
\pard\pardeftab720\sl380\ql\qnatural
\cf0 by Dmazar\
\
As a general procedure, it would be good to get standard Clover working first (BIOS MBR -> boot0->boot1->boot->CloverX64.efi) and then try direct UEFI (UEFI -> CloverX64.efi). I think this is a good path, since if you manage to get standard Clover working, then you know that things are set up properly (Clover config, SMBIOS, DSDT) and any issues that may arise in UEFI boot and UEFI specific. I'll try to summarize here what I know so far.\
\
For UEFI boot, I would recommend to first try it from FAT32 formatted USB stick.\
\
\pard\pardeftab720\sl380\ql\qnatural

\b \cf0 1. FAT32 USB stick:
\b0 \
I have mine formatted in Windows. Ordinary MBR with FAT32 partition. Now, if I understood correctly from Applelife.ru, Troj80 says {\field{\*\fldinst{HYPERLINK "http://translate.googleusercontent.com/translate_c?hl=hr&rurl=translate.google.com&sl=ru&tl=en&u=http://applelife.ru/threads/clover.32052/page-277&usg=ALkJrhiPS1lblaqIqyMzBlyocfjOebKkrA#post-289584"}}{\fldrslt \cf2 \ul \ulc2 here}} that EFI partition (which is also usually FAT32) has to be formatted with the cluster size with the value between 1K and 8K in order to be usable from UEFI. Maybe the same thing should be done with the USB stick? I did not try formatting it in OSX - will have to try. Something like:\
\pard\pardeftab720\sl380\ql\qnatural

\f1 \cf0 > newfs_msdos -F32 -b 1024 -v USBStick /dev/diskHsH
\f0 \
where /dev/diskHsH is partition on the stick.\
\
My USB stick formatted in Windows looks like this:\
\pard\pardeftab720\sl380\ql\qnatural

\b \cf0 \cb3 CODE\
\pard\pardeftab720\sl380\ql\qnatural
\f2\b0 \cf4 \cb5 > diskutil list\
/dev/disk4\
\'a0\'a0 #:\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0 TYPE NAME\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0SIZE\'a0\'a0\'a0\'a0\'a0\'a0 IDENTIFIER\
\'a0\'a0 0:\'a0\'a0\'a0\'a0 FDisk_partition_scheme\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0*4.0 GB\'a0\'a0\'a0\'a0 disk4\
\'a0\'a0 1:\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0 DOS_FAT_32 DUET\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a04.0 GB\'a0\'a0\'a0\'a0 disk4s1\
> newfs_msdos -N disk4s1\
512 bytes per physical sector\
/dev/rdisk4s1: 7816248 sectors in 977031 FAT32 clusters (4096 bytes/cluster)\
bps=512 spc=8 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=2 drv=0x80 bsec=7831550 bspf=7634 rdcl=2 infs=1 bkbs=6\
\pard\pardeftab720\sl380\ql\qnatural

\f0 \cf0 \cb1 \
\pard\pardeftab720\sl380\ql\qnatural

\b \cf0 2. Standard Clover install
\b0 \
This is BIOS MBR -> boot0 -> boot1xxx -> boot ->CloverX64.efi boot.\
You may skip this step and go directly to UEFI boot, but in case of any issues please go back and do this prior to asking help for UEFI boot. This is to eliminate problems with Clover installation and set up. I can try to help with UEFI boot, but It's easier and more likely to get help on standard Clover setup - ask for help in {\field{\*\fldinst{HYPERLINK "http://www.projectosx.com/forum/index.php?showtopic=2304"}}{\fldrslt \cf2 \ul \ulc2 Clover thread}}.\
\
Take the Clover installer from {\field{\*\fldinst{HYPERLINK "http://www.projectosx.com/forum/index.php?showtopic=2304"}}{\fldrslt \cf2 \ul \ulc2 here}} and set it up on FAT32 USB stick. Then edit /EFI/config.plist to suit your needs, put DSDT (and SSDTs) in /EFI/ACPI/patched folder and leave /EFI/Drivers64 empty. Do classic boot from that USB stick. When this works, move to UEFi boot.\
\

\b 3. UEFI boot
\b0 \
That USB stick should have standard Clover installation. The same stick with the same Clover files from step 2. can be used here, except some additional drivers and (U)EFI shell are needed :\
\pard\pardeftab720\sl380\ql\qnatural

\b \cf0 \cb3 CODE\
\pard\pardeftab720\sl380\ql\qnatural
\f2\b0 \cf4 \cb5 /EFI\
\'a0\'a0config.pist (or in OEM folder)\
\'a0\'a0/ACPI (or in OEM folder)\
\'a0\'a0\'a0\'a0...\
\'a0\'a0/BOOT\
\'a0\'a0\'a0\'a0BootX64.efi\
\'a0\'a0\'a0\'a0CloverX64.efi\
\'a0\'a0/DRIVERS64\
\'a0\'a0\'a0\'a0HFSPlusX64.efi (or VBoxHfs.efi)\
\'a0\'a0\'a0\'a0OsxFatBinaryDrv.efi\
\'a0\'a0\'a0\'a0OsxAptioFixDrv.efi - this one only for Aptio boards\
...\
\pard\pardeftab720\sl380\ql\qnatural

\f0 \cf0 \cb1 \
/EFI/BOOT/BootX64.efi can be:\
- copied CloverX64.efi, but if it hangs ({\field{\*\fldinst{HYPERLINK "http://www.projectosx.com/forum/index.php?showtopic=2428&st=220"}}{\fldrslt \cf2 \ul \ulc2 see here}}), then it should be shell\
- in case of UEFI v2.3 this can be UEFI Shell (also known as edk2 shell, shell2): {\field{\*\fldinst{HYPERLINK "https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/ShellBinPkg/UefiShell/X64/"}}{\fldrslt \cf2 \ul \ulc2 here}}\
- in case of older UEFIs, this should be older EFI shell (also known as edk1 shell or it's port to GCC called GccShell): {\field{\*\fldinst{HYPERLINK "http://sourceforge.net/projects/efi-shell/files/"}}{\fldrslt \cf2 \ul \ulc2 here}}\
\
Drivers64:\
- HFSPlusX64.efi (or VBoxHfs.efi) for HFS+ support\
- OsxFatBinaryDrv.efi for multi architecture (FatBin) binaries like boot.efi\
- OsxAptioFixDrv.efi (this one only for Aptio boards)\
\
Modify Clover's /EFI/config.plist:\
- to be able to boot Mountain Lion add slide=0 to boot-args. this option will be ignored by other version of OSX, but will (oh, may) enable ML booting. for example:\
\pard\pardeftab720\sl380\ql\qnatural

\f1 \cf0 <key>boot-args</key>\
<string>-v arch=x86_64 slide=0</string>\
\pard\pardeftab720\sl380\ql\qnatural

\f0 \cf0 \
Booting from that USB stick on my board goes like this:\
- power on\
- pressing F8 during POST screen shows boot options (like drive selection)\
- if USB stick is FAT32 and contains /efi/boot/bootx64.efi, then option "UEFI: The name of the stick" will appear as a boot option\
- selecting that option starts /efi/boot/bootx64.efi - which is shell or Clover\
\
On Aptio boards you can also put shell to the root folder as ShellX64.efi, and then can start it from UEFI Setup screen/Exit/Start shell (or something similar).\
\
If bootx64.efi is a shell, then shell will start and prompt will appear. Use the commands in 4. below to start Clover. Unless you know what you are doing and why, there is no need to load any drivers before starting Clover - Clover will load drivers from /efi/drivers64 folder when it starts.\
\
\pard\pardeftab720\sl380\ql\qnatural

\b \cf0 4. (U)EFI Shell
\b0 \
EFI shell (old shell) user guide and command manual: {\field{\*\fldinst{HYPERLINK "http://sourceforge.net/projects/efi-shell/files/documents/"}}{\fldrslt \cf2 \ul \ulc2 here}}\
\pard\pardeftab720\sl380\ql\qnatural

\f1 \cf0 > help -b
\f0 \
list shell commands\

\f1 > help <command> -b\
> help <command> -b -v
\f0 \
prints command help. in the shell2 use later version.\

\f1 > ver
\f0 \
will print UEFI version\

\f1 > map fs*
\f0 \
will list current shell file system/volume/partition mappings\

\f1 > fs0:\
> fs1:\
> fsXX:
\f0 \
changes the current volume\

\f1 > ls
\f0 \
lists files in the current directory\

\f1 > cd \\efi\\boot
\f0 \
changes the current directory\

\f1 > cloverx64.efi
\f0 \
starts clover\
\
So, find and start Clover and try to boot OSX. When you get that working, then you can install Clover to a hard disk.\
\
\pard\pardeftab720\sl380\ql\qnatural

\b \cf0 5. Install to HDD EFI partition
\b0 \
By default, UEFI can only access FAT partitions, for example EFI partition(s), so the only option is to install it to EFI partition.\
\
My EFI partition created by SnowLeo installation is FAT16. Clover works from there, but sometimes I have problems with certain files - they get short XXXX~1.yyy names. I need to try to reformat it to FAT32 as Troj80 suggested and see if this helps.\
\
Installation requires copying /EFI folder from USB stick to EFI partition and adding CloverX64.efi as a boot option.\
\
\pard\pardeftab720\sl380\ql\qnatural
\cf0 \ul \ulc0 5.1.1 copying from the shell\ulnone \
Use:\
\pard\pardeftab720\sl380\ql\qnatural

\f1 \cf0 > map fs*\
> fs0:\
> ls\
> fs1:\
...\
\pard\pardeftab720\sl380\ql\qnatural

\f0 \cf0 to identify USB volume (for example fs1) and EFI volume (for example fs0). Use:\
\pard\pardeftab720\sl380\ql\qnatural

\f1 \cf0 > fs0:\
> cd \\EFI\
> cp -r fs1:\\EFI\\* .\
> ls\
\pard\pardeftab720\sl380\ql\qnatural

\f0 \cf0 \
\pard\pardeftab720\sl380\ql\qnatural
\cf0 \ul \ulc0 5.1.2 copying from OSX\ulnone \
- open terminal\
- mount EFI partition\
\pard\pardeftab720\sl380\ql\qnatural

\f1 \cf0 > diskuti list
\f0 \
to identify EFI partition, and\

\f1 > mkdir /Volumes/efi\
> sudo mount -t msdos /dev/diskXs1 /Volumes/efi
\f0 \
to mount it (where /dev/diskXs1 is EFI partition device).\
- it should appear in Finder as EFI volume\
- then use Finder to copy whole /EFI folder to EFI volume\
- check it from terminal:\

\f1 > ls /Volumes/efi/EFI/*
\f0 \
this should list ACPI, BOOT and other Clover folders.\
\
\pard\pardeftab720\sl380\ql\qnatural
\cf0 \ul \ulc0 5.2 Add Clover as a boot option\ulnone \
On Aptio, it's not enough to rename Cloverx64.efi on HDD to BootX64.efi to enable it to start ({\field{\*\fldinst{HYPERLINK "http://www.projectosx.com/forum/index.php?showtopic=2428&st=100&p=18177&#entry18177"}}{\fldrslt \cf2 \ul \ulc2 see here}}). But it seems that's what you need to do on Gigabyte Hybrid EFI. Standard procedure for adding an OS boot option in UEFI is to add boot option variable to NVRAM - that's what is needed on Aptio.\
\
Boot options can be managed with
\f1 bcfg
\f0 command in a shell. But, this command is available only in UEFI shell (shell2) and since shell2 requires UEFI 2.3 or newer, users with older UEFI have a problem. If you are the "lucky" one with older UEFI where shell2 does not work, try with my modified shell2 from {\field{\*\fldinst{HYPERLINK "http://dl.dropbox.com/u/17629062/Shell2.zip"}}{\fldrslt \cf2 \ul \ulc2 here}}. This is not fully working port, but bcfg works and I'm using it only for boot options manipulation with bcfg.\
\
Users of UEFI 2.3 or newer can put shell2 to FAT32 USB stick as /efi/boot/bootx64.efi and just use this one. Since I need old shell for normal use and moded shell2 for bcfg, I have old shell set as /efi/boot/bootx64.efi and moded shell2 as /shellx64.efi (in the root of USB) - in this way I can press F8 during POST and choose "UEFI: stick name" to load older shell or press Del to enter UEFI Setup screens and then select Exit/Start shell to load moded shell2. Actually, I have both shells copied to HDD EFI partition and added as separate boot options, but that can be done later.\
\
Boot into shell2 (real one or moded) and find Cloverx64.efi on HDD EFI partition with some combination of the following commands:\
\pard\pardeftab720\sl380\ql\qnatural

\f1 \cf0 > map fs*\
> fs0: (or fs1: or fs2: ...)\
> ls\
> cd \\efi\\boot\
> ls\
\pard\pardeftab720\sl380\ql\qnatural

\f0 \cf0 \
And then:\
\pard\pardeftab720\sl380\ql\qnatural

\f1 \cf0 > help bcfg -b -v
\f0 \
and try to understand help from the screen\

\f1 > bcfg boot dump
\f0 \
to list current boot options\

\f1 > bcfg boot add N cloverx64.efi "OSX through Clover"
\f0 \
to add cloverx64.efi from the current dir as a boot option labeled "OSX through Clover". N should be boot option number: 0 if you wan it to be the first, 1 to be the second ...\

\f1 > bcfg boot dump
\f0 \
to check if it is added\

\f1 > reset
\f0 \
to reset the system and to try to load Clover from HDD\
\
When it is added, reset the system and press F8 during POST (or whatever key is needed to get selection of boot options) and "OSX through Clover" should be there. Select it and try if it works.\
\
\pard\pardeftab720\sl380\ql\qnatural

\b \cf0 6. Troubleshooting
\b0 \
- If you can not boot through UEFI and did not try to set it up as standard Clover boot, please try standard BIOS MBR Clover setup first. Maybe the issue is in the Clover setup and not UEFI boot.\
- When asking for help, please copy UEFIDump.nsh script to your FAT32 USB, boot into shell, choose FAT32 volume with fs0: or fs1: or ... , execute UEFIDump.nsh > dump.txt and post it here.\
\
- If you can boot into OSX but have some issues, search for latest version of DarwinDumper {\field{\*\fldinst{HYPERLINK "http://www.projectosx.com/forum/index.php?showtopic=2447"}}{\fldrslt \cf2 \ul \ulc2 here}} (usually the last post) and post it's logs here if it will be needed.\
\pard\pardeftab720\sl280\qr

\f3\fs22 \cf2 \cb6 \
}
Binary file added CLOVER/doc/bcfg.txt
Binary file not shown.
26 changes: 26 additions & 0 deletions CLOVER/doc/boot1f32-install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/sh

# boot1f32-install.sh
#
# Created by mackerintel on 2/2/09.
# Copyright 2009 mackerintel. All rights reserved.

if [[ x$1 == x ]]; then
echo Usage: $0 disknumber;
exit 0;
fi

if [[ `dd if=/dev/disk${1}s1 count=8 bs=1 skip=82 | uuencode -m -|head -n 2|tail -n 1` != "RkFUMzIgICA=" ]]; then
echo "/dev/disk${1}s1" "isn't" a FAT32 partition;
exit 1;
fi

if [ ! -f boot1f32 ]; then
echo "boot1f32 not found";
exit 1;
fi

dd if=/dev/disk${1}s1 count=1 bs=512 of=/tmp/origbs
cp boot1f32 /tmp/newbs
dd if=/tmp/origbs of=/tmp/newbs skip=3 seek=3 bs=1 count=87 conv=notrunc
dd of=/dev/disk${1}s1 count=1 bs=512 if=/tmp/newbs
Binary file modified CLOVER/drivers64UEFI/DataHubDxe-64.efi
Binary file not shown.
Binary file modified CLOVER/drivers64UEFI/FSInject-64.efi
Binary file not shown.
Binary file removed CLOVER/drivers64UEFI/SMCHelper-64.efi
Binary file not shown.
Binary file added CLOVER/drivers64UEFI/VirtualSmc.efi
Binary file not shown.
Binary file modified CLOVER/kexts/.DS_Store
100644 → 100755
Binary file not shown.
Loading

0 comments on commit 6b5b8ef

Please sign in to comment.