Iconbit HD500DVD (на SMP8654)

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

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

Re: Iconbit HD500DVD (на SMP8654)

Postby bombur on Wed May 07, 2014 17:33

Thunderbaud wrote:Интересно, что у них обычные рабочие прошивки в виде romfs

Это не совсем так, в штатных прошивках только начало файла в виде romfs (ядро), а следом за ним идёт шифрованный раздел cramfs с самой прошивкой. Я уже понял, как он шифруется, и добавлю его поддержку в smp86xx_extract, для коллекции.
With respect,
bombur.
User avatar
bombur
Developer
 
Posts: 550
Joined: Wed Nov 03, 2004 13:41
Location: Kiev

Re: Iconbit HD500DVD (на SMP8654)

Postby Gennadyi on Wed May 07, 2014 20:15

init - не такой как у большинства, не дефолтный ;)
Code: Select all
#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin

# Check to see if we need to do that (from kernel command line)?
AUTOROOTFS_SET=`dmesg | grep "Kernel command line" | grep autorootfs`
if [ "$AUTOROOTFS_SET" = "" ]; then
   if [ -x /bin/echo ]; then
      echo "Using rootfs from initramfs/initrd ..."
   fi
   if [ -x /sbin/init ]; then
      exec /sbin/init
   fi
   if [ -x /bin/init ]; then
      exec /bin/init
   fi
   exit  0
fi

#
# *****************************************************************
# BE WARNED that following may have some security implications ...
# *****************************************************************
#
# If "autorootfs" is found in kernel command line, the following script
# will try to
#
# 1. load the kernel module for various external storage
#    device.
# 2. try to mount the external storage device, and find "init"
#    program.
# 3. If "init" can be found, do a switch_root to make use of
#    newly found rootfs.
# 4. If "init" not found, unload the kernel module, and try
#    the next device.
# 5. If no rootfs is found, use the original one (e.g. initramfs).
#
# Note that NO authentication/verification of the external rootfs
# is performed here in the example. Further enhancements will be
# required and is recommended.
#

KERNEL_VER=`uname -r`
MOD_PATH=/lib/modules/$KERNEL_VER

#
# Look for rootfs in the NAND flash
#
RFS="/dev/nblock7 /dev/nblock8"
MOD_ERR=
if [ -f $MOD_PATH/extra/sigmablock.ko ]; then
   modprobe sigmablock > /dev/null 2>&1 || MOD_ERR="y"
fi
if [ "$MOD_ERR" = "" ]; then
   # Figure out major# for NAND block device(s)
   mount -t proc proc /proc
   SIGMNUM=`cat /proc/partitions | grep sigmblock | wc -l`
   SIGMMAJ=`cat /proc/devices | grep sigmblock | head -c 4`
   umount -f /proc
   # Creating device node(s) for NAND block device(s)
   ITER=0
   while [ "$ITER" != "$SIGMNUM" ];
   do
      mknod -m 664 /dev/nblock$ITER b $SIGMMAJ $ITER
      ITER=`expr $ITER + 1`
   done
   # Assume NAND flash uses ext3
   for rfs in `echo $RFS`
   do
      MOUNT_ERR=
       mount -t ext3 -o noatime,data=journal $rfs /mnt > /dev/null 2>&1 || MOUNT_ERR="y"
      if [ "$MOUNT_ERR" = "" ]; then
         if [ -x /mnt/init ]; then
            echo "/mnt/init found on $rfs, switching rootfs ..."
            exec switch_root /mnt /init
         fi
         umount -f /mnt
      fi
   done
   rmmod sigmablock > /dev/null 2>&1
fi

#
# Look for rootfs from SATA devices
#
RFS="/dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1"
MOD_ERR=
modprobe sd_mod > /dev/null 2>&1
if [ -f $MOD_PATH/kernel/drivers/ata/sata_tango3.ko ]; then
   modprobe sata_tango3 > /dev/null 2>&1 || MOD_ERR="y"
fi
if [ ! "$MOD_ERR" = "" ]; then
   if [ -f $MOD_PATH/kernel/drivers/ata/sata_tangox.ko ]; then
      MOD_ERR=
      modprobe sata_tangox > /dev/null 2>&1 || MOD_ERR="y"
   fi
fi
if [ "$MOD_ERR" = "" ]; then
   sleep 3
   for rfs in `echo $RFS`
   do
      MOUNT_ERR=
      mount $rfs /mnt > /dev/null 2>&1 || MOUNT_ERR="y"
      if [ "$MOUNT_ERR" = "" ]; then
         if [ -x /mnt/init ]; then
            echo "/mnt/init found on $rfs, switching rootfs ..."
            exec switch_root /mnt /init
         fi
         umount -f /mnt
      fi
   done
   rmmod sata_tangox > /dev/null 2>&1
   rmmod sata_tango3 > /dev/null 2>&1
fi
rmmod sd_mod > /dev/null 2>&1

#
# Look for rootfs from USB storage devices
#
RFS="/dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1"
MOD_ERR=
modprobe sd_mod > /dev/null 2>&1
modprobe usb-storage > /dev/null 2>&1
if [ -f $MOD_PATH/kernel/drivers/usb/host/tangox-ehci-hcd.ko ]; then
   modprobe tangox-ehci-hcd > /dev/null 2>&1 || MOD_ERR="y"
fi
if [ -f $MOD_PATH/kernel/drivers/usb/host/tangox-ohci-hcd.ko ]; then
   modprobe tangox-ohci-hcd > /dev/null 2>&1
fi
if [ "$MOD_ERR" = "" ]; then
   sleep 5
   for rfs in `echo $RFS`
   do
      MOUNT_ERR=
       mount $rfs /mnt > /dev/null 2>&1 || MOUNT_ERR="y"
      if [ "$MOUNT_ERR" = "" ]; then
         if [ -x /mnt/init ]; then
            echo "/mnt/init found on $rfs, switching rootfs ..."
            exec switch_root /mnt /init
         fi
         umount -f /mnt
      fi
   done
   rmmod tangox-ohci-hcd > /dev/null 2>&1
   rmmod tangox-ehci-hcd > /dev/null 2>&1
fi
rmmod usb-storage > /dev/null 2>&1
rmmod sd_mod > /dev/null 2>&1

#
# Look for rootfs from MMC storage devices
#
RFS="/dev/mmcblk0p1 /dev/mmcblk1p1"
MOD_ERR=
modprobe mmc_block > /dev/null 2>&1
modprobe sdhci > /dev/null 2>&1
if [ -f $MOD_PATH/kernel/drivers/mmc/host/sdhci-tangox.ko ]; then
   modprobe sdhci-tangox > /dev/null 2>&1 || MOD_ERR="y"
fi
if [ "$MOD_ERR" = "" ]; then
   # Figure out major# for MMC block device(s)
   mount -t proc proc /proc
   MMCMAJ=`cat /proc/devices | grep mmc | head -c 4`
   umount -f /proc
   mknod -m 664 /dev/mmcblk0 b $SIGMMAJ 0
   mknod -m 664 /dev/mmcblk0p1 b $SIGMMAJ 1
   mknod -m 664 /dev/mmcblk1 b $SIGMMAJ 8
   mknod -m 664 /dev/mmcblk1p1 b $SIGMMAJ 9
   for rfs in `echo $RFS`
   do
      MOUNT_ERR=
       mount $rfs /mnt > /dev/null 2>&1 || MOUNT_ERR="y"
      if [ "$MOUNT_ERR" = "" ]; then
         if [ -x /mnt/init ]; then
            echo "/mnt/init found on $rfs, switching rootfs ..."
            exec switch_root /mnt /init
         fi
         umount -f /mnt
      fi
   done
   rmmod sdhci-tangox > /dev/null 2>&1
fi
rmmod sdhci > /dev/null 2>&1
rmmod mmc_block > /dev/null 2>&1

#
# Cannot find any suitable rootfs, use the current rootfs ...
#
if [ -x /bin/echo ]; then
   echo "Using rootfs from initramfs/initrd ..."
fi
if [ -x /sbin/init ]; then
   exec /sbin/init
fi
if [ -x /bin/init ]; then
   exec /bin/init
fi

Gennadyi
Moderator
 
Posts: 940
Joined: Mon Nov 01, 2004 16:43

Re: Iconbit HD500DVD (на SMP8654)

Postby Thunderbaud on Wed May 07, 2014 22:07

Gennadyi wrote:
Thunderbaud wrote:Здесь 128Мбайт, считанных ямоном с адреса 0xC0000 до начала всех моих манипуляций, то есть в том виде как плеер встал на "52%" и ребутнулся на штатной перепрошивке.

нужно, то что с 0x00000 до 0xC0000
:(

Так там же только "full XENV" который здесь уже выложен
http://www.sigmaplayer.com/viewtopic.php?f=36&t=3442&st=0&sk=t&sd=a#p32561

да YAMON...

или я чего-то пока не понимаю...
You do not have the required permissions to view the files attached to this post.
Thunderbaud
 
Posts: 12
Joined: Fri May 02, 2014 16:29

Re: Iconbit HD500DVD (на SMP8654)

Postby Thunderbaud on Wed May 07, 2014 22:20

bombur wrote:
Thunderbaud wrote:Интересно, что у них обычные рабочие прошивки в виде romfs

Это не совсем так, в штатных прошивках только начало файла в виде romfs (ядро), а следом за ним идёт шифрованный раздел cramfs с самой прошивкой. Я уже понял, как он шифруется, и добавлю его поддержку в smp86xx_extract, для коллекции.

в тех файлах, которые iconbit называет "emergency - прошивки для восстановления" лежит сразу cramfs, и на первый взгляд вполне вменяемо разворачивается утилей extract-cramfs.exe

т.к. я ни разу не видел эти прошивки в действии, интересно бы узнать, они задуманы только для загрузки c USB-флешки и перепрошивки, или это как раз то, что нужно менять нештатными средствами во флеши аппарата чтобы он обрёл функции самовосстановления.
Thunderbaud
 
Posts: 12
Joined: Fri May 02, 2014 16:29

Re: Iconbit HD500DVD (на SMP8654)

Postby bombur on Wed May 07, 2014 23:22

Собственно, вот обновлённая версия smp86xx_extract:

smp86xx_extract_08.05.2014.zip


Поддерживает Iconbit'овский extracted.bin - теперь распаковывает спрятанную cramfs-секцию для штатных прошивок.

P.S. Гена, обнови плз в разделе "Файлы" где нужно.
You do not have the required permissions to view the files attached to this post.
With respect,
bombur.
User avatar
bombur
Developer
 
Posts: 550
Joined: Wed Nov 03, 2004 13:41
Location: Kiev

Re: Iconbit HD500DVD (на SMP8654)

Postby Thunderbaud on Wed May 07, 2014 23:35

чего-то оно у меня не пускается под XP, говорит что не Win32 приложение. Мож флажок какой-то не тот при сборке поставился...
Thunderbaud
 
Posts: 12
Joined: Fri May 02, 2014 16:29

Re: Iconbit HD500DVD (на SMP8654)

Postby Gennadyi on Thu May 08, 2014 07:24

Thunderbaud wrote:чего-то оно у меня не пускается под XP, говорит что не Win32 приложение. Мож флажок какой-то не тот при сборке поставился...

Да, у меня под XP - аналогично
Gennadyi
Moderator
 
Posts: 940
Joined: Mon Nov 01, 2004 16:43

Re: Iconbit HD500DVD (на SMP8654)

Postby bombur on Thu May 08, 2014 09:58

Пардон, файл обновил.
With respect,
bombur.
User avatar
bombur
Developer
 
Posts: 550
Joined: Wed Nov 03, 2004 13:41
Location: Kiev

Re: Iconbit HD500DVD (на SMP8654)

Postby Gennadyi on Thu May 08, 2014 10:35

bombur wrote:Пардон, файл обновил.

одно поправил, другое сломал ;)
Теперь ядро линукса не распаковывается версией от 080514
Инструкция по адресу "0x004218c2" обратилась к памяти по адресу "0xfffffff4". Память не может быть "written".
Gennadyi
Moderator
 
Posts: 940
Joined: Mon Nov 01, 2004 16:43

Re: Iconbit HD500DVD (на SMP8654)

Postby bombur on Thu May 08, 2014 12:37

Gennadyi wrote:одно поправил, другое сломал ;)
Теперь ядро линукса не распаковывается версией от 080514
Инструкция по адресу "0x004218c2" обратилась к памяти по адресу "0xfffffff4". Память не может быть "written".

Файл обновил, скачай ещё раз.
И, к слову, я не сломал, а это просто всплыл баг, который уже был - почему-то на новом компиляторе от 2013-го года он проявился, а на старой версии, когда я собирал в 2011-м году всё работало, несмотря на баг. Да и запуск в WinXP тоже из-за этого слетел - Майкрософт уже не поддерживает XP по умолчанию, пришлось заставлять ;)
With respect,
bombur.
User avatar
bombur
Developer
 
Posts: 550
Joined: Wed Nov 03, 2004 13:41
Location: Kiev

PreviousNext

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

Who is online

Users browsing this forum: Web crawler and 0 guests