github.com/mvdan/u-root-coreutils@v0.0.0-20230122170626-c2eef2898555/.circleci/images/test-image-arm/Dockerfile (about) 1 # Copyright 2018-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-arm-linux-gnueabi \ 15 git \ 16 make \ 17 `# QEMU dependencies` \ 18 libattr1-dev \ 19 libcap-dev \ 20 libcap-ng-dev \ 21 libfdt-dev \ 22 libglib2.0-dev \ 23 libpixman-1-dev \ 24 meson \ 25 ninja-build \ 26 python \ 27 zlib1g-dev \ 28 `# Linux kernel build deps` \ 29 libelf-dev && \ 30 sudo rm -rf /var/lib/apt/lists/* 31 32 # Create working directory 33 WORKDIR /home/circleci 34 COPY config_linux5.10.0_arm.txt .config 35 36 # Build linux 37 RUN set -eux; \ 38 git clone --depth=1 --branch=v5.10 https://github.com/torvalds/linux; \ 39 sudo chmod 0444 .config; \ 40 mv .config linux/; \ 41 cd linux; \ 42 export ARCH=arm; \ 43 export CROSS_COMPILE=/usr/bin/arm-linux-gnueabi-; \ 44 make -j$(($(nproc) * 2 + 1)); \ 45 cd ~; \ 46 cp linux/arch/arm/boot/zImage zImage; \ 47 rm -rf linux/ 48 49 # Build QEMU 50 RUN set -eux; \ 51 git clone --depth=1 --branch=v7.0.0 https://github.com/qemu/qemu; \ 52 cd qemu; \ 53 mkdir build; \ 54 cd build; \ 55 ../configure \ 56 --target-list=arm-softmmu \ 57 --enable-virtfs \ 58 --disable-docs \ 59 --disable-sdl \ 60 --disable-kvm; \ 61 make -j$(($(nproc) * 2 + 1)); \ 62 cd ~; \ 63 cp -rL qemu/build/pc-bios/ ~/pc-bios; \ 64 cp qemu/build/arm-softmmu/qemu-system-arm .; \ 65 rm -rf qemu/ 66 67 # Export paths to binaries. 68 ENV UROOT_KERNEL /home/circleci/zImage 69 ENV UROOT_QEMU "/home/circleci/qemu-system-arm -M virt -L /home/circleci/pc-bios" 70 ENV UROOT_TESTARCH arm