Add ZRAM swap with configurable size (default 50%)

Adds four fstab.zram.{25p,50p,75p,none} variants copied to vendor/etc.
init.rpi4.rc activates swap at boot_complete using persist.vendor.zram.size.
Adds vm.min_free_kbytes/lowmem_reserve_ratio memory tuning on init.
SELinux: declares vendor_zram_config_prop for persist.vendor.zram.size.
This commit is contained in:
oxmc
2026-06-09 06:54:44 -07:00
parent 44d3ef81eb
commit 551ceefa4c
9 changed files with 28 additions and 1 deletions
+8
View File
@@ -158,10 +158,18 @@ endif
PRODUCT_COPY_FILES += \
$(_FSTAB_SRC):$(TARGET_COPY_OUT_RAMDISK)/fstab.rpi4 \
$(_FSTAB_SRC):$(TARGET_COPY_OUT_VENDOR)/etc/fstab.rpi4 \
$(DEVICE_PATH)/ramdisk/fstab.zram.25p:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.zram.25p \
$(DEVICE_PATH)/ramdisk/fstab.zram.50p:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.zram.50p \
$(DEVICE_PATH)/ramdisk/fstab.zram.75p:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.zram.75p \
$(DEVICE_PATH)/ramdisk/fstab.zram.none:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.zram.none \
$(DEVICE_PATH)/ramdisk/init.rpi4.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.rpi4.rc \
$(DEVICE_PATH)/ramdisk/init.rpi4.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.rpi4.usb.rc \
$(DEVICE_PATH)/ramdisk/ueventd.rpi4.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc
# ZRAM: default 50% of RAM as compressed swap
PRODUCT_VENDOR_PROPERTIES += \
persist.vendor.zram.size=50p
# Seccomp
PRODUCT_COPY_FILES += \
$(DEVICE_PATH)/seccomp_policy/mediacodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \
+2
View File
@@ -0,0 +1,2 @@
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/zram0 none swap defaults zramsize=25%
+2
View File
@@ -0,0 +1,2 @@
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/zram0 none swap defaults zramsize=50%
+2
View File
@@ -0,0 +1,2 @@
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/zram0 none swap defaults zramsize=75%
+1
View File
@@ -0,0 +1 @@
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
+8 -1
View File
@@ -3,8 +3,15 @@ import /vendor/etc/init/hw/init.${ro.hardware}.usb.rc
on init
symlink /sdcard /storage/sdcard0
# Memory reserve tuning for RPi 4
write /proc/sys/vm/min_free_kbytes 27386
write /proc/sys/vm/lowmem_reserve_ratio "0 0 0"
on fs
mount_all /vendor/etc/fstab.rpi4 --early
on late-fs
mount_all /vendor/etc/fstab.rpi4 --late
mount_all /vendor/etc/fstab.rpi4 --late
on property:sys.boot_completed=1
swapon_all /vendor/etc/fstab.zram.${persist.vendor.zram.size}
+1
View File
@@ -4,3 +4,4 @@ vendor_internal_prop(vendor_hdmi_config_prop)
vendor_internal_prop(vendor_hwc_config_prop)
vendor_internal_prop(vendor_v4l2_config_prop)
vendor_internal_prop(vendor_pawlet_ota_prop)
vendor_internal_prop(vendor_zram_config_prop)
+3
View File
@@ -22,3 +22,6 @@ ro.vendor.pawlet.ota. u:object_r:vendor_pawlet_ota_prop:s0
# V4L2
persist.vendor.v4l2_codec2.rank.decoder u:object_r:vendor_v4l2_config_prop:s0
persist.vendor.v4l2_codec2.rank.encoder u:object_r:vendor_v4l2_config_prop:s0
# ZRAM
persist.vendor.zram.size u:object_r:vendor_zram_config_prop:s0
+1
View File
@@ -4,3 +4,4 @@ set_prop(vendor_init, vendor_hdmi_config_prop)
set_prop(vendor_init, vendor_hwc_config_prop)
set_prop(vendor_init, vendor_v4l2_config_prop)
set_prop(vendor_init, vendor_pawlet_ota_prop)
set_prop(vendor_init, vendor_zram_config_prop)