Я пытаюсь загрузить минимальный двоичный файл, используя QEMU, но я получаю статус ошибки команды: не найдено .
Qemu Boots в его оболочку и когда я перейду в FS0: я вижу файл в \ efi \ bootx64.efi , но я не могу загрузить его. Я думаю, что мой код выглядит нормально, и точка входа определяется, как и должно быть. Я попытался заменить последний цикл на ret , но он ничего не изменил..section .text
.code64
.globl efi_main
efi_main:
xor %eax, %eax
.loop:
jmp .loop
< /code>
fi.ld
OUTPUT_FORMAT("pei-x86-64")
ENTRY(efi_main)
SECTIONS {
. = 0x1000;
.text : { *(.text) }
.data : { *(.data) }
.rdata : { *(.rdata) }
.bss : { *(.bss COMMON) }
}
< /code>
makefile < /p>
all: fat.img
boot.o: boot.S
as --64 -o boot.o boot.S
boot.pe: boot.o efi.ld
ld -nostdlib -e efi_main -T efi.ld -o boot.pe boot.o
BOOTX64.EFI: boot.pe
objcopy -j .text -j .data -j .bss \
--target=efi-app-x86_64 boot.pe BOOTX64.EFI
fat.img: BOOTX64.EFI
mkdir -p iso/EFI/BOOT
cp BOOTX64.EFI iso/EFI/BOOT
dd if=/dev/zero of=fat.img bs=1M count=10
mkfs.vfat fat.img
mcopy -i fat.img -s iso/* ::/
run: OVMF_VARS.fd fat.img
qemu-system-x86_64 \
-drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=./OVMF_VARS.fd \
-drive format=raw,file=fat.img \
-net none
clean:
rm -rf BOOTX64.EFI *.o *.pe iso fat.img
Подробнее здесь: https://stackoverflow.com/questions/796 ... -qemu-uefi
Не могу загрузить минимальный код ассемблера в Qemu UEFI ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу вычислить хэши SHA256 на Optroms для безопасного загрузки UEFI на Linux (ACPI)?
Anonymous » » в форуме Linux - 0 Ответы
- 127 Просмотры
-
Последнее сообщение Anonymous
-