03-30-2018 06:23 AM - edited 07-05-2021 08:27 AM
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
At some point the AP stop to accept the firmware on these two version, but have no problem to update to other version.
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#
03-30-2018 04:49 PM
Hold on ... Is this AP a controller-based AP or ME?
03-30-2018 05:06 PM
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
03-30-2018 05:18 PM - edited 03-30-2018 05:18 PM
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.
03-30-2018 05:34 PM
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.
03-31-2018 07:56 AM - edited 03-31-2018 08:12 AM
03-31-2018 08:12 AM
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.
08-01-2019 10:52 PM
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.
04-17-2018 01:38 AM
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
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide