mirror of
https://github.com/OpenVoiceOS/OpenVoiceOS
synced 2025-06-05 22:19:21 +02:00
Add and configure 20% of memory as zram swap with a low agressive swappiness
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
CONFIG_SND_SOC_WM8960=m
|
CONFIG_SND_SOC_WM8960=m
|
||||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
|
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
|
||||||
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
||||||
|
|
||||||
|
CONFIG_ZRAM=y
|
||||||
|
CONFIG_ZSMALLOC=y
|
||||||
|
@@ -465,6 +465,7 @@ BR2_PACKAGE_UTIL_LINUX_BINARIES=y
|
|||||||
BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y
|
BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y
|
||||||
BR2_PACKAGE_UTIL_LINUX_KILL=y
|
BR2_PACKAGE_UTIL_LINUX_KILL=y
|
||||||
BR2_PACKAGE_UTIL_LINUX_MORE=y
|
BR2_PACKAGE_UTIL_LINUX_MORE=y
|
||||||
|
BR2_PACKAGE_UTIL_LINUX_ZRAMCTL=y
|
||||||
BR2_PACKAGE_NANO=y
|
BR2_PACKAGE_NANO=y
|
||||||
BR2_PACKAGE_VIM=y
|
BR2_PACKAGE_VIM=y
|
||||||
# BR2_PACKAGE_VIM_RUNTIME is not set
|
# BR2_PACKAGE_VIM_RUNTIME is not set
|
||||||
|
1
buildroot-external/rootfs-overlay/etc/sysctl.conf
Normal file
1
buildroot-external/rootfs-overlay/etc/sysctl.conf
Normal file
@@ -0,0 +1 @@
|
|||||||
|
vm.swappiness = 20
|
@@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=OVOS ZRAM swap
|
||||||
|
Requires=zram-swap.service
|
||||||
|
After=zram-swap.service
|
||||||
|
|
||||||
|
[Swap]
|
||||||
|
What=/dev/zram0
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=swap.target
|
@@ -0,0 +1,6 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=OVOS zram targets
|
||||||
|
Documentation=man:systemd.target(5)
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
@@ -0,0 +1,15 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=OVOS ZRAM swap
|
||||||
|
DefaultDependencies=no
|
||||||
|
Before=dev-zram0.swap
|
||||||
|
RefuseManualStart=true
|
||||||
|
RefuseManualStop=true
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/usr/libexec/ovos-zram -t swap
|
||||||
|
RemainAfterExit=true
|
||||||
|
StandardOutput=null
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=ovos-zram.target
|
66
buildroot-external/rootfs-overlay/usr/libexec/ovos-zram
Executable file
66
buildroot-external/rootfs-overlay/usr/libexec/ovos-zram
Executable file
@@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Credits go to: https://github.com/home-assistant/operating-system/
|
||||||
|
set -e
|
||||||
|
|
||||||
|
#### Options ####
|
||||||
|
|
||||||
|
TYPE=""
|
||||||
|
MOUNT=""
|
||||||
|
DEVICE=""
|
||||||
|
SIZE=0
|
||||||
|
|
||||||
|
#### Parse arguments ####
|
||||||
|
|
||||||
|
while [ "$1" != "" ]; do
|
||||||
|
key=$1
|
||||||
|
case $key in
|
||||||
|
-t|--type)
|
||||||
|
TYPE=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-s|--size)
|
||||||
|
SIZE=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-m|--mount)
|
||||||
|
MOUNT=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "[Error] $0 : Argument '$1' unknown"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# Valide Type
|
||||||
|
if [ "$TYPE" != "swap" ]; then
|
||||||
|
echo "[Error] Type unknown!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Lookup device
|
||||||
|
if [ "$TYPE" = "swap" ]; then
|
||||||
|
DEVICE="/dev/zram0"
|
||||||
|
#elif [ "$MOUNT" = "var" ]; then
|
||||||
|
# DEVICE="/dev/zram1"
|
||||||
|
#elif [ "$MOUNT" = "tmp" ]; then
|
||||||
|
# DEVICE="/dev/zram2"
|
||||||
|
else
|
||||||
|
echo "[Error] No device for lookup!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Calc 20% of memory for ZRAM swap partition
|
||||||
|
if [ "$TYPE" = "swap" ] && [ "$SIZE" -eq "0" ]; then
|
||||||
|
SIZE="$(awk '/MemTotal/{ print $2 * 0.20 }' /proc/meminfo)K"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Init device
|
||||||
|
zramctl "$DEVICE" -s "$SIZE" -a lz4
|
||||||
|
|
||||||
|
# Swap
|
||||||
|
if [ "$TYPE" = "swap" ]; then
|
||||||
|
mkswap -L "ovos-zramswap" "$DEVICE"
|
||||||
|
fi
|
Reference in New Issue
Block a user