Skip to main content
FW version: Stable

srm

srm is a CLI tool for upgrading device firmware using the SRM online service. The tool communicates with the siliXcon SRM server. Hence the name.

The SRM bootloader is a local tool for performing the flashing process. This tool establishes a dialog with the device, our server and optionally, with the user - to offer available options. The firmware (container) release selection is either manual or automated.

info

The current version of LaunchPad features a GUI for upgrading device firmware. Note that this tool is designed for low-level operations and no longer supports interactive mode.

info

Any CLI tool has an embedded manual page. To view it, execute e.g. srm -?

Command line mode

srm mediates communication between the device and SRM server. It read main information from the device and it send to the SRM server together with mandatory parameter SRM QUERY. This data is processed by SRM server. The result from the server is processed by srm.

srm [connection options] [general options] {SRM QUERY}

The parameter SRM QUERY is mandatory and specifies the operation. The available operations are:

  • UPGRADE
  • LIST
  • LISTALL

You can specify the firmware version you want to list or upgrade to. Specification of the QUERY is described in the SRM query documentation.

Output for srm LIST: srm list

Output for srm LISTALL: srm list all

If output format is set to JSON, the standard output for srm -f json LIST 2>NUL is: srm json list

And similar output we get for srm -f json LISTALL. Standard output is:

{
"query": "LISTALL",
"server": "Odoo 17 Silixcon",
"result": 0,
"string_result": "OK",
"current_rom": {
"swid": "VECTOR_LYNX_generic v5.2.0 Sep 4 2024",
"release_type": "stable",
"available_upgrade": {
"swid": "VECTOR_LYNX_generic v5.4.0 Jan 7 2025",
"note_public": ""
}
},
"listall": {
"VECTOR_LYNX_resolver": {
"note_public": false,
"releases": [
{
"swid": "VECTOR_LYNX_resolver v6.0.0-nightly Jan 16 2025",
"release_type": "nightly",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_resolver v6.0.0-nightly Jan 16 2025",
"release_type": "nightly",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_resolver v5.4.0 Jan 7 2025",
"release_type": "stable",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_resolver v5.3.2-testing Oct 16 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_resolver v5.3.2-testing Oct 16 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_resolver v5.3.0-testing Sep 6 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_resolver v5.3.0-testing Sep 6 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_resolver v5.2.0 Sep 4 2024",
"release_type": "stable",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_resolver v5.2.0 Sep 4 2024",
"release_type": "stable",
"note_public": ""
}
]
},
"VECTOR_LYNX_cakeosa": {
"note_public": false,
"releases": [
{
"swid": "VECTOR_LYNX_cakeosa v6.0.0-nightly Jan 16 2025",
"release_type": "nightly",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_cakeosa v6.0.0-nightly Jan 16 2025",
"release_type": "nightly",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_cakeosa v5.4.0 Jan 7 2025",
"release_type": "stable",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_cakeosa v5.3.2-testing Oct 16 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_cakeosa v5.3.2-testing Oct 16 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_cakeosa v5.3.0-testing Sep 6 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_cakeosa v5.3.0-testing Sep 6 2024",
"release_type": "testing",
"note_public": ""
}
]
},
"BLDC_LYNX_generic": {
"note_public": false,
"releases": [
{
"swid": "BLDC_LYNX_generic v6.0.0-nightly Jan 16 2025",
"release_type": "nightly",
"note_public": ""
},
{
"swid": "BLDC_LYNX_generic v6.0.0-nightly Jan 16 2025",
"release_type": "nightly",
"note_public": ""
},
{
"swid": "BLDC_LYNX_generic v5.4.0 Jan 7 2025",
"release_type": "stable",
"note_public": ""
},
{
"swid": "BLDC_LYNX_generic v5.3.2-testing Oct 16 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "BLDC_LYNX_generic v5.3.2-testing Oct 16 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "BLDC_LYNX_generic v5.3.0-testing Sep 6 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "BLDC_LYNX_generic v5.3.0-testing Sep 6 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "BLDC_LYNX_generic v5.2.0 Sep 4 2024",
"release_type": "stable",
"note_public": ""
},
{
"swid": "BLDC_LYNX_generic v5.2.0 Sep 4 2024",
"release_type": "stable",
"note_public": ""
},
{
"swid": "BLDC_LYNX_generic v3.8.2 Jul 3 2023",
"release_type": "stable",
"note_public": ""
},
{
"swid": "BLDC_LYNX_generic v3.5.7 Feb 14 2023",
"release_type": "stable",
"note_public": ""
}
]
},
"VECTOR_LYNX_generic": {
"note_public": "<p>My note public.</p><p><br></p><h1>New line and header</h1>",
"releases": [
{
"swid": "VECTOR_LYNX_generic v6.0.0-nightly Jan 16 2025",
"release_type": "nightly",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_generic v6.0.0-nightly Jan 16 2025",
"release_type": "nightly",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_generic v5.4.0 Jan 7 2025",
"release_type": "stable",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_generic v5.3.2-testing Oct 16 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_generic v5.3.2-testing Oct 16 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_generic v5.3.0-testing Sep 6 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_generic v5.3.0-testing Sep 6 2024",
"release_type": "testing",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_generic v5.2.0 Sep 4 2024",
"release_type": "stable",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_generic v5.2.0 Sep 4 2024",
"release_type": "stable",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_generic v3.8.2 Jul 3 2023",
"release_type": "stable",
"note_public": ""
},
{
"swid": "VECTOR_LYNX_generic v3.5.7 Feb 14 2023",
"release_type": "stable",
"note_public": ""
}
]
}
},
"local_status": {
"result": 0,
"string_result": "Success."
}
}

Errors

When an error arise and output format is JSON, the error code (result) and text (result_string) is part of JSON output.

An error when device is not connect:

srm json error

An error output for incorrect query srm -f json INCORRECT_QUERY:

srm json error query