First of all, many thanks to all community for this great research project. I've got Samsung BD-C6900 player. It is NTSC-only version but I have a lot of all-region PAL DVDs. These can not be played now and I wish to remove this restriction. I don't know yet if this is possible but at least I've got root access using Internet@TV hack for C-series TVs with ARM CPUs.
The player does not support ext2/3 filesystem, so I used vfat formatted USB memory and followed instructions from this page. The widget was used from http://www.multiupload.com/OLQTLJ8G52 and the SamyGO extensions were taken here (it is for C-series TV with ARM CPUs.
After configuration the "develop" account in Internet@TV I have installed the hack widget in developer mode and then just started it from Internet@TV menu. The widget installed hack, I inserted USB stick and after checking the hack, files run.sh and ScriptOK appeared on the USB flash drive.
Then I have unpacked SamyGO extensions to this drive and added the following lines in the run.sh file on the USB stick.
Code: Select all
rm -f /mtd_rwarea/profile
$1/SamyGO/rcSGO $1/SamyGO > $1/rcSGO_out 2>&1 &
Later, I have modified SamyGO/etc/rc.sysinit script: all modules related stuff was removed, and only $SYSROOT/etc/init.d/03_03_sshd.init was started. With these modifications everything works without any crash. The modified SamyGO/etc/rc.sysinit script is here:
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-sysinit svn $Id: rc.sysinit 260 2010-01-13 20:13:24Z arris $
# do some background checks (not implemented)
# some vars
# set -m
# SYSROOT="/mtd_down/SamyGO"
# DISTROOT="/mtd_down/SamyGO/opt"
# some helper stuff
alias .='source'
# alias insmod='true'
# alias ll='/bin/ls -l'
bummer()
{
echo "$1"
exit 0
}
p_from_rel_info()
{
if [ -e $1 ]; then
# DISTROOT="$SYSROOT/opt/$(head -n 1 "$1" | cut -d " " -f1)"
DISTROOT="$SYSROOT/opt/$(head -n 1 "$1" | sed 's/^\(\w*\) *.*/\1/')"
else
DISTROOT="$SYSROOT"
fi
}
find_self()
{
# on start holds export SYSROOT="<whatever>", written from
# starterlib or rcSGO
source /dtv/SGO.env
}
# get some information
# if running as real rc.sysinit
if [ ! -e /proc/mounts ]; then
mount -n -t proc /proc /proc
mount -n -t sysfs /sys /sys >/dev/null 2>&1
fi
if [ -x /etc/rc.early.local ]; then
echo ". /etc/rc.early.local" 1>&2
fi
# build runtime enviroment (set path and lib locations)
find_self
p_from_rel_info $SYSROOT/etc/release
export LD_LIBRARY_PATH="$DISTROOT/lib:$DISTROOT/usr/lib:$SYSROOT/lib:$SYSROOT/usr/lib:$LD_LIBRARY_PATH"
export PATH="$DISTROOT/sbin:$DISTROOT/bin:$DISTROOT/usr/bin:$DISTROOT/usr/sbin:$SYSROOT/sbin:$SYSROOT/bin:$SYSROOT/usr/bin:$SYSROOT/usr/sbin:$PATH"
# export LD_PRELOAD=""
echo "LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\"" >> /dtv/SGO.env
echo "PATH=\"$PATH\"" >> /dtv/SGO.env
echo "export ENV=\"/dtv/.ashrc\"" >> /dtv/SGO.env
echo "export FRAMEBUFFER=\"/dev/sam/fb0\"" >> /dtv/SGO.env
# bit comfort after login
# if [ ! -e /mtd_rwarea/profile ]; then
cat /etc/profile | sed -e "s#^PATH=.*#PATH=\"$PATH\"#" | \
sed -e "s#^LD_LIBRARY_PATH=.*#LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\"#" > /mtd_rwarea/profile
echo -e "ENV=/dtv/.ashrc\nexport ENV\n" >> /mtd_rwarea/profile
sed -i -e "s,^\(.*rc\.l*\),echo \"no system init on login\"\n# \1," /mtd_rwarea/profile
# trash on sh based devices
sed -i -e "s#^export PATH=\(.*\)#PATH=\"$PATH:\1\"#" /mtd_rwarea/profile
sed -i -e "s#^export LD_LIBRARY_PATH=\(.*\)#export LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\1\"#" /mtd_rwarea/profile
sed -i -e "s,^\(.*echo.*\),echo \'\1\'," /mtd_rwarea/profile
sed -i -e "s,^\(.*mount.*\),echo \'\1\'," /mtd_rwarea/profile
sed -i -e "s,^\(.*exit.*\),echo \'\1\'," /mtd_rwarea/profile
sed -i -e "s,^\(.*insmod.*\),echo \'\1\'," /mtd_rwarea/profile
sed -i -e "s,^\(.*util.*\),echo \'\1\'," /mtd_rwarea/profile
# fi
mount -o bind /mtd_rwarea/profile /etc/profile
echo "alias ll='ls -l'" > /dtv/.ashrc
echo "alias md='mkdir -p'" >> /dtv/.ashrc
echo "PATH=\"$PATH\"" >> /dtv/.ashrc
echo "LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\"" >> /dtv/.ashrc
echo "FRAMEBUFFER=\"/dev/sam/fb0\"" >> /dtv/.ashrc
echo "TERMINFO=\"$SYSROOT/etc/terminfo\"" >> /dtv/.ashrc
echo "TMPDIR=\"/dtv\"" >> /dtv/.ashrc
echo "export PATH LD_LIBRARY_PATH FRAMEBUFFER TMPDIR TERMINFO" >> /dtv/.ashrc
# $DISTROOT/sbin/depmod -v -b $SYSROOT
#
# # load modules
# for i in $SYSROOT/lib/modules/*.ko ; do
# # may problematic (implement modprobe). for now we insmod in *.init
# echo "insmod $i, this behavior is outdated modules are handled by the init scripts!"
# done
#
# # try change modules
# for i in $SYSROOT/lib/modules/treasure/*.ko ; do
# # todo (may sed)
# echo "Replace $i"
# done
# we don't use real init (for now)
# v0.03 disabled stop sequence
# for i in `ls -r $SYSROOT/etc/init.d/*.init` ; do
# echo $i stop # hmmmmm
# done
# for i in $SYSROOT/etc/init.d/*.init ; do
# $i start # hmmmmm
# done
$SYSROOT/etc/init.d/03_03_sshd.init start