【Tips】Ubuntu로 ohgami씨작 풀 스크래치 UEFI 베어 메탈 프로그래밍의 환경 구축 메모

TL; DR;



우분투에는 OVMF가 없기 때문에 별도로 두어야합니다.

일의 시작



ohgami 씨가 쓰여있다 풀 스크래치 책
적당히 Ubuntu의 VM 세워 써 있는 대로 환경을 만들어 보았지만 잘 움직이지 않았기 때문에,
조사한 결과 OVMF가 없거나, 미묘하게 본래의 순서와 어긋나 있었던 것의 제대로 정리하고 싶어졌다.

ovmf 다운로드



Ubuntu에는 OVMF라는 펌웨어 VM이 들어 있지 않기 때문에 바이너리에서 다운로드합니다.
wget https://sourceforge.net/projects/edk2/files/OVMF/OVMF-X64-r15214.zip
unzip OVMF-X64-r15214.zip

OVMF.fd 이동



압축이 풀린 zip 안에 OVMF.fd가 있기 때문에 이것을/usr/share/ovmf에 넣습니다.
mv OVMF.fd /usr/share/ovmd

이것으로 OVMF 측 설정 완료

efi 파일을 제자리에 배치



그런 다음 작성한 코드 파일을 efi로 변환하고 fs/EFI/BOOT/에 배치합니다. 이때 파일 이름을 BOOTX64.EFI로 변환
x86_64-w64-mingw32-gcc -Wall -Wextra -e efi_main -nostdinc -nostdlib \
        -fno-builtin -Wl,--subsystem,10 -o main.efi main.c

mkdir -p fs/EFI/BOOT
cp main.cfi fs/EFI/BOOT
mv fs/EFI/BOOT/main.cfi fs/EFI/BOOT/BOOTX64.CFI
//結果はこんな感じ
tree -a
.
├── fs
│   └── EFI
│       └── BOOT
│           └── BOOTX64.EFI
├── main.c
└── main.efi


QEMU 실행



fs 부하를 포맷하여 UEFI를 Ubuntu에 표시합니다.
qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd -hda fat:fs



문제없이 표시되었습니다.

좋은 웹페이지 즐겨찾기