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" | ||