From patchwork Mon Apr 14 10:18:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 14050111 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E18F8C369B2 for ; Mon, 14 Apr 2025 10:18:59 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.949553.1346055 (Exim 4.92) (envelope-from ) id 1u4Gtv-0005QZ-Lu; Mon, 14 Apr 2025 10:18:51 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 949553.1346055; Mon, 14 Apr 2025 10:18:51 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gtv-0005PY-Gy; Mon, 14 Apr 2025 10:18:51 +0000 Received: by outflank-mailman (input) for mailman id 949553; Mon, 14 Apr 2025 10:18:50 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gtu-0005Nh-OI for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:50 +0000 Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [2a00:1450:4864:20::331]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id dba1efe6-1919-11f0-9eae-5ba50f476ded; Mon, 14 Apr 2025 12:18:50 +0200 (CEST) Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-43690d4605dso31780135e9.0 for ; Mon, 14 Apr 2025 03:18:49 -0700 (PDT) Received: from localhost.localdomain (host-92-26-98-202.as13285.net. [92.26.98.202]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Apr 2025 03:18:48 -0700 (PDT) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: dba1efe6-1919-11f0-9eae-5ba50f476ded DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1744625929; x=1745230729; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=O2OaDotK41umOfviUF7yzwa9T5+3+M0L5HXJtNxyImc=; b=l3SWtHuRwR4uX7z3n9QP6/jG4TOBYv1Jzf/dZGl06A2GELx+R0KZfwFnLyVDamVT4x CaF4SCFuGa39VLkwn6xN3ZbWwf0Wpt9nRXuBZJPr1Tj4RPwS1NzyShipiqIBuBY5nre6 AolIuFm9EubA4OcZ3H5hRdLKDvT8TahYZK3iU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744625929; x=1745230729; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O2OaDotK41umOfviUF7yzwa9T5+3+M0L5HXJtNxyImc=; b=KSGdtnqZwODcFc07+iNqn23UIBVlVZWRsP7Wpo1h9f5UtLCGu3BpPtiUrpiRlmy0YB oQklsuDPaD15qtuTUs/E4/tGojmMeeBHgOpKwpkX6ric2UOktulG7n94bK0jkoXWyvTT FI/bNSET1dxbcrRJCSp+rtAJCMNcBeU9C6Vx90UUfYjkWQ8VlB8Xr6higiYLcv7eJv9R +AYLItcaiEKpp1fSvTu307PeUt8uTLgqAOOVwIu1qMe3qXCQ1V42NkP/gpkdTH9f01H2 xoCzFMRlVkRoeJsKTUu5MBUOkED9M18rNlcUuk+grAG7CyRsRtSjH1d9/AUXb42qUV80 2gcg== X-Gm-Message-State: AOJu0YwO5H1IbAhYMMV6j0pkaPQ0SnmpvWI5A3qR9O8QsKZ5KTP4I7qT NwN3Ot2qpDxhuwTPOo3VOqIkXAvvgMjEio88VqMQHr9ganUxTnIao4JLs/HKmymV6BFmtuM9k8G EWFY= X-Gm-Gg: ASbGncshz0+qtRsG6UVC5lH1dRWqiRgt0zeLzyvpPGdOSnhnNSV8daG47P6Ed3hGGeE pnBjD+iLipT6Zb4yILK3OvNIJxBic2nslHsF4swsPQNqQ1PyP+QeV+iemqHx8wDprjlMGi7fy6Y vZj5rwBCgPcWhffPyrT2PEtK6K1a7iXsfbfm5rQYMNqnZYNoYVpw4JQIxGVV8XUt9nAzx0Q0ONl AaaR+M4NBQTMPHlCcbIN/OU0WZhmCaERVslVWqeH/st+oH2rp9mvFhOV3hBvsqGZYYnnpwWSDqq z0Y8kPNExRLTc+/C6VDV0CIAVngrvRWlbAw4x3pi+rk7egtaH/qZZhfoTOHPt2nEuLtp1THK55l 6XtA4xyRNj1z9oQ== X-Google-Smtp-Source: AGHT+IECBHZz8u3V6tGrc2lf+9uFOW2Cq+hmweb4PBH7kFIbq5/8KAfliEFxXNoMEwaeDrGE0JRJJg== X-Received: by 2002:a05:600c:3acd:b0:43d:9d5:474d with SMTP id 5b1f17b1804b1-43f3a7d827emr112266815e9.0.1744625929077; Mon, 14 Apr 2025 03:18:49 -0700 (PDT) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Anthony PERARD , Stefano Stabellini , Michal Orzel , Doug Goldstein , =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= , Jason Andryuk , "Daniel P . Smith" Subject: [PATCH v2 1/7] Rename and adjust x86 containers Date: Mon, 14 Apr 2025 11:18:37 +0100 Message-Id: <20250414101843.2348330-2-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com> References: <20250414101843.2348330-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Insert the Alpine version as we'll need a newer version in due course, and rename 'rootfs' to 'base' as the container really is not a rootfs on it's own. In base, add bash. It's added later by the rootfs generation anyway, but this way we can write the generation script in bash too. In build, group and sort the packages. Drop the ones we don't need, or are pulled in by dependencies. Include diffutils, findutils and gawk to avoid warnings in the kernel build. Signed-off-by: Andrew Cooper Reviewed-by: Marek Marczykowski-Górecki --- CC: Anthony PERARD CC: Stefano Stabellini CC: Michal Orzel CC: Doug Goldstein CC: Marek Marczykowski-Górecki CC: Jason Andryuk CC: Daniel P. Smith --- .gitlab-ci.yml | 4 +-- containerize | 4 +-- images/alpine/3.18-x86_64-base.dockerfile | 6 ++++ ...ockerfile => 3.18-x86_64-build.dockerfile} | 32 ++++++++++++------- images/alpine/x86_64-rootfs.dockerfile | 4 --- 5 files changed, 30 insertions(+), 20 deletions(-) create mode 100644 images/alpine/3.18-x86_64-base.dockerfile rename images/alpine/{x86_64-build.dockerfile => 3.18-x86_64-build.dockerfile} (54%) delete mode 100644 images/alpine/x86_64-rootfs.dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 670f9621e26d..fb997cc62162 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -28,7 +28,7 @@ stages: tags: - x86_64 variables: - CONTAINER: alpine:x86_64-build + CONTAINER: alpine:3.18-x86_64-build # # ARM64 artifacts @@ -62,7 +62,7 @@ x86_64-rootfs-alpine-3.18: script: - . scripts/x86_64-rootfs-alpine.sh variables: - CONTAINER: alpine:x86_64-rootfs + CONTAINER: alpine:3.18-x86_64-base x86_64-argo-linux-6.6.56: extends: .x86_64-artifacts diff --git a/containerize b/containerize index 7abeb119ff6a..c23f55ead737 100755 --- a/containerize +++ b/containerize @@ -25,8 +25,8 @@ die() { BASE="registry.gitlab.com/xen-project/hardware/test-artifacts" case "_${CONTAINER}" in _alpine-3.18-arm64-build) CONTAINER="${BASE}/alpine:3.18-arm64-build" ;; - _alpine-x86_64-rootfs) CONTAINER="${BASE}/alpine:x86_64-rootfs" ;; - _alpine-x86_64-build|_) CONTAINER="${BASE}/alpine:x86_64-build" ;; + _alpine-3.18-x86_64-base) CONTAINER="${BASE}/alpine:3.18-x86_64-base" ;; + _alpine-3.18-x86_64-build|_) CONTAINER="${BASE}/alpine:3.18-x86_64-build" ;; esac # Use this variable to control whether root should be used diff --git a/images/alpine/3.18-x86_64-base.dockerfile b/images/alpine/3.18-x86_64-base.dockerfile new file mode 100644 index 000000000000..a8cb274d5821 --- /dev/null +++ b/images/alpine/3.18-x86_64-base.dockerfile @@ -0,0 +1,6 @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/amd64 alpine:3.18 +LABEL maintainer.name="The Xen Project" +LABEL maintainer.email="xen-devel@lists.xenproject.org" + +RUN apk --no-cache add bash diff --git a/images/alpine/x86_64-build.dockerfile b/images/alpine/3.18-x86_64-build.dockerfile similarity index 54% rename from images/alpine/x86_64-build.dockerfile rename to images/alpine/3.18-x86_64-build.dockerfile index 98969a5be1da..eac0cda4fed3 100644 --- a/images/alpine/x86_64-build.dockerfile +++ b/images/alpine/3.18-x86_64-build.dockerfile @@ -1,31 +1,39 @@ # syntax=docker/dockerfile:1 FROM --platform=linux/amd64 alpine:3.18 -LABEL maintainer.name="The Xen Project" \ - maintainer.email="xen-devel@lists.xenproject.org" +LABEL maintainer.name="The Xen Project" +LABEL maintainer.email="xen-devel@lists.xenproject.org" RUN apk --no-cache add bash -RUN bash -ex < X-Patchwork-Id: 14050113 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 37A3DC369B5 for ; Mon, 14 Apr 2025 10:19:03 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.949554.1346072 (Exim 4.92) (envelope-from ) id 1u4Gtx-0005q3-1f; Mon, 14 Apr 2025 10:18:53 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 949554.1346072; Mon, 14 Apr 2025 10:18:53 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gtw-0005pG-SJ; Mon, 14 Apr 2025 10:18:52 +0000 Received: by outflank-mailman (input) for mailman id 949554; Mon, 14 Apr 2025 10:18:51 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gtv-0005Nh-OW for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:51 +0000 Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [2a00:1450:4864:20::42a]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id dc23f48b-1919-11f0-9eae-5ba50f476ded; Mon, 14 Apr 2025 12:18:51 +0200 (CEST) Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-39d83782ef6so3268719f8f.0 for ; Mon, 14 Apr 2025 03:18:51 -0700 (PDT) Received: from localhost.localdomain (host-92-26-98-202.as13285.net. [92.26.98.202]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Apr 2025 03:18:49 -0700 (PDT) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: dc23f48b-1919-11f0-9eae-5ba50f476ded DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1744625930; x=1745230730; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Banuvmf0avtg5GZqgl/5tNKpXlLxwAiYOanpenznEWY=; b=InSDfBjOi0Dp/gZZzOGM3AuiHXcMXiMuPGW11IV2QbKcniYWNYIQ06R4VPQnfg+80i xofDR/IbcXN4t9+8DSj2UrJ4KiPRabnHt11zKXPyAXVHJWiAStm3dzTZoat3QgTlZQAD KA/aEvPd6Z1ZQet+HUZV6ZN3TdT8gRQltN6DE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744625930; x=1745230730; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Banuvmf0avtg5GZqgl/5tNKpXlLxwAiYOanpenznEWY=; b=fJl3lwPBIZD7LDdHy6IhjFD6L2sZ6vzvhMPGazJ+fUllsGJUKF35AbkTqZuqymXQRw hp5mb7kKPkdel464gWopNwcOjrNGV1VJns0iWBxA7Zr8z93grWNlnaPpPkCZkv3b6Yxo bgFlhAHlK/fSC0H8KDOjGRrgZ8i4SSPCcQjeFYMU1BEb8fR5RgfVisSZ/7GtWJii5xeO uf1le4ddAeAptw6xLYbAgzf3E2lsn+dUN7gztbZ7pw6XGJXewSmuJIYa4sPrDOYX+cYE OY43jso7pzK3lRSMoxLdhyJknwpyldzmVkDDmAjl0NX3paDMfENPBvvY0jf8pf5zORZQ Q1ow== X-Gm-Message-State: AOJu0Yy21RP+8HGJl4X1lko1cudXTr5pU2bPGaGbuAlD56rsqon+Q7UV L5ZWN0IyxhPR+Rz0uC6AyUXioINyvPOSGFeiRzQQ4W43KVlV2wi/HT+sPG5HuFtlwO2FdADQNyT OPY0= X-Gm-Gg: ASbGnctwroIEmmy8WecdKM/7vLHIr6l8AR5KCKL8K4tiPmODhzu+pFAmDUQmsBJBKOv 0KLFW08CntNh83V+DKQBmQaPKZ7pqaUijiCczWE3dNcDZghRGTl3bm+UEDOkQL89mofOiUJC8c3 PcsGg0jcjGfDhAa7APVAeGgPGJJYbw/YyksXSo/9lS+ZLVbKltoqdALaMDkvSi+jejV+Z3wAKMZ lz3ANSjPPWfD5DNSZp/dE9MMNMxIJtHKXSnG4Fj0kgaP+Lx7KIIMA+qHLaIeoC8PqW0lKRPj30Z VLOyIBpT3lhmSjPI1rsU2nDqlMyVlTbeCj9GslT8Rf3UTla5aVb7kKcbSM2orXSFFJew5IGDERc uolJT9YQtU5iF/g== X-Google-Smtp-Source: AGHT+IEmJqI7t0Kh8X8h67YqDiQPbsg7zKhYbL8TN0p5wsbjshqI/5fQpkHN8lGUZSl8wj27xJBFyA== X-Received: by 2002:a5d:648c:0:b0:39c:2c0b:8db4 with SMTP id ffacd0b85a97d-39d8f275fbamr12192494f8f.10.1744625929963; Mon, 14 Apr 2025 03:18:49 -0700 (PDT) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Anthony PERARD , Stefano Stabellini , Michal Orzel , Doug Goldstein , =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= , Jason Andryuk , "Daniel P . Smith" Subject: [PATCH v2 2/7] Overhaul how Argo is built and packged Date: Mon, 14 Apr 2025 11:18:38 +0100 Message-Id: <20250414101843.2348330-3-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com> References: <20250414101843.2348330-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Right now, the argo artefacts are a pile of files which the test has to turn back into something which resembles a filesystem. Furthermore, because we do not build modules for the main kernel, it is extra important to make sure that xen-argo.ko doesn't get out of sync. Build argo conditionally as part of the linux artefact. It's ~100kb all together, compared to ~14M for the kernel. Produce a single argo.cpio.gz with xen-argo.ko in the standard location. Prune userspace down to just the executables and libraries. This is cribbed from the existing scripts/x86_64-linux-argo.sh, which stays in place in the short term until Xen can be updated to use the new scheme. Signed-off-by: Andrew Cooper Reviewed-by: Daniel P. Smith --- CC: Anthony PERARD CC: Stefano Stabellini CC: Michal Orzel CC: Doug Goldstein CC: Marek Marczykowski-Górecki CC: Jason Andryuk CC: Daniel P. Smith v2: * Only build conditionally. Argo is bust with Linux 6.12, which is needed for new hardware runners. * Parallel build of xen-argo.ko and libargo. * Use -print0 I tried to make MODPOST work properly, but we don't build enough of it for the kernel, and I didn't feel like adding an extra 10 mins to the build (all modules) just to get the metadata right. --- .gitlab-ci.yml | 2 ++ scripts/build-argo.sh | 67 ++++++++++++++++++++++++++++++++++++++++++ scripts/build-linux.sh | 8 ++++- 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100755 scripts/build-argo.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fb997cc62162..790a6d9f9896 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -47,6 +47,8 @@ linux-6.6.56-x86_64: script: ./scripts/build-linux.sh variables: LINUX_VERSION: 6.6.56 + ARGO_SHA: "705a7a8a624b42e13e655d3042059b8a85cdf6a3" + ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8" # # The jobs below here are legacy and being phased out. diff --git a/scripts/build-argo.sh b/scripts/build-argo.sh new file mode 100755 index 000000000000..ef7057d847d4 --- /dev/null +++ b/scripts/build-argo.sh @@ -0,0 +1,67 @@ +# +# This is a partial script, sourced by build-linux.sh +# It has expectations about the environment +# + +cd "${WORKDIR}" + +# +# We're going to collect everything in argo.cpio.gz. Construct it under +# $ARGODIR as we go. +# +ARGODIR="${WORKDIR}/argo-root" + +git clone https://github.com/OpenXT/linux-xen-argo.git --depth=1 +git -C "${WORKDIR}/linux-xen-argo" fetch origin "${ARGO_SHA}" +git -C "${WORKDIR}/linux-xen-argo" switch --detach FETCH_HEAD + +# Build xen-argo.ko against the target kernel, and install it. Install +# linux/argo.h too because userspace needs it. +make -j$(nproc) -C "linux-${LINUX_VERSION}" \ + M="${WORKDIR}/linux-xen-argo/argo-linux" \ + KBUILD_MODPOST_WARN=1 \ + CFLAGS_MODULE="-Wno-error" \ + modules +install -D -m644 "${WORKDIR}/linux-xen-argo/argo-linux/xen-argo.ko" \ + "${ARGODIR}/lib/modules/${LINUX_VERSION}/updates/xen-argo.ko" +install -D -m644 "${WORKDIR}/linux-xen-argo/argo-linux/include/linux/argo.h" \ + "${ARGODIR}/usr/include/linux/argo.h" + +# Build and install libargo, applying fixes to build in Alpine Linux +cd "${WORKDIR}/linux-xen-argo/libargo" +sed -e "s|AM_INIT_AUTOMAKE|AC_CONFIG_AUX_DIR(.)\nAM_INIT_AUTOMAKE|" \ + -i configure.ac +sed -e "s/__SOCKADDR_COMMON (sxenargo_)/sa_family_t sxenargo_family/" \ + -e "s/__SOCKADDR_COMMON_SIZE/(sizeof (unsigned short int))/" \ + -i src/libargo.h + +autoreconf --install +./configure --prefix=/usr CPPFLAGS="-I${PWD}/../argo-linux/include" +make -j$(nproc) +make install DESTDIR="${ARGODIR}" + +# Build and install argo-exec, modifying for xilinx argo test +cd "${WORKDIR}" +curl -fsSLO \ + https://raw.githubusercontent.com/OpenXT/xenclient-oe/${ARGOEXEC_SHA}/recipes-openxt/argo-exec/argo-exec/argo-exec.c +sed -e "/#include /d" \ + -e "s|ret = shuffle(s, fds\[0\], fds\[1\]);|ret = shuffle(s, 0, 1);|" \ + -i argo-exec.c + +gcc -I"${ARGODIR}/usr/include" -L"${ARGODIR}/usr/lib/" \ + argo-exec.c -o "${ARGODIR}/usr/bin/argo-exec" -largo + +# +# Building is now complete. Strip the devel components and the nointerposer +# lib, which we don't care to deploy to the test system. +# +cd $ARGODIR +rm -r usr/include usr/lib/pkgconfig +find usr/lib -name \*nointerposer\* -delete +find usr/lib \( -name \*.a -o -name \*.so -o -name \*.la \) -delete + +# Package everything up +find . -print0 | cpio -0 -R 0:0 -H newc -o | gzip > "$COPYDIR/argo.cpio.gz" + +# Print the contents for the build log +zcat "${COPYDIR}/argo.cpio.gz" | cpio -tv diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh index 652fdba7b9d1..441b8721a490 100755 --- a/scripts/build-linux.sh +++ b/scripts/build-linux.sh @@ -8,7 +8,7 @@ fi set -ex -o pipefail WORKDIR="${PWD}" -COPYDIR="${WORKDIR}/binaries/" +COPYDIR="${WORKDIR}/binaries" UNAME=$(uname -m) # Build Linux @@ -45,6 +45,12 @@ case $UNAME in x86_64) make -j$(nproc) bzImage cp arch/x86/boot/bzImage "${COPYDIR}" + + # Build argo if requested + if [[ -n "${ARGO_SHA}" ]]; then + make modules_prepare + . "${WORKDIR}/scripts/build-argo.sh" + fi ;; aarch64) From patchwork Mon Apr 14 10:18:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 14050118 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2F356C369B2 for ; Mon, 14 Apr 2025 10:19:10 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.949555.1346081 (Exim 4.92) (envelope-from ) id 1u4Gty-00066R-4v; Mon, 14 Apr 2025 10:18:54 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 949555.1346081; Mon, 14 Apr 2025 10:18:54 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gty-00066I-29; Mon, 14 Apr 2025 10:18:54 +0000 Received: by outflank-mailman (input) for mailman id 949555; Mon, 14 Apr 2025 10:18:52 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gtw-0005Nh-OX for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:52 +0000 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [2a00:1450:4864:20::336]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id dca5438c-1919-11f0-9eae-5ba50f476ded; Mon, 14 Apr 2025 12:18:51 +0200 (CEST) Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-43cfa7e7f54so25789315e9.1 for ; Mon, 14 Apr 2025 03:18:51 -0700 (PDT) Received: from localhost.localdomain (host-92-26-98-202.as13285.net. [92.26.98.202]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Apr 2025 03:18:50 -0700 (PDT) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: dca5438c-1919-11f0-9eae-5ba50f476ded DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1744625931; x=1745230731; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hY27kwUeC0aHdjJMCw3sLatm4tQzjVnnxCoVdjVXbD0=; b=B6IuDxLqou4Xy83jA7+GhRD9EuQos3td7i2HrQAztXP74wgvwLWPYmz8pXjndN37dQ tZuhYgZF2PtsC8L9aj7z6toOUewfzI/M2LWt9ICBAvjsdGTt6x4OO2LwT+rXX3YEwiSC bURjqhBsTSqr+FsMf5XpHMdd5ZaiXgFurx9wo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744625931; x=1745230731; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hY27kwUeC0aHdjJMCw3sLatm4tQzjVnnxCoVdjVXbD0=; b=UJ2dtenEzsFrftLfydNgjVTgu6ygeKlgTslNP0pUWGsM3dTgPr+O/QP2TjQvnauPbL 1tvq9N171WqLL4z8/8BJ/WyUiIOvsOpDEwDr557EuZrjlkU3EBRQYcrGSb+t8Eir0T+c vUs/HQ0QMZzi/P80bq/7iXuHccDfmgaMMUtCQ00YKA62mfOKEGayyZFzOjcQhfAfu3D5 f/19exDh9glR4v0FPjAPc6Keg3Xg96fmc4psnxpHETKtseADEEF9oHijzm+MRvHZfHP2 e160CnhG0BM5BQK63h1/LzXs7GT9v0ysOsg70n/QjMfVbl7sklDxln9KrUMaIWJeZBG8 miKg== X-Gm-Message-State: AOJu0YzHdasUu8BYCAqJL8HNbEtU8KlcAVXV1oI5Au1H8hcdmeyMyoHr F1MkmeJCMAa02wO2kBL/mLG098IM7hiaWYR3e6ymOSEZAranVYvms0ZepXYSNET94ZZzx1K8SdP m9FU= X-Gm-Gg: ASbGncsXFZSsChUSgmKlRY4oCxMu5uVKD1n3yzOnfY4wPb2EIQO0tNPAWyUiD5L+D0J 2Ljz5KOnywYWDJext8hBPT296Py6EsAPHPkaE0+HmC6AWItbE24qRWZZ1UG/Jn/VTv8CUrBqm21 0xDKBZ2/OpPcxEH/DW5bk5YQph4AFTOtTu5RSpJr/VykGfWvhs6jRPGSILnuv6re/Z3KG8QxTeb 6UF+HF5G5ncL6COiH007jtt/52IPyOs65IBPPfE2Vj9eJpTF5OtrFrke+0cG8HE5SxobA7SY3pV EgMyQSO1mbSYtedwC9SiAZo18Us0xaI9gaM0VVrHTWqrlN1nM4qtfj6OCiMN29YMuKKEFFpiKX4 mefKF/BwW1IlI9pzk3YNKai8V X-Google-Smtp-Source: AGHT+IHlhWTC657aAMaj6w7SXwH//jsWWtI2psvQ130N/dELSD5E/ipKReX8rEgxNL5sTAFtLI/UVA== X-Received: by 2002:a7b:ce90:0:b0:43b:c592:7e16 with SMTP id 5b1f17b1804b1-43f337c2b5bmr112863215e9.3.1744625930811; Mon, 14 Apr 2025 03:18:50 -0700 (PDT) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Denis Mukhin , Anthony PERARD , Stefano Stabellini , Michal Orzel , Doug Goldstein , =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= Subject: [PATCH v2 3/7] Rework rootfs generation to make a cpio archive Date: Mon, 14 Apr 2025 11:18:39 +0100 Message-Id: <20250414101843.2348330-4-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com> References: <20250414101843.2348330-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Rename the script as we're going to use it for ARM64 shortly, and have it take a tar or cpio parameter to determine the output format. Turn it into a proper bash script, and provide the cpio form under the new artefact naming scheme. No functional change. Signed-off-by: Andrew Cooper Reviewed-by: Denis Mukhin Reviewed-by: Marek Marczykowski-Górecki --- CC: Anthony PERARD CC: Stefano Stabellini CC: Michal Orzel CC: Doug Goldstein CC: Marek Marczykowski-Górecki v2: * Use -print0 * Don't dedup $PATHS. It's going to change between cpio and tar in subsequent patches. --- .gitlab-ci.yml | 9 +++++++- ...6_64-rootfs-alpine.sh => alpine-rootfs.sh} | 21 +++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) rename scripts/{x86_64-rootfs-alpine.sh => alpine-rootfs.sh} (71%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 790a6d9f9896..b7d187168df2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,6 +42,13 @@ linux-6.6.86-arm64: # # x86_64 artifacts # +alpine-3.18-x86_64-rootfs: + extends: .x86_64-artifacts + script: + - ./scripts/alpine-rootfs.sh cpio + variables: + CONTAINER: alpine:3.18-x86_64-base + linux-6.6.56-x86_64: extends: .x86_64-artifacts script: ./scripts/build-linux.sh @@ -62,7 +69,7 @@ x86_64-kernel-linux-6.6.56: x86_64-rootfs-alpine-3.18: extends: .x86_64-artifacts script: - - . scripts/x86_64-rootfs-alpine.sh + - ./scripts/alpine-rootfs.sh tar variables: CONTAINER: alpine:3.18-x86_64-base diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/alpine-rootfs.sh similarity index 71% rename from scripts/x86_64-rootfs-alpine.sh rename to scripts/alpine-rootfs.sh index b70b3a54ede5..75e2f8648ce5 100755 --- a/scripts/x86_64-rootfs-alpine.sh +++ b/scripts/alpine-rootfs.sh @@ -1,4 +1,9 @@ +#!/bin/bash + +set -eu + WORKDIR="${PWD}" +COPYDIR="${WORKDIR}/binaries" apk update @@ -56,5 +61,17 @@ passwd -d "root" root # Create rootfs cd / -tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \ - bin dev etc home init lib mnt opt root sbin usr var +case $1 in + cpio) + PATHS="bin dev etc home init lib mnt opt root sbin usr var" + find $PATHS -print0 | cpio -0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz" + + # Print the contents for the build log + zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv + ;; + + tar) + PATHS="bin dev etc home init lib mnt opt root sbin usr var" + tar cvzf "${COPYDIR}/initrd.tar.gz" $PATHS + ;; +esac From patchwork Mon Apr 14 10:18:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 14050116 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0CA79C369B2 for ; Mon, 14 Apr 2025 10:19:07 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.949557.1346091 (Exim 4.92) (envelope-from ) id 1u4Gtz-0006Mt-C3; Mon, 14 Apr 2025 10:18:55 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 949557.1346091; Mon, 14 Apr 2025 10:18:55 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gtz-0006Mk-95; Mon, 14 Apr 2025 10:18:55 +0000 Received: by outflank-mailman (input) for mailman id 949557; Mon, 14 Apr 2025 10:18:53 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gtx-0005Nh-On for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:53 +0000 Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [2a00:1450:4864:20::333]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id dd23d9a6-1919-11f0-9eae-5ba50f476ded; Mon, 14 Apr 2025 12:18:52 +0200 (CEST) Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-43ede096d73so29815775e9.2 for ; Mon, 14 Apr 2025 03:18:52 -0700 (PDT) Received: from localhost.localdomain (host-92-26-98-202.as13285.net. [92.26.98.202]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Apr 2025 03:18:51 -0700 (PDT) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: dd23d9a6-1919-11f0-9eae-5ba50f476ded DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1744625932; x=1745230732; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wlk2C2qbHJoC+R/qrRgQwbQ441YQiHB5rm1pXRjQnSc=; b=sz0ZQO+H82rgAbZ7eplpczt/+u+akZusZPjcGAxJX5gCh4hIwEAtlNzn34AMcfRXT/ 5QOxAWqpA7ZqsLIaCypmE2OhsdGLYxfEQJF1V3AJkOsNnjxs3djGdHclP7oH3bc4Ag7i kDXtzO0wHmsWtJ4HXSk8m/nMlMCxqWG5bL/9k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744625932; x=1745230732; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wlk2C2qbHJoC+R/qrRgQwbQ441YQiHB5rm1pXRjQnSc=; b=TKBotqxpqyTLcUziIeLviGkztIPAOYNcxnwSeaVVSUDTj+2aj/qF0k8r2+czorhkbh BrvSDn3Zeffh6e9t9I+PG/NFZSw3w2cKG059QEyBPGzYMkvFPCELoT3vhsjYSa1I3MuB JnKCwdAf+VMlPyQ6uZP7hSrEuSOLBD2T59Lw9p5+cNY+E4Udpj5feW/XmLMa7UdDcZjV mFmtLIlkLlDuJCEc7SVXec/qlr8zURSliVFYswqWXGmAGL40asnHoZJkO5m6+GeO+oZL dz+ZMywapb5uNTjKDUsn3DA3EWY9XGeDQCv1tdk4brqegkCIeO0LuzvjBin/GG+6pt92 /MjA== X-Gm-Message-State: AOJu0YySjKx5hvDI9ag6cuZqT/AKyuUZi69gAdLZwaRsH3L4ajx1vzSo MbZ4z5YB201QErupGeewy1737JLZlTTq0aRhkVwRXEkpY6GNyvSEklnsVnToO9kfdEIPGdpJsWp xiTQ= X-Gm-Gg: ASbGnctgNyMdCFyd9lWLBvfHL/noi+sB7uDQpvpCMkB4o7VJvKGkoKZB3eqKxfabWOY jJfDyaoxgJuRAplLqqZXZMmILR99oWTAx2sMNrqVD3jiKtBmhX5m2WOPp3liMEmb8tFN+POMh0I LzUIxizHC349+jK1Ra8dzmBCFupjfxos+zXswzZO8MLR0ZDrsSTJ1CC5jf800S++03UV7wjfuJO P+HLZ5RD1ubhXM1MP5ust14QW7ORTkSGFPlp/EJ8yOCUu/BCwKyWfm9C99K3qaBH010lxu+mfzQ P7ZHbZ1jZlQR+d1bayiNcWD28Q2m3ihs+32xJfg8NadzPMx8+rQqatE4CbNhmBLki8fSvZiti5f yeb+OE+X85LPzCg== X-Google-Smtp-Source: AGHT+IEYbjX2/qPltvHzwBvhqVGJSlcIvueTuo9Pe0SPfLBl1RG9OOR//v0UwuHwn84+dlnokajXwQ== X-Received: by 2002:a05:600c:46d1:b0:43d:36c:f24 with SMTP id 5b1f17b1804b1-43f3a93de33mr103346745e9.13.1744625931696; Mon, 14 Apr 2025 03:18:51 -0700 (PDT) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Anthony PERARD , Stefano Stabellini , Michal Orzel , Doug Goldstein , =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= Subject: [PATCH v2 4/7] Shrink the rootfs substantially Date: Mon, 14 Apr 2025 11:18:40 +0100 Message-Id: <20250414101843.2348330-5-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com> References: <20250414101843.2348330-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 bash, busybox, musl and zlib are all in the base container. python3 and ncurses are in principle used by bits of Xen, but not in anything we test in CI. argp-standlone, curl, dbus, libfdt, libgcc and sudo aren't used at all (for x86 at least). libbz2 and libuuid were pulled in transitively before, and need to be included explicitly now. Use apk --no-cache to avoid keeping a ~2M package index on disk. Remove the modules scan on boot. We don't have or build any. This removes a chunk of warnings on boot. This shrinks the rootfs from ~30M down to ~8M. No practical change. Signed-off-by: Andrew Cooper --- CC: Anthony PERARD CC: Stefano Stabellini CC: Michal Orzel CC: Doug Goldstein CC: Marek Marczykowski-Górecki --- scripts/alpine-rootfs.sh | 60 +++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh index 75e2f8648ce5..72c29e0a0a13 100755 --- a/scripts/alpine-rootfs.sh +++ b/scripts/alpine-rootfs.sh @@ -4,33 +4,42 @@ set -eu WORKDIR="${PWD}" COPYDIR="${WORKDIR}/binaries" +UNAME=$(uname -m) -apk update +apk --no-cache update -# xen runtime deps -apk add musl -apk add libgcc -apk add openrc -apk add busybox -apk add sudo -apk add dbus -apk add bash -apk add python3 -apk add zlib -apk add lzo -apk add ncurses -apk add yajl -apk add libaio -apk add xz -apk add util-linux -apk add argp-standalone -apk add libfdt -apk add glib -apk add pixman -apk add curl -apk add udev -apk add pciutils -apk add libelf +PKGS=( + # System + openrc + udev + util-linux + + # Xen toolstack runtime deps + libbz2 + libuuid + lzo + xz + yajl + + # QEMU + glib + libaio + pixman + ) + +case $UNAME in + x86_64) + PKGS+=( + # System + pciutils + + # QEMU + libelf + ) + ;; +esac + +apk add --no-cache "${PKGS[@]}" # Xen cd / @@ -45,7 +54,6 @@ rc-update add dmesg sysinit rc-update add hostname boot rc-update add hwclock boot rc-update add hwdrivers sysinit -rc-update add modules boot rc-update add killprocs shutdown rc-update add mount-ro shutdown rc-update add savecache shutdown From patchwork Mon Apr 14 10:18:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 14050115 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 308A3C369B5 for ; Mon, 14 Apr 2025 10:19:06 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.949559.1346111 (Exim 4.92) (envelope-from ) id 1u4Gu2-0006uk-3C; Mon, 14 Apr 2025 10:18:58 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 949559.1346111; Mon, 14 Apr 2025 10:18:58 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gu1-0006uZ-VU; Mon, 14 Apr 2025 10:18:57 +0000 Received: by outflank-mailman (input) for mailman id 949559; Mon, 14 Apr 2025 10:18:56 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gu0-0006cA-Ea for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:56 +0000 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [2a00:1450:4864:20::330]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id dd8d35ce-1919-11f0-9ffb-bf95429c2676; Mon, 14 Apr 2025 12:18:53 +0200 (CEST) Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-43cfdc2c8c9so21765845e9.2 for ; Mon, 14 Apr 2025 03:18:53 -0700 (PDT) Received: from localhost.localdomain (host-92-26-98-202.as13285.net. [92.26.98.202]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Apr 2025 03:18:52 -0700 (PDT) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: dd8d35ce-1919-11f0-9ffb-bf95429c2676 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1744625932; x=1745230732; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/ALhgfa8xDZiAvk4KRkCYhHo7ZCFxaNbuuSEWDWlOxI=; b=hx1iT8nLetYOZcZnTYrqHr6i4nFuFaKjkDUBKiqgBbh8HNzTnI3G+xkYzXU6roc7ir bxyHlhk3U9VN1SKYABrxBIxaPiXIH3MxeC0ENh2Dk1DN9yu+z5JwN2lUfWrmP++/Ir2O +hS6JJmHPlnZp2daQIV0gegApoc33kKJK2Zc4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744625932; x=1745230732; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/ALhgfa8xDZiAvk4KRkCYhHo7ZCFxaNbuuSEWDWlOxI=; b=bklqnJ0hEAm9gVsi95E7LRTJQkQes3ElD+UeVywnBIXzSihOCLtzO3zBur7pngwM1t 528PrK1FWhIJNsImX38TKlSjgu7UeDoWroD/t4fVToycUiaRj7/tFS0rNdH8HooMsT2U zxe86AzjjQtZFk0DiVstOnEtpfsTX7QQLOZfnQ0ARtWoU1vj0a41rTe3eFXQPxTap6d4 uQSyG5rJzXsUHe9x8DMLAW9MhEiqgEuO8oX818LhRSHwYW0I9URb+pk31Z6U9UDcoH4r MIW9X5tKVrn0Zq9STKaF2m9HnzNQsBiSxJLP7pVgqilTYI9+42HTQkxRQ8JHBSIgkzRF I+TA== X-Gm-Message-State: AOJu0YwCiknDRdysgDR621S+Bw6XP915fyr0o8cAdfuRnmoAzm+WGib8 CT0NVx6jpeiiih0B4mmZlFyP0PpeIlD8l9al2FAdVC+LFG72ynRfncOXacjVIfhjCQgaE5T50lF GNtY= X-Gm-Gg: ASbGnctz1bV3E6+Mq9OyDNgx/NLFZML+/vUqydnsRQDvG4kbeuk6W9XbJCuSTSAE8KU eYAb26A4B1E9FJsfXt9SH0sHqgO36xBPN5XOGnfvT54CBLyyRFYEeBx0AuTblEtUMudwsHLsFqB e0qdLksmn8tLGQcI3tSENyLNPsXZj1eioXMjUlTzw/6xfYe735F0sOaj9mOhY8BprGShCBZTlJi OrRSH9aFaHJYPcy9QFAiTNJTfHx835L6yRG7lM0WL1A77kYUpz7Vh+Kal3otlfEo/WTUhKfn0jH lXRnn6xvLHG1bAXTsMQrWjvjqpC1ATeLk0b+oQ55x2i6oTEwR0iC7ElqLQKYq27kn1Ii19h/jpq 7GWlHlGZfazs4iHjJpMRqsWyG X-Google-Smtp-Source: AGHT+IGUOhJ8hOJ+FLCHu2qubXmKfJOTDyLGchtAUpKntvTfEbGETJQ7zhU/aAU5N7j+PXHlWs1cbw== X-Received: by 2002:a05:600c:1911:b0:43d:526:e0ce with SMTP id 5b1f17b1804b1-43f3a9ab03bmr80051015e9.21.1744625932482; Mon, 14 Apr 2025 03:18:52 -0700 (PDT) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Anthony PERARD , Stefano Stabellini , Michal Orzel , Doug Goldstein , =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= Subject: [PATCH v2 5/7] Adjust directory layout for rootfs.cpio.gz Date: Mon, 14 Apr 2025 11:18:41 +0100 Message-Id: <20250414101843.2348330-6-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com> References: <20250414101843.2348330-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 All tests using the rootfs currently modify it with: mkdir proc mkdir run mkdir srv mkdir sys rm var/run This is because the rootfs doesn't have the correct top level directories. Furthermore, dev is currently included when it oughtn't to be. srv is easy. It's an empty directory and can be included in PATHS. dev, proc, run and sys are all mount points, which OpenRC knows how to populate on boot. Create only the top level directories in rootfs, without `find` recursing into them. Signed-off-by: Andrew Cooper Reviewed-by: Marek Marczykowski-Górecki --- CC: Anthony PERARD CC: Stefano Stabellini CC: Michal Orzel CC: Doug Goldstein CC: Marek Marczykowski-Górecki v2: * New --- scripts/alpine-rootfs.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh index 72c29e0a0a13..53547b5c5282 100755 --- a/scripts/alpine-rootfs.sh +++ b/scripts/alpine-rootfs.sh @@ -71,8 +71,11 @@ passwd -d "root" root cd / case $1 in cpio) - PATHS="bin dev etc home init lib mnt opt root sbin usr var" - find $PATHS -print0 | cpio -0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz" + { + PATHS="bin etc home init lib mnt opt root sbin srv usr var" + find $PATHS -print0 + echo -ne "dev\0proc\0run\0sys\0" + } | cpio -0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz" # Print the contents for the build log zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv From patchwork Mon Apr 14 10:18:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 14050114 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 80EFFC369B2 for ; Mon, 14 Apr 2025 10:19:04 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.949558.1346095 (Exim 4.92) (envelope-from ) id 1u4Gtz-0006Pl-Mk; Mon, 14 Apr 2025 10:18:55 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 949558.1346095; Mon, 14 Apr 2025 10:18:55 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gtz-0006PK-Hg; Mon, 14 Apr 2025 10:18:55 +0000 Received: by outflank-mailman (input) for mailman id 949558; Mon, 14 Apr 2025 10:18:54 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gty-0005Nh-P5 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:54 +0000 Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [2a00:1450:4864:20::42c]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id de1a3f6b-1919-11f0-9eae-5ba50f476ded; Mon, 14 Apr 2025 12:18:54 +0200 (CEST) Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-39c13fa05ebso2429491f8f.0 for ; Mon, 14 Apr 2025 03:18:54 -0700 (PDT) Received: from localhost.localdomain (host-92-26-98-202.as13285.net. [92.26.98.202]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Apr 2025 03:18:52 -0700 (PDT) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: de1a3f6b-1919-11f0-9eae-5ba50f476ded DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1744625933; x=1745230733; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sNXGZn+6xdEm7eUiN1rhPMralAe0vvaD92Ofput/+hY=; b=O7Za0dQQwtCKAeoPABXZyjTyy9YuTeHiysHQetb9g/Amp0bTCbrbuxQ78p1DSlo3Xa 8NHidCS567OMV5udU2/68tf39L4PWTtpN8+58bjT4JcEpeQUhBZIda9BFl+pzAUboFLs eDaFoNKpRlcRXC/md3lto+CX8D8WaL0nSvgMo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744625933; x=1745230733; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sNXGZn+6xdEm7eUiN1rhPMralAe0vvaD92Ofput/+hY=; b=JU+azb4aVPF8lcupELhZ2w07SQEDfFxdUrdiDJuTST6mJy59n2jxCsfYvZ4ltOgyZ6 Z7bKQxdi9EiMTMetMwWyu5nK8VyWdc+OhOrB8jl4T/UQfePN9EuQEgRrSu5L7DWNQJGV DxJ1zuK5AF+Vd+AXpT9T34Xtr4vEe7gEoaQi56+79MeVCNaGf4nUDYG+KfsoqoPZkA61 1c7DU3lUg04+UYtEv/Y3hoRO6iRgXtwQ6h7kj0mpQ50lLN13uMH/q0r2sNln9KrdW3le j/XiF1yDsgcohNcVvWzPRzwdXNFFuVmPoG24VuL9jrVlPOz8bBAO01SYMSB1YWnK3/bL hyVg== X-Gm-Message-State: AOJu0Yy3XOh581nw7tzBkY2m5/cHq/J5Im+JF2a+OgAKla7uidWCwzAB 8U2labyEnVX3gGb4fPbVt/RYiRF9Hkauso27JTJZlsNAXZmmxwOHszjayiOwt8H/CM7/iOoUxoy Xd9A= X-Gm-Gg: ASbGncsjRHqTbsRYgjpld42BwBjL5zDivxcPnoujwOVd8BqYT1N4naqv+jObaj2RCG2 jhx89xEqNs2AZ7/qb1k3voEiEBwpfnNnDg+RI1V9bxllokmM2YB4RMA4rDbRKSdJGT3AQ2A5OXY 9NgvGUswZCxT6nc/snnYIRufkcliMmBwpFSXVkRisxzIlhkvY3OQDh/O2ywX0WXehjR0qzEbByq 2XL6KH19MBEUwBhJSIzxBCB9L+Nvy16gkLboTdkFMkSf29A9kSDhibaVM+gQaWyheIFVZz0mGch pZG5YD6ukoecDW+xvNeSx9IqYHRGpElIE8lsWnzFlinh5g0pdbqDZIs7kexlRMPo/D/lrD16uXX CmEdzhm2R92GpaQ== X-Google-Smtp-Source: AGHT+IGDgWsZdwPw7zxnnU1IXbbRkiqFuoLkSDmnmlnEk9nygrtJraTF3sOh8z1bDsIdi1CEl58G9A== X-Received: by 2002:adf:9dcb:0:b0:39e:cbd2:9211 with SMTP id ffacd0b85a97d-39ecbd292afmr5466712f8f.55.1744625933228; Mon, 14 Apr 2025 03:18:53 -0700 (PDT) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Anthony PERARD , Stefano Stabellini , Michal Orzel , Doug Goldstein , =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= Subject: [PATCH v2 6/7] Provide an ARM64 rootfs too Date: Mon, 14 Apr 2025 11:18:42 +0100 Message-Id: <20250414101843.2348330-7-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com> References: <20250414101843.2348330-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 The only extra package needed is libfdt. The older ARM64 rootfs configured modloop, networking and sysctl, but none of this is used in any of the testing, so is omitted here for now. Signed-off-by: Andrew Cooper Reviewed-by: Marek Marczykowski-Górecki --- CC: Anthony PERARD CC: Stefano Stabellini CC: Michal Orzel CC: Doug Goldstein CC: Marek Marczykowski-Górecki --- .gitlab-ci.yml | 7 +++++++ containerize | 1 + images/alpine/3.18-arm64-base.dockerfile | 6 ++++++ scripts/alpine-rootfs.sh | 7 +++++++ 4 files changed, 21 insertions(+) create mode 100644 images/alpine/3.18-arm64-base.dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b7d187168df2..d70ddd99e529 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,6 +33,13 @@ stages: # # ARM64 artifacts # +alpine-3.18-arm64-rootfs: + extends: .arm64-artifacts + script: + - ./scripts/alpine-rootfs.sh cpio + variables: + CONTAINER: alpine:3.18-arm64-base + linux-6.6.86-arm64: extends: .arm64-artifacts script: ./scripts/build-linux.sh diff --git a/containerize b/containerize index c23f55ead737..38a434ab7075 100755 --- a/containerize +++ b/containerize @@ -24,6 +24,7 @@ die() { # BASE="registry.gitlab.com/xen-project/hardware/test-artifacts" case "_${CONTAINER}" in + _alpine-3.18-arm64-base) CONTAINER="${BASE}/alpine:3.18-arm64-base" ;; _alpine-3.18-arm64-build) CONTAINER="${BASE}/alpine:3.18-arm64-build" ;; _alpine-3.18-x86_64-base) CONTAINER="${BASE}/alpine:3.18-x86_64-base" ;; _alpine-3.18-x86_64-build|_) CONTAINER="${BASE}/alpine:3.18-x86_64-build" ;; diff --git a/images/alpine/3.18-arm64-base.dockerfile b/images/alpine/3.18-arm64-base.dockerfile new file mode 100644 index 000000000000..ab597c75b80e --- /dev/null +++ b/images/alpine/3.18-arm64-base.dockerfile @@ -0,0 +1,6 @@ +# syntax=docker/dockerfile:1 +FROM --platform=linux/arm64/v8 alpine:3.18 +LABEL maintainer.name="The Xen Project" +LABEL maintainer.email="xen-devel@lists.xenproject.org" + +RUN apk --no-cache add bash diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh index 53547b5c5282..e52908a3d588 100755 --- a/scripts/alpine-rootfs.sh +++ b/scripts/alpine-rootfs.sh @@ -37,6 +37,13 @@ case $UNAME in libelf ) ;; + + aarch64) + PKGS+=( + # Xen + libfdt + ) + ;; esac apk add --no-cache "${PKGS[@]}" From patchwork Mon Apr 14 10:18:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 14050117 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 57343C369B5 for ; Mon, 14 Apr 2025 10:19:10 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.949560.1346114 (Exim 4.92) (envelope-from ) id 1u4Gu2-0006xB-Eo; Mon, 14 Apr 2025 10:18:58 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 949560.1346114; Mon, 14 Apr 2025 10:18:58 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gu2-0006vl-61; Mon, 14 Apr 2025 10:18:58 +0000 Received: by outflank-mailman (input) for mailman id 949560; Mon, 14 Apr 2025 10:18:57 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u4Gu1-0006cA-4U for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:57 +0000 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [2a00:1450:4864:20::32f]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id de8dd637-1919-11f0-9ffb-bf95429c2676; Mon, 14 Apr 2025 12:18:54 +0200 (CEST) Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-43d07ca6a80so19015125e9.1 for ; Mon, 14 Apr 2025 03:18:54 -0700 (PDT) Received: from localhost.localdomain (host-92-26-98-202.as13285.net. [92.26.98.202]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Apr 2025 03:18:53 -0700 (PDT) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: de8dd637-1919-11f0-9ffb-bf95429c2676 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1744625934; x=1745230734; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1BxgGCRwzO7L707eY7SgfaioeTDsDFCJ+wxG6hWaDZA=; b=PD6w7Aojk5gPSRkkcdC7CbeF+9iWhUT9uhmGHCQWXfC2zVyuwab0EMWh6Hz5Q0I+g2 CQXLQM4VoyyYrY36PF2Qoo46HS+vBM38A/4uWWk/odJ1qMaaVwejiTdg6HzanhoF66DK QhrUgPamz3pmYBNRHY+kld/g4HHx4LVVSLMqM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744625934; x=1745230734; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1BxgGCRwzO7L707eY7SgfaioeTDsDFCJ+wxG6hWaDZA=; b=dCOBbiM3dI+da6u9sSvPTYH1v/GPYPj6yOBFwMqX53xZJ06mP3J6+nEa7PB4u29k6u 4dIqnv3im9KIvg97Fv3OByxMY/yp262n1o8URHxKeC16FuhmbSTgoTSqnjnuj2vMWAgA XQVz2/Y6JfoFu5flKfebom1q2lgOrVNvSep8vxoe48swnkvMhM40fuZ/lYjNCtZOj7GA ZfnZZdU59ZI0DhX0xNkID3/H3bJTRDzk5ub70wCrfMqe7s3ZvBTYkd5ximU2DVwx7DXM EpAcnJR3uk2snPjGBvwEMWh+j8bENOBx4DIuQldMfzNINhcIAQUjBARDJxtEHsV25FpI vfkg== X-Gm-Message-State: AOJu0Yz4wBFd0/7SDpOB5qP8v4SkmndSIrgtMQVuw2P+UHD7LqgUwCfU 10GPSSZP258QOT/x7b6YDdEWGgxI7XBHto2ve3PhAvhAQtV3TCeB9XgJwCnq71RiPOLB7aNzKi4 nvJc= X-Gm-Gg: ASbGncvB9NOmdGCuETRp7+Q8fevzRC8tXmgP2iSmiEZsmuqxSfuaD4I6rokbiLQpsSj HYe8NV1HhQRKtc1lSulEHMKS146/z2yiYuCvncAVrYN1gFv7oXU/Recq639vVAsJzeoRQf4QV9V oNAwKF09x7j76hMbM20d3Pd5HHCd3b7vr7v8O8PvtPayWGGTqZg52NgHyBjJjc7MdE0MQ39CQyL grX/a6H0o493cxWxoxx7ffGC+ZFkUbBQO/puuXLOL5nS1tN29aUyjjEdWD+KZPPBnY5DXFtbOtp wKVhFTXEVNB4aQiuPiqyaJtd4eJ5JCtRH3dOeeq5e/upVqeOrdqBdBnQ/j04xLT3JSHqI8HMaN+ FJ8Cveuve+YZUuw== X-Google-Smtp-Source: AGHT+IHDf0hhLAOJettuM+qp4C4T4LENm81nifm+m3sS3bM+cfNaYx/OsGEvtN1kW3nGhYlQDLnZpA== X-Received: by 2002:a05:600c:34c5:b0:43d:649:4e50 with SMTP id 5b1f17b1804b1-43f3a93c74cmr104465045e9.13.1744625934073; Mon, 14 Apr 2025 03:18:54 -0700 (PDT) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Jason Andryuk , Anthony PERARD , Stefano Stabellini , Michal Orzel , Doug Goldstein , =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= Subject: [PATCH v2 7/7] Package microcode for the x86 hardware runners Date: Mon, 14 Apr 2025 11:18:43 +0100 Message-Id: <20250414101843.2348330-8-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com> References: <20250414101843.2348330-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 They are all out of date, to different degrees. Install jq into the x86_64 build container so we can parse the Github latest release information in an acceptable way. The resulting archive must be uncompressed, in order to work during early boot. Signed-off-by: Andrew Cooper Reviewed-by: Jason Andryuk --- CC: Anthony PERARD CC: Stefano Stabellini CC: Michal Orzel CC: Doug Goldstein CC: Marek Marczykowski-Górecki --- .gitlab-ci.yml | 4 +++ images/alpine/3.18-x86_64-build.dockerfile | 3 ++ scripts/x86-microcode.sh | 42 ++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100755 scripts/x86-microcode.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d70ddd99e529..74335363d5ed 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -64,6 +64,10 @@ linux-6.6.56-x86_64: ARGO_SHA: "705a7a8a624b42e13e655d3042059b8a85cdf6a3" ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8" +microcode-x86: + extends: .x86_64-artifacts + script: ./scripts/x86-microcode.sh + # # The jobs below here are legacy and being phased out. # diff --git a/images/alpine/3.18-x86_64-build.dockerfile b/images/alpine/3.18-x86_64-build.dockerfile index eac0cda4fed3..c4ff30e1f138 100644 --- a/images/alpine/3.18-x86_64-build.dockerfile +++ b/images/alpine/3.18-x86_64-build.dockerfile @@ -27,6 +27,9 @@ RUN < intel-latest.json +TARBALL_URL="$(jq -r .tarball_url intel-latest.json)" +curl -fsSL "${TARBALL_URL}" > intel-latest.tar +tar xf intel-latest.tar --strip-components=1 + +( + cd intel-ucode + cat 06-97-02 # adl-* + cat 06-8e-09 # kbl-* +) > "${UCODEDIR}/GenuineIntel.bin" + +# +# AMD microcode comes from linux-firmware +# +curl -fsSLO https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amd-ucode/microcode_amd_fam17h.bin +curl -fsSLO https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amd-ucode/microcode_amd_fam19h.bin + +( + cat microcode_amd_fam17h.bin # zen2-*, xilinux-*-x86_64-* + cat microcode_amd_fam19h.bin # zen3p-* +) > "${UCODEDIR}/AuthenticAMD.bin" + +# Package everything up. It must be uncompressed +cd "${ROOTDIR}" +find . | cpio -R 0:0 -H newc -o > "${COPYDIR}/ucode.cpio" + +# Print the contents for the build log +cpio -tv < "${COPYDIR}/ucode.cpio"