From 89003fbc1b8e7c38c5bdc3e052386af9d811c4f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20Cz=C3=A9m=C3=A1n?= <barnabas.czeman@postmarketos.org> Date: Tue, 14 Jan 2025 22:58:30 +0100 Subject: [PATCH] soc-qcom-msm8953: add moto-modem-rfs-setup service (MR 6041) Add an openrc service for motorola modems. [ci:skip-vercheck] [ci:skip-build]: already built successfully in CI --- device/community/soc-qcom-msm8953/APKBUILD | 9 +++-- .../moto-modem-rfs-setup.openrc | 40 +++++++++++++++++++ ...soc-qcom-msm8953-modem-openrc.post-install | 1 + 3 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 device/community/soc-qcom-msm8953/moto-modem-rfs-setup.openrc diff --git a/device/community/soc-qcom-msm8953/APKBUILD b/device/community/soc-qcom-msm8953/APKBUILD index 5d7c0ca0e90..dc1b2f35eee 100644 --- a/device/community/soc-qcom-msm8953/APKBUILD +++ b/device/community/soc-qcom-msm8953/APKBUILD @@ -1,8 +1,8 @@ # Maintainer: Barnabas Czeman <trabarni@gmail.com> pkgname=soc-qcom-msm8953 pkgdesc="Common package for Qualcomm MSM8953 devices" -pkgver=11 -pkgrel=2 +pkgver=12 +pkgrel=0 url="https://postmarketos.org" license="BSD-3-Clause" arch="aarch64" @@ -21,6 +21,7 @@ source=" 90-feedbackd-pm8xxx-vib.rules q6voiced.conf adreno-a506-quirks.sh + moto-modem-rfs-setup.openrc " package() { @@ -57,8 +58,7 @@ modem_openrc() { rmtfs-openrc tqftpserv-openrc " - - mkdir -p "$subpkgdir" + install -Dm755 $srcdir/moto-modem-rfs-setup.openrc "$subpkgdir"/etc/init.d/moto-modem-rfs-setup } gpu() { @@ -74,4 +74,5 @@ sha512sums=" 90fca4a3291a2c84c0b20e41308c4698374ba896e9365ca80dbfd0c0c4f7dc08317f3dd865a3c7f6707c81b02f5bb24136d1172253d2e4fdd50039bbbf02a178 90-feedbackd-pm8xxx-vib.rules 3a4a9322839d4b3ef9d79668a37840a9f444954759ae3c512e694051d2f9a2573db42ad6c4c1a5c75eeb861232a27ba1a8cef9b503decd54ead25a96e3dd6f98 q6voiced.conf d546c99ca8d406b4e2e3901a417e4e461314a38f2f01c48525e44ca524ad57af7bfc280f416bda90573b0bfb1cca27d45cb0a0ed44e999ef8d406a380d1fdbb2 adreno-a506-quirks.sh +d4fd0f3406c9f004e9cae7bc500c5713aab75f102f8e3ea1af820865f01eb03def01cd9ed3e8a184c7dfc22ab419628fad17957a3782885d96eb36e94461e842 moto-modem-rfs-setup.openrc " diff --git a/device/community/soc-qcom-msm8953/moto-modem-rfs-setup.openrc b/device/community/soc-qcom-msm8953/moto-modem-rfs-setup.openrc new file mode 100644 index 00000000000..9fcbeb5449a --- /dev/null +++ b/device/community/soc-qcom-msm8953/moto-modem-rfs-setup.openrc @@ -0,0 +1,40 @@ +#!/sbin/openrc-run + +description="Setup modem firmware for tqftpserv" + +depend() { + before tqftpserv +} + +start() +{ + MODEM_FIRMWARE_DIR="/lib/firmware/postmarketos/persist" + # The firmware present here is unique to each device + # Using the firmware of one device on another can will simply fail + # This is needed because motorola devices derive IMEI and other unique + # IDs from these files + # See also: https://forum.xda-developers.com/g5-plus/how-to/fix-persist-resolve-imei0-explanation-t3825147 + + + if [ ! -d $MODEM_FIRMWARE_DIR ]; then + # Make a copy of the firmware if its not already made + # Use the copy instead of the original, because if due to some error + # somehow the firmware gets corrupted, the original firmware will + # still be available on the 'persist' partition + + PERSIST_PATH="/tmp/persist" + PERSIST_DEV="/dev/disk/by-partlabel/persist" + + mkdir -p $PERSIST_PATH + mount $PERSIST_DEV -o ro,noatime $PERSIST_PATH + + mkdir $MODEM_FIRMWARE_DIR + + cp -R "$PERSIST_PATH"/rfs/msm/mpss/ "$MODEM_FIRMWARE_DIR"/readwrite + + umount $PERSIST_DEV + rmdir $PERSIST_PATH + fi + + ln -s "$MODEM_FIRMWARE_DIR"/readwrite/ /tmp/tqftpserv +} diff --git a/device/community/soc-qcom-msm8953/soc-qcom-msm8953-modem-openrc.post-install b/device/community/soc-qcom-msm8953/soc-qcom-msm8953-modem-openrc.post-install index e83d9b2021b..bfa0d1a0b76 100644 --- a/device/community/soc-qcom-msm8953/soc-qcom-msm8953-modem-openrc.post-install +++ b/device/community/soc-qcom-msm8953/soc-qcom-msm8953-modem-openrc.post-install @@ -1,2 +1,3 @@ #!/bin/sh rc-update add -q q6voiced default +rc-update add -q moto-modem-rfs-setup boot -- GitLab