1
0
This repository has been archived on 2025-01-10. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Anderson Luiz Alves 0464e230c1 stock 103961
2017-07-30 16:48:04 -03:00

90 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
# vim: set ts=2 sw=2 et:
# /etc/bewan/lib/config
# implements functions to access bewan configuration stored in /dev/mtd
[ ${CONFIG_LIB_LOADED:-0} = 1 ] && return
CONFIG_LIB_LOADED=1
if [ "${CONFIG_MTD:-}" = '' ]; then
CONFIG_MTD=0
cat /proc/mtd | grep mtd2 | grep Config >/dev/null
[ $? = 0 ] && CONFIG_MTD=1
fi
config_mtd_mount() {
[ $CONFIG_MTD = 0 ] && return
# Copy /dev/mtd2 do /dev/ram0 and mount /dev/ram0
dd if=/dev/mtd2 of=/dev/ram0 bs=1024 count=192 >/dev/null 2>/dev/null
mount -t ext2 -r /dev/ram0 /nvram 2>/dev/null
# Mount failed, recreate empty ramdisk
if [ $? != 0 ]; then
expand /etc/bewan/ramfs.img /dev/ram0
mount -t ext2 -r /dev/ram0 /nvram
fi
}
config_mtd_erase() {
if [ $CONFIG_MTD = 0 ]; then
rm -rf /nvram/bewan
return
fi
umount -f /dev/ram0
flash_erase /dev/mtd2 0 0 >/dev/null 2>/dev/null
expand /etc/bewan/ramfs.img /dev/ram0
mount -t ext2 -r /dev/ram0 /nvram
}
config_mtd_write() {
[ $CONFIG_MTD = 0 ] && return
# remount /dev/ram0 with RW access
mount -o remount -w /dev/ram0 /nvram
}
config_mtd_umount() {
if [ $CONFIG_MTD = 0 ]; then
. /etc/bewan/lib/base
# Umount nvram partition
umount /nvram
if [ $? -eq 0 ]; then
base_log "/nvram unmounted successfully" debug
else
# If failed, kill all programs using /nvram
# First, remove all inittab entries
. /etc/bewan/scripts/globals
rm -f $ITABD/*
sync
base_call_initd 'inittab'
# Send SIGTERM to program using nvram
base_log "Sending SIGTERM to program using /nvram" debug
fuser -m -k -TERM /nvram
sleep 1
umount /nvram
if [ $? -eq 0 ]; then
base_log "/nvram unmounted successfully" debug
return
fi
# Send SIGKILL
base_log "Sending SIGKILL to program using /nvram" debug
fuser -m -k /nvram
sleep 1
umount /nvram
if [ $? -eq 0 ]; then
base_log "/nvram unmounted successfully" debug
else
base_log "Error unmounting /nvram..." debug
fi
fi
fi
}
config_mtd_store() {
[ $CONFIG_MTD = 0 ] && return
# Copy ramdisk to flash partition
umount /dev/ram0
dd if=/dev/ram0 of=/dev/mtdblock2 bs=1024 count=192 2>/dev/null
mount -t ext2 -r /dev/ram0 /nvram
}