ViewSonic’s NMP570w full HD wireless media player

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

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

ViewSonic’s NMP570w full HD wireless media player

Postby Gennadyi on Thu Feb 13, 2014 09:43

ViewSonic на своем сайте предлагает для использования с мониторами ViewSonic CDE4200-L
ViewSonic CDE4200-L — это идеальное решение для оснащения офисов и гостиниц. В зависимости от требований заказчика панель может быть закреплена на стене, либо установлена на поверхности. 42-дюймовая панель с разрешением Full HD и светодиодной подсветкой поддерживает различные возможности подключения, включая 3 разъема HDMI, VGA, композитный разъем и YPbPr. Благодаря яркости 350 нит и коэффициенту контрастности 3000:1 этот дисплей обеспечивает превосходную яркость и контрастность при времени отклика 6,5 мс, что гарантирует четкое изображение и плавное воспроизведение. Два встроенных 10-ваттных динамика и цифровой аудиовыход SPDIF обеспечивают исключительно четкий звук. CDE4200-L сделает любые презентации, информационные либо рекламные сообщения исключительно четкими и понятными.

вот такой медиа-плеер NMP570w full HD wireless media player
Image
ViewSonic’s new NMP570w full HD wireless media player provides extreme reliability and stunning 1080P video playback mixed with rich content harnessed live from the cloud. The NMP570w utilizes the latest technologies - HTML5 for delivering dynamic information at the point of service over the web or from a network server. Easy –to-use content management software – Signage Manager Express now offers expanded templates in both landscape and portrait supporting HTML5 “Smart Widgets” for multi-zone screen applications.
NMP-570w
1 - Support for HTML5.
2 - MPEG 1/2/4, H.264 Video Decoding
3 - IEEE 802.3 Ethernet 10/100 Base-T with auto-MDIX
4 - Built-in Wireless 802:11 b/g/n
5 - Display Outputs: HDMI, VGA, dual output video
6 - Audio Output: Stereo line output
7 - Signage Manager Express software - included
8 - Built-in Watch Dog Timer
9 - Applications:
- Transportation Signage
- Electronic Menu Boards
- Retail Advertisements
- Campus Communication
- Trade Show Signage
- Point-of-Sale Advertising

NMP-570w_Firmware_v3.0.13
Gennadyi
Moderator
 
Posts: 940
Joined: Mon Nov 01, 2004 16:43

Re: ViewSonic’s NMP570w full HD wireless media player

Postby Gennadyi on Thu Feb 13, 2014 09:53

Распаковав прошивку обнаружилось следующее :
# Copyright (c) 2010
# IAdea Corporation, ALL RIGHTS RESERVED.
#
# Contact: support@IAdea.com
# Module: XMP
# $Id: installer,v 1.1.2.6 2011-10-27 08:49:30 cole Exp $
# $Name: rel-smp864x-2012_05_18-3_0_13 $

т.е это The IAdea XMP-320 Open Standard Digital Signage Appliance
на сигмовском чипе семейства smp864x
с интересными картинками в руководстве пользователя - XMP-320 User’s Manual
Сайт производителя этих плееров - http://www.iadea.com

Code: Select all
#!/bin/sh
#
# Copyright (c) 2010
# IAdea Corporation, ALL RIGHTS RESERVED.
#
# Contact: support@IAdea.com
# Module: XMP
# $Id: installer,v 1.1.2.6 2011-10-27 08:49:30 cole Exp $
# $Name: rel-smp864x-2012_05_18-3_0_13 $
#

me="$0"
[ "$INSTALL_TEMP" ] || INSTALL_TEMP=`echo "$me" | sed 's|/\?[^/]*$||'`

. /etc/profile

LD_LIBRARY_PATH="$LD_LIRBARY_PATH:$INSTALL_TEMP/lib"
export LD_LIBRARY_PATH

TERM='linux'
DIALOG='dialog'
NCURSES_GPM_TERMS='linux'
export TERM NCURSES_GPM_TERMS

[ "$_backtitle" ] || _backtitle="$modelDescription"
[ "$_title" ] || _title="Firmware update"

[ -z "$_gauge_message" ] && _gauge_message=\
'Performing firmware update
DO NOT POWER-DOWN
'
[ -z "$_progress" ] && _progress=0
xpath_package="$INSTALL_TEMP/bin/xpath package.xml http://schemas.adfotain.org/package-1.0"
xmlencode="$INSTALL_TEMP/bin/xmlencode.awk"

while true ; do
    # disable power-off by pressing reset button
    rmmod smp86xx_gpio

    mount -o remount,rw,async /mnt/boot
    if [ $? != 0 ] ; then
        _gauge_message="$_gauge_message
Firmware update failed! (cannot open boot filesystem)"
        break
    fi
    rm -rf /mnt/boot/lost+found/*

    cd $INSTALL_TEMP
    if [ $? != 0 ] ; then
        _gauge_message="$_gauge_message
Firmware update failed! (path error)"
        break
    fi

    # Check PCB and PCB revision
    if [ "$family" ] ; then
        fw_id=`$xpath_package "/n:package/n:firmwareList/n:firmware[n:family='$family'][1]/@id" --content`
    else
        fw_id=`$xpath_package "/n:package/n:firmwareList/n:firmware[1]/@id" --content`
    fi
    node="/n:package/n:firmwareList/n:firmware[@id='$fw_id']"
    fw_family=`$xpath_package "$node/n:family/text()" --content`
    fw_version=`$xpath_package "$node/n:version/text()" --content`
    fw_desc=`$xpath_package "$node/n:description/text()" --content`
    found=`$xpath_package "count($node/n:PCBList[n:PCB/n:name='$PCB' and n:PCB/n:revision='$PCBRevision'])" --numeric`
    if [ -z "$found" -o "$found" = 0 ] ; then
        _gauge_message="$_gauge_message
Firmware update failed! (hardware not supported)"
        break
    fi
   
    if [ "$version" ] ; then
        _gauge_message="$_gauge_message
Updating from version $version to $fw_version..."
    else
        _gauge_message="$_gauge_message
Updating to version $fw_version..."
    fi

    $DIALOG \
        --backtitle "$_backtitle" \
        --title "$_title" \
        --gauge "$_gauge_message" 20 70 "$_progress" \
        </dev/null >/dev/tty0

    #
    # install rootfs
    #

    type='xmp-rootfs/squashfs'
    uri=`$xpath_package "$node/n:fileList/n:file[n:contentType='$type']/n:fileURI/text()" --content`
    method=`$xpath_package "$node/n:fileList/n:file[n:contentType='$type']/n:checksum/@method" --content`
    checksum=`$xpath_package "$node/n:fileList/n:file[n:contentType='$type']/n:checksum/text()" --content`
    file="$uri"

    if [ -r "$file" -a -x "bin/updater" ] ; then

        if [ -n "$checksum" -a "$method" = "MD5" ] ; then
            echo "$checksum  $file" | md5sum -c -
            if [ $? != 0 ] ; then
                _gauge_message="$_gauge_message
Firmware update failed! (incorrect checksum of firmware)"
                break
            fi
        fi

        _gauge_message="$_gauge_message
Programming..."
        _progress=20

        target='/mnt/boot/rootfs.bin'
        rm -rf "$target.swp"

        bin/updater --dialog-gauge "$_gauge_message" --progress 20 70 \
            --copy --block-size 131072 "$file" "$target.swp" | \
        $DIALOG \
            --backtitle "$_backtitle" \
            --title "$_title" \
            --gauge "$_gauge_message" 20 70 "$_progress" \
            >/dev/tty0
           
        if [ ${PIPESTATUS[0]} != 0 ] ; then
            _gauge_message="$_gauge_message
Firmware update failed! (cannot install firmware)"
            break
        fi

        sync ; sync
        echo 3 > /proc/sys/vm/drop_caches

        if [ -n "$checksum" -a "$method" = "MD5" ] ; then
            echo "$checksum  $target.swp" | md5sum -c -
            if [ $? != 0 ] ; then
                rm -rf "$target.swp"
                _gauge_message="$_gauge_message
Firmware update failed! (verification error)"
                break
            fi
        fi

        ln "$target" "$target.old"
        mv "$target.swp" "$target"
        mv "$target.old" "$target.swp"
        mount -o remount,ro /mnt/boot
        sync ; sync

        _progress=70

    else
        _gauge_message="$_gauge_message
Firmware update failed! (firmware image not found)"
        break
    fi
           
    #
    # install kernel
    #

    type='zboot-kernel/romfs'
    uri=`$xpath_package "$node/n:fileList/n:file[n:contentType='$type']/n:fileURI/text()" --content`
    method=`$xpath_package "$node/n:fileList/n:file[n:contentType='$type']/n:checksum/@method" --content`
    checksum=`$xpath_package "$node/n:fileList/n:file[n:contentType='$type']/n:checksum/text()" --content`
    file="$uri"

    if [ -r "$file" -a -x bin/updater ] ; then

        if [ -n "$checksum" -a "$method" = "MD5" ] ; then
            echo "$checksum  $file" | md5sum -c -
            if [ $? != 0 ] ; then
                _gauge_message="$_gauge_message
Firmware update failed! (incorrect checksum of loader)"
                break
            fi
        fi
   
        _progress=70

        bin/updater --dialog-gauge "$_gauge_message" --progress 70 80 \
            --block-size 131072 "$file" /dev/nblock3 | \
        $DIALOG \
            --backtitle "$_backtitle" \
            --title "$_title" \
            --gauge "$_gauge_message" 20 70 "$_progress" \
            >/dev/tty0

        if [ $? != 0 ] ; then
        _gauge_message="$_gauge_message
Firmware update failed! (cannot install kernel)"
            break
        fi

        _progress=80

        bin/updater --dialog-gauge "$_gauge_message" --progress 80 90 \
            --block-size 131072 "$file" /dev/nblock8 | \
        $DIALOG \
            --backtitle "$_backtitle" \
            --title "$_title" \
            --gauge "$_gauge_message" 20 70 "$_progress" \
            >/dev/tty0

        if [ $? != 0 ] ; then
        _gauge_message="$_gauge_message
Firmware update failed! (cannot install kernel backup)"
            break
        fi

        _progress=90

    else
        _gauge_message="$_gauge_message
Firmware update failed! (firmware image not found)"
        break
    fi

    _progress=90
    _gauge_message="$_gauge_message
Finalizing..."

    $DIALOG \
        --backtitle "$_backtitle" \
        --title "$_title" \
        --gauge "$_gauge_message" 20 70 "$_progress" \
        </dev/null >/dev/tty0

    #
    # Update xenv
    #

    PHY_KSIZE='128'
    PHY_OFFSET='0'
    XENV2_KSIZE='16'

    dd if=/dev/nblock0 of=/tmp/boot.bin bs=${PHY_KSIZE}K skip=${PHY_OFFSET} count=1
    dd if=/tmp/boot.bin of=/tmp/xenv2.bin bs=1K count=${XENV2_KSIZE}
    dd if=/tmp/boot.bin of=/tmp/boot-rest.bin bs=1K skip=${XENV2_KSIZE}

    write_back=

    #digital_enable='1'
    #component_enable='1'
    #analog_enable='0'

    #digital_standard='0x9d'
    #component_standard='0x9d'
    #analog_standard='0x7b'

    #for var in digital_enable component_enable analog_enable \
    #    digital_standard component_standard analog_standard ; do
    #    old_value=`setxenv2 -f /tmp/xenv2.bin -k i.sp.$var | cut -d' ' -f4-`
    #    eval "new_value=\"\$$var\""
    #    if (( new_value != old_value )) ; then
    #        setxenv2 -f /tmp/xenv2.bin -b -k i.sp.$var -v "$new_value"
    #        write_back=y
    #    fi
    #done

    start='reboot'
    startdelay='5'

    for var in start startdelay ; do
        old_value=`setxenv2 -f /tmp/xenv2.bin -k y.$var | cut -d' ' -f4-`
        eval "new_value=\"\$$var\""
        if [ "$new_value" != "$old_value" ] ; then
            setxenv2 -f /tmp/xenv2.bin -k y.$var -v "$new_value"
            write_back=y
        fi
    done

    if [ "$write_back" ] ; then
        echo -e "\\033[31mUpdating xenv...\\033[0m"
        dd if=/tmp/xenv2.bin of=/tmp/boot.bin bs=${XENV2_KSIZE}K count=1 conv=sync
        cat /tmp/boot-rest.bin >> /tmp/boot.bin
        dd if=/tmp/boot.bin of=/dev/nblock0 bs=${PHY_KSIZE}K seek=${PHY_OFFSET} count=1
    fi

    #
    # Special fixes
    #

    user_smil=`sed -ne "s/^user_smil='\\\\([^']*\\\\)'/\\\\1/p" /mnt/nvram-rw/xmp.conf`
    if [ "$user_smil" -a ! -e /mnt/data/etc/app-data.xml ] ; then
        mkdir -p /mnt/data/etc
        value=`echo "$user_smil" | $xmlencode`
        echo '<configuration xmlns="http://schemas.adfotain.org/config-1.0">
<appData>
<prop name="app.content.lastPlayedUrl" value="'"$value"'"/>
</appData>
</configuration>' >/mnt/data/etc/app-data.xml

    fi

    #
    # Turn on remote debugging if this is a beta release
    #

    if [ ! `echo $fw_version | sed 's/.*b//'` ] ; then
        mount -o remount,rw /mnt/nvram-rw
        sed 's/^error_report=.*$/error_report='"'yes'/" \
            /mnt/nvram-rw/xmp.conf > /mnt/nvram-rw/xmp.conf.swp
        mv /mnt/nvram-rw/xmp.conf.swp /mnt/nvram-rw/xmp.conf
        mount -o remount,ro /mnt/nvram-rw
        sync ; sync
    fi

    _progress=100
    _gauge_message="$_gauge_message
Done"

    $DIALOG \
        --backtitle "$_backtitle" \
        --title "$_title" \
        --gauge "$_gauge_message" 20 70 "$_progress" \
        </dev/null >/dev/tty0

    exit 0

done

$DIALOG \
    --backtitle "$_backtitle" \
    --title "$_title" \
    --infobox "$_gauge_message" 20 70 \
    </dev/null >/dev/tty0

sync ; sync

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


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

Who is online

Users browsing this forum: Web crawler and 1 guest