github.com/insomniacslk/u-root@v0.0.0-20200717035308-96b791510d76/.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.13 6 7 # Install dependencies 8 RUN sudo apt-get update && \ 9 sudo apt-get install -y --no-install-recommends \ 10 `# Linux dependencies` \ 11 git \ 12 bc \ 13 bison \ 14 flex \ 15 gcc-aarch64-linux-gnu \ 16 libssl-dev \ 17 make \ 18 `# QEMU dependencies` \ 19 python \ 20 libglib2.0-dev \ 21 libfdt-dev \ 22 libpixman-1-dev \ 23 zlib1g-dev \ 24 libcap-dev \ 25 libattr1-dev \ 26 `# Linux kernel build deps` \ 27 libelf-dev && \ 28 sudo rm -rf /var/lib/apt/lists/* 29 30 # Create working directory 31 WORKDIR /home/circleci 32 COPY config_linux5.2.0_arm64.txt .config 33 34 # Build linux 35 RUN set -eux; \ 36 git clone --depth=1 --branch=v5.2 https://github.com/torvalds/linux; \ 37 sudo chmod 0444 .config; \ 38 mv .config linux/; \ 39 cd linux; \ 40 export ARCH=arm64; \ 41 export CROSS_COMPILE=/usr/bin/aarch64-linux-gnu-; \ 42 make olddefconfig; \ 43 make -j$(($(nproc) * 2 + 1)); \ 44 cd ~; \ 45 cp linux/arch/arm64/boot/Image Image; \ 46 rm -rf linux/ 47 48 # Build QEMU 49 RUN set -eux; \ 50 git clone --depth=1 --branch=v3.1.0 https://github.com/qemu/qemu; \ 51 cd qemu; \ 52 mkdir build; \ 53 cd build; \ 54 ../configure \ 55 --target-list=aarch64-softmmu \ 56 --enable-virtfs \ 57 --disable-docs \ 58 --disable-sdl \ 59 --disable-kvm; \ 60 make -j$(($(nproc) * 2 + 1)); \ 61 cd ~; \ 62 cp -rL qemu/build/pc-bios/ ~/pc-bios; \ 63 cp qemu/build/aarch64-softmmu/qemu-system-aarch64 .; \ 64 rm -rf qemu/ 65 66 # Export paths to binaries. 67 ENV UROOT_KERNEL /home/circleci/Image 68 ENV UROOT_QEMU "/home/circleci/qemu-system-aarch64 -machine virt -cpu cortex-a57 -L /home/circleci/pc-bios" 69 ENV UROOT_TESTARCH arm64