Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Find and download the .wic.bz2 file from your build: find tmp/deploy/ -name *.wic.bz2
  • Flash it to the Raspberry Pi's SD card using Etcher. In principle it can handle a wic.bz2 directly but sometimes this doesn't work great. Unzipping it first can help: bzip2 -df xxx.wic.bz2
  • Resize the SD card using gParted so that the main ext3 partition is at least 2GB in size so that is has enough room to download and install all the apps you need
  • Insert the SD card back in the RaspberryPi and power up the Pi. Connect the Raspberry Pi to your network with an ethernet cable, and to your TV with a HDMI cable.
  • Make sure you can SSH into the Pi as this is important for later. The default user is root with no password
  • You should see the RDK Resident GUI application on your TV at bootup (after following some initial setup questions)

Configure ASMS

After boot-up you need to manually configure ASMS and the version+platform of your host:

  1. on your RPI, create the file /opt/appmanagerregistry.conf
  2. add the contents below to it in case you are using an RPI4.
Code Block
languagejs
{
  "app-catalog-cloud": {
    "url": "http://rdkm-asms-external-1156877020.eu-central-1.elb.amazonaws.com:8080/apps",
    "firmwareVersions": [
      {
        "platform": "rpi4",
        "ver": "1.0.0-e71889dc02521bfdc2f9f38f750b34224184c375-dbg"
      }
    ]
  }
}

For RPI3 you need a different platform and ver:

Code Block
languagejs
{
  "app-catalog-cloud": {
    "url": "http://rdkm-asms-external-1156877020.eu-central-1.elb.amazonaws.com:8080/apps",
    "firmwareVersions": [
      {
        "platform": "rpi3",
        "ver": "1.0.0-f4b0603d7d93dfa10ed932ddb0f324d334bc40f9-dbg"
      }
    ]
  }
}

The "ver" value can change sometimes when new features are added to DAC or when big platform changes happen. You can find the latest values in the dactest.py tool, also for other platforms.

Publish your DAC app

If you don't want to test or publish your own DAC app then you can skip this step and trie the already published demo apps in the next section. There are two ways to publish an app in ASMS:

  1. using the dactest.py test tool
  2. using the Swagger interface to manually publish the app

Publish your DAC app to RDK-M DAC cloud

If you don't want to test or publish your own DAC app then you can skip this step and try the already published demo apps in the next section. There are two ways to publish an app in ASMS:

  1. use the official API to publish the app (openAPI swagger REST api)
  2. using the dactest.py test tool

But before publishing the app into But before publishing the app into ASMS you first need to publish your DAC app's OCI image into a container registry that supports OCI compliant format.

...

You have to remember the OCI image URL, which in this example is docker://public.ecr.aws/a0v6o9z7/cobalt:latest. You will need it when publishing the DAC app to ASMS.

Publish the DAC app using dactest.py tool

Among other things, dactest.py can be used list ASMS apps, add entries and remove entries. 

Image Removed

To add an entry to ASMS, i.e. to publish a DAC app you can follow these steps:

  1. on your development PC/laptop: install dactest.py dependencies. You need python3 and then pip3 install requests colorama websocket-client
  2. use ./dactest.py 192.168.0.117 (replace with your RPI IP)
  3. it will use the RDK ASMS to list apps available from the cloud. Use "A" to start the procedure to add an app to ASMS
  4. you will need to provide an id, name, version, the OCI image URL (see previous step) and a link to an icon to use. When prompted for "encryption" input "false". Unless you really want  to test encrypted DAC apps. But for this feature there is a separate wiki page to read. Extra steps are needed for encryption. You can skip that for now and don't use encryption.

Publish the DAC app using Swagger interface

This is the more difficult and manual way to add DAC apps. You can access the swagger UI here: http://rdkm-asms-external-1156877020.eu-central-1.elb.amazonaws.com:8080/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config

You can use the POST /maintainers/{maintainerCode/apps RPC call to add an ASMS dac app. dactest.py uses "rdk" as maintainerCode. You will need to provide a POST body with the required contents.

Image Removed

Example POST body. Additionally you can check how dactest.py is doing it.

.

Publish the DAC app using DAC cloud REST API

You can access the swagger UI here: http://rdkm-asms-external-1156877020.eu-central-1.elb.amazonaws.com:8080/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config

You can use the POST /maintainers/{maintainerCode/apps RPC call to add an ASMS dac app. dactest.py uses "rdk" as maintainerCode. You will need to provide a POST body with the required contents.

Image Added

Example POST body. Additionally you can check how dactest.py is doing it.

Code Block
languagejs
{
  "header": {
    "icon": "https://280222515084-default-apps-resources.s3.eu-central-1.amazonaws.com/images/apps/com.rdk.app.chocolate-doom.png",
    "name": "Chocolate Doom",
    "description": "Chocolate Doom aims to accurately reproduce the original DOS version of Doom and other games based on the Doom engine in a form that can be run on modern computers.",
    "type": "application/dac.native",
    "size": 10000000,
    "category": "application",
    "localization": [
      {
        "languageCode": "nld",
    
Code Block
languagejs
{
  "header": {
    "icon": "https://280222515084-default-apps-resources.s3.eu-central-1.amazonaws.com/images/apps/com.rdk.app.chocolate-doom.png",
    "name": "ChocolateGeweldige Doomapplicatie",
        "description": "ChocolateDit Doomis aimseen to accurately reproduce the original DOS version of Doom and other games based on the Doom engine in a form that can be run on modern computers.geweldige applicatie"
      }
    ],
    "id": "com.rdk.app.chocolate-doom",
    "version": "1.0.0",
    "typevisible": true,
    "application/dac.native"encryption": false,
    "sizepreferred": 10000000false,
    "categoryociImageUrl": "application",docker://public.ecr.aws/a0v6o9z7/chocolate-doom:latest"
  },
  "localizationrequirements": [{
      {"dependencies": [
        "languageCode": "nld",{
        "nameid": "Geweldige applicatiecom.libertyglobal.service.voice",
        "descriptionversion": "Dit is een geweldige applicatie1.0.0"
      }
    ],
    "platform": {
      "idarchitecture": "com.rdk.app.chocolate-doomarm",
      "versionvariant": "1.0.0v7",
      "visibleos": true,"linux"
    "encryption": false},
    "preferredhardware": false,{
      "ociImageUrlram": "docker://public.ecr.aws/a0v6o9z7/chocolate-doom:latest"
  },
  "requirements": {
512M",
      "dependenciesdmips": ["2000",
      {
  "persistent": "60M",
      "idcache": "com.libertyglobal.service.voice",200M"
    },
    "versionfeatures": "1.0.0"[
      }{
    ],
    "platformname": {
"rdk.api.awc",
        "architectureversion": "arm2",
        "variantrequired": "v7",false
      }
 "os": "linux"
  ]
  },
    "hardwaremaintainer": {
    "code": "rdk",
    "ramname": "512MRDK",
      "dmipsaddress": "2000RDK Management, LLC",
      "persistenthomepage": "60Mhttps://rdkcentral.com",
      "cacheemail": "200Msupport@rdkcentral.com"
    },
    "featuresversions": [
      {
        "nameversion": "rdk1.api0.awc0",
        "versionvisible": "2"true,
        "requiredpreferred": false
      }
  ,
  ]
  },
  "maintainerencryption": {false
    "code": "rdk",
    "name": "RDK",
    "address": "RDK Management, LLC",
    "homepage": "https://rdkcentral.com",
    "email": "support@rdkcentral.com"
  },
  "versions": [
    {
      "version": "1.0.0",
      "visible": true,
      "preferred": false,
      "encryption": false
    }
  ]
}  }
  ]
}

Publish the DAC app using dactest.py tool

Among other things, dactest.py can be used list ASMS apps, add entries and remove entries. 

Image Added

To add an entry to ASMS, i.e. to publish a DAC app you can follow these steps:

  1. on your development PC/laptop: install dactest.py dependencies. You need python3 and then pip3 install requests colorama websocket-client
  2. use ./dactest.py 192.168.0.117 (replace with your RPI IP)
  3. it will use the RDK ASMS to list apps available from the cloud. Use "A" to start the procedure to add an app to ASMS
  4. you will need to provide an id, name, version, the OCI image URL (see previous step) and a link to an icon to use. When prompted for "encryption" input "false". Unless you really want  to test encrypted DAC apps. But for this feature there is a separate wiki page to read. Extra steps are needed for encryption. You can skip that for now and don't use encryption.

Install and run your DAC app from ASMS

...