Olive refers to a regular PC that's running Juniper Networks' JUNOS software. Juniper developed Olive early on so they could perform testing of JUNOS during development. These days Olive is deprecated in favor of cheap, low-end M and J-series routers.
Olive is in no way, shape, or form supported by Juniper or JTAC.
Olive requires a valid copy of a JUNOS jinstall file. This file can be found on a "real" Juniper router and/or obtained from Juniper under a support contract.
Preparing for Install
Requirements:
FreeBSD 4.x ISO image
A valid jinstall package for JUNOS <= 7.4
Intel network cards that use the fxp or em driver
Serial cable/null-modem cable
If you're reading this page you're probably aware that JUNOS is based on FreeBSD 4.x. A copy of FreeBSD will be used bootstrap into JUNOS.
The jinstall package is a literal FreeBSD software package (think pkg_add) that contains JUNOS. To do the initial install you'll need JUNOS 7.4 or earlier (more on this below).
The right network cards are crucial to having Olive do anything useful. As other sites have documented (see References), Intel-based cards are the only ones supported, specifically cards supported by the FreeBSD 4.x fxp and em drivers.
Just like the real deal, Olive systems are managed initially through their serial port. You'll need a serial cable or null-modem cable to manage the box and do initial configuration.
Installation
Install FreeBSD 4.x. A very generic installation is all that's required. Much of it gets blown away when you installl the JUNOS package anyways. Setup your disklabels like this:
ad0s1a / 100M
ad0s1b swap 1G
ad0s1e /config 12M
ad0s1f /var large (like, the rest of the disk)
During the first reboot after the JUNOS package is installed, the install script will repartition the disk appropriately if it doesn't like what it finds. The sizes listed above are what the script resized everything to in my Olive install.
After installation, boot the system normally, do a bit of tweaking and install JUNOS.
At this point, if you tried to install anything higher than JUNOS 7.4 you'll get an error message and the pkg_add will stop.
ELF binary type "0" not known.
Abort trap
Whenever you upgrade JUNOS it always checks to make sure your PICs are properly supported by the version you're upgrading to. To that end, there is a binary within the package called checkpic. The checkpic binary in newer JUNOS packages causes the ELF error. Installing an older version of JUNOS and then upgrading to something newer seems to work just fine. I have a bit more info on checkpic here: checkpic.txt.
Once the JUNOS package is installed, reboot the system.
# reboot
Make sure your serial cable/null-modem cable is connected so you can watch the bootup and manage the box once it's up.
The system will reboot and run the bootstrap installer. It'll repartition the disk (if necessary), install more packages (jbase, jkernel, jpfe, etc) and then it'll reboot again. Once it comes back up you can login.
root@olive% cli
root@olive> show version
Hostname: olive
Model: olive
JUNOS Base OS boot [7.1R1.3]
JUNOS Base OS Software Suite [7.1R1.3]
JUNOS Kernel Software Suite [7.1R1.3]
JUNOS Packet Forwarding Engine Support (M20/M40) [7.1R1.3]
JUNOS Routing Software Suite [7.1R1.3]
JUNOS Online Documentation [7.1R1.3]
JUNOS Crypto Software Suite [7.1R1.3]
Limitations
Olive does have some limitations.
MTU on fxp and em Cards Limited to 1500 Bytes
The single greatest limitation is that MTU on the fxp and em NICs is locked at 1500 bytes by the driver. This impacts the ability to do vlan-tagging and MPLS. If you do configure an interface for vlan-tagging the router will drop the MTU of that logical interface to 1496 bytes in order to accomodate the dot1q header. So although everything works just fine, as soon as a full size Ethernet frame hits that interface it gets dropped.
There is somewhat of a workaround (at least with the fxp cards) and that is to put the interface into promiscuous mode by either running tcpdump(8) from the shell or using the command monitor traffic interface.
Multicast Traffic doesn't pass on Intel GigE Cards
The GigE cards don't seem to pass multicast traffic. Running monitor traffic interface shows zero received mcast packets. This will obviously be an issue when running any routing protocol that uses multicast for HELLOs, etc.
Hardware Support
The following NICs have been tested and known to work with Olive:
Intel EtherExpress Pro 10/100B (82557, 82559 chipset)
Intel PRO/1000MT, PRO/1000GT
You will need a recent version of JUNOS in order to use the later generation 1000MT/GT cards.
Although I haven't been able to test this, I suspect any card supported by the FreeBSD 4.x fxp or em driver will work just fine.
Here is a show system boot-messages from my Olive system.