# Reference: # Maintainer: Arnav Singh # Co-Maintainer: Jan Jasper de Kroon pkgname=device-pine64-pinephone pkgver=3 pkgrel=4 pkgdesc="PINE64 PinePhone" url="https://postmarketos.org" license="MIT" arch="aarch64" options="!check !archcheck" subpackages=" $pkgname-camera $pkgname-gnome $pkgname-kirigami:kirigami $pkgname-nonfree-firmware:nonfree_firmware $pkgname-openrc $pkgname-plasma-mobile:plasma_mobile $pkgname-sensorfw $pkgname-shelli $pkgname-upower $pkgname-vccq-mod:vccq_mod $pkgname-sway $pkgname-x11 " depends=" alsa-ucm-conf>=1.2.6.2 atinout eg25-manager eg25-manager-openrc iw linux-postmarketos-allwinner>=5.14 mesa-egl pinephone-callaudiod postmarketos-base postmarketos-base-ui-audio-pipewire u-boot-pinephone>=2021.01_git20201228-r2 u-boot-tools fwupd>=1.8.6 " # FIXME: use upstream alsa-ucm-conf instead, once it works the same (pma#2115) replaces="alsa-ucm-conf" makedepends="devicepkg-dev dtc" install="$pkgname.pre-upgrade" source=" 00_alsa_pinephone_dshare.conf 10-pinephone-proximity.rules 50_sleep.gschema.override 51_keyboard.gschema.override 60-flashlight.rules 70-wifi-pm.rules 90-modem-eg25.rules 90-modem-eg25-openrc.rules UPower.conf deviceinfo modules-initfs hwtest.ini kirigami-lowpower.sh kxkbrc modemmanager.conf pinephone-vccq-mod.dts pulse-pinephone.conf sensorfw/90-pinephone.conf setup-modem.sh sun50i-a64-psci.dts uboot-script.cmd uboot-user.cmd ucm/HiFi.conf ucm/PinePhone.conf ucm/VoiceCall.conf ppkb.sh sway-pinephone-keyboard.conf x11-pinephone-keyboard.conf " # workaround to purge the -elogind subpackage that was previously # created/installed provides="$pkgname-elogind=$pkgver-r$pkgrel" _pmb_recommends="$pkgname-nonfree-firmware" build() { devicepkg_build $startdir $pkgname mkimage \ -A arm \ -O linux \ -T script \ -C none \ -a 0 \ -e 0 \ -n postmarketos \ -d "$srcdir"/uboot-script.cmd \ "$srcdir"/boot.scr # Build user U-boot script for vccq-mod mkimage \ -A arm \ -O linux \ -T script \ -C none \ -a 0 \ -e 0 \ -n postmarketos-user \ -d "$srcdir"/uboot-user.cmd \ "$srcdir"/user.scr # Build Device Tree Overlay for vccq-mod dtc \ -@ \ -I dts \ -O dtb \ -o "$srcdir"/pinephone-vccq-mod.dtbo \ "$srcdir"/pinephone-vccq-mod.dts # Build Device Tree Overlay for psci cpu dtc \ -@ \ -I dts \ -O dtb \ -o "$srcdir"/sun50i-a64-psci.dtbo \ "$srcdir"/sun50i-a64-psci.dts } package() { devicepkg_package $startdir $pkgname install -Dm644 "$srcdir"/boot.scr \ "$pkgdir"/boot/boot.scr install -Dm644 "$srcdir"/sun50i-a64-psci.dtbo \ "$pkgdir"/boot/sun50i-a64-psci.dtbo # Make /boot/allwinner/sun50i-a64-pine64-pinephone*.dtb resolve to # /boot/sun50i-a64-pine64-pinephone*.dtb. This is because the device tree # names in u-boot include the vendor and the one in postmarketOS doesn't. ln -s .. "$pkgdir"/boot/allwinner install -Dm644 "$srcdir"/hwtest.ini \ "$pkgdir"/usr/share/hwtest.ini install -D -m644 "$srcdir"/10-pinephone-proximity.rules \ "$pkgdir"/usr/lib/udev/rules.d/10-pinephone-proximity.rules install -Dm644 "$srcdir"/60-flashlight.rules -t "$pkgdir"/usr/lib/udev/rules.d/ # Alsa usecase manager config install -Dm644 -t "$pkgdir"/usr/share/alsa/ucm2/PinePhone \ "$srcdir"/HiFi.conf \ "$srcdir"/PinePhone.conf \ "$srcdir"/VoiceCall.conf mkdir -p "$pkgdir"/usr/share/alsa/ucm2/conf.d/simple-card ln -s /usr/share/alsa/ucm2/PinePhone/PinePhone.conf \ "$pkgdir"/usr/share/alsa/ucm2/conf.d/simple-card/PinePhone.conf # Pulseaudio config install -Dm644 "$srcdir"/pulse-pinephone.conf \ "$pkgdir"/etc/pulse/daemon.conf.d/89-pinephone.conf # Modem install -Dm755 "$srcdir"/setup-modem.sh \ "$pkgdir"/usr/bin/pinephone_setup-modem install -Dm644 "$srcdir"/90-modem-eg25.rules -t \ "$pkgdir"/usr/lib/udev/rules.d/ install -Dm644 "$srcdir"/modemmanager.conf \ "$pkgdir"/etc/conf.d/modemmanager # Wifi / PM install -Dm644 "$srcdir"/70-wifi-pm.rules -t \ "$pkgdir"/usr/lib/udev/rules.d/ # Keyboard config install -Dm755 "$srcdir"/ppkb.sh "$pkgdir"/etc/profile.d/ppkb.sh } nonfree_firmware() { pkgdesc="Wifi, Bluetooth and Autofocus firmware" depends=" linux-firmware-rtlwifi linux-firmware-rtl_bt firmware-pine64-rtl8723bt firmware-pine64-ov5640 " mkdir "$subpkgdir" } openrc() { install_if="$pkgname=$pkgver-r$pkgrel eg25-manager-openrc" install="$subpkgname.post-install $subpkgname.post-upgrade" depends="eg25-manager-openrc" install -Dm644 "$srcdir"/90-modem-eg25-openrc.rules -t \ "$subpkgdir"/usr/lib/udev/rules.d/ } camera() { install_if="$pkgname=$pkgver-r$pkgrel postmarketos-default-camera" depends="megapixels" mkdir -p "$subpkgdir" } kirigami() { install_if="$pkgname=$pkgver-r$pkgrel kirigami2" install -Dm644 "$srcdir"/kirigami-lowpower.sh "$subpkgdir"/etc/profile.d/kirigami-lowpower.sh } gnome() { install_if="$pkgname=$pkgver-r$pkgrel gnome-control-center" install -Dm644 "$srcdir"/50_sleep.gschema.override \ "$subpkgdir"/usr/share/glib-2.0/schemas/50_sleep.gschema.override install -Dm644 "$srcdir"/51_keyboard.gschema.override -t \ "$subpkgdir"/usr/share/glib-2.0/schemas } plasma_mobile() { install_if="$pkgname=$pkgver-r$pkgrel postmarketos-ui-plasma-mobile" install -Dm644 "$srcdir"/kxkbrc -t "$subpkgdir"/etc/xdg } upower() { install_if="$pkgname=$pkgver-r$pkgrel upower" replaces="upower" # Shutdown when PMIC reports critical battery level install -Dm644 "$srcdir"/UPower.conf \ "$subpkgdir"/etc/UPower/UPower.conf } shelli() { install_if="$pkgname=$pkgver-r$pkgrel shelli" # Alsa default audio must be stereo install -Dm644 "$srcdir"/00_alsa_pinephone_dshare.conf \ "$subpkgdir"/etc/alsa/conf.d/00_alsa_pinephone_dshare.conf } vccq_mod() { pkgdesc="Install only if you have done the Vccq hardware mod https://postmarketos.org/pp-vccq-mod" install -Dm644 "$srcdir"/user.scr \ "$subpkgdir"/boot/user.scr install -Dm644 "$srcdir"/pinephone-vccq-mod.dtbo \ "$subpkgdir"/boot/pinephone-vccq-mod.dtbo } sensorfw() { install_if="$pkgname=$pkgver-r$pkgrel sensorfw" install -Dm644 -t "$subpkgdir"/etc/sensorfw/sensord.conf.d \ "$srcdir"/90-pinephone.conf } sway() { install_if="$pkgname=$pkgver-r$pkgrel sway" install -Dm644 "$srcdir"/sway-pinephone-keyboard.conf \ "$subpkgdir"/etc/sway/config.d/pinephone_keyboard.conf } x11() { install_if="$pkgname=$pkgver-r$pkgrel xorg-server" install -Dm644 "$srcdir"/x11-pinephone-keyboard.conf \ "$subpkgdir"/etc/X11/xorg.conf.d/pinephone-keyboard.conf } sha512sums=" 5736444fd38ab4351d148ae96c479085f469bd1e51a692fb1827f8ac921a584389f7696985e1fba21c2deac88709910531f4ece282f45ff54e590c2b54b84ba3 00_alsa_pinephone_dshare.conf b53cc6f2531854cc9c1e4c334185a20551d64c8675ee8a8eaa03b99d80808fad421a0f6e99e5be212a974d88c85f461a71ba59ac59c29f298c82f211e3be1ef4 10-pinephone-proximity.rules bac664c504d9a3adc6e3d25f24ac63cf7c449a82374544a5b56c259dc25af580897b9dc992865ac83f854f95d17c439b7deb47bfb9557aabcb2e80c3942e22be 50_sleep.gschema.override 2d68ffe143f633a86670f30e45dbad1cc313f219f22b7cd3319ab44bb7209c20cb29f2ff2c60c92390154af9c9a6815c4186be555364cf31552005eba024c0e7 51_keyboard.gschema.override 9170da7ac869254644f2fc8d914102f2c16e917dbeb53e33b96c76936711d0540f55fa5c2526d73d5fe244500bc2728bc9d629e2524cf52c573d11e833aee666 60-flashlight.rules 8b6fa7b12c15f439c561901f3ffe24a1ef2a0c343401c0a79281060854ab29e08a1fb5e7adae8684b12aa9f535ed99e2dad993dce9724822cb0fbf2497dd86e5 70-wifi-pm.rules 7dc2b7c20b4a2b15f597a6417bd01797643dad84a3683b0dee648e030fb6326e9d020307643fdcdf1bb43fc44af9975697e417003bd359610bae2d8ce614fc00 90-modem-eg25.rules c6d9b65100072687df11ed2231edf3a007a6a54941e321fc5416131e881291eaf5853a4f6f7819510c460adcc487fce59bfd4eeb001363ddc87cae7ef85e3e98 90-modem-eg25-openrc.rules ed0e03f7e1c0348c06be9a7922414469245604ce813bbf0c8910ef211cb993bbb0d0d4615c9c961d50712415f85d6b73e0cf02780ac784666aac56e4889341e4 UPower.conf 87751806329118272bc887691a0d5b588fa7a601fb048594785032a661b7e48a86c9d97f8bfa99edf247051a81799f2e628e5bf7c129cf2919c2abf0c146e031 deviceinfo 218d1361622418a0f79bd661a601baf586aec3995cf32304399b47664caf92bac006466ae1e59afa90f6ab4b9ed6acd16147a696fffd0dcab2492e2428ecc0b0 modules-initfs 3dd6d612c381cb0002049d1974d8fb5aa5a53a1eb4d6bcbf62eb2ad52cfdc45f0f6ad24a699716d3513b0371aa1316f25dc72afc10d7176cc3b99d0965c3f030 hwtest.ini 6bc22b369b2d9058b702ac7a7862abaefaf8179b43491868bdb008d181b59104f1ded89db1da51a810e1ccdc803a579b924a438674283a65afc3a9c4d2894caf kirigami-lowpower.sh 03d547ece68445579352d0419bf16a43ca1c567c1b0b14a977982cc8adddd34f1f8e8691465f1420091a5d33fa50daaefcee404d9d4b89e7598c4ad43a72469e kxkbrc c5006c38828eb519917d57756f7831c4552feffef2d4922a384073f6a551535f615ad397d784e313818e0b943e1f6212bcca0aff9ce37da60b29547b1631f24b modemmanager.conf d66ecef1fa5481ff138fe4e12b194903ceacab9d0649e716049f32e56ec6d9be09b97e2ff769ebc5c9fbced542986b9214f47ed14511ad761d80a41b19e02df7 pinephone-vccq-mod.dts 9c472065b19141dd4c7555869b955de2e679b36e597f9fa3bdac18d0e9460986b0e2fffe1e04751301305f1b6474c1375803afb7d6212eeae91b4905d0bf8ff8 pulse-pinephone.conf 967e3a43c7e91ed37fc932a7c580cd168ca11d8ec7f60ff60ece7f286e5144f27faead95162fa7d571a2317ed0da970fd86f5bc9ed0235a25c0be9182d42d64d 90-pinephone.conf 420ee1d7522d4d56c2909580fd6ba7580483ca5455b13eb6d22e700063ce0c1a5c6d2f5b161dfce0d777636fe9a712aa82f38a0585f2feabea3785b02bae7515 setup-modem.sh 1f573b4a6686dac30b6e20507ec6590764a9e9e60c5373bda3838b1f25370b447a3220670710c43a64eb518a4aa54d4ab3beb942513ef269e596a73653c6528e sun50i-a64-psci.dts c509254a94bef7ecf51ecba2f54cd4a3058dede820f9501750005ae43c026b1737a3b7bb30089e3a6f08c64e4e85250887e892dff51884c3159afeaa6e0b4105 uboot-script.cmd f28902517bebe16f7ddbdbf9f4c52d5c97319e3b5ba7326ba96ed0e094d3d2a39c87061326893cdc34336bbfd56de084b2f217918ebba7ca6a080088cd0bd409 uboot-user.cmd f963898fa2ce66bc830e56feeec6ffc9888834e14cc1591d72908ef45ad82532bc3ef5fb32413e07b6722749c9d03e7cf92f06f1fcb859c38b9297cf58e5cedd HiFi.conf 4b0c51ab169aebe8177c5c43eba41afa90370098a5a54e710d17e97ec1651869a20cb5d780a6132028c864916609e3b4f4a13158835310d0441bdb4915872372 PinePhone.conf e093f71c37370927468de35a987150a3db3e1cc1c76c144bf58918a09c688c3da84303b5533241e691a6aa0758589e2a6498b1097974117782e909f0bbc6bf71 VoiceCall.conf 43f67e94491791685cdbb4874bb3034b1d297bdf3d23e7405c45ba8c58de72b4fb6a9943b79f46ef7b8f4dbc4d9db254ebec8eb3453d720a5a8fad277c6a9d88 ppkb.sh bb11151e246d16e071761ebb35ca7f8b8cedbad8366e9bac6aed30554a795877cc9dccbe69ecca4b19b6f72bd87e613705f3ae4f2f40d2f9c2d09cc179999d59 sway-pinephone-keyboard.conf a7b49a638f664f7682ce6b00eb4d1ae26a429e89354056de05fb49d25fc9555d7f80e6d8f4b0a250878a4e7823860fd156068ed6604ce6cf58badef45c545161 x11-pinephone-keyboard.conf "