mirror of
https://github.com/Klipper4FlashForge/firmware.git
synced 2026-10-22 05:12:16 -05:00
The stock kernel-*.tar.xz turned out to contain rootfs.squashfs -- the printer's genuine root filesystem. Unpacking it answered several questions that were previously guesswork: - init is busybox init -> /etc/init.d/rcS -> S99factory_test_shell -> /usr/prog/app_startup.sh. There is no systemd, and rcS runs from the read-only squashfs before /usr/prog/etc is bind-mounted over /etc, so a new S-script cannot be injected into the stock boot sequence. - /usr/sbin/dropbear and an ENABLED /etc/init.d/S50dropbear already ship. Port 22 is open on a stock printer; only the root password is missing. The dropbear cross-build is therefore deleted -- it was never needed. New: test/test-ash-conformance.sh parses every on-printer script with the printer's own busybox 1.31.1 ash under qemu-mipsel. A parse error in the firmwareExe wrapper would mean a blank screen, and neither bash -n nor dash -n proves busybox accepts it. Makefile now runs every target inside the pinned build image, with the docker socket mounted so test targets can start sibling containers. The repo is mounted at its real host path rather than /src, because sibling mounts are resolved by the host daemon. 78 checks pass.
19 lines
822 B
INI
19 lines
822 B
INI
# The only thing that runs on your machine is Docker itself.
|
|
#
|
|
# Every make target executes inside this image: the build scripts, the tests,
|
|
# and the install simulations. The docker CLI is included so the simulation
|
|
# targets can start sibling containers through the mounted socket, and
|
|
# qemu-user-static so the printer's real MIPS userland can be executed.
|
|
FROM debian:bookworm-slim
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
RUN echo 'Acquire::Retries "3";' > /etc/apt/apt.conf.d/80-retries \
|
|
&& apt-get update && apt-get install -y --no-install-recommends \
|
|
bash coreutils tar xz-utils gzip openssl unzip curl ca-certificates \
|
|
python3 binutils file findutils grep sed gawk make git diffutils procps \
|
|
squashfs-tools qemu-user-static docker.io \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /src
|
|
CMD ["bash"]
|