Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- EBL
- Duet based efi boot loader
- EBL aims to provide real(nonfake) efi based bootloading for Darwin/OS X.
- It is based on DUET and EDK from Tianocore.org
- Please first test EBL on USB stick, than if you are satisfied with result
- you can try other types of installation.
- INSTALATION
- ON USB:
- --------
- # MBR install:
- - Find your disk number:
- diskutil list
- Suppose that your USB is on /dev/disk1s1
- - Format USB as FAT32:
- sudo newfs_msdos -F 32 /dev/rdisk1s1
- - Install bootsector:
- sudo ./DuetToHdd /dev/rdisk1s1 ./Efildr20
- - Copy Efildr20 to root of USB stick and unmount it for changes to take
- effect.
- ON HDD
- ------
- # MBR
- HDD install needs spare partition where you will put Efildr20 and where
- all EBL file structure will be located.
- Installation is same as with usb stick only differences is ID of your disk
- and partition.
- # GPT
- Still not supported but will be in future releases of DuetToHDD
- ROMBOOT - BIOS MODULE FOR EBL
- -----------------------------
- RomBoot scans all FAT32 partitions for Efildr20 and executes it.
- If you don't know what type of bios you have please don't use or try this,
- or ask someone to do it for you. We are not responsible for any damage.
- For now this method is only way to use EBL from your GPT disk.
- # ISA-ROM - AWARD BIOS
- You need to have cbrom tool that supports your award bios.
- Get copy of your bios or backup bios you already use.
- - This adds romboot-isa.rom to your bios:
- cbrom yourbios.bin /isa romboot-isa.rom
- - If you already have an isa rom in your bios:
- cbrom yourbios.bin /other 40A5:0 romboot-isa.rom
- (this adds romboot as 2nd isa rom)
- cbrom yourbios.bin /other 40A6:0 romboot-isa.rom
- (this adds romboot as 3rd isa rom)
- - Flash bios
- - You should now have RomBoot option in Boot screen of your bios
- # PCI-ROM - AMI BIOS
- AMI bios needs romboot-pci.rom that has device id of your LAN card.
- - You need to find device id of your LAN card
- - Calculate CRC of downloaded romboot-pci.rom
- - Patch romboot-pci.rom with device id of your LAN card:
- romboot-pci.rom from repository has device id: 10ec:8186
- Use Hex Editor and locate; EC106881
- Change corresponding to your LAN id
- - Fix CRC:
- Now calculate new CRC of patched romboot-pci.rom
- Subtract new CRC and old CRC you calculated and add diff
- to last to bits of romboot-pci.rom. After this CRC from
- patched romboot-pci.rom should be the same as the one you
- downloaded.
- - Use MMTool to replace LAN Boot Rom with newly patched romboot-pci.rom
- - Flash bios
- - Set bios to boot from LAN, you will see LAN:RomBoot in Boot screen
- INSTALLING EBL ON GPT DISK
- --------------------------
- Use this only if you added RomBoot to your bios.
- Every GPT formatted disk has EFI partition that is not visible by Darwin
- It is first on every disk, already formatted as FAT32 and 200MB in size.
- Suppose that your installation is on /dev/disk0s2
- - Make mount point for hidden EFI partition:
- sudo mkdir /Volumes/EFI
- - Mount EFI partition:
- sudo mount_msdos /dev/disk0s1 /Volumes/EFI
- - Prepare EFI partition for use:
- cd /Volumes/EFI
- touch /Volumes/EFI.metadata_never_index
- rm -Rf /Volumes/EFI/.fseventsd/
- mkdir /Volumes/EFI/.fseventsd
- touch /Volumes/EFI/.fseventsd/no_log
- - Copy Efildr20 to root of EFI partition:
- cp Efildr20 /Volumes/EFI
- - Remove EFI partition from system:
- sudo umount -f /Volumes/EFI
- sudo rm -rf /Volumes/EFI
- - Boot from RomBoot in bios
- FILE STRUCTURE OF EBL
- ---------------------
- # ACPI:
- On first boot, bootloader will crate EBL folder on same partition
- where you placed Efildr20. It will dump Original tables and put patched
- FACP.aml in Patched folder for your motherboard. In that Patched folder
- you can put any ACPI table for your motherboard and it will override
- original table. Like DSDT or SSDT table.
- FACP.aml gives OS X ability to restart.
- For now bootloader can only replace tables that are found originally on
- your motherboard, meaning you can't add extra SSDT tables to your Patched
- folder if EBL did not found any.
- /EFI/EBL/AcpiTables/Name of motherboard/Original/
- /EFI/EBL/AcpiTables/Name of motherboard/Patched/
- # DEVICE PROPERTY STRINGS:
- Device Property injection can be added via binary dump file that has your
- hex string in it.
- It has to be placed in:
- /EFI/EBL/dev-prop.bin
- You already have your HEX string in plain txt file? Than you can easily
- convert it to binary dump in Terminal.
- - If your hex string is in plain txt file named string.txt
- xxd -r -p string.txt > dev-prop.bin
- If you don't have a string but using GraphicsEnabler or EtehernetBuilIn
- in your Chameleon boot loader than you can obtain device string from
- ioreg, just run provided script getALL.sh in Terminal and you will have
- dev-prop.bin located on your desktop.
- - run in Terminal:
- sh getALL.sh
- put dev-prop.bin in EBL folder.
- TROUBLESHOOTING
- ---------------
- # EBL stops booting before boot.efi is loaded.
- # You have screen with X64 error.
- FACP.aml gives OS X ability to restart. If EBL stops booting even before
- boot.efi, or gives you a X64 error(with red letters) than you can
- replace patched FACP.aml with original one. Another method is to use
- FACP.aml from OS X when your system is booted with Chameleon bootloader
- Just run provided script and choose to extract FACP.aml, and place it
- in Patched folder of your motherboard. You won't loose restart ability
- and EBL ACPI patcher won't replace your FACP.aml.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement