Packages Support

Introduction

The Packages feature allows you to extend or modify the behavior of your device by installing special modification packages. Some examples of what packages can do include:

  • Applying different factory configurations
  • Enabling or configuring specific services (e.g., Profinet)
  • Changing device branding
  • Solving specific issues or applying workarounds (May only be possible for specific issues. Most problems would still require a firmware update to fix.)

These are just some examples of what can be done. However, there also limitations to what can actually be done or solved using a package.

Packages are intended for advanced configuration and are typically provided by Westermo or your local sales office for particular needs. If you have questions about what can be achieved with packages, or if you require a package for a specific use-case, please contact your local sales office.

Note

Currently, there are no packages available publicly for download. If you have issues with a package that you have been provided, please contact Westermo support.

Again, if you have an enquiry about packages, please contact your local sales office. You can find information here.

Package Format and Verification

All packages must be in the .wmopkg format. This format supports cryptographic signing to ensure authenticity and integrity. By default, only packages signed by Westermo are accepted and can be installed and activated on the device.

If you attempt to install an unsigned or unverifiable package, the system will warn you and, by default, will not activate the package. To allow installation and activation of unsigned packages, you must enable the “Allow Untrusted” option in the bootloader configuration. On devices with a hardware anchor (secure boot), an unlock license may be required instead. For more information, see the Secure Boot unlock using tokens guide and the Boot Configuration documentation.

Security Warning

For security reasons, it is recommended to only install signed packages, unless you are certain of the package’s origin and purpose. If you are unsure about a package’s origin or purpose, please contact Westermo support for assistance.

Package Activation and Verification

Any package that is installed will not take effect until after a reboot has taken place. On every boot, all installed packages are individually verified to ensure they are correct and have not been tampered with. If a package fails verification, it will not be activated, unless the system is configured to allow untrusted packages.

Managing Packages

Packages are managed from the package context, accessible from the top-level CLI exec context:

example:/> package
example:/package/#>
install [persistent] [media <label>] [proto <ftp|tftp|scp|sftp|http|https>] [user <username>] [password <password>] address[:port] PKGNAME.wmopkg

Install a .wmopkg package on the device. The package can be installed from a remote source using various protocols. It is also possible to install a package from a connected external media device, such as a USB drive or SD card.

If the persistent keyword is used, the package will survive a factory reset and can only be removed using the remove command. This can be useful when a package, for instance, adjusts the factory configuration or branding of the device.

No protocol or media specified

If no protocol or media is specified, the default behavior will be to try and use ftp with tftp as a fallback.

Providing Credentials

If password is not specified on the command line, you will be prompted for it interactively (when required by the protocol). The user (username) must be provided; if omitted, the system will use the name of the user currently logged in to the CLI. This avoids the need to write the password in cleartext in the command.

Package Activation and Verification

Any package that is installed will not take effect until after a reboot has taken place. On every boot, all installed packages are individually verified to ensure they are correct and have not been tampered with. If a package fails verification, it will not be activated, unless the system is configured to allow untrusted packages.

Examples

example:/package/#> install 192.0.2.1 pkgname.wmopkg
example:/package/#> install persistent 192.0.2.1 pkgname.wmopkg
example:/package/#> install proto ftp 192.0.2.1 pkgname.wmopkg
example:/package/#> install proto tftp 192.0.2.1 pkgname.wmopkg
example:/package/#> install media external path/on/media/pkgname.wmopkg

persistent
Make the package persistent across factory resets. Package should only be removable if the remove command is used.
media <label>

Selects the media device to source the package from. The file path is always relative to the root of the chosen media.

The <label> specify a media device. Media(s) must be configured in the boot context (see Boot Configuration). The default external label matches the first partition of any connected external device (USB, SD-Card, etc.), but you can define your own.

Tips: - To see all active media, run do show media in the CLI. - For setup help, see Accessing External Media Devices.

Examples

example:/package/#> install media external pkgname.wmopkg
example:/package/#> install media my-usb relative/path/pkgname.wmopkg

proto <ftp|tftp|scp|sftp|http|https>
Select the protocol to use for downloading the package from a remote source.
user <username>
Username for authentication if required by the selected protocol.
password <password>
Password for authentication if required by the selected protocol.
address[:port]
The address (and optional port) of the remote server or source.
PKGNAME.wmopkg
The package file to install. This can be a full path on the media or remote server, but only the actual filename (not the path) will be used as the package name on the device. The file must have the .wmopkg extension.
remove [PKGNAME]|[all]

Remove installed package(s) from the device.

Defaults to Remove All

If no option is provided after remove, it defaults to all, meaning all installed packages will be removed.

Package Removal and Activation

Any package that is removed will not be guaranteed to be deactivated until after a reboot has taken place.

Examples

Remove specific package:

example:/package/#> remove pkgname
Remove package pkgname (y/N)?y
Removed… Changes are applied after reboot.
example:/package/#>

Remove all packages:

example:/package/#> remove all
Remove all packages (y/N)?y
Removing all packages… Changes are applied after reboot.
example:/package/#>

PKGNAME

The name of the package to remove.

Tab Completion

You can use tab completion to help fill in the package name.

all
Remove all installed packages from the device.
show

Show the list of installed packages on the device.

Example

example:/package/#> show
╒ Packages ═══════════════════════════════════════════════════════════╕
│NAME             VERSION      PERSISTENT  VERIFICATION  DESCRIPTION  │
│pkgname          5.26.0-rev0  False       Signed        Example      │
└─────────────────────────────────────────────────────────────────────┘
example:/package/#>

list
Alias for the show command. Lists installed packages on the device.

Troubleshooting and Support

If you encounter issues with packages, or if you have questions about using or obtaining packages for your device, please contact your local sales office or Westermo support for assistance.