From f396d0eb1e152c0ce9bb36ad4bf4c2f74af4a79b Mon Sep 17 00:00:00 2001 From: Trey Moen <50057480+greatgitsby@users.noreply.github.com> Date: Tue, 20 May 2025 14:43:41 -0700 Subject: [PATCH] feat: update libqmi, add lpac (#472) * feat: update libqmi, add lpac * eof --- Dockerfile.agnos | 23 +++++++++++++++++++---- userspace/compile-libqmi.sh | 31 +++++++++++++++++++++++++++++++ userspace/compile-lpac.sh | 23 +++++++++++++++++++++++ userspace/compile-modemmanager.sh | 30 ------------------------------ 4 files changed, 73 insertions(+), 34 deletions(-) create mode 100755 userspace/compile-libqmi.sh create mode 100755 userspace/compile-lpac.sh diff --git a/Dockerfile.agnos b/Dockerfile.agnos index 21f7830..121cf07 100644 --- a/Dockerfile.agnos +++ b/Dockerfile.agnos @@ -33,12 +33,24 @@ COPY ./userspace/compile-ffmpeg.sh /tmp/agnos/ RUN --mount=type=cache,target=/root/.ccache,id=ffmpeg,sharing=shared \ /tmp/agnos/compile-ffmpeg.sh +# libqmi +FROM agnos-compiler AS agnos-compiler-libqmi +COPY ./userspace/compile-libqmi.sh /tmp/agnos/ +RUN --mount=type=cache,target=/root/.ccache,id=libqmi,sharing=shared \ + /tmp/agnos/compile-libqmi.sh + # ModemManager -FROM agnos-compiler AS agnos-compiler-modemmanager +FROM agnos-compiler-libqmi AS agnos-compiler-modemmanager COPY ./userspace/compile-modemmanager.sh /tmp/agnos/ RUN --mount=type=cache,target=/root/.ccache,id=modemmanager,sharing=shared \ /tmp/agnos/compile-modemmanager.sh +# lpac +FROM agnos-compiler-libqmi AS agnos-compiler-lpac +COPY ./userspace/compile-lpac.sh /tmp/agnos/ +RUN --mount=type=cache,target=/root/.ccache,id=lpac,sharing=shared \ + /tmp/agnos/compile-lpac.sh + # qtwayland5 FROM agnos-compiler AS agnos-compiler-qtwayland5 COPY ./userspace/qtwayland/*.deb /tmp/agnos/ @@ -96,8 +108,10 @@ COPY ./userspace/hardware_setup.sh /tmp/agnos RUN /tmp/agnos/hardware_setup.sh RUN mv /data/persist /system/ && rm -rf /data/* -# Pre-compiled libqmi and modemmanager -COPY --from=agnos-compiler-modemmanager /tmp/libqmi.deb /tmp/modemmanager.deb /tmp/ +COPY --from=agnos-compiler-libqmi /tmp/libqmi.deb /tmp/ +COPY --from=agnos-compiler-modemmanager /tmp/modemmanager.deb /tmp/ +COPY --from=agnos-compiler-lpac /tmp/lpac.deb /tmp/ + RUN cd /tmp && \ apt-get update && \ apt-get install -yq --no-install-recommends \ @@ -116,7 +130,8 @@ RUN cd /tmp && \ polkitd-pkla \ mobile-broadband-provider-info && \ apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./libqmi.deb && \ - apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./modemmanager.deb + apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./modemmanager.deb && \ + apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./lpac.deb # Pre-compiled capnp (must be before python install) COPY --from=agnos-compiler-capnp /tmp/capnproto.deb /tmp/capnproto.deb diff --git a/userspace/compile-libqmi.sh b/userspace/compile-libqmi.sh new file mode 100755 index 0000000..acc034a --- /dev/null +++ b/userspace/compile-libqmi.sh @@ -0,0 +1,31 @@ +#!/bin/bash +set -e + +LIBQMI_VERSION="1.36.0" + +cd /tmp + +# meson support for checkinstall +git clone https://github.com/keithbowes/meson-install.git + +apt-get update && apt-get install -yq --no-install-recommends \ + bash-completion \ + gobject-introspection \ + gtk-doc-tools \ + help2man \ + libgirepository1.0-dev \ + libglib2.0-dev \ + libgudev-1.0-dev \ + meson \ + ninja-build \ + +git clone -b $LIBQMI_VERSION --depth 1 https://gitlab.freedesktop.org/mobile-broadband/libqmi.git +cd libqmi +meson setup build --prefix=/usr --libdir=/usr/lib/aarch64-linux-gnu -Dmbim_qmux=false -Dqrtr=false +ninja -C build + +cd build +checkinstall -yD --install=no --fstrans=no --pkgname=libqmi /tmp/meson-install/meson-install +mv libqmi*.deb /tmp/libqmi.deb + +apt-get -o Dpkg::Options::="--force-overwrite" install -yq /tmp/libqmi.deb diff --git a/userspace/compile-lpac.sh b/userspace/compile-lpac.sh new file mode 100755 index 0000000..4a8168d --- /dev/null +++ b/userspace/compile-lpac.sh @@ -0,0 +1,23 @@ +#!/bin/bash +set -e + +LPAC_VERSION="v2.2.1" + +cd /tmp + +git clone -b $LPAC_VERSION --depth 1 https://github.com/estkme-group/lpac.git + +cd lpac + +apt-get update && apt-get install -yq --no-install-recommends cmake + +./scripts/setup-debian.sh + +cmake \ + -DLPAC_WITH_APDU_QMI=ON \ + -DLPAC_WITH_APDU_PCSC=OFF \ + -DCPACK_GENERATOR=DEB . + +make -j package + +mv lpac*.deb /tmp/lpac.deb diff --git a/userspace/compile-modemmanager.sh b/userspace/compile-modemmanager.sh index ba5160e..d09e9ff 100755 --- a/userspace/compile-modemmanager.sh +++ b/userspace/compile-modemmanager.sh @@ -2,37 +2,9 @@ set -e MM_VERSION="1.22.0" -LIBQMI_VERSION="1.34.0" cd /tmp -# meson support for checkinstall -git clone https://github.com/keithbowes/meson-install.git - -# libqmi -apt-get update && apt-get install -yq --no-install-recommends \ - bash-completion \ - gobject-introspection \ - gtk-doc-tools \ - help2man \ - libgirepository1.0-dev \ - libglib2.0-dev \ - libgudev-1.0-dev \ - meson \ - ninja-build \ - -git clone -b $LIBQMI_VERSION --depth 1 https://gitlab.freedesktop.org/mobile-broadband/libqmi.git -cd libqmi -meson setup build --prefix=/usr --libdir=/usr/lib/aarch64-linux-gnu -Dmbim_qmux=false -Dqrtr=false -ninja -C build - -cd build -checkinstall -yD --install=no --fstrans=no --pkgname=libqmi /tmp/meson-install/meson-install -mv libqmi*.deb /tmp/libqmi.deb - -# ModemManager -cd /tmp - git clone -b $MM_VERSION --depth 1 https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git apt-get install -y --no-install-recommends \ @@ -43,8 +15,6 @@ apt-get install -y --no-install-recommends \ libsystemd-dev \ udev -apt-get -o Dpkg::Options::="--force-overwrite" install -yq /tmp/libqmi.deb - cd ModemManager meson setup build \ --prefix=/usr \