Getting Started

To install and run ONL you need is an ONL Compatible switch (see
http://opennetlinux.org/hcl) and the ONL installer binary. Every
ONL compatible switch ships with the ONIE installer environment installed
which gives you a multitude of ways of getting ONL installed on your switch.

We document the easiest ways here (manual install via console and NFS)
but the http://onie.org website contains a variety of installation
methods including via USB, over the network, and even via ssh.

The resulting installation has a default account ("root") with a default
password ("onl"). The network interface is disabled by default so that
you can change the root password before the system comes up.

ONL Manual Install

1) Attach a serial terminal to the switch
2) Boot switch and hit return to go to ONIE''s interactive mode
2a) You must wait until after uboot has finished loading; if you
accidentally interupt uboot first, just run boot to continue
booting into ONIE
3) Download the ONL installer from http://opennetlinux.org and run it by hand

Expected Serial Console Output (from an QuantaMesh LB9, other switches ouput will vary):

    U-Boot 2010.12 (Oct 08 2013 - 17:11:37)

    CPU:   8541, Version: 1.1, (0x80720011)
    Core:  Unknown, Version: 2.0, (0x80200020)
    Clock Configuration:
           CPU0:825  MHz, 
           CCB:330  MHz,
           DDR:165  MHz (330 MT/s data rate), LBC:41.250 MHz
    CPM:   330 MHz
    L1:    D-cache 32 kB enabled
           I-cache 32 kB enabled
    I2C:   ready
    DRAM:  Detected UDIMM TS128MSD64V3A
    Detected UDIMM(s)
    DDR: 1 GiB (DDR1, 64-bit, CL=2.5, ECC off)
    FLASH: 64 MiB
    L2:    256 KB enabled

    LB9 U-Boot
      Product Name          : LB9
      Model Name            : QUANTA LB9
      Serial Number         : QTFCA63280001
      Part Number           : 1LB9BZZ0STQ
      Label Revision Number : 1
      Hardware Version      : 1.0
      Platform Version      : 0xb901 
      Release Date          : 2013/7/5
      MAC Address           : 08:9e:01:ce:bd:2d
    Set ethaddr MAC address = 08:9e:01:ce:bd:2d
    In:    serial
    Out:   serial
    Err:   serial
    Net:   TSEC0: PHY is Broadcom BCM5461S (2060c1)
    TSEC0
    IDE:   Bus 0: OK 
      Device 0: Model: 4GB CompactFlash Card Firm: Ver6.04J Ser#: CDE207331D0100001484
                Type: Hard Disk
                Capacity: 3811.9 MB = 3.7 GB (7806960 x 512)
    Hit any key to stop autoboot:  0 
    ## Error: "nos_bootcmd" not defined
    Loading Open Network Install Environment ...
    Platform: powerpc-quanta_lb9-r0
    Version : 1.5.2-20131008154633
    WARNING: adjusting available memory to 30000000
    ## Booting kernel from Legacy Image at 04000000 ...
       Image Name:   quanta_lb9-r0
       Image Type:   PowerPC Linux Multi-File Image (gzip compressed)
       Data Size:    3479390 Bytes = 3.3 MiB
       Load Address: 00000000
       Entry Point:  00000000
       Contents:
          Image 0: 2762740 Bytes = 2.6 MiB
          Image 1: 707380 Bytes = 690.8 KiB
          Image 2: 9254 Bytes = 9 KiB
       Verifying Checksum ... OK
    ## Loading init Ramdisk from multi component Legacy Image at 04000000 ...
    ## Flattened Device Tree from multi component Image at 04000000
       Booting using the fdt at 0x434f378
       Uncompressing Multi-File Image ... OK
       Loading Ramdisk to 2ff53000, end 2ffffb34 ... OK
       Loading Device Tree to 03ffa000, end 03fff425 ... OK
    Cannot reserve gpages without hugetlb enabled
    setup_arch: bootmem
    quanta_lb9_setup_arch()
    arch: exit

    ONIE: Using DHCPv4 addr: eth0: 10.7.1.10 / 255.254.0.0
    discover: installer mode detected.  Running installer.

    Please press Enter to activate this console. ONIE: Using DHCPv4 addr: eth0: 10.7.1.10 / 255.254.0.0
    ONIE: Starting ONIE Service Discovery

    To check the install status inspect /var/log/onie.log.
    Try this:  tail -f /var/log/onie.log

Now press RETURN here to jump into ONIE''s manual installer mode. You should see:

    ** Installer Mode Enabled **

    ONIE:/ # 

Then simply download the latest ONL installer for the appropriate
architecture (powerpc or amd64) from the website and run it.

    ONIE:/ # install_url http://opennetlinux.org/binaries/latest-$ARCH.installer

    Connecting to opennetlinux.org (107.170.237.53:80)
    Open Network Installer running under ONIE.
    Installer Version: Open Network Linux e148b7a (powerpc.all,2014.05.21.18.57,e148b7a90131c07eb8d49f74316baf8f2aae92c6)
    Detected platform: powerpc-quanta-lb9-r0
    Installing in standalone mode.
    Unpacking Open Network Linux installer files...
    onl.powerpc-as4600-54t.loader
    onl.powerpc-as5600-52x.loader
    ...

Note:

1) If there is different OS(other than ONL) running on the switch.
Then halt the booting process at U-boot mode, Then check for the ONIE

details in the environment(=> printenv). Open the ONIE in rescue mode,
while ONIE has many different installation modes,
we recommend the rescue mode for doing a manual (read: via console)
because it disables the automatic ONIE server discovery.
Then run (=> run onie_rescue) command to take you to the ONIE environment.

2) For development purpose, to load freshly build ONL installer from directly ONIE.
Run a http server from the build machine (example:python -m SimpleHTTPServer 8000) and access it as,

example: ONIE:/ # install_url http://buildmachineIPAddress:/path/to/directory/onl-09b7bba-powerpc-all.2016.02.05.05.17.installer # update for specific file/date/build

Also, you can use install via scp with two steps,

   example: ONIE:/ # scp [username]@buildmachineIPAddress:/path/to/directory/onl-09b7bba-powerpc-all.2016.02.05.05.17.installer  ONL.installer # update for specific file/date/build
            ONIE:/ # sh ONL.installer

ONL NFS Root Directory

Given that the default installation of ONL does not persist files across
reboots (this is intentional -- flash disks should not be written to
as often as spinning disks), it is sometimes useful to have a normally
writable, larger disk available for the switch. Enter the NFS root
directory which enables a switch to boot ONL from a remote NFS partition.
While it is possible to simply fetch the SWI file from an NFS server
(keeping the same non-persisted behavior), the much more useful feature
is to have the root file system NFS hosted.

To enable NFS mounted root partition:

1) Run the ONL installer normally (e.g., via the manual mode per above) so that the ONL
loader is installed.

2) Edit /mnt/onl/boot/boot-config, enable DHCP, and change the SWI variable to point to a URL of the form "nfs://$ip[:port]/path/to/directory/". For example, on my machine, this looks like:

 # cat /mnt/onl/boot/boot-config
 SWI=nfs://10.6.0.4/home/robs/export/ly2-1/  # trailing '/' is critical
 NETAUTO=dhcp                                # optional, but likely what you want
 NETDEV=ma1                                  # leave untouched

3) On server $ip, in /path/to/directory, unzip a target .SWI file, e.g.,

 # wget http://opennetlinux.org/binaries/latest.swi
 # unzip latest.swi

4) unsquash the compressed root file system as directory 'rootfs-$arch':

 # unsquashfs -d rootfs-$arch rootfs-$arch.sqsh  # e.g., $arch = 'powerpc'h

Now reboot your switch and it should boot automatically into the NFS root file system.
Note that the SWI structure is still maintained:

 robs@sbs3:~/export/ly2-1$ ls -l
 total 109048
 -rw-r--r--  1 robs __USERS__   3382017 Nov  4 22:28 initrd-powerpc
 -rwxr-xr-x  1 robs __USERS__   6942960 Nov  4 22:28 kernel-85xx*
 -rw-r--r--  1 robs __USERS__ 101322752 Nov  4 22:28 rootfs-powerpc.sqsh
 drwxrwxr-x 22 robs __USERS__      4096 Jan  2 18:21 rootfs-powerpc/
 -rw-r--r--  1 robs __USERS__       100 Nov  4 22:29 version

That is:

Note: If NFS root squash is set on the server, you might get a permission error while booting. To fix this, you can set 'no_disable_squash' in /etc/exports. However, be aware of the security implications as root on a client machine will now have the same access privilege on the files as root on the NFS server.


© 2013-2017 Big Switch Networks, Inc. All rights reserved.