Ticket #5719: orion_sysupgrade_platform_sh.5.patch

File orion_sysupgrade_platform_sh.5.patch, 1.7 KB (added by Maddes <maddes_trac@…>, 8 years ago)

WRT350Nv2 sanity check only possible on locally available files. Replaces all previous platform patches.

  • target/linux/orion/base-files/lib/upgrade/platform.sh

     
     1# use default "image" for PART_NAME 
     2# use default for platform_do_upgrade() 
     3 
     4platform_check_image() { 
     5        [ "${ARGC}" -gt 1 ] && { echo 'Too many arguments. Only flash file expected.'; return 1; } 
     6 
     7        local hardware=`sed -n /Hardware/s/.*:.//p /proc/cpuinfo` 
     8        local magic="$(get_magic_word "$1")" 
     9 
     10        case "${hardware}" in 
     11         # hardware with padded uImage + padded rootfs 
     12         'Netgear WNR854T' | 'Linksys WRT350N v2') 
     13                [ "${magic}" != '2705' ] && { 
     14                        echo "Invalid image type ${magic}." 
     15                        return 1 
     16                } 
     17                # special cases 
     18                [ "${hardware}" == 'Linksys WRT350N v2' ] && { 
     19                        # checks can only be done with directly available files 
     20                        [ ! -f "$1" ] && { 
     21                                local filename=`basename $1`; 
     22                                echo "Due to necessary checks please download \"${filename}\" via wget to /tmp and upgrade from there."; 
     23                                return 1; 
     24                        } 
     25                        # WRT350Nv2 eRcOmM sanity check, if 0x00750000-0x0075FFFF would be overwritten or erased 
     26                        local checksize=$(( 0x00750000 )) 
     27                        local size=`ls -l "$1" | awk '{ print $5 }'` 
     28                        [ ${size} -gt ${checksize} ] && { 
     29                                local bytes=`hexdump -v -e '1/1 "%02X"' -s $(( 0x0075FFE8 )) -n 8 "$1"` 
     30                                [ "${bytes}" != '6552634F6D4D0000' ] && { 
     31                                        echo "Flash image would kill eRcOmM identifier for WRT350N v2. Not flashing." 
     32                                        return 1 
     33                                } 
     34                        } 
     35                } 
     36                return 0 
     37                ;; 
     38        esac 
     39 
     40        echo "Sysupgrade is not yet supported on ${hardware}." 
     41        return 1 
     42}