Olive VMs

chepazzo

New Member
Jul 27, 2012
3
0
1
For anyone who is having issues booting an Olive in ProxMox, hopefully this will help. I will outline some of the ProxMox specific hurdles and how I overcame them. I am skipping any general kvm issues that are not proxmox as that information is available elsewhere.

So I've seen a number of threads (though none on these forums) on getting Juniper Olives to run in a KVM, so I tried it and got it mostly working. I got it working via cmdline, but not via the GUI.
Yesterday, I got it to work via the GUI.

Parameters not available in the GUI:
  • nographic
Installing JunOS disables the video and redirects all text output to "serial" which will display to the terminal if you use the -nographic arg. This is the equivalent to plugging a terminal into the serial OOB port of a phy router.
Use this instead of -daemonize when launching from the cmdline!​

  • -bios /usr/share/kvm/bios-0.10.6.bin
The olive also requires a different BIOS (instructions and details elsewhere in the interwebs).

  • network type: i82559er
This is not listed as an option in the dropdown lists, but required nonetheless.​

  • not -nodefaults
Ok, so the GUI automatically adds the '-nodefaults' argument which causes the olive to not boot and it is not an option to disable this.​

  • Access the "serial" output
The JunOS installation disables the standard video output which is what the GUI uses when you click 'console'​

While the GUI does not support any of these, it does allow an 'args:' parameter in the VM config file.
file:/etc/pve/nodes/myserver/qemu-server/100.conf​

(edit) The first issue isn't an issue as -nographic only directs the serial output to the console and not to vnc, so can't be used with -daemonize. The way to access the serial output is explained at the end.

For the second issue, the following line in my config file did the trick:
Code:
args: -bios /usr/share/kvm/bios-0.10.6.bin

The third one is also fixable in that same config file.
To do this, I used the GUI to create the networks, then started and stopped the VM to create the initial entries (and MAC addrs) in the file, then replaced the nettype in the file with 'i82559er'.
Code:
net0: i82559er=CE:29:3D:DD:D7:AF,bridge=vmbr0
net1: i82559er=B2:4D:4F:22:E5:D5,bridge=vmbr1
net2: i82559er=86:AF:0E:57:83:0F,bridge=vmbr2
net3: i82559er=7E:83:D2:6C:A4:89,bridge=vmbr3
net4: i82559er=46:0D:C1:88:C4:F8,bridge=vmbr4
net5: i82559er=D6:55:98:FB:C5:5A,bridge=vmbr5

For #4, I had to edit some PERL.
1. Add a 'nodefaults' option to the config file parser and set the default value to 'true' (to not mess up any other VMs):
/usr/share/perl5/PVE/OpenVZ.pm
Code:
my $confdesc = {
    nodefaults => {
    optional => 1,
    type => 'boolean',
    description => "Specifies if a VM should get the -nodefaults argument (required for Juniper Olive).",
    default => 1,
    },
    onboot => {
    optional => 1,
    type => 'boolean',
    description => "Specifies whether a VM will be started during system bootup.",
    default => 0,
    },
<etc>
}

2. Make the '-nodefaults' argument conditional on that parameter being set.
(this file also contains another parser, so I changed it, too, just in case).
/usr/share/perl5/PVE/QemuServer.pm

Code:
my $confdesc = {
    nodefaults => {
    optional => 1,
    type => 'boolean',
    description => "Specifies if a VM should get the -nodefaults argument (required for Juniper Olive).",
    default => 1,
    },
<etc>
}


sub config_to_command {
<etc>
    push @$cmd, '-nodefaults' unless defined($conf->{nodefaults}) && $conf->{nodefaults} == 0;
<etc>
}

For #5, well it actually did work, but you have to hit ctrl-alt-2 in the VNC window to switch to the serial output.

So, now I can start and stop my olives from the GUI, with just a little config adjustment.

If there's anyway to get the official PVE code modified to allow for the negating the -nodefaults option, that would be grand.
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!