DUNE HD восстановление флеша "для чайников"

Обсуждение других медиа плееров на SMP864x(5x) и общих вопросов эксплуатации

Moderator: Модераторы

Re: DUNE HD восстановление флеша "для чайников"

Postby None on Fri Apr 05, 2013 08:20

yurikmc wrote:З.Ы: Такая мысль... Процедура восстановления не должна затрагивать сигмаблок с лицензией и, возможно, настройками. Эта область во время восстановления должна временно копироваться в память и обратно, либо просто не затрагиваться(по поведению больше похоже на это). А мы ее убиваем форматированием. Может в этом дело?
Не правильная мысль, т.к. основная причина "слетания" прошивки - сбойные и плохие блоки во флешке, которые могут быть устранены или замаскированы только форматированием.
Тренируйте лоб, ещё очень много не пробитых стен!
User avatar
None
Administrator
 
Posts: 1131
Joined: Tue Nov 02, 2004 10:19
Location: Москва

Re: DUNE HD восстановление флеша "для чайников"

Postby yurikmc on Fri Apr 05, 2013 08:45

None wrote:Не правильная мысль, т.к. основная причина "слетания" прошивки - сбойные и плохие блоки во флешке, которые могут быть устранены или замаскированы только форматированием.

Даже если и при штатной процедуре восстановления флеш форматируется, то сигмаблок с лицензией (возможно и с настройками) должен бэкапиться и записываться обратно во флеш. Иначе, тысячи плееров простых пользователей лишились бы лицензий.
yurikmc
 
Posts: 20
Joined: Thu Dec 27, 2012 09:39

Re: DUNE HD восстановление флеша "для чайников"

Postby tremolo1 on Fri Apr 05, 2013 09:18

yurikmc wrote:...Иначе, тысячи плееров простых пользователей лишились бы лицензий.

http://forum.ixbt.com/topic.cgi?id=60:8-113#3832
http://forum.hdtv.ru/index.php?s=&showtopic=10750&view=findpost&p=200660
tremolo1
 
Posts: 11
Joined: Mon Feb 25, 2013 10:31

Re: DUNE HD восстановление флеша "для чайников"

Postby yurikmc on Fri Apr 05, 2013 12:37

tremolo1 wrote:
yurikmc wrote:...Иначе, тысячи плееров простых пользователей лишились бы лицензий.

http://forum.ixbt.com/topic.cgi?id=60:8-113#3832
http://forum.hdtv.ru/index.php?s=&showtopic=10750&view=findpost&p=200660

Естественно это все прочитано не один раз :aga: Речь в данном случае шла о штатной процедуре восстановления. А именно, каким образом автоматически сохраняется лицензия.
yurikmc
 
Posts: 20
Joined: Thu Dec 27, 2012 09:39

Re: DUNE HD восстановление флеша "для чайников"

Postby Gennadyi on Fri Apr 05, 2013 13:10

yurikmc wrote:
tremolo1 wrote:
yurikmc wrote:...Иначе, тысячи плееров простых пользователей лишились бы лицензий.

http://forum.ixbt.com/topic.cgi?id=60:8-113#3832
http://forum.hdtv.ru/index.php?s=&showtopic=10750&view=findpost&p=200660

Естественно это все прочитано не один раз :aga: Речь в данном случае шла о штатной процедуре восстановления. А именно, каким образом автоматически сохраняется лицензия.

при штатной процедуре обновления прошивки (средствами линукса) вся флеш не форматируется и некоторые её области (в частности где находится файл лицензии) не затрагиваются
Лицензию нужно сохранять отдельно !!!
При форматировании флеша из YAMON (для удаления сбойных блоков) стирается все !!!
Gennadyi
Moderator
 
Posts: 918
Joined: Mon Nov 01, 2004 16:43

Re: DUNE HD восстановление флеша "для чайников"

Postby yurikmc on Fri Apr 05, 2013 13:41

Gennadyi wrote:при штатной процедуре обновления прошивки (средствами линукса) вся флеш не форматируется и некоторые её области (в частности где находится файл лицензии) не затрагиваются

О! Именно это я и хотел услышать! Теперь хотелось бы узнать какие именно блоки не стираются, а соответственно и не восстанавливаются.
yurikmc
 
Posts: 20
Joined: Thu Dec 27, 2012 09:39

Re: DUNE HD восстановление флеша "для чайников"

Postby None on Fri Apr 05, 2013 14:14

yurikmc wrote:
Gennadyi wrote:при штатной процедуре обновления прошивки (средствами линукса) вся флеш не форматируется и некоторые её области (в частности где находится файл лицензии) не затрагиваются

О! Именно это я и хотел услышать! Теперь хотелось бы узнать какие именно блоки не стираются, а соответственно и не восстанавливаются.
В разных плеерах и даже в разных моделях это может делаться по разному и одному богу известно что наворачивают там программисты. Универсального рецепта нет. Кстати, практической пользы от такого знания нет.
Тренируйте лоб, ещё очень много не пробитых стен!
User avatar
None
Administrator
 
Posts: 1131
Joined: Tue Nov 02, 2004 10:19
Location: Москва

Re: DUNE HD восстановление флеша "для чайников"

Postby Gennadyi on Fri Apr 05, 2013 15:31

yurikmc wrote:О! Именно это я и хотел услышать! Теперь хотелось бы узнать какие именно блоки не стираются, а
соответственно и не восстанавливаются.

вот такой скрипт - bd_upgrade.sh
Code: Select all
#!/bin/sh
# NOTE: this script is intended to be used on BDP only.
killall -9 root
killall -9 smbd
killall -9 nmbd
killall -9 udhcpc
killall -9 upnpcd
killall -9 BDMainApp
killall -9 mozilla
while killall -0 upnpcd; do
    killall -9 upnpcd
    usleep 300000
done
fuser -km -9 /tango
fuser -km -9 /mnt
umount /tango || exit 1
umount /mnt || exit 1
mv /firmware /firmware.old
mv /config /config.old
ln -sfn /tmp/upgrade/firmware / || exit 1
ln -sfn /tmp/upgrade/config / || exit 1
cd /
exec /firmware/bin/firmware_upgrader "$1"

и firmware_upgrader которую Орлов написал
------------------------------------------------------------
Minimum cmd line: %s <filename.jpg/filename.bmp> -fw <filename.dff>
Image should be 256x256 or bigger and true color
/home/orlov/work/rushd/hd/player/src/shell/firmware_upgrader.c Error opening file %s
Image should be true color
Error: RUAMalloc returned 0.
Error locking OSD buffer at 0x%08lX (0x%08lX bytes)
Error mapping OSD buffer at 0x%08lX (0x%08lX bytes)
Error unlocking OSD buffer at 0x%08lX (0x%08lX bytes)
Cannot get scaler index
Cannot set scaler output window %d
Cannot set scaler's state on mixer
Cannot Validate mixer
Cannot set the surface source to NULL %d
Cannot set the alpha value on the scaler
Cannot validate scaler input window %d
Cannot set the surface source %d
Error enabling OSD buffer : %d
cannot wait for the scaler to refresh
/dev/sd /dev/sr firmware/bin/sg_start 1 %s hdparm -S0 %s RESTART umount /persistfs /sbin/reboot reboot %04d-%02d-%02d %02d:%02d:%02d.%06d [%d] [%ld
] [%s] [CDDA] FileSeek: unexpected seek kind [CDDA] internal error [CDDA] Reading from address: %lu sectors %lu failed object_size > 0 /home/orlov/work
/rushd/hd/player/src/shell/../common/rua_memory_manager.c group Group %s: adding block #%d of size %d Allocating %d RUA bytes RUAMalloc failed for DRAM %
d, allocation failed Allocated in DRAM %d start_alloc >= addr start_alloc <= addr + size rua_object !rua_object->addr Releasing RUA group %s Alloc fail
ed, nothing to release. Not enough free RUA memory in system. Error writing to a file. Cannot get the digital out tv format Unknown format TVFormat: %ld
x%ld%c %ld.%02ld Hz
%lux%lu !get_rua_object_group(id) Registering group %s (%d:%d) RUA groups capacity is grown to %d group_id argv[%d] = '%s' %s: %s
ioctl close Flushing write cache after close for output file '%s' done Failed to open log file; logging to /dev/null Failed to open /dev/null; aborting
.old rename Failed to rename '%s' to '%s'; truncating the log file Rotated '%s' to '%s' Starting logging to '%s' ***** log_redirect_to_file() succ
eeded *****
Gennadyi
Moderator
 
Posts: 918
Joined: Mon Nov 01, 2004 16:43

Re: DUNE HD восстановление флеша "для чайников"

Postby yurikmc on Fri Apr 05, 2013 16:16

Спасибо! Очень полезная инфа. Получается перед процедурой firmware_upgrader бэкапятся папки /config и /firmware. Похоже у меня как-раз тот случай. После операции восстановления /config пустой, по-этому не происходит полной загрузки и плеер уходит в стендбай.
yurikmc
 
Posts: 20
Joined: Thu Dec 27, 2012 09:39

Re: DUNE HD восстановление флеша "для чайников"

Postby Gennadyi on Fri Apr 05, 2013 19:02

это bd_upgrade.sh от base3d
Code: Select all
#!/bin/sh

# NOTE: this script is intended to be used on BDP only.

killproc()
{
    at=1
    while killall -0 $1; do
        killall -9 $1
        usleep 100000
        at=`expr $at + 1`
        [ $at = 100 ] && break
    done
}

killproc root
killproc shell
killproc ivisionnano
killproc smbd
killproc nmbd
killproc udhcpc
killproc upnpcd
killproc BDMainApp
killproc mozilla

while killall -0 upnpcd; do
    killall -9 upnpcd
    usleep 300000
done

is_mounted()
{
    grep " $1 " </proc/mounts >/dev/null
}

kill_by_fuser()
{
    fuser -km -9 "$1"
    # NOTE: this is needed because fuser on 8634 platform does not
    # recognize -SIGNAL option (despite it lists this option in help
    # message). Besides, fuser on 8634 platform has been modified to always
    # send SIGKILL.
    fuser -km "$1"
}

if is_mounted /tango3; then
    kill_by_fuser /tango3
fi
if is_mounted /application; then
    kill_by_fuser /application
fi
kill_by_fuser /mnt
if is_mounted /flashdata; then
    kill_by_fuser /flashdata
fi
if is_mounted /firmware_opt; then
    kill_by_fuser /firmware_opt
fi

umountdir()
{
    echo "Trying to umount $1 ..."

    at=1
    while true; do
        umount $1 && return
        usleep 100000
        at=`expr $at + 1`
        [ $at = 100 ] && break
    done
    umount $1
}

umountdir_and_binds_inside()
{
    binds=`cat /proc/mounts | grep " $1/" | awk '{print $2}'`
    for d in $binds; do
        umountdir "$d"
    done

    umountdir $1
}

shell_as_upgrader=1
[ -x /firmware/bin/firmware_upgrader ] && shell_as_upgrader=

if is_mounted /tango3; then
    umountdir_and_binds_inside /tango3 || exit 1
fi
if is_mounted /application; then
    losetup -d /dev/loop0
    umountdir_and_binds_inside /application || exit 1
fi
if is_mounted /mnt; then
    umountdir_and_binds_inside /mnt || exit 1
fi
if is_mounted /flashdata; then
    umountdir_and_binds_inside /flashdata || exit 1
fi
if is_mounted /firmware_opt; then
    umountdir_and_binds_inside /firmware_opt || exit 1
fi

mv /firmware /firmware.old
mv /config /config.old
ln -sfn /tmp/upgrade/firmware / || exit 1
ln -sfn /tmp/upgrade/config / || exit 1

if [ "$shell_as_upgrader" ]; then
    mv /tango3 /tango3.old
    ln -sfn /tmp/upgrade/tango3 /tango3 || exit 1
fi

[ -h /firmware_ext -o -d /firmware_ext ] && mv /firmware_ext /firmware_ext.old
if [ -d /tmp/upgrade/firmware_ext ]; then
    ln -sfn /tmp/upgrade/firmware_ext / || exit 1
fi

cd /

if [ "$shell_as_upgrader" ]; then
if [ -d /tango/dcchd ]; then
    cd /tango/dcchd
    . trun.env
fi
if test -f /firmware/scripts/dfb.sh; then
    source /firmware/scripts/dfb.sh
fi
cd /
echo LD_LIBRARY_PATH=$LD_LIBRARY_PATH
exec /firmware/bin/shell firmware_upgrader "$@"
else
exec /firmware/bin/firmware_upgrader "$@"
fi
Gennadyi
Moderator
 
Posts: 918
Joined: Mon Nov 01, 2004 16:43

PreviousNext

Return to Other media players and common questions / Другие медиа плееры и общие вопросы

Who is online

Users browsing this forum: Web crawler and 1 guest