This knowledge base has moved to the documentation site. Please visit the knowledge base here for the most up to date content. This site is no longer maintained.

[RETIRED] Building a Development Environment for Cumulus Linux


IMPORTANT! This article has retired, as it has been made obsolete by Cumulus VX. For a discussion on setting up development environment in Cumulus VX, read this community post.




The availability of Cumulus Linux for the ubiquitous x86 platform has facilitated the development of applications for Cumulus Linux. Cumulus Linux is a derivative of Debian Wheezy; however, improvements and modifications to libraries in Cumulus Linux can render applications built against stock Wheezy incompatible with Cumulus Linux. This article describes how to build a Debian Wheezy system that incorporates changes from Cumulus Linux in order to resolve dependencies when compiling binary applications for Cumulus Linux.

Scope of Coverage

This protocol may be needed for:

  • Building binary applications that have dependencies on *.so libraries included with Cumulus Linux.

This protocol is probably not needed for:

  • Applications written in interpreted languages such as python and perl.

This protocol is not intended to provide:

  • Source-level access to Cumulus Linux. For such access, please see
  • Cumulus Linux "look and feel". This sole intent of this protocol is to resolve dependencies while compiling binary applications for Cumulus Linux.


Protocol Overview

This process involves building a Debian Wheezy 7.0.0 machine and then upgrading the system with binary packages from the Cumulus Linux repositories.

Protocol Detail

  1. Install Debian Wheezy 7.0.0 using this iso. Select no when prompted to Use a network mirror? in order to prevent Debian updates from being applied during install.

    If you prefer to build your own iso, the following references cover use of the jigdo toolkit.

    Debian 7.0.0 x86-64 jigdo files (debian-7.0.0-amd64-CD-1.jigdo and debian-7.0.0-amd64-CD-1.template) are available here:

  2. Run the attached as root to configure install Debian and Cumulus Linux apt sources then "upgrade" the Debian 7.0.0 system using binary packages from the Cumulus Linux repositories. details

The following provides usage and operational details on the script.

Target Distribution

The target distribution must be specified ( accepts only one argument): CumulusLinux-2.2

Apt pinning

The Cumulus Linux repositories are pinned with priority 1001. This means that apt will downgrade to the Cumulus-provided version if a package is available. This is accomplished by setting the following in /etc/apt/preferences.d/cumulus

Package: *
Pin: release n="CumulusLinux-2.1*"
Pin-Priority: 1001

Some packages excluded

Some Cumulus packages are excluded from installation, including the following:

  • Packages with dependency / postinst issues (cl-basefiles)
  • Packages in the addons component
  • ASIC specific packages (switchd, bcm-modules)

If package installation fails on a particular package, that package can be excluded by appending the package name to the file cl-dev.excludes, which is created in the same directory as the script on the first run.


This support portal has moved

Cumulus Networks is now part of the NVIDIA Networking Business Unit! The NVIDIA Cumulus Global Support Services (GSS) team has merged its operations with the NVIDIA Mellanox support services team.

You can access NVIDIA Cumulus support content from the Mellanox support portal.

You open and update new cases on the Mellanox support portal. Any previous cases that have been closed have been migrated to the Mellanox support portal.

Cases that are still open on the Cumulus portal will continue to be managed on the Cumulus portal. Once these cases close, they will be moved to the Mellanox support portal.

Powered by Zendesk