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.
Preparing the Build Environment
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.
Installing Built Components
After following the build instructions, copy the newly created files to the router's filesystem, replacing the original components.
Important Note on Running Custom Firmware
- Even small changes to open-source utilities can have unforeseen impacts, potentially causing router malfunctions.
- Advantech CZ R&D is not responsible for issues caused by custom firmware. Such changes can void certifications and guarantees.
- Custom firmware may lack proprietary features, reducing hardware support, and voids the device warranty.
- Running custom firmware voids warranties and may require the removal of any certification labels. If distributing the device, you must also remove the Advantech label.
- Advantech will not support custom firmware. Repairs due to unbootable devices will incur support fees.
- Uploading custom firmware may trigger a warning due to a missing digital signature, which is only applicable for v3 generation devices.
Licenses used in our routers
- Apache License - A permissive license that allows users to use the software for any purpose, to distribute it, and to modify it under certain conditions.
- 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.
- BSD 3-Clause License - A slightly more restrictive BSD license, often called the "New BSD License," which adds a clause to prevent misuse of the copyright holder’s name.
- GNU General Public License v2 - A free software license that guarantees end users the freedom to run, study, share, and modify the software.
- GNU General Public License v3 - A stronger copyleft license that ensures the software stays free under certain conditions, including patent protection.
- GNU Lesser General Public License v2.1 or later - A free software license that allows linking of non-(L)GPL code with (L)GPL libraries.
- ISC License - A permissive free software license, functionally equivalent to the simplified BSD and MIT licenses.
- MIT License - A permissive license that is short and to the point, allowing for reuse with very few restrictions.
Full list of licenses can be found in the System Information section of each router's administration interface.