Skip to content

2. Activating the license

MuseBox runs only on a board that has a valid license.lic. The license is made by us for one specific board and its SD card. You activate each board once; after that it starts without any network connection.

The board sends the license request itself: it needs an internet connection only for this step. The license arrives by email, as a license.lic attachment, after we approve the request.

The commands of this chapter run on the board, as root, except copying the license, which runs on your PC. Log in to the board first.

On your PC, Linux / macOS:

pc$ ssh root@<board-ip>

On your PC, Windows 10 / 11 (Command Prompt or PowerShell):

pc$ ssh -m hmac-sha2-256-etm@openssh.com root@<board-ip>

Activation

  1. Connect the board to the internet: if your router has internet, the board has it too. To check, on the board: ping -c 3 musebox-ai.com (it should answer three times).
  2. Run:

    On the board:

    board$ cd /root/musebox-ai-servers
    board$ ./musebox-ai-server-cpp/musebox-ai-server --activate
    

    With the Python server: cd /root/musebox-ai-servers/musebox-ai-server-python && python3 -m musebox_ai --activate.

    All the options (--help)

    The program of the AI server (chapter 3): --activate is one of its options. ./musebox-ai-server-cpp/musebox-ai-server --help and python3 -m musebox_ai --help print:

    MuseBox AI Server v1.9.0
    Usage: musebox-ai-server [options]
      --models-dir <dir>      shared ai_models directory (env MUSEBOX_MODELS_DIR)
      --config-dir <dir>      shared config directory with *.json (env MUSEBOX_CONFIG_DIR)
      --config <file>         legacy single config.json merged on top of the config directory
      --host/--port           WebSocket bind address (default 0.0.0.0:8080)
      --zmq-host/--zmq-port   ZeroMQ bind address (default 0.0.0.0:5555), --no-zmq to disable
      --lazy-load             load models on first request
      --camera <device>       board camera for frame_id / source=camera requests (/dev/videoN, index or video file)
      --no-camera             disable the board camera
      --license <file>        license file (env MUSEBOX_LICENSE; default <config-dir>/license.lic, /etc/musebox/license.lic)
      --activate              send the activation request (asks name, company and email the first time) and exit
      --update                install the latest release when newer (needs internet) and exit
      --check-update          only tell whether a newer release exists and exit
      --mqtt / --no-mqtt      MQTT bridge (plus --mqtt-host, --mqtt-port, --mqtt-username, ...)
      --rabbitmq / --no-rabbitmq  RabbitMQ worker (plus --rabbitmq-host, --rabbitmq-port, ...)
      --ros2 / --no-ros2      ROS 2 bridge (plus --ros2-node-name, --ros2-qos, --ros2-image-topic, ...)
    

    Starting the AI server on a board that has no license does the same: the server stops and asks you to activate the board.

    Recorded on the Mercury+ PE3 Hailo-8 (Mercury+ MP1 SoM)

  3. The first time, the board asks for your details:

    MuseBox must be activated on this board. ...
      First name: Jane
      Last name: Doe
      Company: Example
      Email: your.email@example.com
    

    Use an email address you can read: the license is sent there. The details are saved in config/license.json, so you are not asked again.

  4. The board sends the request to us and stops. The request gets a number (req_…), and the board tells you where to copy the license when it arrives:

    INFO:     Customer identity kept in /root/musebox-ai-servers/config/license.json
    INFO:     Activation request req_7d1742e7 registered for Jane Doe (Example, your.email@example.com): waiting for approval by MakarenaLabs
    WARNING:  your activation request req_7d1742e7 is pending: see your email (your.email@example.com) for license.lic,
              copy it to /root/musebox-ai-servers/config/license.lic and start again, or contact MakarenaLabs
    

    Nothing else to do on the board for now: wait for the email. Quote the request number if you contact us about it.

    Recorded on the Mercury+ PE3 Hailo-8 (Mercury+ MP1 SoM)

  5. When you receive the email, save the attached license.lic (the commands below assume your Downloads folder) and copy it to the board. Run the command in a new terminal on your PC, not in the one logged in to the board:

    On your PC, Linux / macOS:

    pc$ scp ~/Downloads/license.lic root@<board-ip>:/root/musebox-ai-servers/config/license.lic
    

    On your PC, Windows 10 / 11 (Command Prompt or PowerShell):

    pc$ scp -o MACs=hmac-sha2-256-etm@openssh.com C:\Users\<your-user>\Downloads\license.lic root@<board-ip>:/root/musebox-ai-servers/config/license.lic
    

    On Windows, with the .ssh\config file described in chapter 1, the plain command works too.

  6. The board is activated: start the AI server as shown in chapter 3. From now on the board needs no internet connection for the license.

    Recorded on the Mercury+ PE3 Hailo-8 (Mercury+ MP1 SoM)

If you run --activate or start the AI server again before the email arrives, it just tells you the state of your request (waiting for approval, or approved and sent).


Things to know

  • One license, one board. Copying license.lic, the MuseBox programs or the whole SD card to another board does not work: that board needs its own license.
  • Keep the SD card. The license is tied to the SD card that holds the system. If you move the SD card to another board, or replace it, ask us for a new license.
  • Keep a copy of license.lic. If you reinstall the system on the same SD card and board, the same file works again.
  • The license file can go elsewhere. MuseBox looks for config/license.lic, then /etc/musebox/license.lic. You can also pass --license <file> or set MUSEBOX_LICENSE=<file>.

If something goes wrong

What you see What to do
MuseBox stops at start-up asking you to activate The board has no valid license yet: follow Activation above.
The license server cannot be reached Check the board's internet connection. If the board cannot go online, contact us.
Your request was refused The message gives the reason. Contact us.
The email never arrived Check your spam folder and the address in config/license.json, then contact us, we can send it again.
The license is not valid on this board The file was made for another board or SD card, or it expired. Make a new request from this board.

For anything else, contact us or write to staff@makarenalabs.com.


Next: 3. Starting the AI server