From d6055c8e443c0808d7eada9cda8c159da3e095fb Mon Sep 17 00:00:00 2001 From: Andrei Gherzan Date: Tue, 18 Sep 2012 15:31:17 +0000 Subject: zram: Integrate an init script Signed-off-by: Andrei Gherzan Signed-off-by: Koen Kooi --- meta-oe/recipes-extended/zram/zram/init | 85 +++++++++++++++++++++++++++++++ meta-oe/recipes-extended/zram/zram_0.1.bb | 23 +++++++++ 2 files changed, 108 insertions(+) create mode 100644 meta-oe/recipes-extended/zram/zram/init create mode 100644 meta-oe/recipes-extended/zram/zram_0.1.bb (limited to 'meta-oe/recipes-extended/zram') diff --git a/meta-oe/recipes-extended/zram/zram/init b/meta-oe/recipes-extended/zram/zram/init new file mode 100644 index 0000000000..d12616936c --- /dev/null +++ b/meta-oe/recipes-extended/zram/zram/init @@ -0,0 +1,85 @@ +#!/bin/bash +### BEGIN INIT INFO +# Provides: zram +# Required-Start: +# Required-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Increased Performance In Linux With zRam (Virtual Swap Compressed in RAM) +# Description: Adapted from systemd scripts at https://github.com/mystilleef/FedoraZram +# Included as part of antix-goodies package by anticapitalista +# This script was written by tradetaxfree and is found at http://crunchbanglinux.org/forums/topic/15344/zram-a-good-idea/ +# Copy this script (as root) from /usr/local/bin to /etc/init.d and then #update-rc.d zram defaults +# After booting verify the module is loaded with: lsmod | grep zram +### END INIT INFO +set -e + +start() { + # get the number of CPUs + num_cpus=$(grep -c processor /proc/cpuinfo) + # if something goes wrong, assume we have 1 + [ "$num_cpus" != 0 ] || num_cpus=1 + + # set decremented number of CPUs + last_cpu=$((num_cpus - 1)) + + #default Factor % = 90 change this value here or create /etc/default/zram + FACTOR=90 + #& put the above single line in /etc/default/zram with the value you want + [ -f /etc/default/zram ] && source /etc/default/zram || true + factor=$FACTOR # percentage + + # get the amount of memory in the machine + memtotal=$(grep MemTotal /proc/meminfo | awk ' { print $2 } ') + mem_by_cpu=$(($memtotal/$num_cpus*$factor/100*1024)) + + # load dependency modules + modprobe zram zram_num_devices=$num_cpus + echo "zram devices probed successfully" + + # initialize the devices + for i in $(seq 0 $last_cpu); do + echo 1 > /sys/block/zram$i/reset + echo $mem_by_cpu > /sys/block/zram$i/disksize + # Creating swap filesystems + mkswap /dev/zram$i + # Switch the swaps on + swapon -p 100 /dev/zram$i + done +} + +stop() { + # get the number of CPUs + num_cpus=$(grep -c processor /proc/cpuinfo) + + # set decremented number of CPUs + last_cpu=$((num_cpus - 1)) + + # Switching off swap + for i in $(seq 0 $last_cpu); do + if [ "$(grep /dev/zram$i /proc/swaps)" != "" ]; then + swapoff /dev/zram$i + sleep 1 + fi + done + sleep 1 + rmmod zram +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + sleep 3 + start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + RETVAL=1 +esac +exit $RETVAL diff --git a/meta-oe/recipes-extended/zram/zram_0.1.bb b/meta-oe/recipes-extended/zram/zram_0.1.bb new file mode 100644 index 0000000000..85262647c0 --- /dev/null +++ b/meta-oe/recipes-extended/zram/zram_0.1.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "Linux zram compressed in-memory swap" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58" + +inherit allarch update-rc.d + +RDEPENDS_${PN} = "util-linux-swaponoff kmod kernel-module-zram" + +PR = "r0" + +SRC_URI = " \ + file://init \ + " + +do_install () { + # Sysvinit + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/zram +} + +FILES_${PN} = "${sysconfdir}/init.d" +INITSCRIPT_NAME = "zram" +INITSCRIPT_PARAMS = "start 05 2 3 4 5 . stop 22 0 1 6 ." -- cgit 1.2.3-korg