Fix qemu emulation

This commit is contained in:
Vasily Evseenko 2025-02-04 12:48:22 +03:00
parent 5995320173
commit 86e3a9fb54
4 changed files with 9 additions and 6 deletions

View File

@ -14,7 +14,7 @@ jobs:
fail-fast: false
matrix:
version: [11, 12]
arch: [ "armhf.arm32v7", "arm64.arm64v8", "amd64.amd64", "mips64le.mips64le", "s390x.s390x", "ppc64le.ppc64le"]
arch: [ "armhf.arm32v7.max", "arm64.arm64v8.cortex-a53", "amd64.amd64.max", "mips64le.mips64le.MIPS64R2-generic", "s390x.s390x.max", "ppc64le.ppc64le.power8"]
steps:
- name: Checkout repository
@ -22,7 +22,7 @@ jobs:
- name: build package
run: |
curl -s -L https://github.com/svpcom/wfb-ng/releases/download/wifibroadcast-17.10/qemu-7.2.15-fixed.tar.gz | sudo tar xzv -C /
make deb_docker DOCKER_ARCH=$(echo ${{ matrix.arch}} | cut -f1 -d.) DOCKER_SRC_IMAGE=$(echo ${{ matrix.arch }} | cut -f2 -d.)/debian:${{ matrix.version }}
make deb_docker QEMU_CPU=$(echo ${{ matrix.arch }} | cut -f3 -d.) DOCKER_ARCH=$(echo ${{ matrix.arch }} | cut -f1 -d.) DOCKER_SRC_IMAGE=$(echo ${{ matrix.arch }} | cut -f2 -d.)/debian:${{ matrix.version }}
- name: Archive production artifacts
uses: actions/upload-artifact@v4
id: artifact-upload-step

View File

@ -14,7 +14,7 @@ jobs:
fail-fast: false
matrix:
version: [ "20.04", "22.04", "24.04" ]
arch: [ "armhf.arm32v7", "arm64.arm64v8", "amd64.amd64"]
arch: [ "armhf.arm32v7.max", "arm64.arm64v8.cortex-a53", "amd64.amd64.max"]
steps:
- name: Checkout repository
@ -22,7 +22,7 @@ jobs:
- name: build package
run: |
curl -s -L https://github.com/svpcom/wfb-ng/releases/download/wifibroadcast-17.10/qemu-7.2.15-fixed.tar.gz | sudo tar xzv -C /
make deb_docker DOCKER_ARCH=$(echo ${{ matrix.arch}} | cut -f1 -d.) DOCKER_SRC_IMAGE=$(echo ${{ matrix.arch }} | cut -f2 -d.)/ubuntu:${{ matrix.version }}
make deb_docker QEMU_CPU=$(echo ${{ matrix.arch }} | cut -f3 -d.) DOCKER_ARCH=$(echo ${{ matrix.arch }} | cut -f1 -d.) DOCKER_SRC_IMAGE=$(echo ${{ matrix.arch }} | cut -f2 -d.)/ubuntu:${{ matrix.version }}
- name: Archive production artifacts
uses: actions/upload-artifact@v4
id: artifact-upload-step

View File

@ -17,6 +17,7 @@ ENV ?= $(PWD)/env
DOCKER_ARCH ?= amd64
DOCKER_SRC_IMAGE ?= "p2ptech/cross-build:2023-02-21-raspios-bullseye-armhf-lite"
STDEB ?= "git+https://github.com/svpcom/stdeb"
QEMU_CPU ?= "max"
export VERSION COMMIT SOURCE_DATE_EPOCH
@ -92,6 +93,6 @@ deb_docker: /opt/qemu/bin
@if ! [ -d /opt/qemu ]; then echo "Docker cross build requires patched QEMU!\nApply ./scripts/qemu/qemu.patch to qemu-7.2.0 and build it:\n ./configure --prefix=/opt/qemu --static --disable-system && make && sudo make install"; exit 1; fi
if ! ls /proc/sys/fs/binfmt_misc | grep -q qemu ; then sudo ./scripts/qemu/qemu-binfmt-conf.sh --qemu-path /opt/qemu/bin --persistent yes; fi
cp -a Makefile docker/src/
TAG="wfb-ng:build-`date +%s`"; docker build --platform linux/$(DOCKER_ARCH) -t $$TAG docker --build-arg SRC_IMAGE=$(DOCKER_SRC_IMAGE) && \
TAG="wfb-ng:build-`date +%s`"; docker build --platform linux/$(DOCKER_ARCH) -t $$TAG --build-arg SRC_IMAGE=$(DOCKER_SRC_IMAGE) --build-arg QEMU_CPU=$(QEMU_CPU) docker && \
docker run --platform linux/$(DOCKER_ARCH) -i --rm -v $(PWD):/build $$TAG bash -c "trap 'chown -R --reference=. .' EXIT; export VERSION=$(VERSION) COMMIT=$(COMMIT) SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) && cd /build && make clean && make test && make deb"
docker image ls -q "wfb-ng:build-*" | uniq | tail -n+6 | while read i ; do docker rmi -f $$i; done

View File

@ -1,7 +1,9 @@
ARG SRC_IMAGE
FROM $SRC_IMAGE
ARG QEMU_CPU
ENV QEMU_CPU=$QEMU_CPU
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install -y build-essential git wget \