wget --no-check-certificate https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz tar xvf grub-2.06.tar.xz # grub for arm64 efi, 少了 efi_uga, video_bochs, video_cirrus, appleldr module ./configure --with-platform=efi --target=aarch64-elf --disable-werror --prefix=/home/descent/grub-arm64-bin make make install --target=aarch64-elf 是 toolchain 名字的一部分, 如果 toolchain 是 aarch64-elf-gcc 指定 --target=aarch64-elf; 如果 toolchain 是 aarch64-buildroot-linux-gnu-gcc 指定 --target=aarch64-buildroot-linux-gnu。編譯時 toolchain 要存在 PATH。 製作出 arm64.efi (grub uefi 執行程式) cd /home/descent/grub-arm64-bin/lib/grub ../../bin/grub-mkimage -d arm64-efi -p /EFI/grub -o arm64.efi -O arm64-efi part_gpt part_msdos disk fat exfat ext2 ntfs xfs hfs iso9660 normal search_fs_file configfile linux loopback echo efi_gop file gfxmenu gfxterm gfxterm_background gfxterm_menu halt reboot help jpeg ls png true --prefix=/boot/grub/
做完最後一步就可以看到產生一個 arm64.efi, 再來用 qemu 來測試, 我沒有支援 uefi 的 arm64 機器。
可以製作一個磁片 image, 複製 arm64.efi 到該磁片 image 中, 我的範例是取名為 f.img, 另外 grub 會有額外的 mod 要安裝, 這邊我沒有複製這些 mod 檔案。
執行以下 qemu 指令, 載入磁片的 arm64.efi。
qemu-system-aarch64 -m 128 -M virt -cpu cortex-a57 -drive if=none,format=raw,file=f.img,id=hd0 -device virtio-blk-device,drive=hd0 -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd -net none -nographic
再來的操作看影片比較容易理解:
ref:
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。