Converting Cisco Aironet From Lightweight To Autonomous Mode

If I was to assume, my house has better WiFi coverage and is more reliable than yours.
Over an 800m2 of my property on multiple levels, my signal strength in a survey averaged -53dBm on 2.4ghz (a bit less on 5ghz) and it cost in 2023, $100. I will get to the details shortly.

-53dBm on 2.4ghz


A 802.11ay (WiFi 6e) Access Point whilst may be faster, is going to be not only considerably more expensive, and yes faster, but will not compete with the coverage and signal strength multiple enterprise access points will give. To achieve this level of coverage you would need to spend anywhere from 5-10x more than what I have spent to get comparable 2.4ghz coverage.

There is excellent value in using EOL (End Of Life) Enteprises IT equipment (Check out Facebook Marketplace) and one brand that comes to mind is Cisco. Excellent build quality, and because they are the defacto standard network gear in many environments, when they go EOS(End Of Sale/End Of Support), there is an oversupply of equipment, and prices plummet.

An example here is Cisco 3702 Aironet Access Points. The top of the range in Cisco’s offering. Brand new these Access Points were released in 2013 at $1845.00 USD and stopped being sold in April 2019, today they can be found for as little as $20AUD ($13.80 USD) without mounting brackets. I recently bought 4 for $100 AUD.

If you can make do with 450MBps (realistic), 1.3GBps (theoretical), then for 1/10th of the price of a Wifi 6E Router (Netgear NightHawk) you can build a network that will provide more consistent throughput over a wider coverage, and whilst you are at it, do your part for the environment and save some e-waste.

Cisco 3702i, purchased from Ebay for $30AUD having its firmware updated

There is a catch. But if you found this blog, you already know this.

Cisco Aironet Access Points are typically coupled to WLC(Wireless Lan Controller) as they run in ‘Lightweight’ mode, meaning that they cannot act independently of a wireless LAN controller (WLC). The WLC manages the Access Points configurations and firmware. The Access Points become “zero touch” deployed, and individual configuration of Access Points is not necessary.

Imagine a building with hundreds of Access Points, you don’t want to be configuring these manually.

Two options here.

  1. Acquire a Wireless Lan Controller – Second Hand off Ebay going from $100AUD – Cisco 5508
  2. Change the firmware from Lightweight to Autonomous mode.

In this post I am going to illustrate how to convert a Cisco Aironet Access Point from Lightweight to Autonoumous mode. I will be using a Cisco 3702i in this example but this will work with any Aironet based Access Point.

Step 1: Acquire Autonoumous Firmware
Without a WLC you will need to reflash the image on the Aironet to be autonomous. This will require a valid Cisco Support contract, although I am told if you sail the high seas on may be able to find a valid firmware.

In the table below I have pasted the names of the latest firmware as the time of authoring for the Cisco Aironet 3702 series.

Autonomous (Standalone) – k9w7
k9w7 – autonomous IOS
ap3g2-k9w7-tar.153-3.JPN1.tar
Lightweight (WLC Required) – k9w8
k9w8 – full lightweight IOS (this is what is bundled in the WLC .aes image, and is factory installed on “mesh” APs)
c3700-k9w8-tar.153-3.JPN1.tar
Lightweight Recovery (WLC Required)
rcvk9w8 – lightweight recovery image – this is factory installed on lightweight APs, unless a “mesh” image is specified; it lacks radio firmware
ap3g2-rcvk9w8-tar.153-3.JPN1.tar
Cisco Aironet IOS Image Types

Whilst it is nice to get the latest firmware, I would suggest you either ask the seller (if you are acquiring off eBay / Facebook Marketplace) to place on an autonomous firmware, or ask someone in your network who has a Cisco login.

Step 2: Console Cable (FTDI)
In order to reset these devices, you will need to place it in recovery mode via a serial session with 96008N1 (serial baud rate of 9600 bits per second, 8 data bits, no parity, and 1 stop bit). You will require a valid Cisco console cable. This cable is terminated on the device side with RJ45 and DB9 (serial typically). But what of your device (laptop / PC) does not have a serial cable. A USB to serial adapter will work here, but note, whilst I have never had any issues on my Catalyst switches with a generic USB to Serial adapter, from Aironet 1100 series onwards you will need to use a FTDI based UART adapter.

Connecting via Serial – 96008N1


Validate you can connect to your Cisco Aironet device.

Validating connectivity via serial with Cisco Aironet.

Step 3: Setup a TFTP Server
The new firmware will be pushed to the device over IP, and over TFTP. You will need to have a TFTP server on the same local subnet / VLAN as your access point when flashing.

On Windows I use tfptpd64.
Download and install your TFTP server, ensuring that UDP 69 is open and accessible to the IP address your server is bound to. Configure your TFTP server’s home directory is set to the directory in which you have firmware downloaded to.

Step 4 : Place Access Point In Recovery Mode
You need to place the Access Point into Recovery Mode. To do so, apply power (either via PoE or 48v DC) whilst holding the ‘MODE button’ for 20 seconds.

Hold the ‘MODE’ button for 20+ seconds to place in recovery mode
The device is now in recovery mode.

Step 5 : Format Flash
You need to delete the flash of the lightweight image. At the ap: prompt we need to format the flash

format flash:

This will yield the following output, this may be different on your device. Also note that formatting can take some time to complete. It took 28 seconds in my example.

ap: format flash:
Are you sure you want to format "flash:" (all data will be lost) (y/n)?y
flashfs[0]: 0 files, 1 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 41158656
flashfs[0]: Bytes used: 1024
flashfs[0]: Bytes available: 41157632
flashfs[0]: flashfs fsck took 28 seconds.
Filesystem "flash:" formatted

Step 6: Configure IP & Download Autonomous Image Via TFTP
You now need to configure IP details on the access point so that it can connect to a TFTP server and pull down your autonomous image. You will need to set an IP address and subnet mask that is IP routable to your TFTP server.

In my example I set an IP address of 10.0.0.100 with a 24-bit subnet mask and a default route of 10.0.0.1. adjust these values as per your environment.

ap: set IP_ADDR 10.0.0.100
ap: set NETMASK 255.255.255.0
ap: set DEFAULT_ROUTER 10.0.0.1
ap: tftp_init
ap: ether_init
Initializing ethernet port 0...
Ethernet speed is 1000 Mb - FULL Duplex

Download the image via TFTP tar -xtract tftp://YOUR_TFTP_SERVER_IP_ADDRESS/IMAGE_NAME.tar flash:

Whist the TFP transfer is taking place, you will notice on your TFTP server the transfer taking place. It will take some time, whilst this is 1GBe interface, it is being sent at 20kb/second.

ap: tar -xtract tftp://10.0.0.187/ap3g2-k9w7-tar.153-3.JH.tar flash:

extracting info (279 bytes)
ap3g2-k9w7-mx.153-3.JH/ (directory) 0 (bytes)
extracting ap3g2-k9w7-mx.153-3.JH/ap3g2-k9w7-mx.153-3.JH (229940 bytes)..................................................
extracting ap3g2-k9w7-mx.153-3.JH/ap3g2-k9w7-tx.153-3.JH (73 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/ap3g2-bl-2600 (190140 bytes).........................................
extracting ap3g2-k9w7-mx.153-3.JH/ap3g2-bl-3600 (189183 bytes).........................................
ap3g2-k9w7-mx.153-3.JH/html/ (directory) 0 (bytes)
ap3g2-k9w7-mx.153-3.JH/html/level/ (directory) 0 (bytes)
ap3g2-k9w7-mx.153-3.JH/html/level/1/ (directory) 0 (bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/appsui.js (563 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/back.shtml (512 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/cookies.js (5032 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/forms.js (20442 bytes)....
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/sitewide.js (17290 bytes)...
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/stylesheet.css (3220 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/config.js (29225 bytes)......
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/popup_capabilitycodes.shtml.gz (1020 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/filter.js.gz (2037 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/filter_vlan.js.gz (1459 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/filter_mac_ether.js.gz (1793 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/security.js.gz (962 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/vlan.js.gz (1196 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/ssid.js.gz (6149 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/network-if.js.gz (2098 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/dot1x.js.gz (988 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/stp.js.gz (957 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/ap_assoc.shtml.gz (5892 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/ap_event-log.shtml.gz (4158 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/ap_home.shtml.gz (7632 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/ap_network-if.shtml.gz (3576 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/ap_network-map.shtml.gz (4124 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/ap_services.shtml.gz (3937 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/ap_system-sw.shtml.gz (3134 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/ap_contextmgr.shtml.gz (4073 bytes)
ap3g2-k9w7-mx.153-3.JH/html/level/1/images/ (directory) 0 (bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/ap_title_appname.gif (2092 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/2600_title_appname.gif (2100 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/2600_w_title_appname.gif (2461 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/2700_title_appname.gif (2385 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/1700_title_appname.gif (2959 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/3700_title_appname.gif (2395 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/apps_button.gif (1211 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/apps_button_1st.gif (1171 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/apps_button_cbottom.gif (318 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/apps_button_current.gif (1206 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/apps_button_endcap.gif (878 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/apps_button_encap_last.gif (333 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/apps_button_last.gif (386 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/apps_button_nth.gif (1177 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/apps_leftnav_dkgreen.gif (869 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/apps_leftnav_green.gif (879 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/apps_leftnav_upright.gif (64 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/apps_leftnav_yellow.gif (881 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/arrowdown_red.gif (108 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/arrowup_green.gif (108 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/corner_ur_7.gif (53 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/dkgreenmask11_up.gif (113 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/dkgreenmask28_upright.gif (110 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/grn_vertlines_bottom.gif (149 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/grn_vertlines_top.gif (141 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/hinav_plus.gif (56 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/left_bkg.gif (146 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/list_data.gif (122 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/logo.gif (29454 bytes)......
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/pixel.gif (49 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/sitewide_downleft.gif (53 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/sitewide_help_off.gif (934 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/sitewide_help_on.gif (934 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/sitewide_print_off.gif (111 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/sitewide_print_on.gif (111 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/spacer.gif (49 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/whitemask11_botleft.gif (62 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/whitemask11_upright.gif (61 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/event_alert.gif (73 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/event_critical.gif (73 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/event_debugging.gif (73 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/event_emergency.gif (73 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/event_error.gif (73 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/event_information.gif (73 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/event_notification.gif (73 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/event_warning.gif (73 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/check_mark.gif (71 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/Spectrum.gif (1556 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/background_web41.jpg (732 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/cisco-logo-2012.gif (579 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/logout_image.gif (40294 bytes)........
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/itp-logo.png (2822 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/logout_image_itp.gif (48262 bytes)..........
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/cna_icon1.gif (1212 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/cna_icon2.gif (1185 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/cna_icon3.gif (1196 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/cna_icon4.gif (1072 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/1/images/cna_download_splash.gif (44862 bytes).........
ap3g2-k9w7-mx.153-3.JH/html/level/15/ (directory) 0 (bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_assoc_adv.shtml.gz (4144 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_event-log_config-options.shtml.gz (5730 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_event-log_notif-options.shtml.gz (2693 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_express-setup.shtml.gz (11858 bytes)..
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_express-security.shtml.gz (13550 bytes)...
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/def_broadcast-ssid.shtml.gz (1263 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/def_eap-security.shtml.gz (1791 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/def_no-security.shtml.gz (1582 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/def_wep-security.shtml.gz (1597 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/def_wpa-security.shtml.gz (1854 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_network-if_ipaddress.shtml.gz (6321 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_network-if_802-11.shtml.gz (7132 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_network-if_802-11_b.shtml.gz (6292 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_network-if_802-11_c.shtml.gz (30040 bytes)......
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/dBm_mW_translation_table.shtml.gz (1511 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_network-if_802-11_d.shtml.gz (4070 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_network-if_ethernet.shtml.gz (4377 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_network-if_ethernet_b.shtml.gz (6604 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_network-map_ap-adjacent-list.shtml.gz (3806 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec.shtml.gz (7600 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_ap-client-security.shtml.gz (36305 bytes).......
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_ap-key-security.shtml.gz (12068 bytes)..
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_band_select.shtml.gz (5720 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_auto-config.shtml.gz (3611 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_local-admin-access.shtml.gz (6991 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_network-security_a.shtml.gz (11764 bytes)..
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_network-security_b.shtml.gz (5620 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_lrs.shtml.gz (5087 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_lrs_b.shtml.gz (8525 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_lrs_c.shtml.gz (6205 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_dot1x-security.shtml.gz (6444 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_dot1x-certificates.shtml.gz (11173 bytes)..
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_dot1x-cert_fingerprint.shtml.gz (577 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_ap-client-security-adv_a.shtml.gz (4984 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_ap-client-security-adv_b.shtml.gz (5061 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_ap-client-security-adv_c.shtml.gz (4668 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_ap-client-security-adv_d.shtml.gz (3608 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_ids_mfp.shtml.gz (3922 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_ids_mfp_stats.shtml.gz (3651 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_arp.shtml.gz (3017 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_cdp.shtml.gz (5123 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_console-telnet.shtml.gz (6833 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_dns.shtml.gz (3604 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_filters.shtml.gz (5313 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_filters-ip.shtml.gz (9264 bytes)..
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_filters-mac.shtml.gz (4011 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_filters-ether.shtml.gz (3855 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_hot-standby.shtml.gz (5506 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_http.shtml.gz (6455 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_mobile-ip-b.shtml.gz (6668 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_mobile-ip-c.shtml.gz (4163 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_mobile-ip-d.shtml.gz (5170 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_mobile-ip.shtml.gz (6015 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_qos-traffic.shtml.gz (8139 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_qos.shtml.gz (12217 bytes)..
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_qos_adv.shtml.gz (4443 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_snmp.shtml.gz (8027 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_sntp.shtml.gz (5959 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_vlan.shtml.gz (14651 bytes)...
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_voice-traffic.shtml.gz (6358 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_services_stp.shtml.gz (7128 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_stationview-client_ltest.shtml.gz (5535 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_system-sw_upgrade-b.htm (231 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_system-sw_upgrade-b.shtml.gz (6208 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_system-sw_upgrade.htm (229 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_system-sw_upgrade.shtml.gz (6240 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/banner.html (14136 bytes)...
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/frameAssociation.html (628 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/frameEventlog.html (627 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/frameHome.html (611 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/frameNetWork.html (619 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/frameSecurity.html (637 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/frameServices.html (651 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/frameSoftware.html (650 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/frameWireless.html (626 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/frameset.html (4736 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/navAssociation.html (1269 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/navBar41.css (3605 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/navHome.html (2251 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/navNetwork.html (7057 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/navSecurity.html (2958 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/navServices.html (5018 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/navSoftware.html (1542 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/navWireless.html (1580 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/arrow_down.gif (177 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/arrow_down2.gif (838 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/arrow_right.gif (137 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/arrow_right2.gif (838 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/servicescript41.js.gz (11929 bytes)..
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/sideMenu.js.gz (813 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_easy-setup.shtml.gz (29509 bytes)......
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/navEventLog.html (1283 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/content41.css (10497 bytes)..
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/logout.html (2782 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_def_spec_information.shtml.gz (2190 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_guest_list.shtml.gz (2556 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_guest_login.shtml.gz (1523 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_guest_new.shtml.gz (4293 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/frameguest.html (617 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/navguest.html (1605 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_webauth.shtml.gz (4207 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/def_wpa_psk-security.shtml.gz (1859 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/cna_upgrade.htm (5895 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_sec_ap-client-dot11u.shtml.gz (11397 bytes)..
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_system-sw_upgrade_poll.htm (234 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_system-sw_upgrade_poll.shtml (3596 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_system-sw_sysconfig.shtml.gz (7503 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_stationview-client.shtml.gz (5592 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_contextmgr_ap.shtml.gz (4784 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_contextmgr_scm.shtml.gz (5304 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_contextmgr_scm-groups.shtml.gz (7600 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/html/level/15/ap_contextmgr_scm_summary.shtml.gz (5205 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/ap3g2-k9w7-xx.153-3.JH (10658842 bytes).........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
extracting ap3g2-k9w7-mx.153-3.JH/8004.img (576279 bytes).............................................................................................................................
extracting ap3g2-k9w7-mx.153-3.JH/E2.bin (19856 bytes)....
extracting ap3g2-k9w7-mx.153-3.JH/E5.bin (2213 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/X2.bin (16352 bytes)...
extracting ap3g2-k9w7-mx.153-3.JH/X5.bin (1916 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/V2.bin (12848 bytes)..
extracting ap3g2-k9w7-mx.153-3.JH/V5.bin (514 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/R2.bin (15184 bytes)...
extracting ap3g2-k9w7-mx.153-3.JH/R5.bin (4547 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/Q2.bin (8176 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/Q5.bin (3957 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/C2.bin (30368 bytes)......
extracting ap3g2-k9w7-mx.153-3.JH/C5.bin (16361 bytes)...
extracting ap3g2-k9w7-mx.153-3.JH/F2.bin (15184 bytes)...
extracting ap3g2-k9w7-mx.153-3.JH/F5.bin (4220 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/U2.bin (8176 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/HA2.bin (5840 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/U5.bin (3609 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/HA5.bin (2049 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/B2.bin (10512 bytes)..
extracting ap3g2-k9w7-mx.153-3.JH/B5.bin (2333 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/Y2.bin (7008 bytes).
extracting ap3g2-k9w7-mx.153-3.JH/Y5.bin (1875 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/8006.img (605265 bytes)...................................................................................................................................
extracting ap3g2-k9w7-mx.153-3.JH/triggerfish_cpld.img (2460 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/uart_firmware_upgrade.bin (18818 bytes)....
extracting ap3g2-k9w7-mx.153-3.JH/MCU.bin (9031 bytes)..
extracting ap3g2-k9w7-mx.153-3.JH/info (279 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/file_hashes (36837 bytes)........
extracting ap3g2-k9w7-mx.153-3.JH/final_hash (141 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/final_hash.sig (512 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/img_sign_rel.cert (1375 bytes)
extracting ap3g2-k9w7-mx.153-3.JH/img_sign_rel_sha2.cert (1371 bytes)
extracting info.ver (279 bytes)ap:

After the image has been extracted, you need to set the Cisco Aironet to boot from the new image.

dir flash:
set boot flash:/IMAGE_FOLDER/IMAGE_NAME
set
boot
ap: set boot flash:/ap3g2-k9w7-tar.153-3.JH/ap3g2-k9w7-tar.153-3.JH
ap: set
DEFAULT_ROUTER=10.0.0.1
IOS_STATIC_DEFAULT_GATEWAY=10.0.0.1
IP_ADDR=10.0.0.100
NETMASK=255.255.255.0
boot=flash:/ap3g2-k9w7-tar.153-3.JH/ap3g2-k9w7-tar.153-3.JH
ap: boot
Rebooting system to reset DPAA...

Step 7 : Enable Webserver and Connect via IP
When the device reboots, you will notice in the logs that the Aironet obtains an IP address on the BVI1 interface from DHCP. Pay attention to the IP address as you will need to connect to this IP either via SSH or HTTP.

A line will look similar to this.

*Mar 1 00:00:40.383: %DHCP-6-ADDRESS_ASSIGN: Interface BVI1 assigned DHCP address 10.0.0.139, mask 255.255.255.0, hostname ap

The default en password after flashing is “Cisco’ minus the quotes
Enable the HTTP interface with the following commands.

ap>en
Password:
ap#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
ap(config)#ip http server
ap(config)#
ap#
*Mar  1 00:11:02.911: %SYS-5-CONFIG_I: Configured from console by console
ap#

You can now connect and configure via the HTTP interface.

Step 8 : Configure Device (SSH or GUI)
Configuration can be performed via TFTP, SSH or the HTTP GUI interface.
There are some things you can’t do in the GUI, in which you will need to SSH, but for the majority of users the ‘Easy Setup –> Network Configuration’ will meet your needs.

Connect to the IP Address assigned to BVI1, in my example this is 10.0.0.139 on port 80. There is basic auth on this webserver, with the default username and password being ‘admin | Cisco’ respectively.

Cisco Aironet HTTP Interface – Quick Start

Summary
This is about as far as this post will go. These access-points have hundreds of features, from TACAS through to radio policies and beyond. Consult the Cisco Aironet Getting Started Guide for further information.

You have done it; you have configured you Cisco Aironet to Autonoumous mode and extended the life of hardware that would realistically probably become e-waste.

These access points are great value second hand and are perfect for home use, even if the learning curve is a bit high.

If you found this post helpful (or perhaps can be improved) leave a message in the comments.

Thanks
Shane Baldacchino

6 thoughts on “Converting Cisco Aironet From Lightweight To Autonomous Mode”

  1. Just an aside as i just did this conversion. you will need to run these commands to enable web gui
    enable
    config t
    enable secret 0 (yourpassword)
    ip http server
    the trick is with the AP in default you are not allowed to launch web gui with out changing your enable secret password which in default is “Cisco”

    Reply

Leave a Comment