diff --git a/extra-repos/systemd/systemd-services/APKBUILD b/extra-repos/systemd/systemd-services/APKBUILD index ceec4d13c..2c2b4f799 100644 --- a/extra-repos/systemd/systemd-services/APKBUILD +++ b/extra-repos/systemd/systemd-services/APKBUILD @@ -7,7 +7,7 @@ # How to add a new service file (5 steps): pkgname=systemd-services # 1. bump pkgver -pkgver=98 +pkgver=99 pkgrel=0 pkgdesc="Systemd service files" url="https://postmarketos.org" @@ -537,7 +537,7 @@ e09a3c76f3be961dce9f564bb654ea84d1d7fb59907a2168c0569bf6c17a5ebe9fbe4d1f94f1d014 744c60fdc6e53ba2c9f370ce8462e1a420cfea973edff49d0caf7a3e65f0f35257d61b5ae3ace3e9d9d48e382cb54d9f2ff96ad02d5e16758a49ba2e07963e5a user-xdg-desktop-portal-wlr.service 760a0002f08df28c1584dea41c06df4a6cfb016e201e909dcfba639e5e794cdf3ae9e790a9c9e50261b88968d8129bfee35ec1be8e9f99ad1c7e1359872b5643 user-xfce4-notifyd.service 2dbebee6e970bb5b534872b9fe1816cf1cdc738f48c7375717661f39869dfea4974b189eb7d01f3ade9dced33efebaf1034976d344dbd16483408d2c4958148f user-xfconfd.service -e0014662e4ec2c52d3beabe3247ede7c6b12c1d22b7c62d6b04ff82a668f492c09060243acf92090e6a7ec75a44b41760b3bbd144da4f36c14364cfa28a8dac3 system-zram_swap.service +1072886ed07e3e3545e41c542d001f313185497fbaaa8b2071b30f296c04f925b4a5a50bc2b08fa91ca5e83033564a0eae7d017ec1afb01defad42fb6d65e6ed system-zram_swap.service 4d201f29ad98abf38a15e877bb1b4f46fb08ab0cd5cb83f29aaa104eaa0a51fd14784110ee844ccb89914aa73b985fc9c61e216f8d2ac230adfa1d1660ebd573 system-sing-box.service f4042114ed0f36e51bc32f6df184843d6d7e58b7cece8a845796910d80e1f26c9d0be9415ed90f7a91211bd669d8bb002b24a5a79657f8b699f952299ddfb5d2 system-sing-box@.service e67997cfad302af405e1bee78f79ea9caaa8fec0b765003ff08901f43a2ea07209726d0a20f2640b796bc6775606e34143da362d1e0471ce32b919747004d53c tmpfiles.d-sing-box.conf diff --git a/extra-repos/systemd/systemd-services/system-zram_swap.service b/extra-repos/systemd/systemd-services/system-zram_swap.service index cc838502e..6d0ab6b2f 100644 --- a/extra-repos/systemd/systemd-services/system-zram_swap.service +++ b/extra-repos/systemd/systemd-services/system-zram_swap.service @@ -19,7 +19,7 @@ ExecCondition=sh -c '. /usr/share/misc/source_deviceinfo' # zram_tmp.service and zram_var_tmp.service and that # num_devices in modprobe.d/zram.conf contains the maximal used number + 1 -ExecStart=/bin/sh -c "exec zram-init -azstd -Lzram_swap $(zram-size-calc)" +ExecStart=/bin/sh -c "exec zram-init -a$(zram-configurator algo) -Lzram_swap $(zram-configurator size)" ExecStop=/usr/sbin/zram-init 0 [Install] diff --git a/main/postmarketos-base/APKBUILD b/main/postmarketos-base/APKBUILD index f8075516e..a5e9e44a7 100644 --- a/main/postmarketos-base/APKBUILD +++ b/main/postmarketos-base/APKBUILD @@ -1,6 +1,6 @@ pkgname=postmarketos-base -pkgver=49 -pkgrel=1 +pkgver=50 +pkgrel=0 pkgdesc="Meta package for minimal postmarketOS base" url="https://postmarketos.org" arch="noarch" @@ -88,7 +88,7 @@ _source755=" etc/init.d/swapfile etc/init.d/tmpfs usr/bin/swapfile - usr/bin/zram-size-calc + usr/bin/zram-configurator " # Avoid filename based checksum conflicts by including the whole path: @@ -249,7 +249,7 @@ e529f5cef1f31481b577f99b8917704f2cfefb963d98bf40a14b017938e55a00134d2033f81d2cb0 49cff0dbf37fc3c3ca30709be3bc4bbac9b2c05d1f88356922c6ab849e1fe893da7eca92b42a4095cfa00fe475470a711a93bfa60f1cedfde9c890a6dcc61de9 rootfs-etc-doas.d-10-postmarketos.conf 1d2975e7e2745020f88fac639021cc9a47b477fb0390c3e146a070d98faab32c3f1c7bd1121f45a26be97301ab65c736ae0a4905d28a7251919a1994895f9c8d rootfs-etc-ssh-sshd_config.d-50-postmarketos-ui-policy.conf e0d2d48b82a03239a4c0a00acaf83e00d397c23a8d7c71053d4e2a383357c22dcedef9e81b0e12a1d7514e1fdbe0bb3eb82613d18b29034a7ce5447f13c84a53 rootfs-etc-conf.d-swapfile -a286c261dbab800b4bd2891c679cae1fbbf3e3169014bf7e89451961bbd3cbe0f6e34465cd1409aa4373f32ed74f38eb042b166767512be9ee7104e26cd712fa rootfs-etc-conf.d-zram-init +9e3648adf9ddc17bb7bb07be88a635191d4c7923f0ba807eb010d67ee6b95d01f8f57181a99d25bb27ccaec6a07c0d679c0bc6580cc2a8e3f0851589522b3ac8 rootfs-etc-conf.d-zram-init e4576c58c35f80bedddb1e89e186f37d31a186d3e9eb046581b8c5d7b7d435e18924539e851d3e67dc0ede80f9d44d16bd9ef52e73350d3f13224edc31d73a34 rootfs-etc-conf.d-syslog 9b8d0493bb64457fe176fea801e0771d3c5279302c61559824bf81b3d2b66d2c1e076f4aaac65f55389005acb18c27e44bed858c2bdbad37d74199f07c86c354 rootfs-etc-fstab 45bd0742a64a9d3c4a88e152b97edcf3fa1edca28884f9ea69e7c4c365f1e41ef9056dbe204545de7d4b2ba92e1e5872b2a929c2dcc1dd468e627cc3f090b8e6 rootfs-etc-issue @@ -269,5 +269,5 @@ 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 +73eb8784087a6847143d78bcf089f671ec81a2c52628a27a93896364bf15cdf9de37b05b4b2e60a070c5795c7b03756b13b04ac30a43d1dc745cb4878004ab86 rootfs-usr-bin-zram-configurator " diff --git a/main/postmarketos-base/rootfs-etc-conf.d-zram-init b/main/postmarketos-base/rootfs-etc-conf.d-zram-init index 471013c8f..c9df88f9b 100644 --- a/main/postmarketos-base/rootfs-etc-conf.d-zram-init +++ b/main/postmarketos-base/rootfs-etc-conf.d-zram-init @@ -1,11 +1,11 @@ . /usr/share/misc/source_deviceinfo -size0="$(zram-size-calc)" +size0="$(zram-configurator size)" echo "zram swap: activating with size: $size0 MB" # zstd (since linux-4.18), lz4 (since linux-3.15), or lzo. # Size: zstd (best) > lzo > lz4. Speed: lz4 (best) > zstd > lzo -algo0=zstd +algo0="$(zram-configurator algo)" # The following are defaults from the zram-init package: load_on_start=yes diff --git a/main/postmarketos-base/rootfs-usr-bin-zram-configurator b/main/postmarketos-base/rootfs-usr-bin-zram-configurator new file mode 100644 index 000000000..4684c16bb --- /dev/null +++ b/main/postmarketos-base/rootfs-usr-bin-zram-configurator @@ -0,0 +1,49 @@ +. /usr/share/misc/source_deviceinfo + +[ $# -ne 1 ] && exit 1 + +case "$1" in +"size") + # 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)) + exit 0 + ;; +"algo") + # Default to zstd compression, and allow overriding via deviceinfo + # TODO: Ensure deviceinfo uses valid and usable algorithm + echo "${deviceinfo_zram_swap_algo:-zstd}" + exit 0 + ;; +*) + exit 1 + ;; +esac diff --git a/main/postmarketos-base/rootfs-usr-bin-zram-size-calc b/main/postmarketos-base/rootfs-usr-bin-zram-size-calc deleted file mode 100644 index ab80b0ecf..000000000 --- a/main/postmarketos-base/rootfs-usr-bin-zram-size-calc +++ /dev/null @@ -1,33 +0,0 @@ -. /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))