HELP-PVR Recording over Samba for D-Series MSTAR

Here for general support for D series TVs, request and problem solve area.

User avatar
brunogts77
Posts: 772
Joined: Sat Feb 18, 2012 8:34 pm

Re: HELP-PVR Recording over Samba for D-Series MSTAR

Post by brunogts77 »

This is my VUSB:

Code: Select all

#!/bin/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$
#
# TODO: more sysv style, more error handling
#
. /dtv/SGO.env

case $1 in 
	start)
	# on C series: can't open '/proc/scsi/scsi': No such file or directory?
#	if [ `cat /proc/scsi/scsi | grep -c "Type:"` -lt "1" ] ; then
		
		# create unsusable dummy device
		# dd if=/dev/zero of=/dtv/vusb bs=512 count=4

		# create usable vfat image
		# we don't need to mess around with log and usblog
		# also no limits to usb mounts
		# we need to find mount point, on most devices it's sda
		# but it will differ in some situations
		mkfs.vfat -C /dtv/vusb 500
		# mkfs.vfat -C /dtv/vusb $(($(df -k /dtv | grep dtv | sed -e 's,^\(.*\) \(.*\) \( .*% /dtv\),\2,') / 3 ))
		
		# TODO: for recording on c series xfs stuff.
		# /dev/stl0/21            392.3M    142.9M    249.4M  36% /mtd_rwcommon
		# needs to be adapted:
		# http://sourceforge.net/apps/phpbb/samygo/viewtopic.php?f=12&p=10567#p10567
		#
		# dd if=/dev/zero of=/mtd_rwcommon/vusb bs=1M count=16
		# /sbin/mkfs.xfs -f -d name=/mtd_rwcommon/vusb
		# ln -s /mtd_rwcommon/vusb /dtv/
		# OBSOLETE: gone to 80_80_record_to_nwshare.init 

		# create usable virtual device (don't store data on it what you need tomorrow too!!)
		# dd if=/dev/zero of=/dtv/vusb bs=1M count=2
		# mkfs.ext3 -q -F -m 0 -b 1024 /dtv/vusb

		# insmod $SYSROOT/lib/modules/treasure/dummy_hcd.ko
		insmod $MOD_DIR/kernel/drivers/usb/gadget/dummy_hcd.ko || \
		insmod $MOD_DIR/kernel/drivers/mstar/usb/gadget/dummy_hcd.ko
		sleep 2
	
		# insmod $SYSROOT/lib/modules/treasure/g_file_storage.ko
		insmod $MOD_DIR/kernel/drivers/usb/gadget/g_file_storage.ko || \
		insmod $MOD_DIR/kernel/drivers/mstar/usb/gadget/g_file_storage.ko
		sleep 3
		
		# find vusb in /sys
		# and set a variable for mount point
		rdev="sdj" # init state
		dev="sdj" # set fallback if someting wrong with modules
		for i in /sys/block/sd?/device/model ; do
			if [ `cat $i | grep -c "SamyGO Virt"` -gt "0" ] ; then
				echo "found gadget at: $i"
				dev=`echo $i | sed 's/^\/.*\(sd.\)\/.*/\1/g'`
				echo "scsidev: $dev"
			else
				# catch last one. hm, really required? 
				rdev=`echo $i | sed 's/^\/.*\(sd.\)\/.*/\1/g'`
				echo "real storage device at: $i ($rdev)"
			fi
		done
#	else
#		echo "Storage Device is present"
#	fi
	# if rdev == dev -> no vusb and no real usb
	# if rdev != dev -> vusb or real usb or both
	# if rdev != dev + check where "sdj" -> vusb or real and "sdj" tels what's not present
	# how to detect that we need to write to log or usblog?
	if [ "$dev" == "sdj" ] ; then
		# make [usb]log
		 $(echo -e "[${dev}]\nVendor : SamyGO Virt.\nProduct : SamyGO Virt.\n\
Serial : Q80VQLFK\nDevpath : 11\nLun : 0\nScsiDevicePath : /dev/${dev}\nMountDir : /dtv/usb/${dev}\nFileSystem : vfat\n" >> /dtv/usb/usblog)
	mkdir -p /dtv/usb/${dev}
	fi
	
	sed -i -e "s,MountPlaceholder,/dtv/usb/$dev," /dtv/SGO.env
	;;
	stop)
	# what's about umount?
	rmmod g_file_storage
	# some troubles if we mess around with dummy_hcd, so not remove on stop
	# rmmod dummy_hcd
	;;
	status)
	cat /sys/block/sd?/device/model
	;;
	*)
	echo "Usage: $0 {start|stop|status}" 1>&2
	exit 0
	;;
esac
This is my 02_04_vusb.vpvrimage:

Code: Select all

#!/bin/sh

. /dtv/SGO.env

case $1 in 
   start)
   [ -e $SYSROOT/etc/init.d/02_04_vusb.init ] && exit 1
   [ ! -e $SYSROOT/etc/init.d/03_03_nfsmount.init ] && exit 1
   [ ! -e $SYSROOT/etc/init.d/80_80_record_to_nwshare.init ] && exit 1
   mkfs.vfat -C /dtv/vusb 500
   insmod $MOD_DIR/kernel/drivers/usb/gadget/dummy_hcd.ko || \
   insmod $MOD_DIR/kernel/drivers/mstar/usb/gadget/dummy_hcd.ko

   XFSIMAGE=""$SYSROOT"/xfsimage"
   XFSMOUNT="/dtv/xfsmount"
   PVRIMAGE=""$XFSMOUNT"/pvrimage"
   PVRMOUNT=""$XFSMOUNT"/pvrmount"
   GFILESTORAGE="/dtv/vusb"

   [ ! -d $XFSMOUNT ] && mkdir $XFSMOUNT
   [ ! -f $XFSIMAGE ] && dd if=/dev/zero of=$XFSIMAGE bs=1M count=17 status=noxfer 2>/dev/null
   mkfs.xfs -qf $XFSIMAGE
   cat /proc/mounts | grep -q "$XFSMOUNT" || /bin/busybox mount -o loop $XFSIMAGE $XFSMOUNT
   if [ ! -f $PVRIMAGE ]; then
      dd if=/dev/zero of="$PVRIMAGE" bs=1M count=1 seek=1536 status=noxfer 2>/dev/null
      mkfs.xfs "$PVRIMAGE"
      mkdir -p "$PVRMOUNT"
      /bin/busybox mount -o loop "$PVRIMAGE" "$PVRMOUNT"
      touch ""$PVRMOUNT"/.PlaceHolderDO-NOT-REMOVE"
      /bin/busybox umount "$PVRMOUNT"
   fi
   [ -e $PVRIMAGE ] && GFILESTORAGE="$GFILESTORAGE,$PVRIMAGE"
   
   insmod $MOD_DIR/kernel/drivers/usb/gadget/g_file_storage.ko file="$GFILESTORAGE" || \
   insmod $MOD_DIR/kernel/drivers/mstar/usb/gadget/g_file_storage.ko file="$GFILESTORAGE"
   sleep 3

   FOUND=false
   SAMYGODEVS=''
   for i in /sys/block/sd?/device/model ; do
      if [ `cat $i | grep -c "SamyGO Virt"` -gt "0" ]; then
         CURDEV="`echo $i | sed 's/^\/.*\(sd.\)\/.*/\1/g'`"
         SAMYGODEVS="$SAMYGODEVS /dev/$CURDEV"
         if [ $FOUND = false ]; then
            echo "found gadget at: $i"
            dev=$CURDEV
            echo "scsidev: $dev"
            FOUND=true
         fi
      else
         echo "real storage device at: $i"
      fi
   done
   SAMYGODEVS=`echo $SAMYGODEVS|sed 's/^[[:space:]]//'`

   sed -i -e "s,MountPlaceholder,/dtv/usb/$dev," /dtv/SGO.env
   echo "SAMYGODEVS=\"$SAMYGODEVS\"" >> /dtv/SGO.env
   ;;
   stop)
   rmmod g_file_storage
   # some troubles if we mess around with dummy_hcd, so not remove on stop
   # rmmod dummy_hcd
   ;;
   status)
   cat /sys/block/sd?/device/model
   ;;
   *)
   echo "Usage: $0 {start|stop|status}" 1>&2
   exit 0
   ;;
esac
UE40JU6000 T-MST12DEUC_1119]
UE55JU6870 T-HKMDEUC-1480 [OSCAM=ON]

Post Reply

Return to “[D] Support”