Compare commits

...
Author SHA1 Message Date
Clayton Craft 66f3b6ac83 systemd/postmarketos-base-systemd: add and configure zram-generator
This also configures the system to auto-load zram module, to make sure
that it's loaded when the systemd generator runs at boot
2025-02-17 11:54:33 -08:00
Clayton Craft 1b69f4a8bc main/postmarketos-base: move zram size calc logic to standalone script
This allows re-using it elsewhere, like in pmos-base-systemd
2025-02-17 11:54:32 -08:00
Clayton Craft de73e983a1 systemd/zram-generator: new aport 2025-02-12 16:00:21 -08:00
7 changed files with 85 additions and 35 deletions

No files matched your search

@@ -2,7 +2,7 @@
# Co-maintainer: Clayton Craft <clayton@craftyguy.net>
# pmbootstrap installs this, if systemd is selected in "pmbootstrap init".
pkgname=postmarketos-base-systemd
pkgver=26
pkgver=27
pkgrel=0
pkgdesc="Meta package for running postmarketOS with systemd"
url="https://postmarketos.org"
@@ -30,6 +30,7 @@ depends="
systemd-services
systemd-timesyncd
tzdata
zram-generator
"
replaces="alpine-baselayout postmarketos-base systemd systemd-logind"
replaces_priority=100
@@ -39,8 +40,10 @@ _source644="
etc/profile.d/99motd.sh
etc/systemd/logind.conf
usr/share/mkinitfs/files-extra/01-initramfs-base-systemd.files
usr/lib/modules-load.d/zram.conf
usr/lib/systemd/system-preset/90-base.preset
usr/lib/systemd/user-preset/90-base.preset
usr/lib/systemd/zram-generator.conf
"
_source755="
@@ -73,7 +76,9 @@ sha512sums="
fbaa33425e507062a454f11bda48508f261c2144e5c23a20f567dc1cef14ce1dec57f8d934f418f5b6095509757f8503481aba9790a04c8f9f6995e65833d8c9 rootfs-etc-profile.d-99motd.sh
2faac294bb632762e247b850f09ff4b544ccff6c462efd8d4faca71ba30bdfa9c460377a0dc88e92c5dbbe251017d164064a56ac0e0410f224b45d4f5f81866c rootfs-etc-systemd-logind.conf
15423bfda57c90ab62fe69865ca4072a0aeb83bf77d9c278257e346f4da81843d010b41003c91ae9f3fcb1c67447645e7c19078eea2bf11312051e6ad7523ad1 rootfs-usr-share-mkinitfs-files-extra-01-initramfs-base-systemd.files
bf165faa1902ae0b2bde8ba17764a6d0054412f839f0d76104e4152084fa1f34550c7eb6c665f0a94c58000942e6b0a86b9d4bf9c2ab617c9747f90dd45ceb84 rootfs-usr-lib-modules-load.d-zram.conf
fb69154ca6f55e49992f38c9c1b34dba6f08fcbf36dcb85e21519879c58b47c833babbc1c55e160a414c347d4f546cec477565368995fbab6632a23156637df4 rootfs-usr-lib-systemd-system-preset-90-base.preset
c7ec5a4e7c7dcbf855f34e80adb225f52221340099216e57792b04f07e7b367e004209551e9a74152d9212926aba1b1a0a2680d3c2e35f15cca6f3cf0c9a3841 rootfs-usr-lib-systemd-user-preset-90-base.preset
1abb70025cef1939b84ae6a790c5c8954b35f0d5e4eab1a8263afd013f5a6e944329940a8d731cb5d5c802f606c901c1d7a5b4cf705c14c4dbd9d53f8ce5550d rootfs-usr-lib-systemd-zram-generator.conf
605df1f004783d2e0ec5dd99a688bca27502c8c24bc05fb4dc26589b2070b0fbd1cf9bd56e6861d7cda2f8ac8147e7eb040acfd886185c01c8cf9de8b1ce2dcd rootfs-usr-bin-setup-timezone
"
@@ -0,0 +1,6 @@
# Use external tool to calculate size. See the tool for more info
set!zram0size = zram-size-calc
[zram0]
zram-size = zram0size
compression-algorithm = zstd
@@ -0,0 +1,33 @@
# Contributor:
# Maintainer:
pkgname=zram-generator
pkgver=1.2.1
pkgrel=0
pkgdesc=" Systemd unit generator for zram devices "
url="https://github.com/systemd/zram-generator/tree/v1.2.1"
arch="all"
license="MIT"
makedepends="
cargo
ronn
rust
systemd-dev
"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/systemd/zram-generator/archive/refs/tags/v$pkgver.tar.gz"
build() {
make build man
}
check() {
make check
}
package() {
make DESTDIR="$pkgdir" install
}
sha512sums="
f7d4ca7a0962b3d800307e1d0af790cb58da3be981544ad1d1ea809066c8545a8572b15ae00c2816908a90605abfd2b774fd208d3042bc6a8d4806c5d72a53e5 zram-generator-1.2.1.tar.gz
"
+5 -3
View File
@@ -1,6 +1,6 @@
pkgname=postmarketos-base
pkgver=40
pkgrel=1
pkgver=41
pkgrel=0
pkgdesc="Meta package for minimal postmarketOS base"
url="https://postmarketos.org"
arch="noarch"
@@ -72,6 +72,7 @@ _source755="
etc/init.d/swapfile
etc/init.d/tmpfs
usr/bin/swapfile
usr/bin/zram-size-calc
usr/lib/firmwareload.sh
"
@@ -163,7 +164,7 @@ sha512sums="
e529f5cef1f31481b577f99b8917704f2cfefb963d98bf40a14b017938e55a00134d2033f81d2cb0b8489c5e9b4a92fdc0a788013f1adb4cd46d9580c9988186 rootfs-etc-sudoers
ab09e67203bb82226b0c9e600c8bc231a5c0111977b80edb355e55be101d008ac3c06798c263f0ca50e203758e1bfbf25767ad12f2654d082fb007c0411bbd1f rootfs-etc-doas.d-10-postmarketos.conf
e0d2d48b82a03239a4c0a00acaf83e00d397c23a8d7c71053d4e2a383357c22dcedef9e81b0e12a1d7514e1fdbe0bb3eb82613d18b29034a7ce5447f13c84a53 rootfs-etc-conf.d-swapfile
96ba663d7fc9a4296c64bf3344ed8958889379fda94ab2b4064af091dd461caa6c7918884464e2249a0983b369860cb5df7c5d7d4a3eaab5b56fbe2f459b0aaf rootfs-etc-conf.d-zram-init
a286c261dbab800b4bd2891c679cae1fbbf3e3169014bf7e89451961bbd3cbe0f6e34465cd1409aa4373f32ed74f38eb042b166767512be9ee7104e26cd712fa rootfs-etc-conf.d-zram-init
e4576c58c35f80bedddb1e89e186f37d31a186d3e9eb046581b8c5d7b7d435e18924539e851d3e67dc0ede80f9d44d16bd9ef52e73350d3f13224edc31d73a34 rootfs-etc-conf.d-syslog
9b8d0493bb64457fe176fea801e0771d3c5279302c61559824bf81b3d2b66d2c1e076f4aaac65f55389005acb18c27e44bed858c2bdbad37d74199f07c86c354 rootfs-etc-fstab
45bd0742a64a9d3c4a88e152b97edcf3fa1edca28884f9ea69e7c4c365f1e41ef9056dbe204545de7d4b2ba92e1e5872b2a929c2dcc1dd468e627cc3f090b8e6 rootfs-etc-issue
@@ -183,5 +184,6 @@ d89a7e4b9d601431c62c11f83c9c72fdb90384d9100ee5fc4aff25dda0836fd3bf9e48c0536615be
42d6bce78b6e3c118dcbd9228b138661a05f8f321f17457e8df8f2398c0b780399d8d056f0a7c50d91557ac8698ab37dde61ec1a13fd69a7b3faad092f126580 rootfs-etc-init.d-swapfile
0cd9a0b8490028d854b65d0648aaf84e4703921b8b7797517dd65ffaa1ec9e225487007dcccd42c249a9f2470e5adacf95760536c9508138b14de7252de38473 rootfs-etc-init.d-tmpfs
23df2632e8ef372dccd6b9abac61441dd0ee447ccc7428fba495e28f1b697ebc415f7580dbb9a39d22d162a175d7264b47bdf9f66552347e35d9d0bb7828647d rootfs-usr-bin-swapfile
0d128f044e60a882c189e3286dd1609f0d4c18682c501f6a40f18ee99e9ba5a4185cb57504074bc6c213b4b71f3186b120fdd29992ed256016631977ff831f7d rootfs-usr-bin-zram-size-calc
72c73bd67bfe2a659c469781e4def038a9b2482e014c0304150fbc25c5325fc7a36b288de76447837741bb9a828eb1db6df0d33b41cf67c7a25bb27b03777b1f rootfs-usr-lib-firmwareload.sh
"
@@ -1,36 +1,6 @@
. /usr/share/misc/source_deviceinfo
# Size defaults to:
# - 75% of RAM for devices with 2GB of RAM or less
# - 50% of RAM for devices with between 2GB and 6GB of RAM
# - 25% of RAM for devices with greater 6GB of RAM
# This is loosely based on some data here:
# https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/3752#note_1229631449
_mem_size_mb="$(LC_ALL=C free -m | awk '/^Mem:/{print $2}')"
if [ $_mem_size_mb -le 2048 ]; then
_size_pct=75
elif [ $_mem_size_mb -gt 6144 ]; then
_size_pct=25
else
_size_pct=50
fi
# Allow overriding the size as a percentage of RAM using a deviceinfo var, or
# disabling it completely
if [ -n "$deviceinfo_zram_swap_pct" ]; then
# 0% --> disable zram swap
if [ "$deviceinfo_zram_swap_pct" == "0" ]; then
echo "zram swap: disabled in deviceinfo, exiting"
exit 0
fi
_size_pct="$deviceinfo_zram_swap_pct"
fi
size0=$(($_mem_size_mb * $_size_pct / 100))
size0="$(zram-size-calc)"
echo "zram swap: activating with size: $size0 MB"
# zstd (since linux-4.18), lz4 (since linux-3.15), or lzo.
@@ -0,0 +1,33 @@
. /usr/share/misc/source_deviceinfo
# Size defaults to:
# - 75% of RAM for devices with 2GB of RAM or less
# - 50% of RAM for devices with between 2GB and 6GB of RAM
# - 25% of RAM for devices with greater 6GB of RAM
# This is loosely based on some data here:
# https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/3752#note_1229631449
_mem_size_mb="$(LC_ALL=C free -m | awk '/^Mem:/{print $2}')"
if [ $_mem_size_mb -le 2048 ]; then
_size_pct=75
elif [ $_mem_size_mb -gt 6144 ]; then
_size_pct=25
else
_size_pct=50
fi
# Allow overriding the size as a percentage of RAM using a deviceinfo var, or
# disabling it completely
if [ -n "$deviceinfo_zram_swap_pct" ]; then
# 0% --> disable zram swap
if [ "$deviceinfo_zram_swap_pct" == "0" ]; then
echo 0
exit 0
fi
_size_pct="$deviceinfo_zram_swap_pct"
fi
echo $(($_mem_size_mb * $_size_pct / 100))