. #!/mnt/bin/busybox sh
#
# Β© Copyright 1996-2010, ZsoltTech.Com
# by Ser Lev Arris <
arris@ZsoltTech.Com>
#
# donated for the SamyGo Project
#
http://samygo.sourceforge.net/
#
# Version: SamyGO svn $Id: 03_03_nfsmount.init 1069 2011-01-03 16:47:24Z arris69 $ mount mod by solevi (levi on SamyGO)
. /dtv/SGO.env
# sleep 9
##### YOU CAN CHANGE ME HERE ######
SERVER="192.168.1.251"
# SERVER="10.0.0.1" # if you want a fixed server
#SHARES=""
# SHARES="Video Music Photo" # if you won't all your shares, but then set SERVER too!!
##### CHANGE ME END ######
FR_NAME="NFS Server"
# M_OPTS="uid=1010,gid=1010,soft,udp,async,nolock,rsize=32768,wsize=8192"
# M_OPTS="rw,uid=1010,gid=1010,soft,udp,nolock,rsize=32768,wsize=32768"
# M_OPTS="uid=1010,gid=1010,soft,tcp,nolock,rsize=32768,wsize=32768"
# M_OPTS="uid=1010,gid=1010,soft,tcp,nolock,rsize=8192,wsize=8192"
M_OPTS="uid=1010,gid=1010,soft,tcp,nolock"
SERVERS="Don't set me!!"
DEST_DIR=$MOUNT_PATH/nfs
do_mount()
{
# $(echo -e "[sdg]\nVendor : NfsMount\nProduct : $FR_NAME\n\
#Serial : Q80VQLFG\nDevpath : 7\nLun : 0\nMountDir : $DEST_DIR\nFileSystem : vfat\n" >> /dtv/usb/log)
for i in $S_MOUNTS ; do
#M_POINT="$DEST_DIR/$1/$(echo -n $i | sed -e "s/\//_/g")" #disabled by levi
M_POINT="$DEST_DIR/$1/$(basename $i)" #enabled by levi
mkdir -p "$M_POINT"
if [ `cat /proc/mounts | grep -c "$M_POINT"` -lt "1" ] ; then
$SYSROOT/bin/busybox mount -o "$M_OPTS" "$1:$i" "$M_POINT"
else
echo "$M_POINT is mounted!"
fi
done
}
get_shares()
{
if [ -z "$SHARES" ] ; then
echo -n "Search Shares on: "
for i in $SERVERS ; do
echo $i
# S_MOUNTS=$(showmount --no-headers -e $i | cut -d " " -f1)
S_MOUNTS=$(showmount --no-headers -e $i | sed 's/^\(.*\) .*/\1/')
[ -n "$S_MOUNTS" ] && do_mount $i
done
else
echo -n "Fixed Server: "
for i in $SERVERS ; do
echo $i
S_MOUNTS=$SHARES
[ -n "$S_MOUNTS" ] && do_mount $i
done
fi
}
get_servers()
{
if [ -z "$SERVER" ] ; then
# SERVERS=$(cat /proc/net/arp | grep -v "IP address" | cut -d " " -f1)
SERVERS=$(cat /proc/net/arp | grep -v "IP address" | sed 's/^\(\w*.\w*.\w*.\w*\) *.*/\1/')
else
SERVERS=$SERVER
fi
}
case $1 in
start)
echo " " >> $LOGFILE 2>&1
echo "+++++++++++++++++ NFS ++++++++++++++++" >> $LOGFILE 2>&1
echo " " >> $LOGFILE 2>&1
# for systems with modular nfs kernel support
insmod /mtd_exe/vdlm/sunrpc.ko || insmod $MOD_DIR/kernel/net/sunrpc/sunrpc.ko || dmesg | tail >> $LOGFILE 2>&1
# insmod /mtd_exe/vdlm/auth_rpcgss.ko || echo "auth_rpcgss.ko. T-GFS model or wrong/missing modules?"
insmod /mtd_exe/vdlm/lockd.ko || insmod $MOD_DIR/kernel/fs/lockd/lockd.ko || dmesg | tail >> $LOGFILE 2>&1
#insmod $MOD_DIR/kernel/fs/nfs_common/nfs_acl.ko #actually server part is not needed for TV
insmod /mtd_exe/vdlm/nfs.ko || insmod $MOD_DIR/kernel/fs/nfs/nfs.ko || dmesg | tail >> $LOGFILE 2>&1
insmod /mtd_exe/vdlm/nfsv3.ko || insmod $MOD_DIR/kernel/fs/nfs/nfsv3.ko || dmesg | tail >> $LOGFILE 2>&1
sleep 3
get_servers
get_shares
;;
stop)
# may can fail if device access the mount from content library
# for i in $(cat /proc/mounts | grep nfs | cut -d " " -f2) ; do
for i in $(cat /proc/mounts | grep "$DEST_DIR" | sed 's/^\(.*\) \(.*\) nfs .*/\2/') ; do
$SYSROOT/bin/busybox umount $i
done
;;
status)
$SYSROOT/bin/busybox mount | grep "$DEST_DIR"
;;
*)
echo "Usage: $0 {start|stop|status}" 1>&2
exit 0
;;
esac