Не могу загрузить минимальный код ассемблера в Qemu UEFILinux

Ответить Пред. темаСлед. тема
Anonymous
 Не могу загрузить минимальный код ассемблера в Qemu UEFI

Сообщение Anonymous »

Я пытаюсь загрузить минимальный двоичный файл, используя 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»