นี่คือการใช้งาน GPLV3+ การใช้งานไดรเวอร์ระบบไฟล์ EFI แบบสแตนด์อโลนโดยใช้ไดรเวอร์ อ่านอย่างเดียว ของ GRUB 2.0
สำหรับข้อมูลเพิ่มเติมเช่นเดียวกับไดรเวอร์ที่คอมไพล์ล่วงหน้าดู https://efi.akeo.ie
git submodule init และ git submodule updategit0001-GRUB-fixes.patch กับ grub Subdirectory สิ่งนี้ใช้การเปลี่ยนแปลงที่จำเป็นสำหรับการรวบรวมด้วงที่ประสบความสำเร็จF5 เพื่อรวบรวมและดีบักไดรเวอร์เริ่มต้นmake ในไดเรกทอรีด้านบน หากจำเป็นคุณสามารถออกบางอย่างเช่น make ARCH=<arch> CROSS_COMPILE=<tuple> โดยที่ <arch> เป็น /efi/boot/boot[ARCH].efi ใน ia32 , x64 , arm , aa64 , riscv64 หรือ loongarch64 (ตัวย่อ UEFI อย่าง <tuple> ทางการ arm-linux-gnueabi- หรือ aarch64-linux-gnu- เช่น make ARCH=aa64 CROSS_COMPILE=aarch64-linux-gnu-EfiFsPkg ภายในไดเรกทอรี EDK2 ของคุณไปยังแหล่ง EFIFS บน Windows จากพรอมต์ที่สูงขึ้นคุณสามารถเรียกใช้บางอย่างเช่น mklink /D EfiFsPkg C:efifs และบน linux ln -s ../efifs EfiFsPkgset_grub_cpu.cmd <arch>./set_grub_cpu.sh <arch><arch> เป็นหนึ่งใน ia32 , x64 , arm , aarch64 , riscv64 หรือ loongarch64 โปรดทราบว่าคุณ ต้อง เรียกใช้สคริปต์ set_grub_cpu ทุกครั้งที่คุณสลับเป้าหมายedksetup.bat (windows) หรือ edksetup.sh (linux) เรียกใช้บางอย่างเช่น: build -a X64 -b RELEASE -t <toolchain> -p EfiFsPkg/EfiFsPkg.dsc
<toolchain> เป็นสิ่งที่เช่น VS2022 (Windows) หรือ GCC5 (Linux) build -a X64 -b RELEASE -t <toolchain> -p EfiFsPkg/EfiFsPkg.dsc -m EfiFsPkg/EfiFsPkg/Ntfs.inf
edk2_build_drivers.cmd หากติดตั้ง QEMU โซลูชัน Visual Studio จะตั้งค่าและทดสอบไดรเวอร์โดยใช้ QEMU (โดยการดาวน์โหลดภาพตัวอย่างสำหรับแต่ละระบบไฟล์เป้าหมาย) อย่างไรก็ตามหมายเหตุว่า VS Debugging คาดว่าจะติดตั้ง QEMU รุ่น 64 บิตใน C:Program Filesqemu (ซึ่งคุณสามารถดาวน์โหลดได้ที่นี่) หากไม่เป็นเช่นนั้นคุณควรแก้ไข .msvcdebug.vbs ตามนั้น
สำหรับการทดสอบนอก Visual Studio ตรวจสอบให้แน่ใจว่าคุณมีดิสก์อย่างน้อยหนึ่งตัวที่มีพาร์ติชันเป้าหมายโดยใช้ระบบไฟล์เป้าหมายซึ่งไม่ได้รับการจัดการโดยไดรเวอร์ระบบไฟล์ EFI อื่น ๆ จากนั้นบูตลงในเชลล์ EFI และเรียกใช้สิ่งต่อไปนี้:
load fs0:<fs_name>_<arch>.efi หรือที่ใดก็ตามที่ไดรเวอร์ของคุณถูกคัดลอกmap -r สิ่งนี้ควรทำให้ fs# ใหม่พร้อมใช้งานเช่น fs2:FS_LOGGING เป็น 1 หรือมากกว่าdrivers จากนั้นยกเลิก unload ด้วยรหัสไดรเวอร์ โปรดระวังว่าเพื่อเปิดใช้งานการสนับสนุนการรวบรวม ARM/ARM64 ใน Visual Studio 2022 คุณ ต้อง ไปที่หน้าจอ ส่วนประกอบแต่ละตัว ในแอปพลิเคชันการตั้งค่าและเลือกคอมไพเลอร์ ARM และไลบรารีที่นั่นเนื่องจาก ไม่ ปรากฏในหน้าจอ เวิร์กโหลด เริ่มต้น:
นี่คือการใช้งาน GPLV3+ ที่บริสุทธิ์ของไดรเวอร์ EFI การดูแลที่ดีไม่ได้ใช้รหัสใด ๆ จากแหล่งที่เข้ากันได้ที่ไม่เข้ากัน GPLV3 เช่น fsw_efi ของ Refind (GPLV2 เท่านั้น) หรือไดรเวอร์ไขมันของ Intel (ต้องมีการแจ้งลิขสิทธิ์พิเศษ)
โปรดทราบว่าบางไฟล์ (แหล่งที่ไม่ใช่ grub_#### ภายใต้ ./src/ ) ได้รับอนุญาตภายใต้ GPLV2+ แทนที่จะเป็น GPLV3+ และเช่นเดียวกับแหล่งข้อมูล GPLV3+
sudo apt install nasm uuid-dev gcc-multilib gcc-aarch64-linux-gnu gcc-arm-linux-gnueabi gcc-riscv64-linux-gnu
git clone --recurse-submodules https://github.com/tianocore/edk2.git
cd edk2
make -C BaseTools
git clone --recurse-submodules https://github.com/pbatard/EfiFs.git EfiFsPkg
cd EfiFsPkg/grub
git apply ../0001-GRUB-fixes.patch
cd -
export GCC5_ARM_PREFIX=arm-linux-gnueabi-
export GCC5_AARCH64_PREFIX=aarch64-linux-gnu-
export GCC5_RISCV64_PREFIX=riscv64-linux-gnu-
source edksetup.sh --reconfig
./EfiFsPkg/set_grub_cpu.sh X64
build -a X64 -b RELEASE -t GCC5 -p EfiFsPkg/EfiFsPkg.dsc
./EfiFsPkg/set_grub_cpu.sh IA32
build -a IA32 -b RELEASE -t GCC5 -p EfiFsPkg/EfiFsPkg.dsc
./EfiFsPkg/set_grub_cpu.sh AARCH64
build -a AARCH64 -b RELEASE -t GCC5 -p EfiFsPkg/EfiFsPkg.dsc
./EfiFsPkg/set_grub_cpu.sh ARM
build -a ARM -b RELEASE -t GCC5 -p EfiFsPkg/EfiFsPkg.dsc
./EfiFsPkg/set_grub_cpu.sh RISCV64
build -a RISCV64 -b RELEASE -t GCC5 -p EfiFsPkg/EfiFsPkg.dsc