cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
7338
Views
0
Helpful
8
Replies

Aironet 2802i refuse to upgrade to specific firmware version

orangekao
Level 1
Level 1

Model: Cisco Aironet 2802i AIR-AP2802I-Z-K9

 

Hello.

 

I'm doing some test on an AP by changing the firmware back and forth repeatedly by "archive download-sw" command.


The firmware which I switch back and forth are

  • 8.3.112.0 (ap3g3-k9w8-tar.153-3.JD4.tar)
  • 8.6.101.0 (ap3g3-k9w8-tar.153-3.JG1.tar)

 

At some point the AP stop to accept the firmware on these two version, but have no problem to update to other version.

  • 8.5.120.0 (ap3g3-k9w8-tar.153-3.JF5.tar)

 

Error message during the upgrade as below, it seems that the AP will write file UPGRADE_8.6.101.0_COUNT and UPGRADE_8.3.112.0_COUNT and blacklisted these two version after certain number of update counts.

 

Tried the "delete" command, but unable to delete these files.

 

Any suggestion? Thanks in advance.

 

== Reproduce steps ==

archive download-sw /no-reload tftp://192.168.1.12/ap3g3-k9w8-tar.153-3.JD4.tar
reload
archive download-sw /no-reload tftp://192.168.1.12/ap3g3-k9w8-tar.153-3.JG1.tar
reload
(repeat)

== Expected result ==

Allow the user to update firmware back and forth.

 

== Actual result ==

APXXXX.XXXX.XXXX#archive download-sw /no-reload tftp://192.168.1.12/ap3g3-k9w8-tar.153-3.JG1.tar
######################################################################## 100.0%
Image downloaded, writing to flash...
do PREDOWNLOAD, part1 is active part
Image signing verify success.
upgrade.sh: part to upgrade is part2
upgrade.sh: Image version 8.6.101.0 seems corrupted. Retry exhausted. Stop writing.
+ do_upgrade PREDOWNLOAD
+ [ ! -r /tmp/part.tar ]
+ [ 1 -lt 3 ]
+ local base_vol=/dev/ubivol
+ local action=PREDOWNLOAD
+ cat /MERAKI_BOARD
+ local board=barbados
+ get_activepart
+ get_activepart_real
+ cat /proc/cmdline
+ local kcmdline=console=ttyS0,9600 activepart=part1 activeboot=0 bootver=0x11e boardid=0x21 nss_emac_map=0x6 wired0=2 phy0=mvl nfcConfig=4bitecc mtdparts=armada-nand:1m(oops),1m(reserved),-(fs) ubi.mtd=fs wired1=1 phy1=mvl crashkernel=500M-:128M@128M usbcore.authorized_default=0
+ grep activepart
+ echo console=ttyS0,9600
+ echo activepart=part1+ 
grep activepart
+ echo activepart=part1
+ awk -F= {print $2}
+ echo activeboot=0+ grep activepart

+ echo bootver=0x11e
+ grep activepart
+ echo boardid=0x21+ 
grep activepart
+ echo nss_emac_map=0x6
+ grep activepart
+ echo wired0=2+ grep activepart

+ echo phy0=mvl
+ grep activepart
+ echo nfcConfig=4bitecc+ 
grep activepart
+ echo mtdparts=armada-nand:1m(oops),1m(reserved),-(fs)
+ grep activepart
+ echo ubi.mtd=fs+ grep activepart

+ echo wired1=1
+ grep activepart
+ echo phy1=mvl+ grep activepart

+ echo crashkernel=500M-:128M@128M
+ grep activepart
+ echo usbcore.authorized_default=0+ grep activepart

+ local part_active=part1
+ [ part1 != part1 -a part1 != part2 ]
+ echo part1
+ local active_part=part1
+ get_alternateboot part1
+ [ part1 == part2 ]
+ echo part2
+ local part_to_upgrade=part2
+ local eff_upgrade_master=false
+ local tftp_image_vers=
+ local skip_img_sign_verify=false
+ local skip_boot_upgrade=false
+ echo
+ tr , \n
+ echo dangerous 10225
+ sync
+ cd /tmp
+ [ barbados == barbados ]
+ tar -xf /tmp/part.tar info.ver info btldr.img setenv.gz
+ [ PREDOWNLOAD == CHECK_ME ]
+ get_capwap_version
+ [ 0 -lt 1 ]
+ local version_file=/tmp/info.ver
+ [ -f /tmp/info.ver ]
+ grep ^ws_management_version /tmp/info.ver+ sed s/.*: //g

+ echo 8.6.101.0
+ local capwap_version=8.6.101.0
+ /usr/sbin/getoffset /tmp/part.tar part.bin
+ local fileoffset= Filename part.bin Offset 512 Length 47656741 Errorcode 0
+ echo Filename part.bin+ cut -f4 -d  
 Offset 512 Length 47656741 Errorcode 0
+ local partfileoffset=512
+ echo Filename part.bin+ cut -f6 -d  
 Offset 512 Length 47656741 Errorcode 0
+ local partfilesize=47656741
+ echo Filename part.bin+ cut -f8 -d  
 Offset 512 Length 47656741 Errorcode 0
+ local errorcode=0
+ [[ 0 -ne 0 ]]
+ [ false != true ]
+ image_signing_verify 512
+ [ ! -r /tmp/part.tar ]
+ /usr/sbin/verify /tmp/part.tar part.bin
+ local retval= Filename part.bin Offset 512 Length 47656741 Errorcode 0
Verify returns 0
+ echo+ cut -f8 -d  
 Filename part.bin Offset 512 Length 47656741 Errorcode 0 Verify returns 0
+ local errorcode=0
+ [[ 0 -eq 0 ]]
+ echo Image signing verify success.
Image signing verify success.
+ return 0
+ local ret=0
+ [ 0 -ne 0 ]
+ [ false != true ]
+ [ barbados == barbados -a -e /usr/bin/btldr_upgrade ]
+ [ -f /lib/firmware/btldr.img ]
+ [ -f /lib/firmware/setenv.gz ]
+ barbados_boot_upgrade
+ plat_get_bootloader_booted
+ cat /var/platform/bootloader_booted
+ local BOOTED=0
+ plat_get_bootloader_version
+ cat /var/platform/bootloader_version
+ local BOOTVER=0x11e
+ [ /tmp != /tmp ]
+ [ -f btldr.img -a ! -z 0 -a ! -z 0x11e ]
+ [ -f setenv.gz ]
+ [ 1 -eq 0 ]
+ local CLEAR_ENV_FLAG=
+ local ENVUTIL=/usr/bin/shared_printenv
+ local NEW_ENVUTIL=./setenv
+ [ -e /usr/bin/shared_printenv -a -e ./setenv ]
+ /usr/bin/shared_printenv mtdparts+ 
sed s/^mtdparts=//g
+ local MTDPARTS=mtdparts=armada-nand:1m(oops),1m(reserved),-(fs)
+ /usr/bin/shared_printenv BOOT
+ sed s/^BOOT=//g
+ local BOOT=part1
+ /usr/bin/shared_printenv bootcmd
+ sed s/^bootcmd=//g
+ local BOOTCMD=nandboot
+ /usr/bin/shared_printenv baudrate
+ sed s/^baudrate=//g
+ local BAUDRATE=9600
+ /usr/bin/shared_printenv ipaddr+ 
sed s/^ipaddr=//g
+ local IPADDR=
+ /usr/bin/shared_printenv netmask
+ sed s/^netmask=//g
+ local NETMASK=
+ sed s/^gatewayip=//g
+ /usr/bin/shared_printenv gatewayip
+ local GATEWAYIP=
+ /usr/bin/shared_printenv serverip+ 
sed s/^serverip=//g
+ local SERVERIP=
+ /usr/bin/shared_printenv tftpdir+ 
sed s/^tftpdir=//g
+ local TFTPDIR=
+ /usr/bin/shared_printenv nss_emac_map+ 
sed s/^nss_emac_map=//g
+ local NSS_EMAC_MAP=
+ /usr/bin/shared_printenv fips+ 
sed s/^fips=//g
+ local FIPS=
+ [ 0 -ne 0 ]
+ plat_get_board_id
+ cat /var/platform/board_id
+ local BOARDID=0x21
+ [ -z 0x21 -o 33 -le 0 ]
+ CLEAR_ENV_FLAG=-c -i 0x21
+ /usr/bin/btldr_upgrade -b 0 -v 0x11e -c -i 0x21 btldr.img
+ [ 0 -ne 0 ]
+ [ -f /lib/firmware/btldr_DEV.img ]
+ loudlog part to upgrade is part2
+ logger -p 0 -t upgrade part to upgrade is part2
+ echo upgrade.sh: part to upgrade is part2
upgrade.sh: part to upgrade is part2
+ [ barbados == barbados ]
+ is_retry_allowed UPGRADE_8.6.101.0
+ local count_fname=/storage/UPGRADE_8.6.101.0_COUNT
+ cat /storage/UPGRADE_8.6.101.0_COUNT
+ local count=3
+ [ 3 -lt 3 ]
+ return 0
+ [ 0 -ne 1 ]
+ loudlog Image version 8.6.101.0 seems corrupted. Retry exhausted. Stop writing.
+ logger -p 0 -t upgrade Image version 8.6.101.0 seems corrupted. Retry exhausted. Stop writing.
+ echo upgrade.sh: Image version 8.6.101.0 seems corrupted. Retry exhausted. Stop writing.
upgrade.sh: Image version 8.6.101.0 seems corrupted. Retry exhausted. Stop writing.
+ return 1
+ status=1
+ set +x
Error: '/etc/capwap-upgrade.sh PREDOWNLOAD' failure.
APXXXX.XXXX.XXXX#

== Additional information ==

It seems that the AP bloacklist the firmware by writing file "UPGRADE_8.6.101.0_COUNT".

 

APXXXX.XXXX.XXXX#show flash 
Directory of /storage/
total 80
-rw-r--r--    1 root     root             2 Mar 30 09:08 ACTIVATE_COUNT
-rw-r--r--    1 root     root             3 Mar 30 10:52 BOOT_COUNT
-rw-r--r--    1 root     root             3 Mar 30 10:52 BOOT_COUNT.reserve
-rw-r--r--    1 root     root            29 Mar 30 10:52 RELOADED_AT_UTC
-rw-r--r--    1 root     root             2 Mar 30 08:49 UPGRADE_8.3.112.0_COUNT
-rw-r--r--    1 root     root             2 Mar 30 09:08 UPGRADE_8.6.101.0_COUNT
drwxr-xr-x    2 root     root           304 Mar 30 08:41 ap-images
drwxr-xr-x    4 root     root          1776 Mar 30 10:53 application
-rw-r--r--    1 root     root          3938 Mar 30 10:32 base_capwap_cfg_info
-rw-r--r--    1 root     root            20 Mar 30 04:54 bigacl
-rw-r--r--    1 root     root           221 Mar 30 08:13 bootloader.log
-rw-r--r--    1 root     root             5 Mar 30 08:10 bootloader_verify.shadow
-rw-r--r--    1 root     root            18 May 14  2017 config
-rw-r--r--    1 root     root             0 Mar 30 10:52 config.local
-rw-r--r--    1 root     root            17 Mar 30 10:52 config.mobexp
-rw-r--r--    1 root     root          2071 Mar 30 08:45 config.wireless
drwxr-xr-x    2 root     root           160 May 14  2017 cores
drwxr-xr-x    2 root     root           320 May 14  2017 dropbear
drwxr-xr-x    2 root     root           160 May 14  2017 images
-rw-r--r--    1 root     root           228 Mar 21 13:59 last_good_uplink_config
drwxr-xr-x    2 root     root           160 May 14  2017 lists
-rw-r--r--    1 root     root           215 Mar 30 09:03 part1_info.ver
-rw-r--r--    1 root     root           215 Mar 30 09:08 part2_info.ver
-rw-r--r--    1 root     root          4096 Mar 30 10:52 random_seed
-rw-r--r--    1 root     root             3 May 14  2017 rxtx_mode
-rw-r--r--    1 root     root            64 Mar 30 10:14 sensord_CSPRNG0
-rw-r--r--    1 root     root            64 Mar 30 08:39 sensord_CSPRNG1
drwxr-xr-x    3 support  root           224 May 14  2017 support
drwxr-xr-x    2 root     root          2336 Mar 30 10:53 syslogs
---------------------------------------------------------------------------
Filesystem                Size      Used Available Use% Mounted on
flash                    57.5M     45.1M      9.4M  83% /storage

APXXXX.XXXX.XXXX#

Tried the "delete" command, but unable to delete these files.

 

APXXXX.XXXX.XXXX#delete ?
  /force      Force delete
  /recursive  Recursive delete
  /rf         Recursive force delete
  cores       Apply action on a core file

APXXXX.XXXX.XXXX#delete cores ?
  WORD  Enter a File name

APXXXX.XXXX.XXXX#delete flash:/UPGRADE_8.6.101.0_COUNT
                        ^
% Invalid input detected at '^' marker.
APXXXX.XXXX.XXXX#delete cores UPGRADE_8.6.101.0_COUNT
% Error: No such file
APXXXX.XXXX.XXXX#delete cores ../UPGRADE_8.6.101.0_COUNT
% Error: No such file
APXXXX.XXXX.XXXX#delete cores /UPGRADE_8.6.101.0_COUNT  
% Error: No such file
APXXXX.XXXX.XXXX#delete cores flash:/UPGRADE_8.6.101.0_COUNT
% Error: No such file
APXXXX.XXXX.XXXX#

 

8 Replies 8

Leo Laohoo
Hall of Fame
Hall of Fame

Hold on ... Is this AP a controller-based AP or ME?

I did not run "ap-type mobility-express tftp://......" on 8.5.120.0. It's running Lightweight AP software at the moment.

 

Here's the extract of "show version" after I flashed 8.5.120.0. (But I cannot flash 8.3.112.0 nor 8.6.101.0)

Thanks.

 

AP Running Image     : 8.5.120.0
Primary Boot Image   : 8.5.120.0
Backup Boot Image    : 8.6.101.0
2 Gigabit Ethernet interfaces
2 802.11 Radios
Radio Driver version : 9.0.5.5-W8964
Radio FW version : 9.1.8.1
NSS FW version : 2.4.18

 

Ok, so this AP is controller-based.  Right? 

So exactly what are you trying to achieve? 

The APs firmware is strictly controlled by the WLC.  The WLC manages what version of firmware APs can use.  

If you upload a different version, the AP is smart enough to reject it.  

I want to flash 8.3.112.0 to continue my test.

 

Yes, it's controller-based, but I've removed other devices (controller and other lightweight APs) in the network. In this way, I had been able to flash 8.3.112.0 and 8.6.101.0 back and forth on this unit, until the issue occurs.

dhshukla
Cisco Employee
Cisco Employee
 

Thank you. I tried to access CSCve31867 but it seems that the bug is not publicly available.

 

Insufficient Permissions to View Bug
This bug contains proprietary information and is not yet publicly available.

 

CSCve31867 is fixed in 8.9.1xx. Had the same issue, upgrade to 8.9.111 (although I have a non-AX AP) went through well.

The Cisco Aironet Power Injector AIR-AP2802I-Z-K9= increases wireless LAN deployment flexibility of supported Cisco Aironet Access Points by providing an alternative powering option to local power, inline power-capable multiport switches, and multiport power patch panels.
https://www.cisco.com/c/en/us/support/wireless/aironet-2800-series-access-points/products-installation-g

Review Cisco Networking for a $25 gift card