Mercurial > hg > Document > Growi
changeset 38:3aa2defe6f56
backup 2021-02-04
author | autobackup |
---|---|
date | Thu, 04 Feb 2021 00:10:03 +0900 |
parents | 6433952b3356 |
children | 888faddb0903 |
files | user/Okud/メモ/2021/02/03.md user/anatofuz/note/2021/02/03.md |
diffstat | 2 files changed, 65 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/user/Okud/メモ/2021/02/03.md Thu Feb 04 00:10:03 2021 +0900 @@ -0,0 +1,54 @@ +# gnu-efi Hello World +## AARCH64(ARM64) +### クロスコンパイラ環境を整える +- Docker fileを作る +``` +FROM ubuntu:18.04 + +RUN apt-get update && \ + apt-get upgrade -y && \ + DEBIAN_FRONTEND=noninteractive \ + apt-get install -y \ + qemu-utils \ + qemu-efi-aarch64 \ + qemu-system-arm \ + build-essential \ + uuid-dev \ + git \ + python \ + iasl \ + nasm && \ + DEBIAN_FRONTEND=noninteractive \ + apt-get install -y \ + crossbuild-essential-armhf + +WORKDIR /workdir +RUN git clone --recursive https://github.com/naoki9911/xv6_uefi.git +``` +- ```docker build -t xv6-uefi .``` して```docker images``` +- ```mkdir build```でディレクトリを作って +- ```docker run --rm -it --name xv6 -v $PWD/build:/tmp/build xv6-uefi bash``` + +- docker内で + - ```cd edk2```edk2に移動し + - ```make -C BaseTools``` + - ``` source edksetup.sh``` + - ``` export GCC5_ARM_PREFIX=arm-linux-gnueabihf-``` + - ``` build -a ARM -t GCC5 -p ArmVirtPkg/ArmVirtQemu.dsc``` + - これで```QEMU_EFI.fd```を作成 + ### gnu-efiをbuild + - gnu-efiをダウンロード(ver3.0.12) +```https://sourceforge.net/projects/gnu-efi/files/?source=navbar``` + - cd gnu-efi-3.0.12 + - ```make CROSS_COMPILE=arm-linux-gnueabihf-``` + - ``` make CROSS_COMPILE=arm-linux-gnueabihf- apps``` + - ```cp -r arm /tmp/build``` + +## 起動 +- dockerから抜けて +- ```cd build```で移動して +- QEMUで起動 +- ```qemu-system-arm -m 128 -M virt -bios ./QEMU_EFI.fd -serial stdio -hda fat:rw:arm/apps``` +- qemuのshellで```fs0:```でデバイスに移動して +- ```t.efi```でHelloWorldが出力 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/user/anatofuz/note/2021/02/03.md Thu Feb 04 00:10:03 2021 +0900 @@ -0,0 +1,11 @@ +``` +{ + primitive => [ + AtomicT => [qw/AtomicT_int/], + AtomicTImpl => [qw/AtomicT_intImpl_int/], + ], + Innver => [ + PhilsImopl => tAtomicT => AtomicT_int + ] +}; +```