diff --git a/main/postmarketos-base/APKBUILD b/main/postmarketos-base/APKBUILD index b2a6c8ec5..11c11e630 100644 --- a/main/postmarketos-base/APKBUILD +++ b/main/postmarketos-base/APKBUILD @@ -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 " diff --git a/main/postmarketos-base/rootfs-etc-conf.d-zram-init b/main/postmarketos-base/rootfs-etc-conf.d-zram-init index 3c86868e2..471013c8f 100644 --- a/main/postmarketos-base/rootfs-etc-conf.d-zram-init +++ b/main/postmarketos-base/rootfs-etc-conf.d-zram-init @@ -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. diff --git a/main/postmarketos-base/rootfs-usr-bin-zram-size-calc b/main/postmarketos-base/rootfs-usr-bin-zram-size-calc new file mode 100644 index 000000000..ab80b0ecf --- /dev/null +++ b/main/postmarketos-base/rootfs-usr-bin-zram-size-calc @@ -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))