image completeness: fp6-no-suspend + imsd boot enablement
Two device-critical pieces previously applied only by the dev restore script: masked sleep targets (idle-suspend resets the WCN combo firmware and kills wifi ~40min - a device defect, not personalization) and imsd enabled at boot, gated on /etc/imsd.env existing so unconfigured systems don't boot a failing unit. A stranger now needs exactly: flash, wifi via UI, write imsd.env, restart imsd. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
283996b507
commit
05cd1084b7
5 changed files with 40 additions and 2 deletions
|
|
@ -50,7 +50,8 @@ PCSCF=<your carrier's P-CSCF IPv6 address>
|
|||
```
|
||||
|
||||
Find it in a stock-firmware capture or your carrier's IMS documentation, then
|
||||
`systemctl restart imsd`. See the
|
||||
`systemctl restart imsd` (the service is enabled at boot and waits for this
|
||||
file to exist). See the
|
||||
[imsd README](https://forgejo.catcrafts.net/Catcrafts/imsd) for the full
|
||||
variable reference and carrier assumptions.
|
||||
|
||||
|
|
|
|||
21
aports/device/fp6-no-suspend/APKBUILD
Normal file
21
aports/device/fp6-no-suspend/APKBUILD
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# The FP6's wifi and BT share the WCN combo chip; systemd idle-suspend (and
|
||||
# BT-off) resets the shared firmware and kills wifi for ~40 minutes. Mask
|
||||
# the sleep targets declaratively - shipped as /dev/null symlinks, the same
|
||||
# state 'systemctl mask' produces.
|
||||
maintainer="Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>"
|
||||
pkgname=fp6-no-suspend
|
||||
pkgver=1
|
||||
pkgrel=0
|
||||
pkgdesc="Mask systemd sleep targets (suspend kills wifi on the FP6)"
|
||||
url="https://forgejo.catcrafts.net/Catcrafts/fp6-img"
|
||||
arch="noarch"
|
||||
license="MIT"
|
||||
options="!check"
|
||||
|
||||
package() {
|
||||
for t in sleep suspend hibernate hybrid-sleep; do
|
||||
mkdir -p "$pkgdir/etc/systemd/system"
|
||||
ln -s /dev/null "$pkgdir/etc/systemd/system/$t.target"
|
||||
done
|
||||
}
|
||||
sha512sums=""
|
||||
1
aports/modem/imsd/80-imsd.preset
Normal file
1
aports/modem/imsd/80-imsd.preset
Normal file
|
|
@ -0,0 +1 @@
|
|||
enable imsd.service
|
||||
|
|
@ -31,6 +31,7 @@ _commit="REPLACED_BY_CI"
|
|||
source="
|
||||
imsd-$_commit.tar.gz
|
||||
org.kde.modem.daemon.desktop
|
||||
80-imsd.preset
|
||||
"
|
||||
builddir="$srcdir/$pkgname"
|
||||
|
||||
|
|
@ -46,6 +47,18 @@ package() {
|
|||
make install DESTDIR="$pkgdir"
|
||||
install -Dm644 "$srcdir"/org.kde.modem.daemon.desktop \
|
||||
"$pkgdir"/etc/skel/.config/autostart/org.kde.modem.daemon.desktop
|
||||
# enabled by preset: the unit is a no-op until /etc/imsd.env exists, and
|
||||
# VoLTE surviving reboots must not depend on a manual systemctl enable
|
||||
install -Dm644 "$srcdir"/80-imsd.preset \
|
||||
"$pkgdir"/usr/lib/systemd/system-preset/80-imsd.preset
|
||||
mkdir -p "$pkgdir"/etc/systemd/system/multi-user.target.wants
|
||||
ln -s /usr/lib/systemd/system/imsd.service \
|
||||
"$pkgdir"/etc/systemd/system/multi-user.target.wants/imsd.service
|
||||
# ...but only actually start once the carrier config exists, so
|
||||
# unconfigured systems don't boot into a failing unit
|
||||
mkdir -p "$pkgdir"/usr/lib/systemd/system/imsd.service.d
|
||||
printf '[Unit]\nConditionPathExists=/etc/imsd.env\n' \
|
||||
> "$pkgdir"/usr/lib/systemd/system/imsd.service.d/10-require-config.conf
|
||||
}
|
||||
|
||||
systemd() {
|
||||
|
|
@ -57,4 +70,5 @@ systemd() {
|
|||
sha512sums="
|
||||
REPLACED_BY_CI imsd-REPLACED_BY_CI.tar.gz
|
||||
REPLACED_BY_CI org.kde.modem.daemon.desktop
|
||||
REPLACED_BY_CI 80-imsd.preset
|
||||
"
|
||||
|
|
|
|||
3
build.sh
3
build.sh
|
|
@ -100,6 +100,7 @@ mkdir -p "$WORK/pmaports/temp"
|
|||
cp -r aports/device/linux-postmarketos-qcom-milos "$WORK/pmaports/device/testing/"
|
||||
cp -r aports/device/soc-fairphone-fp6-audio "$WORK/pmaports/device/"
|
||||
cp -r aports/device/callaudioshim "$WORK/pmaports/device/"
|
||||
cp -r aports/device/fp6-no-suspend "$WORK/pmaports/device/"
|
||||
cp -r aports/main/postmarketos-config-nftables "$WORK/pmaports/main/"
|
||||
cp -r aports/modem/imsd "$WORK/pmaports/modem/"
|
||||
# Alpine forks carrying the GNSS patches (libqmi !470 unreleased; MM !1463
|
||||
|
|
@ -150,7 +151,7 @@ aports = $WORK/pmaports
|
|||
device = fairphone-fp6
|
||||
ui = plasma-mobile
|
||||
systemd = always
|
||||
extra_packages = soc-fairphone-fp6-audio,callaudioshim,imsd
|
||||
extra_packages = soc-fairphone-fp6-audio,callaudioshim,imsd,fp6-no-suspend
|
||||
EOF
|
||||
|
||||
pmbootstrap checksum linux-postmarketos-qcom-milos
|
||||
|
|
|
|||
Loading…
Reference in a new issue