diff options
| -rw-r--r-- | meta-oe/recipes-extended/zram/zram/dev-zram0.swap | 10 | ||||
| -rwxr-xr-x | meta-oe/recipes-extended/zram/zram/zram-swap-deinit | 19 | ||||
| -rwxr-xr-x | meta-oe/recipes-extended/zram/zram/zram-swap-init | 26 | ||||
| -rw-r--r-- | meta-oe/recipes-extended/zram/zram/zram-swap.service | 10 | ||||
| -rw-r--r-- | meta-oe/recipes-extended/zram/zram/zram.service | 12 | ||||
| -rw-r--r-- | meta-oe/recipes-extended/zram/zram/zramstop | 5 | ||||
| -rw-r--r-- | meta-oe/recipes-extended/zram/zram_0.1.bb | 33 | ||||
| -rw-r--r-- | meta-oe/recipes-extended/zram/zram_0.2.bb | 50 |
8 files changed, 120 insertions, 45 deletions
diff --git a/meta-oe/recipes-extended/zram/zram/dev-zram0.swap b/meta-oe/recipes-extended/zram/zram/dev-zram0.swap new file mode 100644 index 0000000000..05eae7eedb --- /dev/null +++ b/meta-oe/recipes-extended/zram/zram/dev-zram0.swap | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | [Unit] | ||
| 2 | Description=Enable compressed swap in memory using zram | ||
| 3 | Requires=zram-swap.service | ||
| 4 | After=zram-swap.service | ||
| 5 | |||
| 6 | [Swap] | ||
| 7 | What=/dev/zram0 | ||
| 8 | |||
| 9 | [Install] | ||
| 10 | WantedBy=swap.target | ||
diff --git a/meta-oe/recipes-extended/zram/zram/zram-swap-deinit b/meta-oe/recipes-extended/zram/zram/zram-swap-deinit new file mode 100755 index 0000000000..46248c401b --- /dev/null +++ b/meta-oe/recipes-extended/zram/zram/zram-swap-deinit | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | set -e | ||
| 3 | |||
| 4 | device=$1 | ||
| 5 | if [ "$device" = "" ]; then | ||
| 6 | echo "Usage: zram-swap-deinit <device>" | ||
| 7 | exit 1 | ||
| 8 | fi | ||
| 9 | |||
| 10 | sysblockdev=/sys/block/$(basename $device) | ||
| 11 | if [ ! -d $sysblockdev ]; then | ||
| 12 | echo "Block device not found in sysfs" | ||
| 13 | exit 1 | ||
| 14 | fi | ||
| 15 | |||
| 16 | # zramctl -r is not suitable as it also removes the actual device. Recreating | ||
| 17 | # it is non-trivial, especially if not /dev/zram0 is used... | ||
| 18 | echo 1 > ${sysblockdev}/reset | ||
| 19 | |||
diff --git a/meta-oe/recipes-extended/zram/zram/zram-swap-init b/meta-oe/recipes-extended/zram/zram/zram-swap-init new file mode 100755 index 0000000000..0643dbca23 --- /dev/null +++ b/meta-oe/recipes-extended/zram/zram/zram-swap-init | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | set -e | ||
| 3 | |||
| 4 | device=$1 | ||
| 5 | if [ "$device" = "" ]; then | ||
| 6 | echo "Usage: zram-swap-init <device>" | ||
| 7 | exit 1 | ||
| 8 | fi | ||
| 9 | |||
| 10 | # Allocate zram to be size of actual system memory | ||
| 11 | # Note: zram is only allocated when used. When swapped pages compress with a | ||
| 12 | # a 2:1 ratio zram will require 50% of system memory (while allowing to use | ||
| 13 | # 150% memory). | ||
| 14 | ZRAM_SIZE_PERCENT=100 | ||
| 15 | ZRAM_ALGORITHM=lz4 | ||
| 16 | |||
| 17 | [ -f /etc/default/zram ] && ./etc/default/zram || true | ||
| 18 | |||
| 19 | memtotal=$(grep MemTotal /proc/meminfo | awk ' { print $2 } ') | ||
| 20 | memzram=$(($memtotal*${ZRAM_SIZE_PERCENT}/100)) | ||
| 21 | |||
| 22 | # Try loading zram module | ||
| 23 | modprobe -q zram || true | ||
| 24 | |||
| 25 | zramctl -a ${ZRAM_ALGORITHM} -s ${memzram}KB $device | ||
| 26 | mkswap -L "zram-swap" $device | ||
diff --git a/meta-oe/recipes-extended/zram/zram/zram-swap.service b/meta-oe/recipes-extended/zram/zram/zram-swap.service new file mode 100644 index 0000000000..a4dc9514e6 --- /dev/null +++ b/meta-oe/recipes-extended/zram/zram/zram-swap.service | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | [Unit] | ||
| 2 | Description=Create compressed swap in memory using zram | ||
| 3 | DefaultDependencies=no | ||
| 4 | |||
| 5 | [Service] | ||
| 6 | Type=oneshot | ||
| 7 | RemainAfterExit=yes | ||
| 8 | TimeoutStartSec=30sec | ||
| 9 | ExecStart=@LIBEXECDIR@/zram-swap-init /dev/zram0 | ||
| 10 | ExecStop=@LIBEXECDIR@/zram-swap-deinit /dev/zram0 | ||
diff --git a/meta-oe/recipes-extended/zram/zram/zram.service b/meta-oe/recipes-extended/zram/zram/zram.service deleted file mode 100644 index 4a19367d93..0000000000 --- a/meta-oe/recipes-extended/zram/zram/zram.service +++ /dev/null | |||
| @@ -1,12 +0,0 @@ | |||
| 1 | [Unit] | ||
| 2 | Description=Enable zram compressed in-memory swap. | ||
| 3 | After=multi-user.target | ||
| 4 | |||
| 5 | [Service] | ||
| 6 | RemainAfterExit=yes | ||
| 7 | ExecStart=/usr/bin/zram-load.sh --load | ||
| 8 | ExecStop=/usr/bin/zram-load.sh --unload | ||
| 9 | Type=oneshot | ||
| 10 | |||
| 11 | [Install] | ||
| 12 | WantedBy=multi-user.target | ||
diff --git a/meta-oe/recipes-extended/zram/zram/zramstop b/meta-oe/recipes-extended/zram/zram/zramstop new file mode 100644 index 0000000000..07777978ed --- /dev/null +++ b/meta-oe/recipes-extended/zram/zram/zramstop | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | for i in $(grep '^/dev/zram' /proc/swaps | awk '{ print $1 }'); do | ||
| 4 | swapoff "$i" && zramctl --reset "$i" | ||
| 5 | done | ||
diff --git a/meta-oe/recipes-extended/zram/zram_0.1.bb b/meta-oe/recipes-extended/zram/zram_0.1.bb deleted file mode 100644 index dfd75e71ca..0000000000 --- a/meta-oe/recipes-extended/zram/zram_0.1.bb +++ /dev/null | |||
| @@ -1,33 +0,0 @@ | |||
| 1 | SUMMARY = "Linux zram compressed in-memory swap" | ||
| 2 | LICENSE = "MIT" | ||
| 3 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" | ||
| 4 | |||
| 5 | inherit update-rc.d systemd | ||
| 6 | |||
| 7 | RDEPENDS_${PN} = "util-linux-swaponoff kmod" | ||
| 8 | RRECOMMENDS_${PN} = "kernel-module-zram" | ||
| 9 | |||
| 10 | PR = "r3" | ||
| 11 | |||
| 12 | SRC_URI = " \ | ||
| 13 | file://init \ | ||
| 14 | file://zram.service \ | ||
| 15 | " | ||
| 16 | |||
| 17 | do_install () { | ||
| 18 | # Sysvinit | ||
| 19 | install -d ${D}${sysconfdir}/init.d | ||
| 20 | install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/zram | ||
| 21 | |||
| 22 | install -d ${D}${systemd_unitdir}/system | ||
| 23 | install -m 0644 ${WORKDIR}/zram.service ${D}${systemd_unitdir}/system | ||
| 24 | } | ||
| 25 | |||
| 26 | FILES_${PN} = "${sysconfdir}" | ||
| 27 | INITSCRIPT_NAME = "zram" | ||
| 28 | INITSCRIPT_PARAMS = "start 05 2 3 4 5 . stop 22 0 1 6 ." | ||
| 29 | |||
| 30 | RPROVIDES_${PN} += "${PN}-systemd" | ||
| 31 | RREPLACES_${PN} += "${PN}-systemd" | ||
| 32 | RCONFLICTS_${PN} += "${PN}-systemd" | ||
| 33 | SYSTEMD_SERVICE_${PN} = "zram.service" | ||
diff --git a/meta-oe/recipes-extended/zram/zram_0.2.bb b/meta-oe/recipes-extended/zram/zram_0.2.bb new file mode 100644 index 0000000000..98c47af7ac --- /dev/null +++ b/meta-oe/recipes-extended/zram/zram_0.2.bb | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | SUMMARY = "Linux zram compressed in-memory swap" | ||
| 2 | LICENSE = "MIT" | ||
| 3 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" | ||
| 4 | |||
| 5 | inherit update-rc.d systemd | ||
| 6 | |||
| 7 | RDEPENDS_${PN} = "kmod \ | ||
| 8 | ${@bb.utils.contains('DISTRO_FEATURES','systemd','util-linux','util-linux-swaponoff',d)}" | ||
| 9 | RRECOMMENDS_${PN} = "kernel-module-zram" | ||
| 10 | |||
| 11 | PR = "r3" | ||
| 12 | |||
| 13 | SRC_URI = " \ | ||
| 14 | file://init \ | ||
| 15 | file://zram-swap-init \ | ||
| 16 | file://zram-swap-deinit \ | ||
| 17 | file://zram-swap.service \ | ||
| 18 | file://dev-zram0.swap \ | ||
| 19 | " | ||
| 20 | |||
| 21 | do_install () { | ||
| 22 | # Install systemd related configuration file | ||
| 23 | if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then | ||
| 24 | install -d ${D}${sysconfdir}/init.d | ||
| 25 | install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/zram | ||
| 26 | fi | ||
| 27 | |||
| 28 | if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then | ||
| 29 | install -d ${D}${libexecdir} | ||
| 30 | install -m 0755 ${WORKDIR}/zram-swap-init ${D}${libexecdir} | ||
| 31 | install -m 0755 ${WORKDIR}/zram-swap-deinit ${D}${libexecdir} | ||
| 32 | install -d ${D}${systemd_unitdir}/system | ||
| 33 | install -m 0644 ${WORKDIR}/zram-swap.service ${D}${systemd_unitdir}/system/zram-swap.service | ||
| 34 | sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/zram-swap.service | ||
| 35 | install -m 0644 ${WORKDIR}/dev-zram0.swap ${D}${systemd_unitdir}/system/dev-zram0.swap | ||
| 36 | fi | ||
| 37 | } | ||
| 38 | |||
| 39 | FILES_${PN} = " \ | ||
| 40 | ${sysconfdir} \ | ||
| 41 | ${systemd_unitdir} \ | ||
| 42 | ${libexecdir} \ | ||
| 43 | " | ||
| 44 | INITSCRIPT_NAME = "zram" | ||
| 45 | INITSCRIPT_PARAMS = "start 05 2 3 4 5 . stop 22 0 1 6 ." | ||
| 46 | |||
| 47 | RPROVIDES_${PN} += "${PN}-systemd" | ||
| 48 | RREPLACES_${PN} += "${PN}-systemd" | ||
| 49 | RCONFLICTS_${PN} += "${PN}-systemd" | ||
| 50 | SYSTEMD_SERVICE_${PN} = "dev-zram0.swap" | ||
