The funny thing is that in order to use and insmod the USB drivers, it first does this: /sbin/gpio 11 2 out 1
Any ideas what this gpio pin is doing?
SpoilerShow
Code: Select all
#!/bin/sh
MOUNT_DIR="sda1"
check_usb_mount()
{
while [ 1 == 1 ]
do
if [ -d /dtv/usb/sda ]; then
MOUNT_DIR="sda"
elif [ -d /dtv/usb/sda1 ]; then
MOUNT_DIR="sda1"
elif [ -d /dtv/usb/sda2 ]; then
MOUNT_DIR="sda2"
elif [ -d /dtv/usb/sdb ]; then
MOUNT_DIR="sdb"
elif [ -d /dtv/usb/sdb1 ]; then
MOUNT_DIR="sdb1"
elif [ -d /dtv/usb/sdb2 ]; then
MOUNT_DIR="sdb2"
elif [ -d /dtv/usb/sdc ]; then
MOUNT_DIR="sdc"
elif [ -d /dtv/usb/sdc1 ]; then
MOUNT_DIR="sdc1"
elif [ -d /dtv/usb/sdc2 ]; then
MOUNT_DIR="sdc2"
elif [ -d /dtv/usb/sdd ]; then
MOUNT_DIR="sdd"
elif [ -d /dtv/usb/sdd1 ]; then
MOUNT_DIR="sdd1"
elif [ -d /dtv/usb/sdd2 ]; then
MOUNT_DIR="sdd2"
else
echo "Please connect usb memory wait 5 seconds..."
sleep 5
continue
fi
return
done
}
usb_module_insmod()
{
/sbin/gpio 11 2 out 1
insmod /lib/modules/usbcore.ko
insmod /lib/modules/ohci-hcd.ko
insmod /lib/modules/ehci-hcd.ko
insmod /lib/modules/usb-storage.ko
sleep 3
return
}
usb_remount()
{
umount /dtv/usb/$MOUNT_DIR
echo "umount /dtv/usb/$MOUNT_DIR"
mount -t vfat /dev/$MOUNT_DIR /dtv/usb/$MOUNT_DIR
echo "mount -t vfat /dev/$MOUNT_DIR /dtv/usb/$MOUNT_DIR"
sleep 3
}
core_dump()
{
if [ -e /core/* ]; then
cd /core
ls
echo "cp /core/* /dtv/usb/$MOUNT_DIR/"
cp -rf /core/* /dtv/usb/$MOUNT_DIR/
sync
else
echo "No Coredump file"
return 0
fi
}
log_dump()
{
/sbin/logdump /dtv/usb/$MOUNT_DIR/logdump.txt
sync
if [ -e /mtd_rwarea/emeg_log.txt ]; then
echo "cp /mtd_rwarea/emeg_log.txt /dtv/usb/$MOUNT_DIR/"
cp -rf /mtd_rwarea/emeg_log.txt /dtv/usb/$MOUNT_DIR/
sync
else
echo "No emeg_log.txt file"
fi
echo "cat /proc/kmsg > /dtv/usb/$MOUNT_DIR/kmsg.txt &"
cat /proc/kmsg > /dtv/usb/$MOUNT_DIR/kmsg.txt &
sleep 2
killall -9 cat
echo "sync"
sync
}
echo "Check usb module insmod status"
MOD_FLAG=$(lsmod | grep ehci)
if [ "$MOD_FLAG" != "" ]; then
echo "usb modules exist"
else
echo "usb modules not exist try to insmod"
usb_module_insmod
fi
echo "Check usb mount status"
check_usb_mount
echo "Usb re-mount for write speed"
usb_remount
while [ "$SELECT" != "99" ]
do
echo "===================================="
echo " [ DEBUG MENU ] "
echo "------------------------------------"
echo " 1. Copy log to USB "
echo " 2. Copy corefile to USB "
echo "===================================="
echo " 99. Exit "
echo "===================================="
echo -n "select > "
read SELECT
if [ "$SELECT" = "1" ]; then
log_dump
elif [ "$SELECT" = "2" ]; then
core_dump
fi
done