From 79d592c1d7e1822018f825577c69733b88490ec8 Mon Sep 17 00:00:00 2001 From: Kyle Harding Date: Wed, 24 Apr 2024 15:55:42 -0400 Subject: [PATCH] Separate patches and configs, and move Makefile to root Change-type: patch Signed-off-by: Kyle Harding --- .gitignore | 2 +- Dockerfile | 4 ++-- vmlinux/Makefile => Makefile | 22 ++++++++++--------- .../5.10/microvm-kernel-aarch64-5.10.config | 0 .../5.10/microvm-kernel-x86_64-5.10.config | 0 .../6.1/microvm-kernel-aarch64-6.1.config | 0 .../6.1/microvm-kernel-x86_64-6.1.config | 0 ...up-add-compat_uts_machine-kernel-com.patch | 0 ...ME26-personality-to-return-armv6l-in.patch | 0 ...up-add-compat_uts_machine-kernel-com.patch | 0 ...ME26-personality-to-return-armv6l-in.patch | 0 11 files changed, 15 insertions(+), 13 deletions(-) rename vmlinux/Makefile => Makefile (68%) rename {vmlinux => config}/5.10/microvm-kernel-aarch64-5.10.config (100%) rename {vmlinux => config}/5.10/microvm-kernel-x86_64-5.10.config (100%) rename {vmlinux => config}/6.1/microvm-kernel-aarch64-6.1.config (100%) rename {vmlinux => config}/6.1/microvm-kernel-x86_64-6.1.config (100%) rename {vmlinux => patches}/5.10/0001-UBUNTU-SAUCE-no-up-add-compat_uts_machine-kernel-com.patch (100%) rename {vmlinux => patches}/5.10/0002-HACK-Use-the-UNAME26-personality-to-return-armv6l-in.patch (100%) rename {vmlinux => patches}/6.1/0001-UBUNTU-SAUCE-no-up-add-compat_uts_machine-kernel-com.patch (100%) rename {vmlinux => patches}/6.1/0002-HACK-Use-the-UNAME26-personality-to-return-armv6l-in.patch (100%) diff --git a/.gitignore b/.gitignore index 6d48885..051f67b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ .env .balena -vmlinux/out +vmlinux/ diff --git a/Dockerfile b/Dockerfile index 3a25102..84a9555 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,11 +27,11 @@ ARG KERNEL_BRANCH=5.10 RUN git clone --depth 1 -c advice.detachedHead=false \ --branch "v${KERNEL_BRANCH}" https://github.com/torvalds/linux.git . -COPY vmlinux/${KERNEL_BRANCH}/*.patch ./ +COPY patches/${KERNEL_BRANCH}/*.patch ./ RUN git apply -v ./*.patch -COPY vmlinux/${KERNEL_BRANCH}/*.config ./ +COPY config/${KERNEL_BRANCH}/*.config ./ RUN ln -sf "microvm-kernel-$(uname -m)-${KERNEL_BRANCH}.config" .config diff --git a/vmlinux/Makefile b/Makefile similarity index 68% rename from vmlinux/Makefile rename to Makefile index 90389bc..3fb2a9a 100644 --- a/vmlinux/Makefile +++ b/Makefile @@ -1,36 +1,38 @@ -MACHINE ?= $(shell uname -m) +ARCH ?= $(shell uname -m) KERNEL_BRANCH ?= 5.10 MAKEFILE_DIR := $(realpath $(shell dirname $(firstword $(MAKEFILE_LIST)))) # normalize machine to docker platform -ifeq ($(MACHINE),x86_64) +ifeq ($(ARCH),x86_64) PLATFORM := linux/amd64 + MACHINE ?= x86_64 else PLATFORM := linux/arm64 + MACHINE ?= aarch64 endif IMAGE_TAG ?= linux.git:$(MACHINE)-$(KERNEL_BRANCH) -CONFIG_FILE ?= $(KERNEL_BRANCH)/microvm-kernel-$(MACHINE)-$(KERNEL_BRANCH).config +CONFIG_FILE ?= config/$(KERNEL_BRANCH)/microvm-kernel-$(MACHINE)-$(KERNEL_BRANCH).config linux.git: - docker build .. \ + docker build . \ --platform $(PLATFORM) \ --build-arg KERNEL_BRANCH=$(KERNEL_BRANCH) \ - --tag $(IMAGE_TAG) \ - --target linux.git + --target linux.git \ + --output type=image,name=$(IMAGE_TAG) # vmlinux is a build target that is not interactive, so we can run it directly vmlinux: - docker build .. \ + docker build . \ --platform $(PLATFORM) \ --build-arg KERNEL_BRANCH=$(KERNEL_BRANCH) \ - --mount type=bind,src=$(MAKEFILE_DIR)/out,dst=/out \ - --target vmlinux-out + --target vmlinux-out \ + --output type=local,dest=vmlinux # vmconfig targets are interactive, so we need to run them in a container vmconfig: linux.git -docker rm -f linux.git - docker run -it --name linux.git --platform $(PLATFORM) $(IMAGE_TAG) make $(TARGET) + docker run --name linux.git --platform $(PLATFORM) $(IMAGE_TAG) make $(TARGET) docker cp linux.git:/src/.config $(CONFIG_FILE) menuconfig: diff --git a/vmlinux/5.10/microvm-kernel-aarch64-5.10.config b/config/5.10/microvm-kernel-aarch64-5.10.config similarity index 100% rename from vmlinux/5.10/microvm-kernel-aarch64-5.10.config rename to config/5.10/microvm-kernel-aarch64-5.10.config diff --git a/vmlinux/5.10/microvm-kernel-x86_64-5.10.config b/config/5.10/microvm-kernel-x86_64-5.10.config similarity index 100% rename from vmlinux/5.10/microvm-kernel-x86_64-5.10.config rename to config/5.10/microvm-kernel-x86_64-5.10.config diff --git a/vmlinux/6.1/microvm-kernel-aarch64-6.1.config b/config/6.1/microvm-kernel-aarch64-6.1.config similarity index 100% rename from vmlinux/6.1/microvm-kernel-aarch64-6.1.config rename to config/6.1/microvm-kernel-aarch64-6.1.config diff --git a/vmlinux/6.1/microvm-kernel-x86_64-6.1.config b/config/6.1/microvm-kernel-x86_64-6.1.config similarity index 100% rename from vmlinux/6.1/microvm-kernel-x86_64-6.1.config rename to config/6.1/microvm-kernel-x86_64-6.1.config diff --git a/vmlinux/5.10/0001-UBUNTU-SAUCE-no-up-add-compat_uts_machine-kernel-com.patch b/patches/5.10/0001-UBUNTU-SAUCE-no-up-add-compat_uts_machine-kernel-com.patch similarity index 100% rename from vmlinux/5.10/0001-UBUNTU-SAUCE-no-up-add-compat_uts_machine-kernel-com.patch rename to patches/5.10/0001-UBUNTU-SAUCE-no-up-add-compat_uts_machine-kernel-com.patch diff --git a/vmlinux/5.10/0002-HACK-Use-the-UNAME26-personality-to-return-armv6l-in.patch b/patches/5.10/0002-HACK-Use-the-UNAME26-personality-to-return-armv6l-in.patch similarity index 100% rename from vmlinux/5.10/0002-HACK-Use-the-UNAME26-personality-to-return-armv6l-in.patch rename to patches/5.10/0002-HACK-Use-the-UNAME26-personality-to-return-armv6l-in.patch diff --git a/vmlinux/6.1/0001-UBUNTU-SAUCE-no-up-add-compat_uts_machine-kernel-com.patch b/patches/6.1/0001-UBUNTU-SAUCE-no-up-add-compat_uts_machine-kernel-com.patch similarity index 100% rename from vmlinux/6.1/0001-UBUNTU-SAUCE-no-up-add-compat_uts_machine-kernel-com.patch rename to patches/6.1/0001-UBUNTU-SAUCE-no-up-add-compat_uts_machine-kernel-com.patch diff --git a/vmlinux/6.1/0002-HACK-Use-the-UNAME26-personality-to-return-armv6l-in.patch b/patches/6.1/0002-HACK-Use-the-UNAME26-personality-to-return-armv6l-in.patch similarity index 100% rename from vmlinux/6.1/0002-HACK-Use-the-UNAME26-personality-to-return-armv6l-in.patch rename to patches/6.1/0002-HACK-Use-the-UNAME26-personality-to-return-armv6l-in.patch