WeOS
5.29.0

# Packages Support

## Introduction

The Packages feature allows you to extend or modify the behaviour 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 behaviour 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.

« Previous Next »