One thing that I changed in your script was temporary gdb-script path: I moved it to RAM-disk partition to save flash memory lifetime.
Code: Select all
gdb_commands=/mtd_ram/gdbtrick.gdb
Code: Select all
gdb_commands=/mtd_ram/gdbtrick.gdb
I did this some time ago, please find the result here:tusko wrote: Also I think that this method is a bit too much... loading the whole gdb binary to only call some functions. As an alternative, I am working in a small C program using ptrace syscall to load a "boot" library with dlopen. Then, this library will load plugins and call Game_Main. This will be more or less the same that gdb does but it will be more efficient.
Code: Select all
gdb_binary=/mtd_rwarea/gdb
gdb_commands=/mtd_rwarea/gdbtrick.gdb
gdb_delay=5
libraries="/mtd_tlib/GGame/ChannelInfo/load.so /mtd_tlib/GGame/SamyGO/libSamyGO.so /mtd_tlib/GGame/SamyGO-PVR/loader.so"
exeDSP_PID=$(pidof exeDSP)
temp='attach '$exeDSP_PID'\n'
i=0
for l in $libraries
do
if [ -e "$l" ] ;then
temp=$temp'call dlopen("'$l'", 2)\n'
let i++
temp=$temp'call dlsym($'$i', "Game_Main")\n'
let i++
temp=$temp'call $'$i'("'${l%/*}/'", 0)\n'
let i++
temp=$temp'call dlclose($'$((i-2))')\n'
let i++
fi
done
temp=$temp'detach\n'
echo -e 'The following commands:\n---\n'$temp'---\nwill be executed by '$gdb_binary' in '$gdb_delay' secs!!\n'
echo -e $temp >$gdb_commands
{ sleep $gdb_delay; $gdb_binary -batch -x $gdb_commands; rm $gdb_commands; } &
Code: Select all
if [ -f /mtd_rwarea/gdbtrick.sh ];then
echo "Running SamyGO extensions Startup"
/mtd_rwarea/gdbtrick.sh& # Run samygo extensions
fi
Code: Select all
#!/bin/sh
#====================================================================
# Enable Telnetd
#====================================================================
if [ `cat /proc/mounts | grep -c "/dev/pts"` -lt "1" ] ; then
echo "telnetd Enabled"
mount -t devpts devpts /dev/pts
telnetd
else
echo "/dev/pts is mounted"
fi
sleep 10
#=====================================================================
#Wi-fi draiveriai 1
#=====================================================================
#if [ -f /mtd_rwarea/wifi.sh ];then
# echo "Loading wi-fi adapter drivers"
# /mtd_rwarea/wifi.sh& # Loading wi-fi adapter drivers
#fi
#====================================================================
#Network Time Protocol (ntp - tikslus sistemos laikas)
#====================================================================
# example NTP server from Poland (change this if you want)
#SERVER="193.110.137.171"
## we must wait for internet
#sleep 10
## Synchronize now
#/path/to/your/binary/ntpclient -s -h $SERVER -p 123
SERVER="129.6.15.28"
/mtd_rwarea/ntpclient/ntpclient -s -h $SERVER -p 123
#=====================================================================
#Wi-fi draiveriai
#=====================================================================
rmmod rt2870sta # Unloading original rt2870sta
rmmod rt73 # Unloading original rt73
insmod /mtd_rwarea/modules/rt2870sta.ko
sleep 10
#Paleidziam FTP======================================================
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mtd_rwarea/SamyGO
#/mtd_rwarea/SamyGO/bftpd -d -c /mtd_rwarea/SamyGO/bftpd.conf
#====================================================================
#====================================================================
#Install VUSB
#sleep 10
#====================================================================
modules="/mtd_rwarea/modules"
insmod $modules/dummy_hcd.ko
sleep 10
insmod $modules/g_file_storage.ko file=/mtd_rwarea/vusb.image
#sleep 10
#====================================================================
# Open back-door for fixing boot-loop situations
#====================================================================
sleep 20 # Allow USB-stick to settle
USB="/dtv/usb/sda1" # USB mount-point
if [ -f $USB/usb.sh ];then
echo "USB-File detected"
$USB/usb.sh
exit
else
if [ -f /mtd_rwarea/mtd_rwarea.sh ];then
echo "Running normal samsung TV startup"
/mtd_rwarea/mtd_rwarea.sh # Run normal startup script
fi
if [ -f /mtd_rwarea/mount.sh ];then
echo "Running SamyGO NFS mounts"
/mtd_rwarea/mount.sh& # Run mount script
fi
if [ -f /mtd_rwarea/gdbtrick.sh ];then
echo "Running SamyGO extensions Startup"
/mtd_rwarea/gdbtrick.sh& # Run samygo extensions
fi
fi
#Your lines here!
#/mtd_tlib/GGame/SamyGO/rcSGO
exit