
{"id":10283,"date":"2022-06-21T09:29:25","date_gmt":"2022-06-21T09:29:25","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/"},"modified":"2024-12-04T14:10:50","modified_gmt":"2024-12-04T14:10:50","slug":"test_on_board","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/","title":{"rendered":"Test on board"},"content":{"rendered":"<p><!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\"><br \/>\n <html><body><\/p>\n<h3 class=\"wp-sub-header\">Setup SSH on a board<\/h3>\n<p>To setup the ssh server it is&nbsp;necessary to connect via minicom (serial port) and pass the comands below.<\/p>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">dropbearkey -t rsa -f&nbsp;\/tmp\/data\/sky-ssh-hostkey\ndropbear -p :&lt;SSH_PORT&gt; -P&nbsp;\/var\/run\/dropbear2.pid -r&nbsp;\/tmp\/data\/sky-ssh-hostkey&nbsp;-B\n&nbsp;\niptables -I INPUT 1 -p tcp --dport &lt;SSH_PORT&gt; -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT\niptables -I OUTPUT 1 -p tcp --sport &lt;SSH_PORT&gt; -m conntrack --ctstate ESTABLISHED -j ACCEPT<\/pre>\n<\/div>\n<\/div>\n<p class=\"auto-cursor-target\">With suggestet SSH_PORT = 10022<\/p>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">dropbearkey -t rsa -f&nbsp;\/tmp\/data\/sky-ssh-hostkey\ndropbear -p :10022 -P&nbsp;\/var\/run\/dropbear2.pid -r&nbsp;\/tmp\/data\/sky-ssh-hostkey&nbsp;-B\n&nbsp;\niptables -I INPUT 1 -p tcp --dport 10022 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT\niptables -I OUTPUT 1 -p tcp --sport 10022 -m conntrack --ctstate ESTABLISHED -j ACCEPT<\/pre>\n<\/div>\n<\/div>\n<h3 class=\"wp-sub-header\">Redirect ports<\/h3>\n<p>The command below will log into the box via ssh and redirect the ports between local machine and box.<\/p>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ssh&nbsp;-L &lt;LOCAL_PORT&gt;:localhost:&lt;THUNDER_PORT&gt; -p &lt;SSH_PORT&gt; root@&lt;IP&gt;<\/pre>\n<\/div>\n<\/div>\n<p>In my case (I&#8217;m relying on local port 9000, ssh port is equal to 10022, thunder port is default 9998, and box ip equals 10.42.0.212.<\/p>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ssh&nbsp;-L 9000:localhost:9998 -p 10022 root@10.42.0.21<\/pre>\n<\/div>\n<\/div>\n<h3 class=\"wp-sub-header\">Send HTTP request to the Thunder<\/h3>\n<p>I&#8217;m using the<span>&nbsp;<\/span><a class=\"external-link\" href=\"https:\/\/www.getpostman.com\/\" rel=\"nofollow\">Postman<\/a>, but even curl can be fine enough.<\/p>\n<h3 id=\"Testonboard-BOXexample\">BOX example<\/h3>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeHeader panelHeader pdl hide-border-bottom\">\n  <b class=\"code-title\"> <\/b><span class=\"collapse-source expand-control\"><span class=\"expand-control-icon icon\">&nbsp;<\/span><span class=\"expand-control-text\">Expand source<\/span><\/span><span class=\"collapse-spinner-wrapper\"> <\/span>\n <\/div>\n<div class=\"codeContent panelContent pdl hide-toolbar\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">curl http:\/\/127.0.0.1:9998\/Service\/Controller\n&nbsp;\ncurl http:\/\/127.0.0.1:9998\/Service\/Controller&nbsp;&nbsp;\n{\"plugins\":[{\"callsign\":\"ActivityMonitor\",\"locator\":\"libWPEFrameworkActivityMonitor.so\",\"classname\":\"ActivityMonitor\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"CoPilot\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"CoPilot\",\"locator\":\"libWPEFrameworkCoPilot.so\",\"classname\":\"CoPilot\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"CoPilot\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"Controller\",\"classname\":\"Controller\",\"configuration\":{\n&nbsp;&nbsp;&nbsp;&nbsp;\"subsystems\":[\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Decryption\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Location\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Time\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Internet\"\n&nbsp;&nbsp;&nbsp;&nbsp;],\n&nbsp;&nbsp;&nbsp;&nbsp;\"resumes\":null\n&nbsp;&nbsp;&nbsp;}\n,\"state\":\"activated\",\"processedrequests\":3,\"processedobjects\":0,\"observers\":0},{\"callsign\":\"DeviceDiagnostics\",\"locator\":\"libWPEFrameworkDeviceDiagnostics.so\",\"classname\":\"DeviceDiagnostics\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"DeviceDiagnostics\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"DeviceInfo\",\"locator\":\"libWPEFrameworkDeviceInfo.so\",\"classname\":\"DeviceInfo\",\"autostart\":true,\"state\":\"activated\",\"processedrequests\":1,\"processedobjects\":0,\"observers\":0,\"module\":\"Plugin_DeviceInfo\",\"hash\":\"8e91331a4ac0191264a9523a3ab9a04c0435f700\"},{\"callsign\":\"DeviceProvisioning\",\"locator\":\"libWPEFrameworkDeviceProvisioning.so\",\"classname\":\"DeviceProvisioning\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"DeviceProvisioning\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"DisplaySettings\",\"locator\":\"libWPEFrameworkDisplaySettings.so\",\"classname\":\"DisplaySettings\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"DisplaySettings\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"FrameRate\",\"locator\":\"libWPEFrameworkFrameRate.so\",\"classname\":\"FrameRate\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"FrameRate\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"FrontPanel\",\"locator\":\"libWPEFrameworkFrontPanel.so\",\"classname\":\"FrontPanel\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"FrontPanel\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"HdcpProfile\",\"locator\":\"libWPEFrameworkHdcpProfile.so\",\"classname\":\"HdcpProfile\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"HdcpProfile\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"HdmiCec\",\"locator\":\"libWPEFrameworkHdmiCec.so\",\"classname\":\"HdmiCec\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"HdmiCec\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"Monitor\",\"locator\":\"libWPEFrameworkMonitor.so\",\"classname\":\"Monitor\",\"autostart\":true,\"configuration\":{\n&nbsp;&nbsp;\"observables\":[\n&nbsp;&nbsp;&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\"callsign\":\"UX\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"memory\":5,\n&nbsp;&nbsp;&nbsp;&nbsp;\"memorylimit\":null,\n&nbsp;&nbsp;&nbsp;&nbsp;\"operational\":1,\n&nbsp;&nbsp;&nbsp;&nbsp;\"restart\":{\n# curl http:\/\/127.0.0.1:9998\/Service\/Controller\n{\"plugins\":[{\"callsign\":\"ActivityMonitor\",\"locator\":\"libWPEFrameworkActivityMonitor.so\",\"classname\":\"ActivityMonitor\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"CoPilot\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"CoPilot\",\"locator\":\"libWPEFrameworkCoPilot.so\",\"classname\":\"CoPilot\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"CoPilot\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"Controller\",\"classname\":\"Controller\",\"configuration\":{\n&nbsp;&nbsp;&nbsp;&nbsp;\"subsystems\":[\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Decryption\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Location\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Time\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Internet\"\n&nbsp;&nbsp;&nbsp;&nbsp;],\n&nbsp;&nbsp;&nbsp;&nbsp;\"resumes\":null\n&nbsp;&nbsp;&nbsp;}\n,\"state\":\"activated\",\"processedrequests\":4,\"processedobjects\":0,\"observers\":0},{\"callsign\":\"DeviceDiagnostics\",\"locator\":\"libWPEFrameworkDeviceDiagnostics.so\",\"classname\":\"DeviceDiagnostics\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"DeviceDiagnostics\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"DeviceInfo\",\"locator\":\"libWPEFrameworkDeviceInfo.so\",\"classname\":\"DeviceInfo\",\"autostart\":true,\"state\":\"activated\",\"processedrequests\":1,\"processedobjects\":0,\"observers\":0,\"module\":\"Plugin_DeviceInfo\",\"hash\":\"8e91331a4ac0191264a9523a3ab9a04c0435f700\"},{\"callsign\":\"DeviceProvisioning\",\"locator\":\"libWPEFrameworkDeviceProvisioning.so\",\"classname\":\"DeviceProvisioning\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"DeviceProvisioning\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"DisplaySettings\",\"locator\":\"libWPEFrameworkDisplaySettings.so\",\"classname\":\"DisplaySettings\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"DisplaySettings\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"FrameRate\",\"locator\":\"libWPEFrameworkFrameRate.so\",\"classname\":\"FrameRate\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"FrameRate\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"FrontPanel\",\"locator\":\"libWPEFrameworkFrontPanel.so\",\"classname\":\"FrontPanel\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"FrontPanel\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"HdcpProfile\",\"locator\":\"libWPEFrameworkHdcpProfile.so\",\"classname\":\"HdcpProfile\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"HdcpProfile\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"HdmiCec\",\"locator\":\"libWPEFrameworkHdmiCec.so\",\"classname\":\"HdmiCec\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"HdmiCec\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"Monitor\",\"locator\":\"libWPEFrameworkMonitor.so\",\"classname\":\"Monitor\",\"autostart\":true,\"configuration\":{\n&nbsp;&nbsp;\"observables\":[\n&nbsp;&nbsp;&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\"callsign\":\"UX\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"memory\":5,\n&nbsp;&nbsp;&nbsp;&nbsp;\"memorylimit\":null,\n&nbsp;&nbsp;&nbsp;&nbsp;\"operational\":1,\n&nbsp;&nbsp;&nbsp;&nbsp;\"restart\":{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"memory\":{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"window\":0,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"limit\":0\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"operational\":{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"window\":60,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"limit\":3\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;},\n&nbsp;&nbsp;&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\"callsign\":\"OCDM\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"operational\":1,\n&nbsp;&nbsp;&nbsp;&nbsp;\"restart\":{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"operational\":{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"window\":60,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"limit\":3\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;]\n&nbsp;}\n,\"state\":\"activated\",\"processedrequests\":2,\"processedobjects\":0,\"observers\":0,\"module\":\"Plugin_Monitor\",\"hash\":\"8e91331a4ac0191264a9523a3ab9a04c0435f700\"},{\"callsign\":\"OCDM\",\"locator\":\"libWPEFrameworkOCDM.so\",\"classname\":\"OCDM\",\"autostart\":true,\"precondition\":[\"Provisioning\"],\"configuration\":{\n&nbsp;&nbsp;\"systems\":[\n&nbsp;&nbsp;&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\"name\":\"PlayReady\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"designators\":[\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"com.youtube.playready\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"com.microsoft.playready\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"com.netflix.playready\"\n&nbsp;&nbsp;&nbsp;&nbsp;],\n&nbsp;&nbsp;&nbsp;&nbsp;\"configuration\":{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"read-dir\":\"\/opt\/drm\/playready\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"store-location\":\"\/opt\/drm\/playready\/drmstore.dat\"\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;},\n&nbsp;&nbsp;&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\"name\":\"WideVine\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"designators\":[\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"com.widevine.alpha\"\n&nbsp;&nbsp;&nbsp;&nbsp;]\n&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;],\n&nbsp;&nbsp;\"root\":{\n&nbsp;&nbsp;&nbsp;\"outofprocess\":true\n&nbsp;&nbsp;}\n&nbsp;}\n,\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"Plugin_OCDM\",\"hash\":\"8e91331a4ac0191264a9523a3ab9a04c0435f700\"},{\"callsign\":\"SleepTimer\",\"locator\":\"libWPEFrameworkSleepTimer.so\",\"classname\":\"SleepTimer\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"SleepTimer\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"SystemdConnector\",\"locator\":\"libWPEFrameworkSystemdConnector.so\",\"classname\":\"SystemdConnector\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"Plugin_SystemdConnector\",\"hash\":\"8e91331a4ac0191264a9523a3ab9a04c0435f700\"},{\"callsign\":\"TTSResource\",\"locator\":\"libWPEFrameworkTTSResource.so\",\"classname\":\"TTSResource\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"TTSResource\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"TTSSessionService\",\"locator\":\"libWPEFrameworkTTSSessionService.so\",\"classname\":\"TTSSessionService\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"TTSSessionService\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"TTSSettings\",\"locator\":\"libWPEFrameworkTTSSettings.so\",\"classname\":\"TTSSettings\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"TTSSettings\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"TraceControl\",\"locator\":\"libWPEFrameworkTraceControl.so\",\"classname\":\"TraceControl\",\"autostart\":true,\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"Plugin_TraceControl\",\"hash\":\"8e91331a4ac0191264a9523a3ab9a04c0435f700\"},{\"callsign\":\"Warehouse\",\"locator\":\"libWPEFrameworkWarehouse.so\",\"classname\":\"Warehouse\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"Warehouse\",\"hash\":\"engineering_build_for_debug_purpose_only\"}],\"channel\":[{\"remote\":\"localhost.localdomain:48983\",\"state\":\"WebServer\",\"activity\":true,\"id\":2},{\"remote\":\"localhost.localdomain:48984\",\"state\":\"WebServer\",\"activity\":true,\"id\":3},{\"remote\":\"localhost.localdomain:48986\",\"state\":\"WebServer\",\"activity\":true,\"id\":4}],\"server\":{\"threads\":[651,672,682,677],\"pending\":0,\"occupation\":1}}<\/pre>\n<\/p><\/div>\n<\/div>\n<h3 id=\"Testonboard-Localmachineexample\"><strong>Local machine example<\/strong><\/h3>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeHeader panelHeader pdl hide-border-bottom\">\n  <b class=\"code-title\"> <\/b><span class=\"collapse-source expand-control\"><span class=\"expand-control-icon icon\">&nbsp;<\/span><span class=\"expand-control-text\">Expand source<\/span><\/span><span class=\"collapse-spinner-wrapper\"> <\/span>\n <\/div>\n<div class=\"codeContent panelContent pdl hide-toolbar\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">curl http:\/\/127.0.0.1:9000\/Service\/Controller\n{\"plugins\":[{\"callsign\":\"ActivityMonitor\",\"locator\":\"libWPEFrameworkActivityMonitor.so\",\"classname\":\"ActivityMonitor\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"CoPilot\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"CoPilot\",\"locator\":\"libWPEFrameworkCoPilot.so\",\"classname\":\"CoPilot\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"CoPilot\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"Controller\",\"classname\":\"Controller\",\"configuration\":{\n&nbsp;&nbsp;&nbsp;&nbsp;\"subsystems\":[\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Decryption\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Location\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Time\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Internet\"\n&nbsp;&nbsp;&nbsp;&nbsp;],\n&nbsp;&nbsp;&nbsp;&nbsp;\"resumes\":null\n&nbsp;&nbsp;&nbsp;}\n,\"state\":\"activated\",\"processedrequests\":5,\"processedobjects\":0,\"observers\":0},{\"callsign\":\"DeviceDiagnostics\",\"locator\":\"libWPEFrameworkDeviceDiagnostics.so\",\"classname\":\"DeviceDiagnostics\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"DeviceDiagnostics\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"DeviceInfo\",\"locator\":\"libWPEFrameworkDeviceInfo.so\",\"classname\":\"DeviceInfo\",\"autostart\":true,\"state\":\"activated\",\"processedrequests\":1,\"processedobjects\":0,\"observers\":0,\"module\":\"Plugin_DeviceInfo\",\"hash\":\"8e91331a4ac0191264a9523a3ab9a04c0435f700\"},{\"callsign\":\"DeviceProvisioning\",\"locator\":\"libWPEFrameworkDeviceProvisioning.so\",\"classname\":\"DeviceProvisioning\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"DeviceProvisioning\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"DisplaySettings\",\"locator\":\"libWPEFrameworkDisplaySettings.so\",\"classname\":\"DisplaySettings\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"DisplaySettings\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"FrameRate\",\"locator\":\"libWPEFrameworkFrameRate.so\",\"classname\":\"FrameRate\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"FrameRate\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"FrontPanel\",\"locator\":\"libWPEFrameworkFrontPanel.so\",\"classname\":\"FrontPanel\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"FrontPanel\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"HdcpProfile\",\"locator\":\"libWPEFrameworkHdcpProfile.so\",\"classname\":\"HdcpProfile\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"HdcpProfile\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"HdmiCec\",\"locator\":\"libWPEFrameworkHdmiCec.so\",\"classname\":\"HdmiCec\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"HdmiCec\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"Monitor\",\"locator\":\"libWPEFrameworkMonitor.so\",\"classname\":\"Monitor\",\"autostart\":true,\"configuration\":{\n&nbsp;&nbsp;\"observables\":[\n&nbsp;&nbsp;&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\"callsign\":\"UX\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"memory\":5,\n&nbsp;&nbsp;&nbsp;&nbsp;\"memorylimit\":null,\n&nbsp;&nbsp;&nbsp;&nbsp;\"operational\":1,\n&nbsp;&nbsp;&nbsp;&nbsp;\"restart\":{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"memory\":{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"window\":0,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"limit\":0\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"operational\":{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"window\":60,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"limit\":3\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;},\n&nbsp;&nbsp;&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\"callsign\":\"OCDM\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"operational\":1,\n&nbsp;&nbsp;&nbsp;&nbsp;\"restart\":{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"operational\":{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"window\":60,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"limit\":3\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;]\n&nbsp;}\n,\"state\":\"activated\",\"processedrequests\":2,\"processedobjects\":0,\"observers\":0,\"module\":\"Plugin_Monitor\",\"hash\":\"8e91331a4ac0191264a9523a3ab9a04c0435f700\"},{\"callsign\":\"OCDM\",\"locator\":\"libWPEFrameworkOCDM.so\",\"classname\":\"OCDM\",\"autostart\":true,\"precondition\":[\"Provisioning\"],\"configuration\":{\n&nbsp;&nbsp;\"systems\":[\n&nbsp;&nbsp;&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\"name\":\"PlayReady\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"designators\":[\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"com.youtube.playready\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"com.microsoft.playready\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"com.netflix.playready\"\n&nbsp;&nbsp;&nbsp;&nbsp;],\n&nbsp;&nbsp;&nbsp;&nbsp;\"configuration\":{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"read-dir\":\"\/opt\/drm\/playready\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"store-location\":\"\/opt\/drm\/playready\/drmstore.dat\"\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;},\n&nbsp;&nbsp;&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\"name\":\"WideVine\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"designators\":[\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"com.widevine.alpha\"\n&nbsp;&nbsp;&nbsp;&nbsp;]\n&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;],\n&nbsp;&nbsp;\"root\":{\n&nbsp;&nbsp;&nbsp;\"outofprocess\":true\n&nbsp;&nbsp;}\n&nbsp;}\n,\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"Plugin_OCDM\",\"hash\":\"8e91331a4ac0191264a9523a3ab9a04c0435f700\"},{\"callsign\":\"SleepTimer\",\"locator\":\"libWPEFrameworkSleepTimer.so\",\"classname\":\"SleepTimer\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"SleepTimer\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"SystemdConnector\",\"locator\":\"libWPEFrameworkSystemdConnector.so\",\"classname\":\"SystemdConnector\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"Plugin_SystemdConnector\",\"hash\":\"8e91331a4ac0191264a9523a3ab9a04c0435f700\"},{\"callsign\":\"TTSResource\",\"locator\":\"libWPEFrameworkTTSResource.so\",\"classname\":\"TTSResource\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"TTSResource\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"TTSSessionService\",\"locator\":\"libWPEFrameworkTTSSessionService.so\",\"classname\":\"TTSSessionService\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"TTSSessionService\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"TTSSettings\",\"locator\":\"libWPEFrameworkTTSSettings.so\",\"classname\":\"TTSSettings\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"TTSSettings\",\"hash\":\"engineering_build_for_debug_purpose_only\"},{\"callsign\":\"TraceControl\",\"locator\":\"libWPEFrameworkTraceControl.so\",\"classname\":\"TraceControl\",\"autostart\":true,\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"Plugin_TraceControl\",\"hash\":\"8e91331a4ac0191264a9523a3ab9a04c0435f700\"},{\"callsign\":\"Warehouse\",\"locator\":\"libWPEFrameworkWarehouse.so\",\"classname\":\"Warehouse\",\"autostart\":true,\"precondition\":[\"Platform\"],\"state\":\"activated\",\"processedrequests\":0,\"processedobjects\":0,\"observers\":0,\"module\":\"Warehouse\",\"hash\":\"engineering_build_for_debug_purpose_only\"}],\"channel\":[{\"remote\":\"localhost.localdomain:48983\",\"state\":\"WebServer\",\"activity\":true,\"id\":2},{\"remote\":\"localhost.localdomain:48984\",\"state\":\"WebServer\",\"activity\":true,\"id\":3},{\"remote\":\"localhost.localdomain:48986\",\"state\":\"WebServer\",\"activity\":true,\"id\":4},{\"remote\":\"localhost.localdomain:48987\",\"state\":\"WebServer\",\"activity\":true,\"id\":5}],\"server\":{\"threads\":[665,688,699,695],\"pending\":0,\"occupation\":1}}<\/pre>\n<\/p><\/div>\n<\/div>\n<h3 id=\"Testonboard-Postmanexample\">Postman example<\/h3>\n<p><span class=\"confluence-embedded-file-wrapper confluence-embedded-manual-size\"><span class=\"confluence-embedded-file-wrapper confluence-embedded-manual-size\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/16\/2023\/09\/image2019-12-4_11-25-36.png\"><\/span><\/span><\/p>\n<p><\/p>\n<h3 class=\"wp-sub-header\">Send JSON RPC request to the Thunder<\/h3>\n<h3 id=\"Testonboard-BOXexample.1\">BOX example<\/h3>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">curl -X POST http:\/\/127.0.0.1:9998\/Service\/ -d '{\"jsonrpc\": \"2.0\", \"id\": 1234567890, \"method\": \"DisplaySettings.1.getConnectedVideoDisplays\"}'\n{\"jsonrpc\":\"2.0\",\"id\":1234567890,\"result\":{\"connectedVideoDisplays\":[\"HDMI0\"],\"success\":true}}<\/pre>\n<\/div>\n<\/div>\n<h3 id=\"Testonboard-Localmachineexample.1\"><strong>Local machine example<\/strong><\/h3>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">curl -X POST http:\/\/127.0.0.1:9000\/Service\/ -d '{\"jsonrpc\": \"2.0\", \"id\": 1234567890, \"method\": \"DisplaySettings.1.getConnectedVideoDisplays\"}'\n{\"jsonrpc\":\"2.0\",\"id\":1234567890,\"result\":{\"connectedVideoDisplays\":[\"HDMI0\"],\"success\":true}}<\/pre>\n<\/div>\n<\/div>\n<h3 id=\"Testonboard-Postmanexample.1\">Postman example<\/h3>\n<p><span class=\"confluence-embedded-file-wrapper confluence-embedded-manual-size\"><span class=\"confluence-embedded-file-wrapper confluence-embedded-manual-size\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/16\/2023\/09\/image2019-12-4_12-38-56.png\"><\/span><\/span><\/p>\n<p><strong><br \/><\/strong><\/p>\n<h3 id=\"Testonboard-Sending\/ReceivingmessagewithBrowserWebSocketClient\">Sending\/Receiving message with Browser WebSocket Client<\/h3>\n<ol>\n<li>Make sure that you have SSH enabled, and redirected ports (look above in this page)<\/li>\n<li>From chrome extenstion download &#8220;Browser WebSocket Client&#8221;<\/li>\n<li>\n<p>URL and Protocol can be taken from &#8220;thunder-wifimanager-test.js&#8221;, when creating this instruction it was:<\/p>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ws =&nbsp;new&nbsp;WebSocket('ws:\/\/localhost:9998\/jsonrpc',&nbsp;'notification');<\/pre>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<p>Going with this example our URL should be &#8216;<a href=\"ws:\/\/localhost:9998\/jsonrpc\" rel=\"nofollow\">ws:\/\/localhost:9000\/jsonrpc<\/a>&#8216; (NOTICE: port is different as we redirected it before), and Protocol should be &#8216;notification&#8217;. All those fields should not have [ &#8216; ] characters.<\/p>\n<\/li>\n<li>\n<p>Now we can register to get some message, In Send a Message field just paste request, i.e.<\/p>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{\n&nbsp;&nbsp;&nbsp;&nbsp;\"jsonrpc\":&nbsp;\"2.0\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"id\":&nbsp;123123123,\n&nbsp;&nbsp;&nbsp;&nbsp;\"method\":&nbsp;\"Controller.1.register\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"params\": {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"event\":&nbsp;\"all\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"id\":&nbsp;\"client.events.1\"\n&nbsp;&nbsp;&nbsp;&nbsp;}\n}<\/pre>\n<\/div>\n<\/div>\n<p>and press Send. In reveived Messages should be shown response.<\/p>\n<\/li>\n<li>\n<p>Then we can check if we will get new message if registered even appeard. We can do it be i.e.<\/p>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{\n&nbsp;&nbsp;&nbsp;&nbsp;\"jsonrpc\":&nbsp;\"2.0\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"id\":&nbsp;1234567890,\n&nbsp;&nbsp;&nbsp;&nbsp;\"method\":&nbsp;\"Controller.1.deactivate\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"params\": {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"callsign\":&nbsp;\"DeviceInfo\"\n&nbsp;&nbsp;&nbsp;&nbsp;}\n}<\/pre>\n<\/div>\n<\/div>\n<p>We should get 2 messages. One about success of this operation and second about event that we are registered.<\/li>\n<\/ol>\n<h3 id=\"Testonboard-Gettingeventsfromdesiredservice\">Getting events from desired service<\/h3>\n<p>To get event from specific service we need to set service name and event that we want to catch. So if we want i.e. get from HomeNetworking, get event deviceDiscoveryUpdate. We need to<\/p>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{\n&nbsp;&nbsp;&nbsp;&nbsp;\"jsonrpc\":&nbsp;\"2.0\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"id\":&nbsp;123123123,\n&nbsp;&nbsp;&nbsp;&nbsp;\"method\":&nbsp;\"org.rdk.HomeNetworking.1.register\",\n&nbsp;&nbsp;&nbsp;&nbsp;\"params\": {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"event\":&nbsp;\"deviceDiscoveryUpdate\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"id\":&nbsp;\"client.events.1\"\n&nbsp;&nbsp;&nbsp;&nbsp;}\n}<\/pre>\n<\/div>\n<\/div>\n<p>Important: name of service can be different on the box (here &#8220;org.rdk.&#8221; was prefixed) to check how service is called in the box use command:<\/p>\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">curl --location --request GET&nbsp;'http:\/\/127.0.0.1:9998\/Service\/Controller'&nbsp;| json_reformat<\/pre>\n<\/div>\n<\/div>\n<p>There you can find all services.<\/p>\n<p><\/body><\/html><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Setup SSH on a board To setup the ssh server it is&nbsp;necessary to connect via [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"parent":10275,"menu_order":2,"comment_status":"open","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-10283","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Test on board - RDK Documentation Portal | Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Test on board - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"Setup SSH on a board To setup the ssh server it is&nbsp;necessary to connect via [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-04T14:10:50+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/\",\"name\":\"Test on board - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2022-06-21T09:29:25+00:00\",\"dateModified\":\"2024-12-04T14:10:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RDK Video\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Sub-Systems\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/?page_id=10158\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"RDKServices\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"Test on board\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/\",\"name\":\"RDK Documentation Portal | Documentation\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Test on board - RDK Documentation Portal | Documentation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/","og_locale":"en_US","og_type":"article","og_title":"Test on board - RDK Documentation Portal | Documentation","og_description":"Setup SSH on a board To setup the ssh server it is&nbsp;necessary to connect via [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2024-12-04T14:10:50+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/","name":"Test on board - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2022-06-21T09:29:25+00:00","dateModified":"2024-12-04T14:10:50+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/test_on_board\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":3,"name":"RDK Video","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/"},{"@type":"ListItem","position":4,"name":"Sub-Systems","item":"https:\/\/developer.rdkcentral.com\/documentation\/?page_id=10158"},{"@type":"ListItem","position":5,"name":"RDKServices","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/rdkservices\/"},{"@type":"ListItem","position":6,"name":"Test on board"}]},{"@type":"WebSite","@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website","url":"https:\/\/developer.rdkcentral.com\/documentation\/","name":"RDK Documentation Portal | Documentation","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/comments?post=10283"}],"version-history":[{"count":1,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10283\/revisions"}],"predecessor-version":[{"id":10286,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10283\/revisions\/10286"}],"up":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10275"}],"wp:attachment":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/media?parent=10283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}