I've been using the same set of applications on an IR809 for a while now. I gave the unit to a colleague and put the latest version of IOS on another unit.
I turned it on with the mini-USB serial cable plugged into my laptop and was faced with the dreaded: rommon-2
When I tried to boot the image that was in flash:, I got this error:
% ERROR: Image name flash:/ir800-universalk9-mz.SPA.155-3.M is invalid (Bad se...
I'm not sure how this happened. Now I have a router without any bootable IOS image on it.
The IR809 is a different beast than normal Cisco routers. It has a hypervisor running the entire show, much like a VMware blade server. Access to the actual hardware is via rommon-1, rommon-2 indicates the IOS image won't boot. Trouble is, rommon-2 is brain damaged. If does not have the "copy" command, which could be used to copy a boot image from USB into flash. In this case it would have been handy. What to do?
I setup a TFTP server and tried to use "boot" to try to bring up IOS.
First: setup a TFTP server on my brain damaged Windows laptop... where to get it? I've been using tftpd32 for a while, it works well.
Give the Laptop NIC an IP address, I chose 192.168.11.234
Next connect the NIC from my Laptop to GE0 on the IR809. Enter the command to give it an IP address, etc.:
rommon-2> set ip 192.168.11.222 255.255.255.0 rommon-2> set gw 192.168.11.234 Correct gateway addr 192.168.11.234 Address: 192.168.11.222 Netmask: 255.255.255.0 Server: 0.0.0.0 Gateway: 192.168.11.234
So far, so good. Now boot.
rommon-2> boot tftp://192.168.11.234/ir800-universalk9-bundle.SPA.156-3.M.bin Address: 192.168.11.222 Netmask: 255.255.255.0 Server: 192.168.11.234 Gateway: 192.168.11.234 Booting: /ir800-universalk9-bundle.SPA.156-3.M.bin console=ttyS0,9600n8nn quie loader_ver="0.0.5"....Retry 1: Congestion or cable issue Retry 1: Congestion or cable issue Retry 1: Congestion or cable issue ... TFTP error 0 (Undefined error code) Error 25: Disk read error
Now what? (I realize now, this was dumb. The "bundle" is not bootable..., but let's continue)
Turn off power... rommon-2 again. boot...
rommon-2> boot flash:ir800-universalk9-mz.SPA.155-3.M Booting image: flash:ir800-universalk9-mz.SPA.155-3.M.... [Multiboot-elf, , shtab=0x9c90500 Signature verification was successful, entry=0x110240] [CU:0] Jumps to: 0x110240
So far so good. (Now I realize, that the same image actually booted at this point, I still don't know what fixed it).
Ok, let's install 15(6).3. Now I have "copy" at least:
copy tftp://192.168.11.234/ir800-universalk9-bundle.SPA.156-3.M.bin flash:
Worked.
Set the boot image config...
IR800#conf t IR800(config)#boot system flash:/ir800-universalk9-mz.SPA.155-3.M IR800(config)#end IR800#wr mem IR800#reload
Now I'm in business, or so I thought. I tried to install a big application and got the error that the IR809 didn't have enough available RAM. What's happening? Using the ioxclient, I took a look:
$ ioxclient plt rsmgr alc
Currently active profile : IR809-VZ-X045
Command Name: plt-rsmgr-allocations
Resource Allocation Info :
$ ioxclient plt rsmgr alc
Currently active profile : IR809-VZ-X045
Command Name: plt-rsmgr-allocations
Resource Allocation Info :
{
"cpu": {
"app_cpu_allocations": [],
"available_cpu": 732,
"total_cpu": 732
},
"devices": {},
"disk": {
"app_disk_allocations": [],
"available_persistent_disk": 256,
"total_persistent_disk": 256
},
"memory": {
"app_memory_allocations": [],
"available_memory": 360,
"total_memory": 360
}
}
Hmm... last I checked the previous unit had 720MB available, not 360MB. Don't panic.
I remembered having to install the "ioxvm" package in the past. So, I guessed this was the issue. (At this point I installed the wrong IOx version - 1.1.x.x, but recovered by installing 1.2.x.x).
Let's take another look:
$ ioxclient plt rsmgr alc
Currently active profile : IR809-VZ-X045
Command Name: plt-rsmgr-allocations
Saving current configuration
Resource Allocation Info :
$ ioxclient plt rsmgr alc
Currently active profile : IR809-VZ-X045
Command Name: plt-rsmgr-allocations
Saving current configuration
Resource Allocation Info :
{
"cpu": {
"app_cpu_allocations": [],
"available_cpu": 732,
"total_cpu": 732
},
"devices": {
"app_device_mapping": []
},
"disk": {
"app_disk_allocations": [],
"available_persistent_disk": 607,
"total_persistent_disk": 607
},
"memory": {
"app_memory_allocations": [],
"available_memory": 720,
"total_memory": 720
}
}
Ahh... problem solved.