diff options
Diffstat (limited to 'recipes/initscripts/initscripts-1.0/ramdisk')
-rwxr-xr-x | recipes/initscripts/initscripts-1.0/ramdisk | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/recipes/initscripts/initscripts-1.0/ramdisk b/recipes/initscripts/initscripts-1.0/ramdisk new file mode 100755 index 0000000000..4dfe53cf61 --- /dev/null +++ b/recipes/initscripts/initscripts-1.0/ramdisk @@ -0,0 +1,49 @@ +#!/bin/sh + +. /etc/default/rcS + +FSTYPE=ext2 + +if test ! -e /proc/mtd +then + test "$VERBOSE" != "no" && echo >&2 "/proc not mounted, or mtd support not enabled in kernel." + exit +fi + +RAM_MTD_NO=`cat /proc/mtd | grep mtdram | tail -n 1 | cut -d: -f1 | cut -dd -f2` +if test -z "$RAM_MTD_NO"; then exit 0; fi + +if test -e /dev/mtdblock/0 +then + RAM_MTD=/dev/mtd/$RAM_MTD_NO + RAM_MTDBLK=/dev/mtdblock/$RAM_MTD_NO +else + RAM_MTD=/dev/mtd$RAM_MTD_NO + RAM_MTDBLK=/dev/mtdblock$RAM_MTD_NO +fi + +if grep -q $RAM_MTDBLK /etc/mtab; then echo "Device $RAM_MTDBLK already mounted"; exit 0; fi +if test ! -e $RAM_MTD; then echo >&2 "Mtdram device $RAM_MTD does not exist!"; exit 1; fi + +RAM_MNTPT=/mnt/ram +RAM_MTD_SIZE_HEX=`cat /proc/mtd | grep mtdram | tail -n 1 | cut -d" " -f 2` +RAM_MTD_SIZE=`dc 0x$RAM_MTD_SIZE_HEX 1024 / p` +test -e /etc/ramdisk.conf && OLD_MTD_SIZE=`cat /etc/ramdisk.conf` +echo $RAM_MTD_SIZE > /etc/ramdisk.conf + +if test ! -d "$RAM_MNTPT"; then echo >&2 "Mountpoint $RAM_MNTPT does not exist!"; exit 0; fi + +if (test ! -e /etc/.configured) || test "$OLD_MTD_SIZE" != "$RAM_MTD_SIZE"; then + test "$VERBOSE" != "no" && echo -n "Wiping ramdisk: " + dd if=/dev/zero bs=1024 count=$RAM_MTD_SIZE of=$RAM_MTD 2>/dev/null >&2 || exit 1 + test "$VERBOSE" != "no" && echo "$RAM_MTD"; + test "$VERBOSE" != "no" && echo -n "Creating filesystem on ramdisk: " + mkfs.$FSTYPE $RAM_MTDBLK 2>/dev/null >&2 || exit 1 + test "$VERBOSE" != "no" && echo "$RAM_MTDBLK"; +fi + +test "$VERBOSE" != "no" && echo -n "Mounting ramdisk: " +mount -t $FSTYPE $RAM_MTDBLK $RAM_MNTPT 2>/dev/null >&2 || exit 1 +test "$VERBOSE" != "no" && echo "$RAM_MTDBLK"; + +exit 0 |