sonic编译过程

文章目录

1.0虚拟机选择

原则上所有的系统都可以编译sonic,此处我们选择centos 7.7,虚拟机的内存空间建议给4G,建议根目录空间有200G(因为在编译的时候容器会占有非常大的空间,而容器的就位于根目录下的var目录中,所以我们建议安装的时候给根目录200G,或者给var目录单独挂载200G空间)
 

2.0虚拟机安装

具体安装过程省略,其中关键步骤如下

此处我们选择硬盘大小为300G,其中200G都给根目录,100G给家目录(此处家目录是用来存放源码和编译文件的目录),

在这里插入图片描述

安装时可以选择图形化安装,因为图形化安装有很多服务都自带不用自己手动安装比如ssh等等,

在这里插入图片描述

上面的图片中三个红框内随便选一个都可以 ,此处选择GNOME桌面

3.0 系统配置

首先配置虚拟机可以上网,具体步骤略

先将官方镜像源去掉

[root@localhost ~]# rm -rf /etc/yum.repos.d/*

此处我们配置centos 7的基础源

[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

配置centos7的epel源

[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

清除原有缓存并且,生成新缓存

[root@localhost ~]# yum clean all && yum makecache fast

4.0 安装docker

因为sonic编译的时候是在一个隔离的容器环境中进行编译,这个容器环境已经被sonic维护人员制作好了,我们只需要安装docker拉取定制容器,在容器中进行编译即可
首先我们添加系统工具

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

添加docker的阿里云镜像

[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  

生成缓存

[root@localhost ~]#  yum makecache fast

安装docker社区版

[root@localhost ~]# yum install docker-ce  -y

启动docker服务,并且使其开机自启

[root@localhost ~]# systemctl start docker  && systemctl enable docker

5.0 安装sonic

安装python的包工具pip

[root@localhost ~]# yum install -y python-pip

下载pip包版本限制在9.0.3

[root@localhost ~]# python2 -m pip install -U pip==9.0.3

安装jinja2的包使其版本大于2.10(在后面自动化编译是需要用jinja2包去识别jinja2类型的配置文件)

[root@localhost ~]# pip install --force-reinstall --upgrade jinja2>=2.10
[root@localhost ~]# pip install j2cli

创建用户sonic(此处用户名自定义),我们用sonic用户下载编译文件到sonic家目录

[root@localhost ~]# useradd sonic

将sonic用户加入到docker组中去,使sonic用户可以驱动docker

[root@localhost ~]# gpasswd  -a sonic docker

加载overlay的文件驱动模块

[root@localhost ~]# modprobe  overlay

下载git工具

[root@localhost ~]# yum install git -y    

切换用户到sonic

[root@localhost ~]# su - sonic

退回sonic的家目录

[sonic@localhost ~]$ cd ~

克隆github上的sonic-buildimage

[sonic@localhost ~]$ git clone https://github.com/Azure/sonic-buildimage.git

进入下载的文件

[sonic@localhost ~]$ cd sonic-buildimage/

初始化 ,下载各个芯片平台的SDK,SAI、和二层,三层协议代码

[sonic@localhost sonic-buildimage]$ make init

选择芯片的厂家

[sonic@localhost sonic-buildimage]$ make configure PLATFORM=broadcom

make all

[sonic@localhost sonic-buildimage]$ make all

猜你喜欢

转载自blog.csdn.net/weixin_39094034/article/details/114819265