You've already forked dasharo-sdk
mirror of
https://github.com/Dasharo/dasharo-sdk.git
synced 2026-06-13 10:16:28 -07:00
3528269bba
Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>
192 lines
6.1 KiB
Docker
192 lines
6.1 KiB
Docker
FROM coreboot/coreboot-sdk:2025-10-19_4a3cc37cbd AS coreboot-sdk
|
|
|
|
USER root
|
|
RUN \
|
|
cd /tmp && \
|
|
git clone https://github.com/coreboot/coreboot.git && \
|
|
cd coreboot && \
|
|
git checkout -f ${DOCKER_COMMIT} && \
|
|
make -C util/cbfstool && \
|
|
make -C util/cbfstool install && \
|
|
export USE_FLASHROM=0 && \
|
|
make -C 3rdparty/vboot && \
|
|
make -C 3rdparty/vboot install && \
|
|
mkdir /vboot && \
|
|
cp -r 3rdparty/vboot/scripts /vboot/ && \
|
|
unset USE_FLASHROM && \
|
|
make -C util/ifdtool && \
|
|
make -C util/ifdtool install && \
|
|
cd .. && \
|
|
rm -rf coreboot
|
|
|
|
# smmstoretool does not compile anymore with newer toolchain and coreboot tag
|
|
# Move it back to the RUN command above when patch is merged.
|
|
RUN cd /tmp && \
|
|
git clone https://review.coreboot.org/coreboot.git && \
|
|
cd coreboot && \
|
|
git fetch https://review.coreboot.org/coreboot refs/changes/58/92058/1 && \
|
|
git checkout -b change-92058 FETCH_HEAD && \
|
|
make -C util/smmstoretool && \
|
|
make -C util/smmstoretool install && \
|
|
cd .. && \
|
|
rm -rf coreboot
|
|
|
|
# nvmtool is needed for DCU
|
|
RUN cd /tmp && \
|
|
git clone https://review.coreboot.org/coreboot.git && \
|
|
cd coreboot && \
|
|
git fetch https://review.coreboot.org/coreboot refs/changes/29/67129/5 && \
|
|
git checkout -b change-67129 FETCH_HEAD && \
|
|
cd util/nvmtool && \
|
|
make && \
|
|
cp nvm /usr/local/bin/nvm && \
|
|
cd ../../.. && \
|
|
rm -rf coreboot
|
|
|
|
RUN wget https://github.com/LongSoft/UEFITool/releases/download/A68/UEFIExtract_NE_A68_x64_linux.zip && \
|
|
unzip UEFIExtract_NE_A68_x64_linux.zip && \
|
|
mv uefiextract /usr/local/bin && \
|
|
rm UEFIExtract_NE_A68_x64_linux.zip
|
|
|
|
RUN git clone https://github.com/wolfSSL/wolfssl.git -b v5.7.0-stable --depth=1 && \
|
|
cd wolfssl && \
|
|
./autogen.sh && \
|
|
./configure --libdir /lib/x86_64-linux-gnu/ && \
|
|
make
|
|
RUN cd wolfssl && make install
|
|
RUN cd .. && \
|
|
rm -rf wolfssl
|
|
|
|
FROM debian:stable-slim AS intermediate
|
|
|
|
COPY --from=coreboot-sdk /opt/xgcc /opt/xgcc
|
|
|
|
# Cleanup unecessary xgcc targets
|
|
RUN \
|
|
rm -rf /opt/xgcc/bin/clang-* \
|
|
/opt/xgcc/bin/llvm-* \
|
|
/opt/xgcc/bin/aarch64-* \
|
|
/opt/xgcc/bin/riscv64-* \
|
|
/opt/xgcc/bin/powerpc64-* \
|
|
/opt/xgcc/bin/nds32le-* \
|
|
/opt/xgcc/bin/arm-eabi-* \
|
|
/opt/xgcc/lib/gcc/nds32le-elf \
|
|
/opt/xgcc/lib/gcc/powerpc64-linux-gnu \
|
|
/opt/xgcc/lib/gcc/aarch64-elf \
|
|
/opt/xgcc/lib/gcc/riscv64-elf \
|
|
/opt/xgcc/lib/gcc/arm-eabi \
|
|
/opt/xgcc/lib/clang \
|
|
/opt/xgcc/lib/libclang* \
|
|
/opt/xgcc/lib/libLLVM*
|
|
|
|
|
|
FROM debian:stable-slim AS dasharo-sdk
|
|
|
|
COPY --from=intermediate /opt/xgcc /opt/xgcc
|
|
COPY --from=coreboot-sdk /usr/local/bin/cbfstool /usr/local/bin/cbfstool
|
|
COPY --from=coreboot-sdk /usr/local/bin/fmaptool /usr/local/bin/fmaptool
|
|
COPY --from=coreboot-sdk /usr/local/bin/rmodtool /usr/local/bin/rmodtool
|
|
COPY --from=coreboot-sdk /usr/local/bin/ifwitool /usr/local/bin/ifwitool
|
|
COPY --from=coreboot-sdk /usr/local/bin/ifittool /usr/local/bin/ifittool
|
|
COPY --from=coreboot-sdk /usr/local/bin/cbfs-compression-tool /usr/local/bin/cbfs-compression-tool
|
|
COPY --from=coreboot-sdk /usr/local/bin/elogtool /usr/local/bin/elogtool
|
|
COPY --from=coreboot-sdk /usr/local/bin/cse_fpt /usr/local/bin/cse_fpt
|
|
COPY --from=coreboot-sdk /usr/local/bin/cse_serger /usr/local/bin/cse_serger
|
|
COPY --from=coreboot-sdk /vboot /vboot
|
|
COPY --from=coreboot-sdk /usr/share/vboot /usr/share/vboot
|
|
COPY --from=coreboot-sdk /usr/local/bin/smmstoretool /usr/local/bin/smmstoretool
|
|
COPY --from=coreboot-sdk /usr/local/bin/ifdtool /usr/local/bin/ifdtool
|
|
COPY --from=coreboot-sdk /usr/local/bin/nvm /usr/local/bin/nvm
|
|
COPY --from=coreboot-sdk /usr/local/bin/uefiextract /usr/local/bin/uefiextract
|
|
COPY --from=coreboot-sdk /usr/local/bin/wolfssl-config /usr/local/bin/
|
|
COPY --from=coreboot-sdk /usr/local/share/doc/wolfssl /usr/local/share/doc/wolfssl
|
|
COPY --from=coreboot-sdk /lib/x86_64-linux-gnu/libwolfssl.so.42.1.0 /lib/x86_64-linux-gnu/
|
|
COPY --from=coreboot-sdk /lib/x86_64-linux-gnu/libwolfssl.so.42 /lib/x86_64-linux-gnu/
|
|
COPY --from=coreboot-sdk /lib/x86_64-linux-gnu/libwolfssl.so /lib/x86_64-linux-gnu/
|
|
COPY --from=coreboot-sdk /lib/x86_64-linux-gnu/libwolfssl.la /lib/x86_64-linux-gnu/
|
|
COPY --from=coreboot-sdk /lib/x86_64-linux-gnu/pkgconfig/wolfssl.pc /lib/x86_64-linux-gnu/pkgconfig/
|
|
COPY --from=coreboot-sdk /usr/local/include/wolfssl /usr/local/include/wolfssl
|
|
COPY --from=coreboot-sdk /usr/bin/futility /usr/bin/futility
|
|
COPY --from=coreboot-sdk /usr/bin/dumpRSAPublicKey /usr/bin/dumpRSAPublicKey
|
|
|
|
RUN for prog in dump_fmap dump_kernel_config gbb_utility vbutil_firmware vbutil_kernel vbutil_key vbutil_keyblock; do \
|
|
ln -sf /usr/bin/futility "/usr/bin/$prog"; done
|
|
|
|
RUN \
|
|
useradd -p locked -m coreboot && \
|
|
apt-get update && \
|
|
apt-get clean && \
|
|
apt-get autoclean && \
|
|
apt-get -y install --no-install-recommends \
|
|
libcrypto++-dev \
|
|
make \
|
|
binutils \
|
|
ca-certificates \
|
|
clang \
|
|
file \
|
|
g++ \
|
|
gcc \
|
|
git \
|
|
guilt \
|
|
imagemagick \
|
|
libc6 \
|
|
libc6-dev \
|
|
libncurses-dev \
|
|
libnss3-dev \
|
|
libssl-dev \
|
|
liblzma-dev \
|
|
lld \
|
|
llvm \
|
|
meson \
|
|
pkg-config \
|
|
python-is-python3 \
|
|
python3 \
|
|
unzip \
|
|
uuid-dev \
|
|
uuid-runtime \
|
|
golang-go \
|
|
bsdextrautils \
|
|
wget \
|
|
zlib1g-dev \
|
|
&& \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
|
|
# Dependencies for Intel FITc (BtG provisioning)
|
|
RUN \
|
|
apt-get update && \
|
|
apt-get clean && \
|
|
apt-get autoclean && \
|
|
apt-get -y install --no-install-recommends \
|
|
libxcb-icccm4 \
|
|
libxcb-image0 \
|
|
libxcb-shm0 \
|
|
libxcb-keysyms1 \
|
|
libxcb-randr0 \
|
|
libxcb-render-util0 \
|
|
libxcb-render0 \
|
|
libxcb-shape0 \
|
|
libxcb-sync1 \
|
|
libxcb-xfixes0 \
|
|
libxcb-xinerama0 \
|
|
libxcb-xkb1 \
|
|
libxcb1 \
|
|
libxkbcommon-x11-0 \
|
|
libxkbcommon0 && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN mkdir /home/coreboot/.ccache && \
|
|
chown coreboot:coreboot /home/coreboot/.ccache && \
|
|
mkdir /home/coreboot/cb_build && \
|
|
chown coreboot:coreboot /home/coreboot/cb_build && \
|
|
echo "export PATH=$PATH:/opt/xgcc/bin" >> /home/coreboot/.bashrc && \
|
|
echo "export SDK_VERSION=${SDK_VERSION}" >> /home/coreboot/.bashrc && \
|
|
echo "export SDK_COMMIT=${DOCKER_COMMIT}" >> /home/coreboot/.bashrc
|
|
|
|
# Needed for vboot futility to sign images with VBOOT_CBFS_INTEGRATION
|
|
ENV CBFSTOOL=/usr/local/bin/cbfstool
|
|
|
|
ENV PATH=$PATH:/opt/xgcc/bin
|
|
USER coreboot
|
|
VOLUME /home/coreboot/.ccache
|