xiaomi-vayu: Take maintainership, refactor firmware and device packages

Updated firmware and device packages to comply with latest standards and
added kernel subpackages for each display panel variant

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8332>
This commit is contained in:
Ali Nasrullayev
2026-04-26 15:39:36 +00:00
parent 430a3f0f85
commit db45854e65
7 changed files with 53 additions and 126 deletions
+23 -40
View File
@@ -1,29 +1,32 @@
# Reference: <https://postmarketos.org/devicepkg>
maintainer="Arseniy Velikanov <adomerlee@gmail.com>"
maintainer="Ali Nasrullayev <nesrullayev.ali@gmail.com>"
pkgname=device-xiaomi-vayu
pkgdesc="Xiaomi POCO X3 Pro"
pkgver=4
pkgver=5
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
linux-postmarketos-qcom-sm8150
firmware-qcom-adreno-a640
firmware-xiaomi-vayu
linux-firmware-qca
make-dynpart-mappings
mkbootimg
postmarketos-base
make-dynpart-mappings
soc-qcom
soc-qcom-modem
soc-qcom-pd-mapper
soc-qcom-qbootctl
"
makedepends="devicepkg-dev"
subpackages="
$pkgname-kernel-tianma:kernel_tianma
$pkgname-kernel-huaxing:kernel_huaxing
"
source="
deviceinfo
phoc.ini
"
subpackages="
$pkgname-nonfree-firmware:nonfree_firmware
$pkgname-nonfree-firmware-openrc:nonfree_firmware_openrc
$pkgname-phosh
"
build() {
@@ -34,38 +37,18 @@ package() {
devicepkg_package $startdir $pkgname
}
nonfree_firmware() {
pkgdesc="Firmware for GPU, Audio, Modem, WiFi, etc."
depends="
firmware-xiaomi-vayu-adreno
firmware-xiaomi-vayu-adsp
firmware-xiaomi-vayu-cdsp
firmware-xiaomi-vayu-touchscreen
firmware-xiaomi-vayu-wlan
firmware-xiaomi-vayu-modem
firmware-xiaomi-vayu-ath10k
msm-modem
pd-mapper
tqftpserv
"
mkdir "$subpkgdir"
kernel_tianma() {
pkgdesc="Tianma Panel. To know which panel your device use and the status of the port, Visit the Poco X3 Pro wiki page: https://wiki.postmarketos.org/wiki/Xiaomi_POCO_X3_Pro_(xiaomi-vayu)"
depends="linux-postmarketos-qcom-sm8150"
devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}
nonfree_firmware_openrc() {
install_if="$pkgname-nonfree-firmware=$pkgver-r$pkgrel openrc"
install="$subpkgname.post-install"
depends="openrc"
mkdir "$subpkgdir"
}
phosh() {
install_if="$pkgname=$pkgver-r$pkgrel phosh"
install -Dm644 "$srcdir"/phoc.ini \
"$subpkgdir"/etc/phosh/phoc.ini
kernel_huaxing() {
pkgdesc="Huaxing Panel. To know which panel your device use and the status of the port, Visit the Poco X3 Pro wiki page: https://wiki.postmarketos.org/wiki/Xiaomi_POCO_X3_Pro_(xiaomi-vayu)"
depends="linux-postmarketos-qcom-sm8150"
devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}
sha512sums="
e2426d1b844bf4c39b6a2c43133cd6580314a7dbf160111e2cb156dae72ece4356bf41449c0d474daecf04edba4a81bc27006f020212ea8083dcb45ad2c0bde7 deviceinfo
eef80842915acfa8d8bcbd9ac9fcb057ad912d582e4a78b8ddd9774ef688971d2878b83f4a54adaa1d613dce8645a85ffb25e8a98c55e32a91dfe73002e91fe0 phoc.ini
a199525d3edfaad447848a4042da89b8286ecd541d1fb89525598cdd6af3c0136e193a1f23c6411991ff00a31ed0399bd020b21a44605017f2d81f56d6ff2837 deviceinfo
"
@@ -1,3 +0,0 @@
#!/bin/sh
rc-update add tqftpserv boot
rc-update add pd-mapper boot
+2 -1
View File
@@ -20,7 +20,8 @@ deviceinfo_flash_method="fastboot"
deviceinfo_generate_bootimg="true"
deviceinfo_append_dtb="true"
deviceinfo_dtb="qcom/sm8150-xiaomi-vayu"
deviceinfo_dtb_tianma="qcom/sm8150-xiaomi-vayu-tianma"
deviceinfo_dtb_huaxing="qcom/sm8150-xiaomi-vayu-huaxing"
deviceinfo_flash_pagesize="4096"
deviceinfo_flash_offset_base="0x00000000"
deviceinfo_flash_offset_kernel="0x00008000"
@@ -1,9 +0,0 @@
# /etc/phosh/phoc.ini
# Overwrites defaults in /usr/share/phosh/phoc.ini
# Remove when DSI panel is working
[output:Unknown-1]
scale = 2.75
#[output:DSI-1]
#scale = 2.75
@@ -1,4 +0,0 @@
/lib/firmware/qcom/a630_sqe.fw
/lib/firmware/qcom/a640_gmu.bin
/lib/firmware/qcom/a640_zap.mdt
/lib/firmware/qcom/a640_zap.mbn
@@ -1,2 +1,2 @@
/lib/firmware/j20s_novatek_ts_fw01.bin
/lib/firmware/j20s_novatek_ts_fw02.bin
/usr/lib/firmware/novatek/j20s_novatek_ts_fw01.bin
/usr/lib/firmware/novatek/j20s_novatek_ts_fw02.bin
+26 -67
View File
@@ -1,94 +1,53 @@
maintainer=""
maintainer="Ali Nasrullayev <nesrullayev.ali@gmail.com>"
pkgname=firmware-xiaomi-vayu
pkgver=1
pkgver=2
pkgrel=0
pkgdesc="Firmware for Xiaomi POCO X3 Pro"
subpackages="
$pkgname-adsp
$pkgname-adreno
$pkgname-cdsp
$pkgname-touchscreen
$pkgname-wlan
$pkgname-ath10k
$pkgname-modem
"
url="https://gitlab.com/adomerle/firmware-xiaomi-vayu"
url="https://gitlab.com/alinasrullayev/firmware-xiaomi-vayu"
arch="aarch64"
license="proprietary"
options="!check !strip !archcheck !tracedeps pmb:cross-native"
_commit="2dc9790c669041385d364d3fcee092545534f88d"
_commit="9240ae83a70189c7513666a245a72de2c7aaf698"
source="
$pkgname-$_commit.tar.gz::$url/-/archive/$_commit/$pkgname-$_commit.tar.gz
30-gpu-firmware.files
30-touchscreen-firmware.files
"
builddir="$srcdir/$pkgname-$_commit"
package() {
# parent package is empty
mkdir -p "$pkgdir"
}
adsp() {
pkgdesc="Xiaomi POCO X3 Pro adsp firmware"
# linux-firmware-ath10k crashes when used. until it has been fixed,
# temporarily using the vendor firmware.
# See also: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/3803
install -Dm644 "$builddir"/lib/firmware/ath10k/WCN3990/hw1.0/board-2.bin -t \
"$pkgdir/usr/lib/firmware/ath10k/WCN3990/hw1.0/"
install -Dm644 "$builddir"/adsp* -t \
"$subpkgdir/lib/firmware/qcom/sm8150/vayu"
}
install -Dm644 "$builddir"/lib/firmware/ath10k/WCN3990/hw1.0/firmware-5.bin -t \
"$pkgdir/usr/lib/firmware/ath10k/WCN3990/hw1.0/"
adreno() {
pkgdesc="Xiaomi POCO X3 Pro adreno firmware"
install -Dm644 "$builddir"/lib/firmware/qcom/sm8150/xiaomi/vayu/adsp* -t \
"$pkgdir/usr/lib/firmware/qcom/sm8150/xiaomi/vayu/"
install -Dm644 "$builddir"/qcom/a6* -t \
"$subpkgdir/lib/firmware/qcom/"
install -Dm644 "$builddir"/lib/firmware/qcom/sm8150/xiaomi/vayu/a640_zap.mbn -t \
"$pkgdir/usr/lib/firmware/qcom/sm8150/xiaomi/vayu/"
install -Dm644 "$srcdir/30-gpu-firmware.files" \
"$subpkgdir/usr/share/mkinitfs/files/30-gpu-firmware.files"
}
install -Dm644 "$builddir"/lib/firmware/qcom/sm8150/xiaomi/vayu/cdsp* -t \
"$pkgdir/usr/lib/firmware/qcom/sm8150/xiaomi/vayu/"
cdsp() {
pkgdesc="Xiaomi POCO X3 Pro cdsp firmware"
install -Dm644 "$builddir"/lib/firmware/qcom/sm8150/xiaomi/vayu/modem* -t \
"$pkgdir/usr/lib/firmware/qcom/sm8150/xiaomi/vayu/"
install -Dm644 "$builddir"/cdsp* -t \
"$subpkgdir/lib/firmware/qcom/sm8150/vayu"
}
wlan() {
pkgdesc="Xiaomi POCO X3 Pro wlan firmware"
install -Dm644 "$builddir"/wlanmdsp.mbn -t \
"$subpkgdir/lib/firmware/qcom/sm8150/vayu"
}
modem() {
pkgdesc="Xiaomi POCO X3 Pro modem firmware"
install -Dm644 "$builddir"/modem* -t \
"$subpkgdir/lib/firmware/qcom/sm8150/vayu"
}
touchscreen() {
pkgdesc="Xiaomi POCO X3 Pro touchscreen firmware"
install -Dm644 "$builddir"/j20s_novatek_ts* -t \
"$subpkgdir/lib/firmware/"
install -Dm644 "$builddir"/lib/firmware/novatek/j20s_novatek_ts* -t \
"$pkgdir/usr/lib/firmware/novatek/"
install -Dm644 "$srcdir/30-touchscreen-firmware.files" \
"$subpkgdir/usr/share/mkinitfs/files/30-touchscreen-firmware.files"
}
"$pkgdir/usr/share/mkinitfs/files/30-touchscreen-firmware.files"
ath10k() {
pkgdesc="Xiaomi POCO X3 Pro ath10k firmware"
install -Dm644 "$builddir"/board-2.bin -t \
"$subpkgdir/lib/firmware/postmarketos/ath10k/WCN3990/hw1.0/"
install -Dm644 "$builddir"/firmware-5.bin -t \
"$subpkgdir/lib/firmware/postmarketos/ath10k/WCN3990/hw1.0/"
install -Dm644 "$builddir"/lib/firmware/qcom/sm8150/xiaomi/vayu/wlanmdsp.mbn -t \
"$pkgdir/usr/lib/firmware/qcom/sm8150/xiaomi/vayu/"
}
sha512sums="
19cdb00dec5e59585eb50787300ed897a2c3a1d6956e8729f248e449ec1af29d39b4bee5251d56f803cd3121560d1ff61e8332e9d080dd6aee2792ae075eda11 firmware-xiaomi-vayu-2dc9790c669041385d364d3fcee092545534f88d.tar.gz
6d572c91fadf21031c7588172f3ba378c61073ab00908cb61411983063960f44a92039bd7dd3f3893f24ee30b6c6c7ab9da6ddfe2130a8ba5116ed32d8c9bbaf 30-gpu-firmware.files
2c1bbc9e95c65adc2aecc985b728670e56b8d5e71d0476779e05275710f85c2ce246e744524048429f9c956bf7af52e568043c7404c68d4c69ca0ebeb4e49657 30-touchscreen-firmware.files
dc94db8d3988c9c7cf64abea0801488e08f528cb6cc7693954f025d160347be8d900823461b3b51bee553f1876b093e8a87dc04ca9b648f82b5609feea2ec57a firmware-xiaomi-vayu-9240ae83a70189c7513666a245a72de2c7aaf698.tar.gz
fb1cdad6242c6bf6c07e1e8a87d6c08b8b3f86d6f865e28f27a5a764c4eeb0d74cae6167df04c56913fd5ec6314d3e1c830a759a2ec8f5b66c13f6ea80c7c1a4 30-touchscreen-firmware.files
"