To (re-)build an open-source component of ICR-OS, fetch the source code matching your firmware version from the source code page. You can find the ICR-OS version under System Information on the router's default page. The corresponding source file is named following the format: firmware-major.minor.patch-src.tar
(e.g., firmware-6.1.5-src.tar
).
Detailed instructions can be found in the README file within the archive. Patches to open-source components are provided as standalone patches for clarity. Building a complete firmware image is possible, though the device will reject unsigned firmware. However, replacing open-source components, tools, or libraries is allowed via SSH, but be careful—changes to core components could render the device inoperable.
You will need parts of the build environment whether you're building a Router App or any open-source component of ICR-OS. A 64-bit Linux-based OS, or a virtual machine running it, is required for a proper start.
The instructions are tested on Ubuntu and Debian. For rpm-based distributions, you will need to adjust the commands for your package manager. Fedora is also a fine choice. If you're using another distribution, you're likely skilled enough to adapt.
Development resources are available at Bitbucket. The first step is obtaining a cross compiler to generate binaries for the router. Details on this process are covered in the SDK section.
After following the build instructions, copy the newly created files to the router's filesystem, replacing the original components.
Berkeley Software Distribution License - A family of permissive free software licenses, allowing for minimal restrictions on redistribution.
BSD 2-Clause License - A simplified BSD License with two clauses, often referred to as the "Simplified" or "FreeBSD" license.
Full list of licenses can be found in the System Information section of each router's administration interface.