Udostępnienie tylko jednego katalogu w 04_04_samba.init

xrey

New member
Z racji tego, że długo odświeżane są pliki, które udostępniam z dysku podłączonego do routera chciałem się spytać czy możliwe jest by TV widział tylko 1 lub 2 katalogi ze wszystkich udostępnionych?

Dysk udostępniam za pomocą Samba Client w SamyGo.

To zawartość mojego pliku 04_04_samba.init:

(...)

. /dtv/SGO.env
# sleep 9
##### CHANGE MEEEEE !!!!! ######
USER="pass"
PASSWD="pass"
PERM="rw" # can be ro or rw
##### CHANGE MEEEEE END ######

[ -e /mtd_rwarea/smb_userdata ] && source /mtd_rwarea/smb_userdata

[ -z $USER ] && exit 1
[ -z $PASSWD ] && exit 1

DEST_DIR=$MOUNT_PATH/smb
SERVER=""
# SERVER="10.0.0.1" # if you want a fixed server
SHARES=""
FR_NAME="Samba Server"
# M_OPTS="rw,user=${USER},password=${PASSWD}"
M_OPTS="$PERM,user=${USER},password=${PASSWD},codepage=cp1250,iocharset=utf8"

SERVERS="Don't set me!!"
### MANIOOTEK EDIT ###
rm -fr /mtd_contents/database/
device="sdm"
DEST_DIR=/dtv/usb/$device
$(echo -e "[$device]\nVendor : Home\nProduct : Samba Shares\nSerial : M4N100T3K\nDevpath : 9\nLun : 0\n\
ScsiDevicePath : /dev/$device\nMountDir : /dtv/usb/$device\nFileSystem : vfat\n" >> /dtv/usb/usblog)
### MANIOOTEK EDIT END ###
do_mount()
{
# $(echo -e "[sdh]\nVendor : CifsMount\nProduct : $FR_NAME\n\
#Serial : Q80VQLFH\nDevpath : 8\nLun : 0\nMountDir : $DEST_DIR\nFileSystem : vfat\n" >> /dtv/usb/log)

for i in $S_MOUNTS ; do
i="$(echo -n $i | sed -e 's/SGOspace/ /g')"
M_POINT="$DEST_DIR/$1/$(echo -n $i | sed -e "s/\\\$/_/g")"
mkdir -p "$M_POINT"
if [ `cat /proc/mounts | grep -c "$M_POINT"` -lt "1" ] ; then
/bin/busybox mount -o "${M_OPTS}" -t cifs "//$1/$i" "$M_POINT"
else
echo "$M_POINT is mounted!"
fi

done
}

get_shares()
{
echo "Search Shares"
for i in $SERVERS ; do
echo "on: $i"
S_MOUNTS=$(smbclient -s "$SYSROOT/etc/samba/smb.conf" -U ${USER}%${PASSWD} \
-g -L $i | grep "Disk|" | grep -v "\\$" | grep -v " Service" | sed -r 's/.*\|(.*)\|.*/\1/' | sed -r 's/ /SGOspace/g')
# -g -L $i | grep "Disk|" | grep -v "\\$" | grep -v " Service" | cut -d "|" -f2)
[ -n "$S_MOUNTS" ] && do_mount $i
done
}

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)
insmod $MOD_DIR/kernel/fs/cifs/cifs.ko
mkdir -p "$DEST_DIR"
get_servers
get_shares
### MANIOOTEK MANUAL MOUNTING ###
YOUR_IP="192.168.1.1"
mkdir -p $DEST_DIR/router
/bin/busybox mount -o "${M_OPTS}" -t cifs "//$YOUR_IP/" "$DEST_DIR/router"
### MANIOOTEK MANUAL MOUNTING END ###
;;
stop)
# may can fail if device access the mount from content library
# for i in $(cat /proc/mounts | grep cifs | cut -d " " -f2) ; do
for i in $(cat /proc/mounts | grep cifs | grep "$DEST_DIR" | sed 's/^\(.*\) \(.*\) cifs .*/\2/') ; do
i="$(echo -n $i | sed -r 's/\\040/ /g')"
/bin/busybox umount "$i"
done
;;
status)
/bin/mount | grep "$DEST_DIR"
;;
*)
echo "Usage: $0 {start|stop}" 1>&2
exit 0
;;
esac
Wiem, że na routerze mógłbym udostępnić właśnie tylko jeden katalog ale nie o to chodzi bo oprócz TV chciałbym na komputerach korzystać z całości dysku.
 

xrey

New member
Udało mi się ale na innej zasadzie. W OpenWrt na routerze dla głównego katalogu dysku dałem dostęp na hasło dla użytkowników komp. domowych (hasło po pierwszym logowaniu jest zapamiętywane także potem nie ma nawet monitu o hasło), natomiast dla gościa, którym będzie TV udostępniłem tylko 3 foldery bez hasła. Obawiałem się że TV będzie wywalać mi jakieś błędy ale nic takiego się nie dzieje.

Nie było to łatwe - kilkanaście godzin czytania i kombinowania bo nie znam się na linuksie, - łaczenie z routerem przy pomocy telnetu, wydawanie poleceń przy pomocy konsoli ... brrrrrrr ale jakoś poszło. I teraz TV czyta katalogi z filmami i serialami w 3-4 sekundy a i potem w menu wyboru filmu o wiele szybciej chodzi się po katalogach. :) Wcześniej odświeżało bardzo wolno, na tym dysku mam m.in. kilka tysięcy folderów(!) z mp3.

Jak uda mi się rozszerzyć pamięć routera przy pomocy pendrive'a to pokombinuję z dlna
 
Ostatnia edycja:
Do góry