RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
...
View file | ||||
---|---|---|---|---|
|
TODO:: Add steps to reproduce demo
...
This configuration file requires comments/feedback to ensure it covers all use cases. The idea is this config could be mostly automatically generated by a tool either run on the STB or by Bitbake, with only minor sections needing to be filled in by hand. An operator would maintain a platform configuration per-device, with the ability to create a generic "operator.json" file that would allow options to be set for all operator devices (which could be overridden by individual platforms as required).
Below is the metadata for the Comcast Xi6 STB used in the demo video. TODO:: Add example...Note the RDK section is currently unused by bundlegen
Code Block | ||
---|---|---|
| ||
{
"platformName":"xi6",
"os":"linux",
"arch":{
"arch":"arm",
"variant":"v7"
},
"rdk":{
"version":"2020Q4",
"supportedFeatures":[
"Controller",
"DeviceInfo",
"Monitor",
"OCDM",
"TraceControl",
"WifiManager",
"com.comcast.CoPilot",
"com.comcast.DeviceProvisioning",
"com.comcast.FrameRate",
"com.comcast.HdcpProfile",
"com.comcast.HdmiInput",
"com.comcast.StateObserver",
"com.comcast.StorageManager",
"org.rdk.ActivityMonitor",
"org.rdk.DeviceDiagnostics",
"org.rdk.DisplaySettings",
"org.rdk.FrontPanel",
"org.rdk.HomeNetworking",
"org.rdk.LoggingPreferences",
"org.rdk.Network",
"org.rdk.OCIContainer",
"org.rdk.Proxies",
"org.rdk.SleepTimer",
"org.rdk.TTSResource",
"org.rdk.TTSSettings",
"org.rdk.Timer",
"org.rdk.UserPreferences",
"org.rdk.Warehouse"
]
},
"hardware":{
"graphics":true,
"maxRam":"4096M"
},
"storage":{
"persistent":{
"storageDir":"/tmp/data",
"maxSize":"100M"
}
},
"gpu":{
"westeros":{
"hostSocket":"/tmp/westeros-dac"
},
"extraMounts":[
{
"source":"/tmp/nxserver_ipc",
"destination":"/tmp/nxserver_ipc",
"type":"bind",
"options":[
"bind",
"ro"
]
}
],
"envvar":[
"LD_PRELOAD=/usr/lib/libwayland-client.so.0:/usr/lib/libwayland-egl.so.0"
],
"devs":[
{
"type":"c",
"path":"/dev/nexus",
"major":33,
"minor":0,
"access":"rw"
}
],
"gfxLibs":[
{
"src":"/usr/lib/libEGL.so",
"dst":"/usr/lib/libEGL.so"
},
{
"src":"/usr/lib/libEGL.so",
"dst":"/usr/lib/libEGL.so.1"
},
{
"src":"/usr/lib/libGLESv2.so",
"dst":"/usr/lib/libGLESv2.so"
},
{
"src":"/usr/lib/libGLESv2.so",
"dst":"/usr/lib/libGLESv2.so.2"
},
{
"src":"/usr/lib/libwayland-egl.so.0",
"dst":"/usr/lib/libwayland-egl.so"
},
{
"src":"/usr/lib/libwayland-egl.so.0",
"dst":"/usr/lib/libwayland-egl.so.0"
},
{
"src":"/usr/lib/libwayland-egl.so.0",
"dst":"/usr/lib/libwayland-egl.so.1"
},
{
"src":"/usr/lib/libnxclient.so",
"dst":"/usr/lib/libnxclient.so"
},
{
"src":"/usr/lib/libnexus.so",
"dst":"/usr/lib/libnexus.so"
},
{
"src":"/usr/lib/libnxpl.so",
"dst":"/usr/lib/libnxpl.so"
},
{
"src":"/usr/lib/libwesteros_simpleshell_client.so.0",
"dst":"/usr/lib/libwesteros_simpleshell_client.so.0"
},
{
"src":"/usr/lib/libwayland-server.so.0",
"dst":"/usr/lib/libwayland-server.so.0"
}
]
},
"mounts":[
],
"network":{
"options":[
"nat",
"open",
"private"
]
},
"envvar":[
"XDG_RUNTIME_DIR=/tmp"
],
"resourceLimits":[
{
"type":"RLIMIT_NPROC",
"hard":300,
"soft":300
},
{
"type":"RLIMIT_RTPRIO",
"hard":6,
"soft":6
}
],
"disableUserNamespacing":false,
"usersAndGroups":{
"uidMap":[
{
"containerID":0,
"hostID":996,
"size":1
}
],
"gidMap":[
{
"containerID":0,
"hostID":992,
"size":1
}
]
},
"logging":{
"mode":"file",
"logDir":"/var/log"
},
"dobby":{
"pluginDir":"/usr/lib/plugins/dobby",
"pluginDependencies":[
"/lib/libc.so.6",
"/lib/libdl.so.2",
"/lib/libcap.so.2",
"/lib/libgcc_s.so.1",
"/lib/libm.so.6",
"/lib/libpthread.so.0",
"/lib/libresolv.so.2",
"/lib/librt.so.1",
"/lib/libsystemd.so.0",
"/usr/lib/liblzma.so.5",
"/usr/lib/libnl-3.so.200",
"/usr/lib/libnl-route-3.so.200",
"/usr/lib/libstdc++.so.6",
"/usr/lib/libyajl.so.2",
"/lib/ld-linux-armhf.so.3"
]
}
} |
...
This metadata would sit alongside the MAS metadata, as this info is more low-level and not required to be known by an app-store service.TODO:: Add example...
Below are two example app metadata files - one for the console-based hello-world app and the other for the flutter app (not shown in demo videos)
Code Block | ||||
---|---|---|---|---|
| ||||
{
"id":"com.docker.helloworld",
"type":"application/vnd.rdk-app.dac.native",
"graphics":false,
"network":{
"type":"none"
},
"storage":{
"persistent":[
],
"temp":[
]
},
"resources":{
"ram":"5M"
},
"features":[
],
"mounts":[
]
} |
Code Block | ||||
---|---|---|---|---|
| ||||
{
"id":"com.rdk.flutter",
"type":"application/vnd.rdk-app.dac.native",
"graphics":true,
"network":{
"type":"nat",
"dnsmasq":"true"
},
"storage":{
"persistent":[
{
"size":"60M",
"path":"/home/private"
}
],
"temp":[
{
"size":"100M",
"path":"/home/temp"
},
{
"size":"10M",
"path":"/var/volatile"
}
]
},
"resources":{
"ram":"256M"
},
"features":[
],
"mounts":[
]
} |
...