This guide shows how to install or upgrade PicOS from scratch.
Default baud rate: 115200 8 data bits, no parity, 1 stop bit
Bypass the default U-Boot menu and get into the flash Linux environment.
Hit any key to stop autoboot messagerun flash_bootcmdFrom here you now have a basic Linux environment. You can check dmesg logs for any errors and etc. The PicOS firmware should be stored in a directory named /cf_card
First get into the flash Linux environment (see above). If /cf_card already exists with a previous firmware installed, you can skip to the next section about upgrading.
Otherwise, you’ll need to configure the compact flash and set this directory up yourself as follows:
df or mount
umount /cf_card)fdisk /dev/hdamke2fs -j /dev/hda1mount /dev/hda1 /cf_cardFrom here, you can continue on to the section about upgrading (the steps should be identical).
This step involves fetching a new image from another (preferably local) computer via TFTP. The other server should have a TFTP server running and the new PicOS image (in a .tar.gz format) already sitting in its upload directory.
tftpd-hpa package for the server/var/lib/tftpboot/etc/default/tftpd-hpaTo upgrade PicOS, first get into the flash Linux environment (see above). The PicOS installation should be in the /cf_card directory.
cd to the /cf_card directory and ensure it’s empty (it’s fine for lost+found directory to be there)eth0 within the switch) an IP addresstftp -g -l rootfs.tar.gz -r <remote_filename> <remote_server_ip>
tar zxvf rootfs.tar.gz
syncreboot
NOTE: The first time rebooting with a new firmware will take several minutes
By default, PicOS will boot into it’s “XorPlus” mode. This can be modified to boot into a pure OVS mode.
admin / pica8picos_boot and change to PicOS OVS/OpenFlow mode, entering whatever configuration questions askedreboot nowNOTE: The first time rebooting into PicOS OVS mode may take several minutes
From within the new PicOS OVS environment you can do the following:
ovs-vsctl and ovs-ofctl commandsTo create an OVS bridge and add the switch’s interfaces, you need to nake sure the bridge is created as type pica8 and add the interfaces as type pica8 as well. For example:
ovs-vsctl add-br br0 -- set bridge br0 datapath_type=pica8
ovs-vsctl add-port br0 te-1/1/1 -- set interface te-1/1/1 type=pica8
Examples to configure the DPID, the OpenFlow version, or set any interfaces to 1 gigabit mode:
ovs-vsctl set bridge br0 protocols=OpenFlow10
ovs-vsctl set bridge br0 other-config:datapath-id=0000010010030093 # Has to be 16 chars
ovs-vsctl set-controller br0 tcp:10.10.60.10:6633
ovs-vsctl set interface te-1/1/11 options:link_speed=1G
http://www.pica8.com/wp-content/uploads/2015/09/v2.0/pdf/2.0.1-image-upgrade-guide.pdf http://www.pica8.com/documents/html/ovs_configuration_guide/1639927.html https://docs.google.com/document/d/1Q0MAKKXfAVB8NY0YcrRmiRtq2foV08G5Ogaktccszbo/edit
Potential causes for various issues, and how to fix them.
printenv, and check what the bootcmd variable is, or what other variable it runsThe following is a sample environment from after upgrading a 10 GE switch from Indigo to PicOS. Note that bootcmd runs cfcard_bootcmd2, which is for PicOS. There’s also an older cfcard_bootcmd which was for Indigo. You can change the bootcmd variable to run any other variable, just remember to save the new configuration to the on-board flash.
=> printenv
flash_bootcmd=setenv bootargs root=/dev/ram console=ttyS0,$baudrate; bootm ffd00000 ff000000 ffee0000
cfcard_bootcmd=setenv bootargs root=/dev/ram console=ttyS0,$baudrate; ext2load ide 0:1 0x1000000 /uImage;ext2load ide 0:1 0x2000000 /uInitrd2m;ext2load ide 0:1 0x400000 /LB9A.dtb;bootm 1000000 2000000 400000
bootdelay=5
baudrate=115200
loads_echo=1
ipaddr=192.168.2.1
serverip=192.168.2.12
rootpath=/nfsroot
gatewayip=192.168.2.254
netmask=255.255.255.0
hostname=LB9A_X
bootfile=eldk-quanta
loadaddr=4000000
ethact=TSEC0
filesize=1CD2AB
cfcard_bootcmd2=setenv bootargs root=/dev/hda1 rw noinitrd console=ttyS0,$baudrate; ext2load ide 0:1 0x1000000 boot/uImage;ext2load ide 0:1 0x400000 boot/LB9A.dtb;bootm 1000000 - 400000
bootcmd=run cfcard_bootcmd2
ethaddr=e8:9a:8f:91:af:97
eth1addr=e8:9a:8f:91:af:98
stdin=serial
stdout=serial
stderr=serial