Jump to content
Micky1979

Build_Clover.command, another Script to build standard Clover (or customized)

2,101 posts in this topic

Recommended Posts

Advertisement

Yeah, you are correct, that is tool not needed, only GenPage and EfiLdrImage are. However, the problem is now that those binaries are needed for multiple platforms, they were built automatically before when you setup edk2. So I think that requiring that the edk2 branch be UDK2018 for building the legacy firmware be required is the best approach. Building UEFI only can still happen on the master. Otherwise, they need to be built on the platform or we restrict building the legacy firmware to a specific platform, maybe even version, of macOS. This is just too much work to be reasonable as then we'd have to maintain and support those tools as well.

 

EDIT: Changed UDK2017 to UDK2018.

Edited by apianti

Share this post


Link to post
Share on other sites

The problem is they are built for the platform you are on when you setup edk2. We could move them into the clover repo but if you look at the commit I linked that removed them, they are built differently for macOS, windows, and linux. So we would have to add the step to make sure they are built, so it is probably just easier to only build the legacy firmware on the condition of using the UDK2018 branch of edk2.

 

EDIT: Forgot to mention that they can't even be built in windows, they need cygwin, they have a special repository for the win32 binaries.

EDIT2: I keep writing UDK2017 but I meant UDK2018.

Edited by apianti

Share this post


Link to post
Share on other sites

We also can keep BaseTools/Sources in our Patches_for_EDK2. Anticommit or antiupdate :)

Clover repo already contains numerous sources that double EDK2 to prevent them from EDK group's quest on the meaning of life.

Share this post


Link to post
Share on other sites
5 hours ago, Slice said:

We also can keep BaseTools/Sources in our Patches_for_EDK2. Anticommit or antiupdate :)

Clover repo already contains numerous sources that double EDK2 to prevent them from EDK group's quest on the meaning of life.

This work: Patches_for_EDK2.zip (against sf r28473 or github a5274cd which seems to be ahead and sf not yet synchronized) with the missing stuff. Makefile udjusted. I left there BootSectImage and GnuGenBootSector but I'm going to try w/o them.

Should we patch UDK2018 as well? Should work I guess as is...

 

EDIT 

lighter solution w/o BootSectImage and GnuGenBootSector:

Patches_for_EDK2.zip

 

17 hours ago, apianti said:

No, the DuetPkg was only needed for one library which has now been moved into the clover repo. Only those tools are needed.

Yep, but when Slice said "without Duet dependencies" I thought just without the legacy firmware. Later I see the commit.

Edited by vector sigma
lighter solution

Share this post


Link to post
Share on other sites
19 minutes ago, Slice said:

I committed this. Hope it will works for those who use updated EDK2.

Also GenVtf was removed in latest commits, apart that, I can't see commits that prevent Clover to be up and running, so r28473 should be used instead of 28338.

I mean from source forge svn

Share this post


Link to post
Share on other sites
28 minutes ago, vector sigma said:

Also GenVtf was removed in latest commits, apart that, I can't see commits that prevent Clover to be up and running, so r28473 should be used instead of 28338.

I mean from source forge svn

I see no usage for this application

 

Quote

GenVtf.exe - generate the Boot Strap File (AKA Volume Top File, or VTF) for IPF images

 

Share this post


Link to post
Share on other sites
10 minutes ago, Slice said:

I see no usage for this application

was just to mention changes and to avoid mixed stuff in BaseTools with new patches (I had to remove it from BaseTools/C/GNUmakefile), i.e "update" and re-patch it :)

Edited by vector sigma
typo

Share this post


Link to post
Share on other sites

BaseTools/Source/C/Makefile is missing from that patch. And that tool GenVtf was removed with IPF support, which is Itanium, the most dead of dead platforms. lol

Edited by apianti

Share this post


Link to post
Share on other sites
6 minutes ago, apianti said:

BaseTools/C/Makefile is missing from that patch. And that tool GenVtf was removed with IPF support, which is Itanium, the most dead of dead platforms. lol

I was speaking about BaseTools/Source/C/GNUmakefile, anyway I removed it from the copy I used (with Duet) :)

Edited by vector sigma

Share this post


Link to post
Share on other sites
9 minutes ago, apianti said:

Yes I know, I was saying the file BaseTools/Source/C/Makefile (I wrote it wrong in my initial post but fixed it) is not in the patch but needs to be.

Is used in Windows? I followed your advice..

 

20 hours ago, apianti said:

EDIT: Forgot to mention that they can't even be built in windows, they need cygwin, they have a special repository for the win32 binaries.

..or I missunderstood you. Later I'll add it back

Edited by vector sigma

Share this post


Link to post
Share on other sites
Just now, apianti said:

 

No. It is for cygwin and some distributions of linux/unix. https://www.gnu.org/software/make/manual/html_node/Makefile-Names.html

it is ok the following:

## @file
# Windows makefile for C tools build.
#
# Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution.  The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
HOST_ARCH = IA32

!INCLUDE Makefiles\ms.common

LIBRARIES = Common
APPLICATIONS = \
  BrotliCompress \
  EfiLdrImage \
  EfiRom \
  GenCrc32 \
  GenFfs \
  GenFv \
  GenFw \
  GenPage \
  GenSec \
  LzmaCompress \
  Split \
  TianoCompress \
  VolInfo \
  VfrCompile \
  DevicePath

all: libs apps install

libs: $(LIBRARIES)
	@echo.
	@echo ######################
	@echo # Build libraries
	@echo ######################
	@if not exist $(LIB_PATH) mkdir $(LIB_PATH)
	@Makefiles\NmakeSubdirs.bat all $**

apps: $(APPLICATIONS)
	@echo.
	@echo ######################
	@echo # Build executables
	@echo ######################
	@if not exist $(BIN_PATH) mkdir $(BIN_PATH)
	@Makefiles\NmakeSubdirs.bat all $**

install: $(LIB_PATH) $(BIN_PATH)
	@echo.
	@echo ######################
	@echo # Install to $(SYS_LIB_PATH)
	@echo # Install to $(SYS_BIN_PATH)
	@echo ######################
	@-xcopy $(LIB_PATH)\*.lib $(SYS_LIB_PATH) /I /D /E /F /Y > NUL 2>&1
	@-xcopy $(BIN_PATH)\*.exe $(SYS_BIN_PATH) /I /D /E /F /Y > NUL 2>&1
  @-xcopy $(BIN_PATH)\*.bat $(SYS_BIN_PATH) /I /D /E /F /Y > NUL 2>&1

.PHONY: clean
clean:
  @Makefiles\NmakeSubdirs.bat clean $(LIBRARIES) $(APPLICATIONS)

.PHONY: cleanall
cleanall:
  @Makefiles\NmakeSubdirs.bat cleanall $(LIBRARIES) $(APPLICATIONS)

!INCLUDE Makefiles\ms.rule

?

anyway looks a windows only stuff

Share this post


Link to post
Share on other sites

I just said it's for cygwin. I guess they removed the linux/unix support from it, I haven't looked for a while but you included the subdirectory Makefiles so it makes no sense not to include that one.

Share this post


Link to post
Share on other sites
2 minutes ago, vector sigma said:

mmmh. Now I'm pretty sure is useless Lol

 

Why's that? You don't think a ton of windows apps are still 32bit? Because they are.

Share this post


Link to post
Share on other sites
1 minute ago, apianti said:

 

Why's that? You don't think a ton of windows apps are still 32bit? Because they are.

I have it but didn't use so much, only that confirm that file wasn't touched for years, I guess. nothing else

Share this post


Link to post
Share on other sites

This is the first changes they have made to base tools in a very long time, pretty sure most of the other makefiles haven't been touched in like eight or nine years.

 

EDIT: Also just confirmed that my base tools binaries in windows are 32bit.

Edited by apianti

Share this post


Link to post
Share on other sites
================================================================================
Downloading Clover, using the latest revision
                             <--------------------------------------------------
Unable to get latest Clover revision, check your internet connection or try later.

 

Share this post


Link to post
Share on other sites
40 minutes ago, SavageAUS said:

================================================================================
Downloading Clover, using the latest revision
                             <--------------------------------------------------
Unable to get latest Clover revision, check your internet connection or try later.

 

 

I use Build_Clover.command v4.9.5: at instant, all works fine for Clover. New little issue with SourceForge?.

Share this post


Link to post
Share on other sites
 
I use Build_Clover.command v4.9.5: at instant, all works fine for Clover. New little issue with SourceForge?.

Yeah I think so. I’ll try again later.


Sent from my iPhone using Tapatalk

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By vit9696
      OpenCorePkg / Documentation / Configuration Template / Bugtracker   Discussion and installation should be done in a separate thread! This thread is for development only!
      Current status as of April 2019: Support for UEFI and DuetPkg (legacy) booting APFS and HFS+ compatibility ACPI patcher (adding, dropping, binary patching, relocation) Apple-compatible bless implementation DeviceProperties injection DataHub and SMBIOS generation Symbolic kext and kernel patcher Direct kext injection/patching/blocking within prelinkedkernel Installation/Recovery/FileVault 2 support  Configuration in config.plist with open documentation Simple boot picker for quick launch Direct boot from dmg images  
      Known defects live here.  
      For those, who are not familiar with the history, OpenCore is a project initially born in HermitCrabs Lab that unfortunately almost died before its birth. This release is both a rebirth and a complete rewrite of OpenCore, which brings a number of new ideas, and tries to preserve the smart moves incorporated by iNDi and his team. Other than that, I wish to express my deepest words of gratitude to Acidanthera and WWHC members: your participation was and remains the key for project success, and you are simply the best.
    • By fusion71au
      Clover r4961 ISO compiled with GCC and minimal config.plist compatible for use in VMWare Workstation.
       
      Tested with unlocked Workstation 15 running OSX 10.9 -->10.14 guest in Windows X64 host.
       
      Installation
      1. Download and unzip "EFI_Clover_r4961 for VMware.zip". Mount Clover-v2.4k-4961-X64.iso by double clicking on it.
      2. Mount your VM's EFI System Partition eg in terminal
      sudo diskutil mount disk0s1   3. Copy EFI folder from step 1 into the EFI partition
      4. Shutdown the VM, add bios.bootDelay = "3000" to your VM's vmx file
      5. Reboot your VM, press <F2> to access the VMware Boot Manager and add CLOVERX64.efi to the boot menu.
       
      Substitute your own unique and valid MLB and ROM variables in the /EFI/CLOVER/config.plist (Rt Variables section) to activate iMessage/Facetime on your VM.
    • By gengik84
      Ciro82==>>Thanks
      Uno dei tre Requisiti:
      Hack funzionante Mac vero Macchina virtuale Impostazioni Bios per il boot:
      Cercate una voce  del tipo “Sata Mode”e settatela  in AHCI
      Secure Boot: disabilitare o altri sistemi operativi
      CSM: UEFI o LEGACY, oppure a secondo del tipo di installazione
      VT-x / VT-d disable
      *Nota: Secure boot e csm valido solo per bios UEFI
      Materiale Occorrente 
      "OS X (Versione App.Store)”
      USB 8GB  *nota: nel caso di usb superiori dovrà essere partizionata, in modo da avere una partizione su cui "lavoreremo,di questa dimensione
      ShowAllfiles 
      kext Wizard 
      Bootloader Clover_2.3k_r xxx:                   http: //sourceforge.n.../cloverefiboot/
      Clover Configurator:                                    http: //mackie100proj...a.org/download/
      FakeSmc.kext:                                            https://github.com/kozlek/HWSensors/releases
      In allegato,a fondo pagina troverete un "pacchetto" contenente : ShowAllfiles, Kext Wizard, FakeSmc.kext: 
      App alternative:
      ESP Mounter Pro: per montare la partizione EFI
      Vi illustrerò tre metodi per creare la usb, ma sono ben distinti… quindi usatene soltanto uno
      Metodo 1: “Install Mac_OS_X.command” Metodo 2: “Create Install Media di Apple” Metodo 3:  Metodo Manuale Alla fine delle preparazione dell’installer, tutti i metodi necessitano l’installazione del Bootloader Clover sulla a vostra USB.
      “CONDIZIONI OBBLIGATORIE”
      PUNTO 1: che la vostra usb sia stata preventivamente nominata USB (caratteri maiuscoli) Tabella di partizione GUID e la formattazione in  Mac esteso Journaled.
      PUNTO 2: che l’installer di OSX si trovi in Applicazioni
      Utility Disco 
      Selezionate la pendrive, andate su “partizione”, selezionate “1 partizione”, impostate Mac OS esteso journaled e date il nome USB, poi in basso cliccate su opzioni e scegliete Tabella partizione (GUID), poi “applica”.
      Immagine 
      Riporto nuovamente l’operazione sopra citata adoperando dal nuovo Utility Disco introdotto su El Capitan.
      Rimane ovviamente invariato nome della usb in ==>> USB (maiuscolo), la formattazione in Mac esteso Journaled e sia la mappa partizione in GUID
      Da utility disco selezionate la usb, cliccate su inizializza.
      dal menù a tendina scegliete la relative impostazioni
      Immagine  
      Procedura effettua da High Sierra è la stessa della precedente, l'unica attenzione e operazione da aggiungere in primis  è cliccare nel menù a tendina in alto sulla sinistra di utility disco e selezionare "mostra tutti i dispositivi"
      Immagine 
       
      =====================
        METODO 1: "Install_Mac_OS_X.Command" Lo script che trovate allegato in fondo alla guida permette la creazione dell’installer in maniera automatica
      Include la possibilità di scelta di tre versioni di osx
      Yosemite El Capitan Sierra Il risultato finale è come quello del metodo "manuale" descritto nella guida, per cui l'installazione avverrà in un solo passaggio, non in due come con il metodo createinstallmedia. 
      Offre inoltre la possibilità di inserire un kernel patchato, utile, per esempio, per chi usa AMD.
      Rimane invariato il nome dato alla usb in USB, mappa partizione e tipo di formattazione
      Se la vostra usb non sarà rinominata nel modo corretto, verrete avvisati dal terminale, quindi non dovrete far altro che apportare la relativa modifica e rilanciare nuovamente lo script
      Esempio
      ===========================
      Metodo 2 
      L'intento è quello di usare la procedura fornitaci direttamente da Apple, "createinstallmedia", introdotta  con Mavericks. 
      Tale metodo prevede l’uso del terminale che via via se ne sta perdendo il “valore e l’uso”
      Inizialmente per i neofiti potrà sembrare problematico ma alla fine non è così.
      Durante il post installazione alcune operazioni ne richiedono l’ uso.
      Perciò mi sono chiesto perchè, qualora uno volesse, non far conoscere da subito un po’ questo “strumento”???
      Per favorirvi vi ho allegato i comandi già  “pronti”, i quali li potrete copiare ed incollare sul terminale.
      A questo punto aprite il terminale, copiate ed incollate il comando sottostante e premete invio, digitate la vostra password e premete nuovamente invio.
      Comando per creare USB con Yosemite:
      sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction  
      Comando per creare USB con El Capitan
      sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app --nointeraction Comando per creare USB con Sierra 
      sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ macOS\ Sierra.app/ --nointeraction Per creare USB con Hight Sierra o Mojave usate --> C_I_M (aggiornato per 10.14)
       
      Funziona con il drag & drop sul terminale, in questo caso non vi è necessità che la usb sia nominata in un determinato modo ed essendo basato su create install media ovviamente funziona da 10.9 a 10.14.... 
      BENE…IL PROCESSO DI CREAZIONE E’ INIZIATO…
      AVREMO CIRCA 20/30 MINUTI DI TEMPO LIBERO A CUI DEDICARSI A CIO’ CHE VOGLIAMO………………………………………..  
      COLGO L’OCCASIONE PER FARVI NOTARE LA VELOCITA’ E LA SICUREZZA DI QUESTO METODO
      CONFRONTATE QUESTO CON IL TERZO METODO E NOTERETE CHE CON UN SOLO PASSAGGIO, OSSIA IL COMANDO DATO AL TERMINALE, FACCIAMO IN UNA SINGOLA OPERAZIONE TUTTI I VARI STEP DESCRITTI SULL’ ALTRO METODO.
      DETTO QUESTO, MOLTO IMPORTANTE E’ SOTTOLINEARE CHE COSI’ FACENDO EVITEREMO ERRORI  DI DISTRAZIONE RIGUARDO AI PASSAGGI O FRAINTENDIMENTI.
      Immagine 
      Potete adesso passare ad installare il bootloader Clover sulla vostra usb.
      *NOTA*:
      Avendo usato questo metodo l'installazione si dividerà in due fasi, perciò dopo il primo riavvio e necessario far partire nuovamente l'installer, selezionare lo stesso disco senza formattarlo.
      Finita questa ulteriore fase , l'installazione sarà terminata
      =========================
      METODO "MANUALE"....  (lascio per futura memoria-Compatibile fino a 10.12)
      ==========================
      Bootloader
      **Nota:** Installazione in UEFI  dipenderà dalla scheda madre in vostro possesso, quindi se non supporta tale opzione , il bootloader dovrà essere installato in  modalità Legacy.
       Vi invito, qualora non sapeste questa informazione, a recarvi nel sito ufficiale del produttore e controllare le informazioni a riguardo
      Fatto questo dobbiamo installare  Clover sulla usb.
      A seconda del tipo di Bios o al tipo di installazione che vogliamo fare UEFI o Legacy avremo ovviamente configurazioni diverse in questa fase.
      Lanciate il pkg.
      Immagine 

       
      Cambiate la destinazione di installazione ad USB oppure Install Mac_OS_X (a secondo del tipo di creazione eseguita)
      Successivamente clicchiamo su "Ad Hoc"
      Per Installazione UEFI
      Mettete i flag   : Installazione solo per avvio UEFI
                               : installare Clover nella ESP
                               : Driver64UEFI  AptioMemory --> (consigliato) 
                               : Driver64UEFI  ApfsDriverLoader --> (consigliato) --> sostituisce l'uso del driver apfs.efi
                               : Selezionate l'altri driver come da successiva immagine,
       
      *Nota: Altri driver che si possono usare  al suo posto  sono:
       informazioni 
       
      Proseguite con l’installazione.
      Immagine 
      ** Ricordate che avrete accesso a questa cartella dopo aver montato la partizione EFI**
      ===========================
      Per installazione Legacy
      Immagine 
      ===========================
      Impostazione per config.plist:
      Con clover configurator “montate” la partizione EFI della usb.
      1) Per fare questo nel menù di sinistra, cliccate su “Mount EFI”
      2) individuate la partizione relativa alla vostra usb, a questo punto montiamo la relativa partizione EFI  selezionando l’apposito pulsante “Mount Partition”
      Immagine 
      3) Successivamente cliccate su “Open Partition”.. recatevi in EFI/Clover ed aprite il config.plist
      4) Sezione ACPI: Disabilitate tutti i fix sia del menù 1 che del menù 2
      Immagine 
      5) Sezione BOOT: Sole se si sta installando Yosemite mettete il flag su kext-dev-mode=1
      Immagine 
      6) Sezione RT Variables: Se si sta installando El Capitan oppure Sierra, aggiungere i valori: BooterConfig= 0x28, CsrActiveConfig= 0x67
      Immagine 
      7) Sezione System Parameters: Su inject kext mettete YES
      Immagine 
      ===========================
      Nota: Su El Capitan, è stato introdotto SIP (System Integrity Protection)
      Info:
      ===========================
      Recatevi in EFI/Clover/kext/10.x 
      X= alla versione di osx che state installando. Per esempio se installerete Yosemite dovrete recarvi nella cartella 10.10, con El Capitan in 10.11….ecc
      Se non ci fosse tale cartella, createla e nominatela voi a “modo”.
      Copiatevi all’interno FakeSmc.kext
      *Nota se venite già da altre vostre configurazioni, oltre kext sopra citato ,potete mettere gli altri necessari per il vostro hardware
      Stessa cosa se avete DSDT e/o SSDT potete copiarli in EFI/Clover/Acpi/Patched
      Immagine 
      
      Per High Sierra:
      Scaricare il driver apfs.efi a fine guida, collocarlo:
          --> EFI/clover/Driver64UEFI se stiamo usando UEFI
      --> EFI/Clover/Driver64 se stiamo usando Legacy
       
      Per chi volesse continuare ad usare HFS vi rimando a questo post:
        Come installare High Sierra in HFS direttamente dalla usb  
      Utenti Laptop:  Nel 99% è obbligatorio disattivare la grafica discreta Nvidia/Amd per installare questo nuovo osx
                                     Quindi aggiungete --> SSDT-Disable_DGPU.aml.zip
                                     in EFI/Clover/acpi/Patched della usb
      --------------------------------------------------------------------
      Per Mojave:
      Scaricare il driver apfs.efi per 10.14 a fine guida, collocarlo:
          --> EFI/clover/Driver64UEFI se stiamo usando UEFI
      --> EFI/Clover/Driver64 se stiamo usando Legacy
      Versione di clover non antecedente a V_4015
      Volete usare HFS?
      E' possibile fare un installazione diretta su altro disco o partizione, nel caso può essere usato anche per effettuare aggiornamenti...
      nel caso guardate...
       Mojave in HFS 
       Oppure direttamente da usb  
       
      Fatto questo avrete la vostra USB bootable per installare OSX.
      ………Non scordatevi Fakesmc.kext da mettere nella relativa cartella…. senza il quale non farete mai il Boot......
      *NOTA: se usato il terminale per la creazione della usb, l'installazione si dividerà in due fasi, perciò dopo il primo riavvio e necessario far partire nuovamente l'installer, selezionare lo stesso disco senza formattarlo.
      Finita questa ulteriore fase , l'installazione sarà terminata
      **NOTA** Se avete processori Broadwell,Skylake o Kabylake...usate FakeSmc.kext e relativi sensors che trovate all'interno del secondo pacchetto.. (potete usarlo anche sui precedenti senza problemi, essendo una versione più aggiornata ha ulteriore supporto per le cpu più recenti)
      Update: Fakesmc e sensors versione 6.26
      Post installazione... post #2           
       Buon Hack….. 
      Aggiornamento:Install_Mac_OS_X.command.zip (compatibile da 10.10 a 10.12)
      le info le trovate a questo post
      Ringrazio @Ciro82 che mi ha aiutato nel preparare questa guida.
      Pacchetto.zip
      Pacchetto-2.zip
      Pacchetto-Fake+Sensors 6.26.1440.zip
      C_I_M.zip
       
      apfs.efi-10.14-beta1_No_Log.zip





       

×