【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
문제없이 표시되었습니다.
Reference
이 문제에 관하여(【Tips】Ubuntu로 ohgami씨작 풀 스크래치 UEFI 베어 메탈 프로그래밍의 환경 구축 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nao_yoshi/items/6a0ff7157bb34cda5e17텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)