在一台Linux系统的主机或服务器上安装最新版本的 docker CE,然后再进行接下来的操作。
创建Linux操作系统用户nocsys,且该用户要加入docker 用户组中:
sudo useradd -d /home/nocsys -m -g docker nocsys
设定nocsys用户的密码:
sudo passwd nocsys
编辑 /etc/sudoers ,在最后一行添加:
nocsys ALL=(ALL:ALL) NOPASSWD:ALL
切换到刚才创建的nocsys用户:
su – nocsys
加载内核模块:
sudo modprobe overlay
.
git clone https://github.com/Azure/sonic-buildimage.git
cd sonic-buildimage
切换代码分支。建议选择最近发布的代码分支,比如本文选择截止目前最新的分支201904:
将交换机admin用户密码改为nocsys :
将L3 功能改为基于frr :
网络良好的情况下,完成下列编译工作大约需要三个小时。如果是克隆代码后的第一次编译,所花时间会更长。
make init
根据交换机型号选择正确的的交换芯片平台(如果不清楚ASIC平台的话,可以去SONiC社区这个网页查找: https://github.com/Azure/SONiC/wiki/Supported-Devices-and-Platforms)。如果是Barefoot交换机,交换平台代码就是 p4。而 broadcom则代表基于博通ASIC的交换机:
make configure PLATFORM=broadcom
编译跟Debian 9 Stretch发行版相关的包:
BLDENV=stretch make stretch
编译最终的SONiC操作系统镜像:
make target/sonic-broadcom.bin
编译完成后在target目录下生成文件名为“sonic-broadcom.bin”的SONiC镜像: