pine64-pinebookpro: add service for setting low power state on boot (MR 2306)
This adds a very basic openrc runscript that sets the power state on /dev/nvme0 to level 2, which seems(?) to be the lowest operational power state based on some cursory internet searching (and querying the nvme drives I have, Samsung EVO and Pro) The drive path is hard coded, but could be made configurable later on. I basically wanted to get something in pmaports quickly, since this power stuff is a major source of instability for me and probably others too who add nvme drives to this device.
This commit is contained in:
parent
e0010926f2
commit
55dc5819e4
4 changed files with 48 additions and 6 deletions
|
@ -1,21 +1,29 @@
|
|||
# Reference: <https://postmarketos.org/devicepkg>
|
||||
pkgname=device-pine64-pinebookpro
|
||||
pkgdesc="PINE64 Pinebook Pro"
|
||||
pkgver=1
|
||||
pkgrel=1
|
||||
pkgver=2
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="aarch64"
|
||||
options="!check !archcheck"
|
||||
depends="postmarketos-base linux-postmarketos-rockchip u-boot-pinebookpro mesa-dri-gallium alsa-ucm-conf"
|
||||
depends="
|
||||
alsa-ucm-conf
|
||||
linux-postmarketos-rockchip
|
||||
mesa-dri-gallium
|
||||
nvme-cli
|
||||
postmarketos-base
|
||||
u-boot-pinebookpro
|
||||
"
|
||||
makedepends="devicepkg-dev"
|
||||
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
|
||||
install="$pkgname.post-install"
|
||||
install="$pkgname.post-install $pkgname.post-upgrade"
|
||||
source="
|
||||
deviceinfo
|
||||
extlinux.conf
|
||||
10-pinebookpro.hwdb
|
||||
mem_sleep.conf
|
||||
nvme-powersave.initd
|
||||
ucm/rockchip,es8316-codec.conf
|
||||
ucm/HiFi
|
||||
"
|
||||
|
@ -43,6 +51,9 @@ package() {
|
|||
install -D -m644 "$srcdir"/HiFi \
|
||||
"$pkgdir"/usr/share/alsa/ucm2/rockchip_es8316/HiFi
|
||||
|
||||
install -D -m755 "$srcdir"/nvme-powersave.initd \
|
||||
"$pkgdir"/etc/init.d/nvme-powersave
|
||||
|
||||
}
|
||||
|
||||
nonfree_firmware() {
|
||||
|
@ -51,9 +62,12 @@ nonfree_firmware() {
|
|||
mkdir "$subpkgdir"
|
||||
}
|
||||
|
||||
sha512sums="68a5ba3b3115fa3c0d202566326052118ade7e8e2f8b6804d09a15ed63ec33fa5098354fd79ad24ee166f901f1349f3f0e4af5efc3924c6424d63e6b31de7542 deviceinfo
|
||||
sha512sums="
|
||||
68a5ba3b3115fa3c0d202566326052118ade7e8e2f8b6804d09a15ed63ec33fa5098354fd79ad24ee166f901f1349f3f0e4af5efc3924c6424d63e6b31de7542 deviceinfo
|
||||
cdcb1d36440c29d411691990c1170d9665b13b1c551b35825720d23b6ae40311ce91c3b2b7a089deaacd7a33c6febe4f81dc75d71dd4bed887291221d56dc1d2 extlinux.conf
|
||||
d3988fe83c54228d743f4a8c190e9530404a436a7fbc0b004bf20d3986b502d864717d8cc9c76812e599266bf84cb08f9a86e1bfd220875799c5a022aea588ec 10-pinebookpro.hwdb
|
||||
bcae155e24a151d3c098833680b83b6004a329962f115480d560ebe19257eab87286b8a4c194e456c067ca54fb53e59a5a16b022cea13c11135b0855145db563 mem_sleep.conf
|
||||
2abfa31fa56028339efc6d2b6cb838f310990d7110ac4dd996bc4cfcf90f0a8770e70f28f77f7b6929d110e494bc33731302f16b9717729f991c2732be0731d5 nvme-powersave.initd
|
||||
846384cab3e9581a03007cf4f39f8538315e804d1573903dd223d22d5ca0b6f260e348467aead5124689288fb7d2ec22c1e9aba8e89683efdbd33ddfe10de852 rockchip,es8316-codec.conf
|
||||
558f08b56425e0ceeea8d4815eeb862a2b801ba1b26b4dc28f4d0ec991ed9dfef14113172a224191eb2de5d0b57a741e4c48f1307bda2a69595944bd58731be1 HiFi"
|
||||
558f08b56425e0ceeea8d4815eeb862a2b801ba1b26b4dc28f4d0ec991ed9dfef14113172a224191eb2de5d0b57a741e4c48f1307bda2a69595944bd58731be1 HiFi
|
||||
"
|
||||
|
|
|
@ -4,4 +4,5 @@
|
|||
echo "UPDATING HWDB..."
|
||||
udevadm hwdb --update
|
||||
|
||||
rc-update add nvme-powersave boot
|
||||
rc-update add sysfsconf default
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
device-pine64-pinebookpro.post-install
|
|
@ -0,0 +1,26 @@
|
|||
#!/sbin/openrc-run
|
||||
name="NVMe power state config"
|
||||
description="Set NVMe power state to lowest operational level"
|
||||
|
||||
nvme_command="/usr/sbin/nvme"
|
||||
nvme_opts="-f 2 -v 2"
|
||||
|
||||
depend() {
|
||||
need localmount
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Setting low power state for NVMe drive"
|
||||
if [ ! -e /dev/nvme0 ]; then
|
||||
einfo "No NVMe drive found at /dev/nvme0"
|
||||
eend 0
|
||||
return 0
|
||||
fi
|
||||
|
||||
if ! ${nvme_command} set-feature /dev/nvme0 ${nvme_opts}; then
|
||||
eerror "Error setting PM state."
|
||||
eend 1
|
||||
return 1
|
||||
fi
|
||||
eend 0
|
||||
}
|
Loading…
Reference in a new issue