Files
pmaports-rtwo/device/community/soc-qcom-sdm845/APKBUILD
T
Robert Mader 6bc98ff414 soc-qcom-sdm845: discourage hw video (de)encoders in gstreamer (MR 6098)
Gstreamer enables hw de- and encoding by default for the most common APIs,
including V4L2-stateful. Unfortunately the venus driver is still quite
unstable, reliably crashing in very common scenarios, triggering apps
like Snapshot, Showtime or Tuba to show error messages or not working
properly - partly because of non-optimal error-handling.

Until the kernel driver situation improves, set environment variables
that demote the decoders to fallbacks in case nothing else is available,
and disable the hw-encoders completely as they tend to destabalise the
whole system if something goes wrong.

Useful command for env variables:
systemctl --user show-environment
2025-02-03 12:00:55 +01:00

182 lines
5.8 KiB
Bash

# Maintainer: Caleb Connolly (kalube) <caleb@connolly.tech>
# Co-Maintainer: Joel Selvaraj <joelselvaraj.oss@gmail.com>
pkgname=soc-qcom-sdm845
pkgdesc="Common package for Qualcomm SDM845 devices"
pkgver=25
pkgrel=1
url="https://postmarketos.org"
license="BSD-3-Clause"
arch="aarch64"
options="!check !archcheck !tracedeps"
depends="
swclock-offset
"
replaces="upower"
subpackages="
$pkgname-gstreamer-openrc:gstreamer_openrc
$pkgname-gstreamer-systemd:gstreamer_systemd
$pkgname-modem
$pkgname-modem-openrc:modem_openrc
$pkgname-nonfree-firmware:nonfree_firmware
$pkgname-nonfree-firmware-openrc:nonfree_firmware_openrc
$pkgname-pulseaudio
$pkgname-pulseaudio-openrc:pulseaudio_openrc
$pkgname-qbootctl
$pkgname-qbootctl-openrc:qbootctl_openrc
$pkgname-ucm
$pkgname-vulkan
"
_ucm_commit="70d89261a7d30273fba9c6e67a072699f9f88151"
source="
10-initramfs-sdm845.files
51-qcom-sdm845.conf
90-feedbackd-pmi8998.rules
UPower.conf
alsa-ucm-conf-$_ucm_commit.tar.gz::https://gitlab.com/sdm845-mainline/alsa-ucm-conf/-/archive/$_ucm_commit/alsa-ucm-conf-$_ucm_commit.tar.gz
call_audio_idle_suspend_workaround.confd
call_audio_idle_suspend_workaround.initd
call_audio_idle_suspend_workaround.sh
gstreamer.conf
gstreamer.sh
modemmanager.conf
"
package() {
mkdir -p "$pkgdir"
install -Dm644 "$srcdir"/90-feedbackd-pmi8998.rules \
"$pkgdir"/usr/lib/udev/rules.d/90-feedbackd-pmi8998.rules
# Shutdown when battery is critical instead of sleep
install -Dm644 "$srcdir"/UPower.conf \
"$pkgdir"/etc/UPower/UPower.conf
install -Dm644 "$srcdir"/10-initramfs-sdm845.files \
-t "$pkgdir"/usr/share/mkinitfs/files/
install -Dm644 "$srcdir"/51-qcom-sdm845.conf \
-t "$pkgdir"/usr/share/wireplumber/wireplumber.conf.d
}
gstreamer_openrc() {
install_if="$pkgname=$pkgver-r$pkgrel openrc"
install -Dm755 "$srcdir"/gstreamer.sh \
"$subpkgdir"/etc/profile.d/50-soc-qcom-sdm845-gstreamer.sh
}
gstreamer_systemd() {
install_if="$pkgname=$pkgver-r$pkgrel systemd"
install -Dm644 "$srcdir"/gstreamer.conf \
"$subpkgdir"/etc/environment.d/50-soc-qcom-sdm845-gstreamer.conf
}
modem() {
pkgdesc="Modem services and configuration"
depends="
q6voiced
msm-modem-uim-selection
81voltd
"
mkdir -p "$subpkgdir"
}
modem_openrc() {
install_if="$pkgname-modem=$pkgver-r$pkgrel openrc"
depends="q6voiced-openrc"
install="$subpkgname.post-install $subpkgname.post-upgrade"
install -Dm644 "$srcdir"/modemmanager.conf \
"$subpkgdir"/etc/conf.d/modemmanager
}
nonfree_firmware() {
pkgdesc="Modem, WiFi and GPU Firmware"
depends="
pd-mapper
tqftpserv
msm-modem
bootmac
alsa-utils
"
mkdir "$subpkgdir"
}
nonfree_firmware_openrc() {
install_if="$pkgname-nonfree-firmware=$pkgver-r$pkgrel openrc"
depends="
pd-mapper-openrc
tqftpserv-openrc
"
install="$subpkgname.post-install $subpkgname.post-upgrade"
mkdir "$subpkgdir"
}
ucm() {
provides="alsa-ucm-conf"
provider_priority=1
# install audio config files
mkdir -p "$subpkgdir"/usr/share/alsa/ucm2
cp -r "$srcdir/alsa-ucm-conf-$_ucm_commit"/ucm2 "$subpkgdir"/usr/share/alsa/
}
qbootctl() {
pkgdesc="Enable qbootctl mark-boot-successful service"
depends="qbootctl"
mkdir "$subpkgdir"
}
qbootctl_openrc() {
install_if="$pkgname-qbootctl=$pkgver-r$pkgrel openrc"
install="$subpkgname.post-install $subpkgname.post-upgrade"
mkdir "$subpkgdir"
}
vulkan() {
pkgdesc="Vulkan support for freedreno"
install_if="$pkgname vulkan-loader"
depends="mesa-vulkan-freedreno"
mkdir "$subpkgdir"
}
pulseaudio() {
install_if="$pkgname=$pkgver-r$pkgrel pulseaudio"
# Call Audio idle suspend workaround code
install -Dm755 "$srcdir"/call_audio_idle_suspend_workaround.sh \
"$subpkgdir"/usr/sbin/call_audio_idle_suspend_workaround
}
pulseaudio_openrc() {
install_if="$pkgname-pulseaudio=$pkgver-r$pkgrel openrc"
install="$subpkgname.post-install $subpkgname.post-upgrade"
# Call Audio idle suspend workaround init script
install -Dm755 "$srcdir"/call_audio_idle_suspend_workaround.initd \
"$subpkgdir"/etc/init.d/call_audio_idle_suspend_workaround
install -Dm644 "$srcdir"/call_audio_idle_suspend_workaround.confd \
"$subpkgdir"/etc/conf.d/call_audio_idle_suspend_workaround
}
sha512sums="
56845726c5e7b685953f96c381404181ad9b70ea7dbfe5a3d963fb6f15821addaead43a65c9b140cb938c2d45173cfb5421816bd36024fd7e1b8555e0b32622f 10-initramfs-sdm845.files
28c14f47eaedec577d152001c51753537c98f267ac4a0acf78a304efebe5f6a1b4dc6d501497da9a0a925806a1d9c80b25e001cf9b1eb21efa22cd6a41ff753b 51-qcom-sdm845.conf
4f2c22a3a3fc7d380e200ad977578107d81f0e7ade7918e03bdb15b60a564e8db5f47e13cce22f636d38fd3722696bb46076b8872dae0ca2d8a3838522a1f025 90-feedbackd-pmi8998.rules
9d455b56558d453d501a1ad869ffa79f9952ed43485a9847d506db6a78bfcd9f9c9d855660ee1d368eb74f4429385ec166addc30d802261c75562e785fe84c52 UPower.conf
f6d03f3b03f944b29b588464e2e26f4f4cc185368714f9e623c1211174ea172efb81a765980c9a289112f5bf8c5c4aafdfd87c0094890069fc3d7c73b29456bc alsa-ucm-conf-70d89261a7d30273fba9c6e67a072699f9f88151.tar.gz
6fb4c0bd8b7ed534d855a6732ccff783960e3cfa0e0cc7effcbb93afa00798dec15361a37a3200081bc114c8d266b7a0851cc4e819ad36eabdb47a50c72620d9 call_audio_idle_suspend_workaround.confd
5a58475b6e2ee1d655f3f23d8dc19e1cb2f32f1dfff3b9a9337d9c5baad1ec24bfaec0fb9cc03f00e5a291bee27c6b8bffbc65157e2bee5d65ef6d1adcb0910b call_audio_idle_suspend_workaround.initd
6da0a9209f114354aa2aa1185ec3896a8e0bb1bfce0dc3fc4c0de339cf1389feaa2d724e733c251ff032a5e86d37d9549e94f8f7c7a5accfedbd8a4d6316bbfd call_audio_idle_suspend_workaround.sh
f86ebf68bb7e41b531e5cd8fc3e54d8fafad314fb80950277e41004303b3bf75b2ae96f0228bdf4ed67645aee8ceaf247140b4843c66365259d2908b8991b877 gstreamer.conf
471583b91bc35608cb75d0b3ceb88fa793a4e763ea228703c50ffb1b45c0e9054646c46f710164ec3ef65a882a204fd59546f3a0ebb94b8d6c6f08c4043bcfd3 gstreamer.sh
e33f41360ccc4900bb76a26cc7b46bde1fb90facdf45c4fbcebc80499386939948401cacd6df9f779eafab10f4ee77ee1fef3e7bd06f483f8c2a4a644c84f327 modemmanager.conf
"