Setup Guide — Media Communications Mesh#
Prerequisites#
Linux server – Intel® Xeon processor recommended, e.g. Sapphire Rapids.
NIC – Network interface card compatible with DPDK, e.g. Intel® Ethernet Controller E810-C.
Updated NIC drivers and firmware – Strong recommendation is to update them. For more information and the latest drivers, see Support.
Build and install steps#
Clone the repository
git clone https://github.com/OpenVisualCloud/Media-Communications-Mesh.git
Navigate to the Media-Communications-Mesh directory
cd Media-Communications-Mesh
Install dependencies. There are two options.
Option A – Use environment preparation scripts. The scripts were tested under environments with
Ubuntu 20.04
,Ubuntu 22.04
,Ubuntu 24.04
,CentOS Stream8
, andCentOS Stream9
, installed alongside the Linux kernel 5.15.Run the following commands, execute
setup_ice_irdma.sh
to setup and install patched drivers for NIC cards, and exec second onesetup_build_env.sh
to prepared whole build stack that is mandatory for bare metal version build of MCM:sudo ./scripts/setup_build_env.sh sudo ./scripts/setup_ice_irdma.sh all
Reboot the host after the scripts are executed.
Option B – The following method is universal and should work for the most Linux distributions.
XDP-tools with eBPF – Follow the Simple guide for installation instructions.
MTL – Follow the MTL setup guide.
E810 driver – Follow the MTL NIC setup guide.
gRPC – Refer to the gRPC documentation for installation instructions.
Install required packages
Ubuntu/Debian
sudo apt-get update sudo apt-get install libbsd-dev cmake make rdma-core libibverbs-dev librdmacm-dev dracut
CentOS Stream
sudo yum install -y libbsd-devel cmake make rdma-core libibverbs-devel librdmacm-devel dracut
Install the
irdma
driver andlibfabric
:./scripts/setup_rdma_env.sh install
For more information, see Building and installing libfabric from source.
Reboot the host.
Build the Media Communications Mesh software components
Run the build script
./build.sh
This script builds and installs the following software components
SDK API library
File name:
libmcm_dp.so
Header file to include:
mesh_dp.h
Media Proxy
Executable file name:
media_proxy
Mesh Agent
Executable file name:
mesh-agent
Build for Docker#
Make sure the Docker engine is configured and installed. It is recommended to use the Buildx toolkit.
Clone the repository
git clone https://github.com/OpenVisualCloud/Media-Communications-Mesh.git
Navigate to the Media-Communications-Mesh directory
cd Media-Communications-Mesh
Build Docker images
Depending on the Docker installation, this step may require root privileges.
Run the following script from the root directory of the repository to build all Dockerfiles
./build_docker.sh
In case of success, the following Docker images will be available in the current Docker context:
mcm/sample-app:latest
mcm/media-proxy:latest
mcm/ffmpeg:latest
mcm/ffmpeg:6.1-latest
Check if Media Proxy can be run in a container by running the command below
docker run --privileged -it -v /var/run/mcm:/run/mcm -v /dev/hugepages:/dev/hugepages mcm/media-proxy:latest