Initial commit
This commit is contained in:
34
docker/build-base.Dockerfile
Normal file
34
docker/build-base.Dockerfile
Normal file
@@ -0,0 +1,34 @@
|
||||
FROM --platform=linux/amd64 debian:bookworm AS kernel-build
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
bash \
|
||||
bc \
|
||||
bison \
|
||||
build-essential \
|
||||
cpio \
|
||||
curl \
|
||||
file \
|
||||
flex \
|
||||
git \
|
||||
libelf-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
pahole \
|
||||
perl \
|
||||
python3 \
|
||||
rsync \
|
||||
tar \
|
||||
xz-utils \
|
||||
dwarves \
|
||||
gcc-aarch64-linux-gnu \
|
||||
binutils-aarch64-linux-gnu \
|
||||
libc6-dev-arm64-cross \
|
||||
linux-libc-dev-arm64-cross \
|
||||
u-boot-tools \
|
||||
device-tree-compiler \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
34
docker/fit-build.Dockerfile
Normal file
34
docker/fit-build.Dockerfile
Normal file
@@ -0,0 +1,34 @@
|
||||
ARG TAG=dev
|
||||
ARG DOCKER_IMAGE_ROOT=monok8s
|
||||
FROM --platform=linux/amd64 ${DOCKER_IMAGE_ROOT}/build-base:${TAG} AS build
|
||||
|
||||
ARG BUSYBOX_VERSION
|
||||
ARG ARCH
|
||||
ARG CROSS_COMPILE
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
RUN test -n "${BUSYBOX_VERSION}" || (echo "Please specify BUSYBOX_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)
|
||||
|
||||
COPY dev/busybox.tar.gz ./
|
||||
RUN tar -xf busybox.tar.gz && mv "busybox-${BUSYBOX_VERSION}" busybox
|
||||
|
||||
# RUN curl -L https://github.com/mirror/busybox/archive/refs/tags/${BUSYBOX_VERSION}.tar.gz -o busybox.tar.gz \
|
||||
# && tar -xf busybox.tar.gz \
|
||||
# && mv "busybox-${BUSYBOX_VERSION}" busybox
|
||||
|
||||
WORKDIR /build/busybox
|
||||
|
||||
RUN make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} defconfig \
|
||||
&& sed -i 's/^# CONFIG_STATIC is not set/CONFIG_STATIC=y/' .config
|
||||
RUN make CROSS_COMPILE=${CROSS_COMPILE} -j"$(nproc)"
|
||||
RUN make CROSS_COMPILE=${CROSS_COMPILE} CONFIG_PREFIX=/out/initramfs install
|
||||
|
||||
WORKDIR /out/initramfs
|
||||
|
||||
COPY initramfs/init init
|
||||
RUN chmod +x init
|
||||
RUN mkdir -p bin sbin etc proc sys dev usr/bin usr/sbin
|
||||
RUN find . -print0 | cpio --null -ov --format=newc | gzip -9 > ../initramfs.cpio.gz
|
||||
24
docker/itb.Dockerfile
Normal file
24
docker/itb.Dockerfile
Normal file
@@ -0,0 +1,24 @@
|
||||
ARG TAG=dev
|
||||
ARG DOCKER_IMAGE_ROOT=monok8s
|
||||
FROM ${DOCKER_IMAGE_ROOT}/kernel-build:${TAG} AS kernel
|
||||
FROM ${DOCKER_IMAGE_ROOT}/fit-build:${TAG} AS fit
|
||||
|
||||
FROM --platform=linux/amd64 ${DOCKER_IMAGE_ROOT}/build-base:${TAG} AS build
|
||||
|
||||
ARG DTB_TARGET
|
||||
|
||||
RUN mkdir /image
|
||||
WORKDIR /image
|
||||
|
||||
COPY --from=kernel /out/kernel/Image.gz ./Image.gz
|
||||
COPY --from=kernel /out/kernel/System.map ./
|
||||
COPY --from=kernel /out/kernel/.config ./
|
||||
COPY --from=fit /out/initramfs.cpio.gz ./
|
||||
COPY --from=kernel /out/${DTB_TARGET} ./
|
||||
|
||||
COPY ./board.its ./
|
||||
|
||||
RUN mkimage -f board.its board.itb
|
||||
|
||||
FROM scratch
|
||||
COPY --from=build /image/board.itb /board.itb
|
||||
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