Initial commit
This commit is contained in:
43
docker/kernel-build.Dockerfile
Normal file
43
docker/kernel-build.Dockerfile
Normal file
@@ -0,0 +1,43 @@
|
||||
ARG TAG=dev
|
||||
ARG DOCKER_IMAGE_ROOT=monok8s
|
||||
FROM --platform=linux/amd64 ${DOCKER_IMAGE_ROOT}/build-base:${TAG}
|
||||
|
||||
ARG NXP_VERSION
|
||||
ARG ARCH
|
||||
ARG CROSS_COMPILE
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
RUN test -n "${NXP_VERSION}" || (echo "Please specify NXP_VERSION" >&2; exit 1); \
|
||||
test -n "${ARCH}" || (echo "Please specify ARCH" >&2; exit 1); \
|
||||
test -n "${CROSS_COMPILE}" || (echo "Please specify CROSS_COMPILE" >&2; exit 1)
|
||||
|
||||
# Dev-only shortcut
|
||||
COPY dev/nxplinux.tar.gz ./
|
||||
RUN tar -xf nxplinux.tar.gz \
|
||||
&& mv "linux-${NXP_VERSION}" nxplinux \
|
||||
&& rm -f nxplinux.tar.gz
|
||||
|
||||
# Or download directly:
|
||||
# RUN curl -L "https://github.com/nxp-qoriq/linux/archive/refs/tags/${NXP_VERSION}.tar.gz" -o nxplinux.tar.gz \
|
||||
# && tar -xf nxplinux.tar.gz \
|
||||
# && mv "linux-${NXP_VERSION}" nxplinux \
|
||||
# && rm -f nxplinux.tar.gz
|
||||
|
||||
WORKDIR /build/nxplinux
|
||||
|
||||
# NXP tree: use the LSDK defconfig target
|
||||
RUN make ARCH="${ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" defconfig lsdk.config
|
||||
RUN make ARCH="${ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" -j"$(nproc)"
|
||||
|
||||
# artifact collection
|
||||
RUN mkdir -p /out/kernel /out/rootfs \
|
||||
&& cp -av arch/arm64/boot/Image* /out/kernel/ 2>/dev/null || true \
|
||||
&& cp -av arch/arm64/boot/dts /out/kernel/dts 2>/dev/null || true \
|
||||
&& cp -av System.map .config /out/kernel/ \
|
||||
&& make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} modules_install INSTALL_MOD_PATH=/out/rootfs
|
||||
|
||||
ARG DTB_TARGET
|
||||
|
||||
RUN find /out/kernel -name "${DTB_TARGET}" -exec cp {} /out/ \;
|
||||
RUN test -f "/out/${DTB_TARGET}"
|
||||
Reference in New Issue
Block a user