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
.wmopkgpackage 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
persistentkeyword is used, the package will survive a factory reset and can only be removed using theremovecommand. 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
ftpwithtftpas a fallback.Providing Credentials
If
passwordis not specified on the command line, you will be prompted for it interactively (when required by the protocol). Theuser(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
removecommand 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 defaultexternallabel 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 mediain 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
.wmopkgextension.
remove [PKGNAME]|[all]-
Remove installed package(s) from the device.
Defaults to Remove All
If no option is provided after
remove, it defaults toall, 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
showcommand. 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.
WeOS