2021-10-05 SONiC on ARM
在ARM平台上运行SONiC
很多开源的白盒交换机采用X86平台作为系统的控制平台,X86本身是作为通用计算平台开发的,在网络交换领域常用的CPU还有很多,例如起源于Motolora->独立为Freescale->最终合并成NXP的基于PowerPC架构的嵌入式控制器,基于MIPS架构的控制器等。这些嵌入式控制器因为其集成了大量的外设、如串口、网口、HDLC控制器、I2C接口等等,在网络通信领域获得了广泛的应用。由于PowerPC架构的生态发展不如arm架构,大量定位于网络交换领域应用的嵌入式控制器供应商从各种平台逐渐转移到了ARM架构,ARM架构在服务器领域和X86架构竞争的努力也推动了各种虚拟化、容器等服务器技术向ARM架构的移植,从而使得基于容器的SONiC可以方便地运行在ARM架构的CPU上。 2018年OCP峰会上,SONiC社区宣布了对ARM架构的支持,SONiC社区在github上介绍了编译ARM目标平台时需要进行的配置操作。
Usage for ARM Architecture To build Arm32 bit for (ARMHF) platform ARM build has dependency in docker version 18, if docker version is 19, downgrade to 18 as below sudo apt-get install --allow-downgrades -y docker-ce=5:18.09.03-0ubuntu-xenial sudo apt-get install --allow-downgrades -y docker-ce-cli=5:18.09.03-0ubuntu-xenial
# Execute make configure once to configure ASIC and ARCH
make configure PLATFORM=[ASIC_VENDOR] PLATFORM_ARCH=armhf
make target/sonic-[ASIC_VENDER]-armhf.bin
# example:
make configure PLATFORM=marvell-armhf PLATFORM_ARCH=armhf
make target/sonic-marvell-armhf.bin
To build Arm64 bit for platform
# Execute make configure once to configure ASIC and ARCH
make configure PLATFORM=[ASIC_VENDOR] PLATFORM_ARCH=arm64
# example:
make configure PLATFORM=marvell-arm64 PLATFORM_ARCH=arm64
操作系统问题解决了,但是真正让各种基于ARM平台的芯片上集成的外设和加速引擎发挥作用还需要大量的配置工作。
|