github.com/mvdan/u-root-coreutils@v0.0.0-20230122170626-c2eef2898555/.circleci/images/test-image-arm64/Dockerfile (about) 1 # Copyright 2020-2021 the u-root Authors. All rights reserved 2 # Use of this source code is governed by a BSD-style 3 # license that can be found in the LICENSE file. 4 5 FROM cimg/go:1.19 6 7 # Install dependencies 8 RUN sudo apt-get update && \ 9 sudo apt-get install -y --no-install-recommends \ 10 `# Linux dependencies` \ 11 bc \ 12 bison \ 13 flex \ 14 gcc-aarch64-linux-gnu \ 15 git \ 16 libssl-dev \ 17 make \ 18 `# QEMU dependencies` \ 19 libattr1-dev \ 20 libcap-dev \ 21 libcap-ng-dev \ 22 libfdt-dev \ 23 libglib2.0-dev \ 24 libpixman-1-dev \ 25 meson \ 26 ninja-build \ 27 python3 \ 28 qemu-efi-aarch64 \ 29 zlib1g-dev \ 30 `# Linux kernel build deps` \ 31 libelf-dev && \ 32 sudo rm -rf /var/lib/apt/lists/* 33 34 # Create working directory 35 WORKDIR /home/circleci 36 COPY config_linux.txt .config 37 38 # Build linux 39 RUN set -eux; \ 40 git clone --depth=1 --branch=v6.0 https://github.com/torvalds/linux; \ 41 sudo chmod 0444 .config; \ 42 mv .config linux/; \ 43 cd linux; \ 44 export ARCH=arm64; \ 45 export CROSS_COMPILE=/usr/bin/aarch64-linux-gnu-; \ 46 make olddefconfig; \ 47 make -j$(($(nproc) * 2 + 1)); \ 48 cd ~; \ 49 cp linux/arch/arm64/boot/Image Image; \ 50 rm -rf linux/ 51 52 # Build QEMU 53 RUN set -eux; \ 54 git clone --depth=1 --branch=v7.0.0 https://github.com/qemu/qemu; \ 55 cd qemu; \ 56 mkdir build; \ 57 cd build; \ 58 ../configure \ 59 --target-list=aarch64-softmmu \ 60 --enable-virtfs \ 61 --disable-docs \ 62 --disable-sdl \ 63 --disable-kvm; \ 64 make -j$(($(nproc) * 2 + 1)); \ 65 cd ~; \ 66 cp -rL qemu/build/pc-bios/ ~/pc-bios; \ 67 cp qemu/build/aarch64-softmmu/qemu-system-aarch64 .; \ 68 rm -rf qemu/ 69 70 # Export paths to binaries. 71 ENV UROOT_KERNEL /home/circleci/Image 72 ENV UROOT_QEMU "/home/circleci/qemu-system-aarch64 -machine virt -cpu max -m 1G " 73 ENV UROOT_TESTARCH arm64