The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This document describes how to use the xmodem
command at the console to download Cisco IOS® software with the ROM monitor (ROMmon).
There are no specific requirements for this document.
The information in this document is based on these software and hardware versions:
Cisco 827, 1600, 1700, 2600, 3600, and 3700 Series Routers
Cisco AS5200, AS5300, AS5350, and AS5400 Universal Access Servers
Note: Xmodem
can also be used on other Catalyst switches.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
Refer to Cisco Technical Tips Conventions for more information on document conventions.
Xmodem can be used on a group of routers (see Components Used) and is used in disaster recovery situations where the router has no valid Cisco IOS software or bootflash image to boot from and hence, only boots up in ROMmon. This procedure can also be used where there are no Trivial File Transfer Protocol (TFTP) servers or network connections, and a direct PC connection (or through a modem connection) to the router console is the only viable option. Because this procedure relies on the console speed of the router and the serial port of the PC, it can take a long time to download an image. For example, to download Cisco IOS Software Release 12.1(16) IP Plus image to a Cisco 1600 Series Router with a speed of 38400 bps takes approximately 25 minutes.
Here is the command syntax for xmodem
:
xmodem [-c] [-y] [-e] [-f] [-r] [-x] [-s data-rate]
This table describes the command syntax for the xmodem
command.
syntax | Description |
---|---|
-c | (Optional) CRC-16 checksumming, which is more sophisticated and thorough than standard checksumming. |
-y | (Optional) Uses the Ymodem protocol for higher throughput. |
-e | (Optional) Erases the first partition in Flash memory before the download starts. This option is only valid for the Cisco 1600 series. |
-f | (Optional) Erases all Flash memory before the download starts. This option is only valid for the Cisco 1600 series routers. |
-r | (Optional) Downloads the file to DRAM. The default is Flash memory. |
-x | (Optional) Does not execute the Cisco IOS software image on completion of the download. |
-sdata-rate | (Optional) Sets the console port data rate during file transfer. Values are 1200, 2400, 4800, 9600, 19200, 38400, and 115200 bps. The default rate is specified in the configuration register. This option is only valid for the Cisco 1600 series routers. |
filename | (Optional) Filename to copy. This argument is ignored when the -r keyword is specified since only one file can be copied to DRAM. On the Cisco 1600 series routers, files are loaded to the ROMmon for execution. |
Note: The xmodem
options e , f , and s are only supported on the Cisco 1600 Series Routers. In order to find out the syntax and available options to use with the xmodem
command, enter xmodem
-? at the ROMmon prompt.
Here is an example of the xmodem
command issued on a Cisco 1603 Router:
rommon 9 >xmodem -? usage: xmodem [-cyrxefs]<destination filename> -c CRC-16 -y ymodem-batch protocol -r copy image to dram for launch -x do not launch on download completion -f Perform full erase of flash -e Perform erase of first flash partition -s<speed>Set speed of Download, where speed may be 1200|2400|4800|9600|19200|38400|115200
Here is an example of the xmodem
command issued on a Cisco 2620 Router:
rommon 1 >xmodem -? xmodem: illegal option -- ? usage: xmodem [-cyrx] <destination filename> -c CRC-16 -y ymodem-batch protocol -r copy image to dram for launch -x do not launch on download completion
rommon 12 >xmodem -cfs115200 c1600-sy-mz.121-16.bin rommon 2 >xmodem -c c2600-is-mz.122-10a.bin
The xmodem
transfer only works on the console port. You can only download files to the router. You cannot use xmodem
to get files from the router.
It is also important to note that the -sdata-rate option is only available on the Cisco 1600 Series Routers and was implemented to overcome the console baud rate limitation of 9600 bps. If you specify -sdata-rate of 115200 bps for example, you can increase the download rate and hence, reduce download time. Other Cisco routers support console speeds up to 115200 bps. Therefore, the -sdata-rate option is not required.
Ensure that the PC serial port uses a 16550 universal asynchronous transmitter/receiver (UART) if you download a Cisco IOS software image through the router console speed at 115200. If the PC serial port does not use a 16550 UART, it is recommended that you use a speed of 38,400 or lower.
Use this xmodem procedure in order to download a Cisco IOS software image onto a Cisco 1603 Router.
Launch a terminal emulator program.
In this example, configure Windows HyperTerminal for 8-N-1 at 9600 bps and connect your PC serial port to the console port of the router. Once connected, you need to get into the ROMmon prompt (rommon 1>). Typically, if the router software image and bootflash image are both corrupt, the router only comes up in ROMmon mode. If the former is not true and you need to get into the ROMmon prompt, you need to change the configuration register (typically 0x2102 as given by show version
) to 0x0:
1600#configure terminal Enter configuration commands, one per line. End with CNTL/Z. 1600(config)#config-register 0x0 1600(config)#^Z 1600# 00:22:06: %SYS-5-CONFIG_I: Configured from console by console 1600#reload System configuration has been modified. Save? [yes/no]: n Proceed with reload? [confirm] 00:22:16: %SYS-5-RELOAD: Reload requested System Bootstrap, Version 12.0(3)T, RELEASE SOFTWARE (fc1) Copyright (c) 1999 by cisco Systems, Inc. Simm with parity detected, ignoring onboard DRAM C1600 platform with 16384 Kbytes of main memory rommon 1 >
From the ROMmon prompt, issue the xmodem
command. However, before you issue the xmodem
command, ensure that you have the new Cisco IOS software image on your PC.
In this example, all Flash memory is erased before the download with the f option (only on the Cisco 1600 Series ). Perform a CRC-16 checksum with the c option and specify -s115200 to set the download speed of 115200 bps (only on the Cisco 1600 Series
rommon 12 >xmodem -cfs115200 c1600-sy-mz.121-16.bin Do not start the sending program yet...
Note: If the console port is attached to a modem, both the console port and the modem must operate at the same baud rate.
Use console speed 115200 bps for download [confirm] File size Checksum File name 1957444 bytes (0x1dde44) 0xe345 c1600-y-mz.113-9.T
Erasing flash at 0x83f0000 no partition 2 on device: PCMCIA slot 1 Ready to receive file c1600-sy-mz.121-16.bin ... Downloadwill
be performed at 115200. make sure your terminal emulator is set to this speed before sending file.
Warning: All existing files in the partition displayed and files in any other partitions on this devicewill
be lost! Continue ? press 'y' for yes, 'n' for no:y
Configure the terminal emulator program for a data rate of 115200 bps to match the xmodem speed specified above. To do this close the previous terminal session of 9600 bps and open a new one at 115200 with 8-N-1. The trick here is that the Cisco 1603 only supports a maximum baud rate of 9600 bps. Therefore, when connected at 115200 bps, you cannot see the router prompt. This is an important point to remember. Once connected to the router at 115200 bps, select Transfer and Send File from the HyperTerminal menu bar.
Select Transfer and Send File from HyperTerminal Menu Bar
Specify the image file name and location and enter xmodem as the protocol.
Enter xmodem as the Protocol
Click on Send to start the transfer.
Start the Transfer
This message is received when the transfer is complete:
Download Complete! Returning console speed to 9600 Please reset your terminal emulator to this speed...
6. Per the message above, you need to exit your 115200 bps HyperTerminal session and restart a new one at 9600 bps. Once connected, the router ROMmon prompt appears. Verify that the download was successful with a dir flash
:
rommon 9 >dir flash: File size Checksum File name 3686656 bytes (0x384100) 0x1a5e c1600-sy-mz.121-16.bin
7. Change the config register back to 0x2102 and reset or power cycle the router so that the new Cisco IOS software image gets loaded.
rommon 10 >confreg 0x2102 You must reset or power cycle for new config to take effect. rommon 11 >reset System Bootstrap, Version 12.0(19981130:173850) [rameshs-120t_lava 114], DEVELOPMENT SOFTWARE Copyright (c) 1994-1998 by cisco Systems, Inc. Simm with parity detected, ignoring onboard DRAM C1600 platform with 16384 Kbytes of main memory program load complete, entry point: 0x4020060, size: 0x15568c %SYS-6-BOOT_MESSAGES: Messages above this line are from the boot loader. program load complete, entry point: 0x2005000, size: 0x3840e0 Self decompressing the image : ######################################## ################ ........ Cisco Internetwork Operating System Software IOS (tm) 1600 Software (C1600-SY-M), Version 12.1(16), RELEASE SOFTWARE (fc1) Copyright (c) 1986-2002 by cisco Systems, Inc. Compiled Mon 08-Jul-02 17:09 by kellythw Image text-base: 0x02005000, data-base: 0x0275BD48 .......
Use this xmodem
procedure in order to download a Cisco IOS software image onto a Cisco 2620 Router.
Launch a terminal emulator program.
This example Windows HyperTerminal is configured for 8-N-1 at 9600 bps. Connect your PC serial port to the console port of the router. Once connected, get into the ROMmon prompt (rommon 1>). Typically, if the router has a Cisco IOS software image and a bootflash image that are both corrupt, the router only comes up in ROMmon mode. If the former is not true and you need to get into the ROMmon prompt, then you need to change the configuration register (typically 0x2102 as given by show version
) to 0x0 as follows:
2620#configure terminal Enter configuration commands, one per line. End with CNTL/Z. 2620(config)#config-register 0x0 2620(config)#^Z 2620# 5d03h: %SYS-5-CONFIG_I: Configured from console by console 2620# 2620#reload System configuration has been modified. Save? [yes/no]: n Proceed with reload? [confirm] 5d03h: %SYS-5-RELOAD: Reload requested System Bootstrap, Version 11.3(2)XA4, RELEASE SOFTWARE (fc1) Copyright (c) 1999 by cisco Systems, Inc. TAC:Home:SW:IOS:Specials for info C2600 platform with 65536 Kbytes of main memory rommon 1 >
Once in ROMmon, change the console baud rate from 9600 bps to 115200 bps to speed up the download time. Use the confreg
command and complete the instructions presented on the screen.
rommon 1 >confreg Configuration Summary enabled are: break/abort has effect console baud: 9600 boot: the ROM Monitor do you wish to change the configuration? y/n [n]: y enable "diagnostic mode"? y/n [n]: enable "use net in IP bcast address"? y/n [n]: enable "load rom after netboot fails"? y/n [n]: enable "use all zero broadcast"? y/n [n]: disable "break/abort has effect"? y/n [n]: enable "ignore system config info"? y/n [n]: change console baud rate? y/n [n]: y enter rate: 0 = 9600, 1 = 4800, 2 = 1200, 3 = 2400 4 = 19200, 5 = 38400, 6 = 57600, 7 = 115200 [0]: 7 change the boot characteristics? y/n [n]: Configuration Summary enabled are: break/abort has effect console baud: 115200 boot: the ROM Monitor do you wish to change the configuration? y/n [n]: You must reset or power cycle for new config to take effect. rommon 2 >
Once the router boots up in ROMmon, the HyperTerminal sessions start to display illegible characters. You need to exit the current terminal session and start a new one at a data rate of 115200 bps to match the console rate as in Step 2.
You are now ready to issue the xmodem
command. However, before you issue the xmodem
command, ensure that you have the new Cisco IOS software image on your PC.
rommon 1 > rommon 1 >xmodem -? xmodem: illegal option -- ? usage: xmodem [-cyrx] <destination filename> -c CRC-16 -y ymodem-batch protocol -r copy image to dram for launch -x do not launch on download completion rommon 2 > rommon 2 > rommon 2 > xmodem -c c2600-is-mz.122-10a.bin !--- Note that [-s datarate] is not available here since you are set for 115200 bps. Do not start the sending program yet... File size Checksum File name 9939820 bytes (0x97ab6c) 0x4991 c2600-is-mz.122-7a.bin
Warning: All existing data in bootflash will be lost! Invoke this application only for disaster recovery. Do you wish to continue? y/n [n]: y Ready to receive file c2600-is-mz.122-10a.bin ...
From the HyperTerminal menu bar, select Transfer > Send and specify the image name/location and xmodem
protocol as in steps 3 and 4 and start the transfer.
Send" />Select Transfer > Send
Once the transfer is complete, these messages appear:
Erasing flash at 0x60fc0000 program flash location 0x60990000 Download Complete!
Notice how the Flash gets erased towards the end automatically compared to Cisco C1600. That is the reason the f option is required here. Finally, ensure that you reset the console speed back to 9600 and change the boot sequence back to default when you change the configuration register back to 0x2102:
rommon 12 >confreg 0x2102 You must reset or power cycle for new config to take effect rommon 2 >reset System Bootstrap, Version 11.3(2)XA4, RELEASE SOFTWARE (fc1) Copyright (c) 1999 by cisco Systems, Inc. TAC:Home:SW:IOS:Specials for info C2600 platform with 65536 Kbytes of main memory program load complete, entry point: 0x80008000, size: 0x995ec8 Self decompressing the image : ################################ ################################################################## ################################################################## ######################## [OK] ............................ Cisco Internetwork Operating System Software IOS (tm) C2600 Software (C2600-IS-M), Version 12.2(10a), RELEASE SOFTWARE (fc1) Copyright (c) 1986-2002 by cisco Systems, Inc. Compiled Tue 21-May-02 14:16 by pwade Image text-base: 0x80008088, data-base: 0x810ABB08 cisco 2620 (MPC860) processor (revision 0x100) with 61440K/4096K bytes of memory. Processor board ID JAB03110MUB (3691217154) M860 processor: part number 0, mask 49 Bridging software. X.25 software, Version 3.0.0. 1 FastEthernet/IEEE 802.3 interface(s) 2 Voice FXS interface(s) 32K bytes of non-volatile configuration memory. 16384K bytes of processor board System flash (Read/Write) Press RETURN to get started! .........................
Use this xmodem
procedure in order to download a Cisco IOS software image onto a Cisco 3600 Series Router.
The standard procedure uses the default console speed of 9600 bits per second. Xmodem is a slow transfer protocol, and the transfer of a file as large as a Cisco IOS software image could take an long time. An increase to the console speed on the 3600 router helps decrease the time it takes to do the xmodem file transfer.
confreg utility
.rommon 2 >confreg do you wish to change the configuration? y/n [n]: y enable "diagnostic mode"? y/n [n]: n enable "use net in IP bcast address"? y/n [n]: n disable "load rom after netboot fails"? y/n [n]: n enable "use all zero broadcast"? y/n [n]: n enable "break/abort has effect"? y/n [n]: n enable "ignore system config info"? y/n [n]: n change console baud rate? y/n [n]: y enter rate: 0 = 9600, 1 = 4800, 2 = 1200, 3 = 2400 4 = 19200, 5 = 38400, 6 = 57600, 7 = 115200 [7]: 7 change the boot characteristics? y/n [n]: y enter to boot: 0 = ROM Monitor 1 = the boot helper image 2-15 = boot system [0]: 0 Configuration Summary enabled are: load rom after netboot fails console baud: 115200 boot: the ROM Monitor do you wish to change the configuration? y/n [n]: n You must reset or power cycle for new config to take effect rommom 2 >reset
2. Open a new hyperterminal with these settings:
Bits per second - 115200 Data bits - 8 Parity - None Stop bits - 1 Flow control - Hardware
3. After the hyperterminal is set, you receive a rommon prompt. Enter the xmodem
command. Before you enter an xmodem
command, there must be a software image that resides in your terminal or your local hard drive.
rommon 2 >xmodem -c c3640-i-mz.121-7.bin Do not start the sending program yet... File size Checksum File name 4936800 bytes (0x4b5460) 0x2dd7 c3640-i-mz.121-7.bin (bad checksum: 0x13eb) WARNING: All existing data in flash will be lost! Invoke this application only for disaster recovery. Do you wish to continue? y/n [n]: y Ready to receive file c3640-i-mz.121-7.bin ...
4. After this message appears, you have to download the file with xmodem
and this procedure:
Xmodem
.5. After the transfer completes, the router reloads itself. When the reload completes, press the return key to be taken to a prompt and to reset the configuration register and the console line speed.
Router>enable Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#config-register 0x2102 Router(config)#line con 0 Router(config-line)#speed 9600
6. Once you change the console speed, you can lose connectivity. Go to your terminal program, change the baud rate to 9600, and reconnect to the router console.
Router(config-line)#ctrl z Router#write mem Router#reload
Revision | Publish Date | Comments |
---|---|---|
2.0 |
11-Jan-2023 |
Made usage corrections, correct broken links, and recertified. |
1.0 |
14-Dec-2001 |
Initial Release |