diff options
author | Rui Salvaterra <rsalvaterra@gmail.com> | 2020-07-30 13:49:18 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2020-09-17 10:29:40 +0200 |
commit | 419f149e482641ddc520f80a7ab2038f7e2ebc8a (patch) | |
tree | 6c5661d4ce54160e775a639978509e06ff14e254 | |
parent | 0fbdb51f7643db5fa4423333a68f34c6952dba24 (diff) | |
download | upstream-419f149e482641ddc520f80a7ab2038f7e2ebc8a.tar.gz upstream-419f149e482641ddc520f80a7ab2038f7e2ebc8a.tar.bz2 upstream-419f149e482641ddc520f80a7ab2038f7e2ebc8a.zip |
zram-swap: default to lzo instead of lzo-rle compression
On devices with small amounts of RAM, zram-swap fails to initialise due to the
default compression algorithm (lzo-rle). Startup example on an AirGrid M2, with
32 MiB of RAM:
root@airgrid:/etc/config# /etc/init.d/zram start
zram_start: activating '/dev/zram0' for swapping (13 MegaBytes)
zram_reset: enforcing defaults via /sys/block/zram0/reset
sh: write error: Out of memory
mkswap: image is too small
swapon: /dev/zram0: Invalid argument
root@airgrid:/etc/config#
Fix this by defaulting to traditional lzo, which works fine and is always
available.
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
-rwxr-xr-x | package/system/zram-swap/files/zram.init | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/package/system/zram-swap/files/zram.init b/package/system/zram-swap/files/zram.init index 42c084855a..bfb9285600 100755 --- a/package/system/zram-swap/files/zram.init +++ b/package/system/zram-swap/files/zram.init @@ -85,8 +85,9 @@ zram_comp_algo() local dev="$1" local zram_comp_algo="$( uci -q get system.@system[0].zram_comp_algo )" - if [ -z "$zram_comp_algo" ] || [ ! -e /sys/block/$( basename $dev )/comp_algorithm ]; then - return 0 + if [ -z "$zram_comp_algo" ]; then + # lzo-rle fails on small RAM devices, default to lzo, which is always available + zram_comp_algo="lzo" fi if [ $(grep -c "$zram_comp_algo" /sys/block/$( basename $dev )/comp_algorithm) -ne 0 ]; then |