You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.6 KiB
Plaintext
62 lines
2.6 KiB
Plaintext
CILO - CiscoLoad Sane Bootloader for real ELF Files
|
|
|
|
1. What is this?
|
|
CILO, or CiscoLoad is a ROMMON bootloader replacement for Cisco Routers.
|
|
The ROMMON bootloader will load CILO, which then can be used to boot IOS
|
|
or an alternative operating system.
|
|
|
|
2. Why do I need this?
|
|
The ROMMON bootloader is extremely broken -- it is only capable of
|
|
understanding a single ELF segment in an ELF file. Of course, because Linux
|
|
and other operating systems rely fairly heavily on being able to have more
|
|
than one segment in the output ELF file, this clearly isn't acceptable.
|
|
|
|
CiscoLoad works around this by providing an ELF file that looks somewhat
|
|
like an IOS image to ROMMON; from CiscoLoad, it is then possible to load an
|
|
arbitrary standalone ELF file, such as a kernel image, or even an IOS image.
|
|
|
|
3. How do I build CILO?
|
|
Assuming you have a mips-elf toolchain installed (how to do this is beyond
|
|
the scope of this document, but it should be simple to do. Just remember the
|
|
target architecture is mips-elf and not mips-unknown-linux-gnu), just go
|
|
to the root directory of the source distribution and type make. Everything
|
|
should build from there.
|
|
|
|
Next, build the second stage bootloader by going to the second/ directory
|
|
and typing make.
|
|
|
|
Copy the ciscoload.bin and ciscoload.two files to the router's flash along
|
|
with your kernel and set the router boot image to be ciscoload.bin.
|
|
|
|
4. How do I use CILO?
|
|
Assuming you have one of the supported routers, it is really quite easy.
|
|
In short, you must build CiscoLoad, build the stage-two loader and copy
|
|
them to your device's flash, typically using IOS.
|
|
|
|
When the router boots, it will load CILO; CILO then will prompt you to
|
|
select the file you want to boot. Enter the file name you wish to boot, and
|
|
away you go!
|
|
|
|
Of course, it makes sense to put your kernel on your flash device as well.
|
|
|
|
5. What hardware is supported?
|
|
At this time, the Cisco 3600 Series of routers (3620 and 3640 at least) are
|
|
very well supported. As well, preliminary support is underway for the
|
|
Cisco 1700 Series routers.
|
|
|
|
6. What is ELFTool?
|
|
ELFTool is a small app that can be used to analyze ELF32 files. It is used
|
|
as a test case for the elf.h header and the ELF reading support in
|
|
CiscoLoad. To build it, go to the elftool/ directory in the source dist-
|
|
ribution, and type make.
|
|
|
|
7. Who wrote CiscoLoad?
|
|
CiscoLoad was the result of many wasted hours of Phil Vachon, who can be
|
|
reached at philippe@cowpig.ca.
|
|
|
|
The printf function was gracelessly lifted from the Linux Kernel.
|
|
|
|
8. What License is CiscoLoad shipped under
|
|
While CiscoLoad is a simple piece of software, the code is covered under the
|
|
GNU General Public License version 2.
|