From bd814eafac20a5264782bad69ce2df1599921c68 Mon Sep 17 00:00:00 2001 From: Sebastien Douheret Date: Thu, 18 Jan 2018 09:44:34 +0100 Subject: Split markdown files to have a detailed TOC/summary. Change-Id: I7d578335ba0d1719030bc2efc6518da17a6150dc Signed-off-by: Sebastien Douheret --- docs/part-2/1_xds-server/2_how-to-run.md | 238 +++++++++++++++++++++++++++++++ 1 file changed, 238 insertions(+) create mode 100644 docs/part-2/1_xds-server/2_how-to-run.md (limited to 'docs/part-2/1_xds-server/2_how-to-run.md') diff --git a/docs/part-2/1_xds-server/2_how-to-run.md b/docs/part-2/1_xds-server/2_how-to-run.md new file mode 100644 index 0000000..36bc9a6 --- /dev/null +++ b/docs/part-2/1_xds-server/2_how-to-run.md @@ -0,0 +1,238 @@ +# How to run + +`xds-server` has been designed to easily compile and debug +[AGL](https://www.automotivelinux.org/) applications. That's why `xds-server` has +been integrated into AGL SDK docker container. + +>**Note:** For more info about AGL SDK docker container, please refer to +[AGL SDK Quick Setup](http://docs.automotivelinux.org/docs/getting_started/en/dev/reference/setup-sdk-environment.html) + +## Start xds-server within the container + +See [Installation based on Docker container](../../part-1/2-1_install-xds-server-docker.html) +chapter. + +## Manually Start XDS server + +XDS server is started as a service by Systemd. + +```bash +/lib/systemd/system/xds-server.service +``` + +This Systemd service starts a bash script + +```bash +/opt/AGL/xds/server/xds-server-start.sh +``` + +If needed you can change default setting by defining specific environment +variables file + +```bash +ssh -t -p 2222 devel@localhost vim /etc/default/xds-server +``` + +For example to control log level, just set LOG_LEVEL env variable. + +knowing that supported *level* are: + +- panic +- fatal +- error +- warn +- info +- debug + +```bash +docker exec ${CONTAINER_NAME} bash -c "echo 'LOG_LEVEL=debug' >> /etc/default/xds-server" +ssh -p 2222 devel@localhost -- "systemctl --user restart xds-server" +``` + +## SDK cross-toolchain Management + +### Setup to add support of a new SDK family + + +**Optional step**: read this chapter only if you plan to add a new SDK family. + + +`xds-server` dynamically detects supported SDKs by scanning sub-directories of +`sdkScriptsDir` directory (see [Configuration chapter](1_config.html)). + +Each sub-directory (usually name is the same as the SDK family) of `sdkScriptsDir` +must contain a set of scripts that will be called by `xds-server` to managed SDKs +of a specific family. + +These scripts are: + +- `add`: used to add/install a new SDK +- `db-dump`: returned the list of available and installed SDKs (JSON format) +- `db-update`: update SDKs database +- `get-family-config`: returned SDK family configuration structure (JSON format) +- `get-sdk-info`: extract SDK info (JSON format) from a SDK file/tarball +- `remove`: used to remove an existing SDK + +For example, here 2 SDKs family (`agl` and `zephyr`) are defined: + +```bash +# > tree ./sdks/ +./sdks/ +├── agl +│ ├── add +│ ├── db-dump +│ ├── db-update +│ ├── get-family-config +│ ├── get-sdk-info +│ └── remove +├── README.md +└── zephyr + ├── add +│ ├── db-dump +│ ├── db-update +│ ├── get-family-config +│ ├── get-sdk-info + └── remove +``` + +On startup `xds-server` will call in order: + +- `sdks/*/get-family-config` to get configuration of each SDK family. +- `sdks/*/db-dump` scripts to get the initial list of available and installed SDKs. + +Please refer to `sdks/README.md` for more information about scripts definition +and to understand how to add support of a new SDK family. + +### Install a new SDK from command line + +Used `sdks` command of `xds-cli` tool to managed SDKs. + +```bash +# List all available SDKs +xds-cli sdks ls -a + +List of available SDKs: +ID NAME STATUS VERSION ARCH +ec15afe0 AGL-release-eel-4.99.4-raspberrypi3 Not Installed 4.99.4 armv7vehf-neon-vfpv4 +944d2d5a AGL-snapshots-master-latest-intel-corei7-64 Not Installed 4.99.3+snapshot corei7-64 +cf3a4365 AGL-release-dab-4.0.2-qemux86-64 Not Installed 4.0.2 corei7-64 +d65fe750 AGL-release-eel-latest-qemux86-64 Not Installed 4.99.3 corei7-64 +a0ae663d poky-agl-corei7-64-3.99.1+snapshot Installed 3.99.1+snapshot corei7-64 +87f0400b AGL-release-dab-3.99.3-m3ulcb-nogfx Installed 3.99.3 aarch64 +8c2f2841 AGL-release-dab-4.0.2-dragonboard-410c Not Installed 4.0.2 aarch64 +... + +# Install a SDK (downloaded + install) +xds-cli sdks install d65fe750 + +Installation of 'AGL-release-eel-latest-qemux86-64' SDK successfully started. +Downloading poky-agl-glibc-x86_64-agl-demo-platform-crosssdk-corei7-64-toolchain-4.99.5.sh ... +--2018-01-02 11:22:23-- https://download.automotivelinux.org/AGL/release/eel/latest/qemux86-64/deploy/sdk/poky-agl-glibc-x86_64-agl-demo-platform-crosssdk-corei7-64-toolchain-4.99.5.sh +Resolving download.automotivelinux.org (download.automotivelinux.org)... 199.19.213.77 +Connecting to download.automotivelinux.org (download.automotivelinux.org)|199.19.213.77|:443... connected. +HTTP request sent, awaiting response... 200 OK +Length: 665996704 (635M) [application/x-sh] +Saving to: ‘/tmp/tmp.wuQzLdImCS/poky-agl-glibc-x86_64-agl-demo-platform-crosssdk-corei7-64-toolchain-4.99.5.sh’ + + 0K .......... .......... .......... .......... .......... 0% 82,7K 2h11m + 50K .......... .......... .......... .......... .......... 0% 89,1K 2h6m + 100K .......... .......... .......... .......... .......... 0% 82,0K 2h8m +... + 50300K .......... .......... .......... .......... .......... 99% 2,15M 0s + 650350K .......... .......... .......... ....... 100% 4,04M=10m35s + +2018-01-02 12:17:06 (1024 KB/s) - ‘/tmp/tmp.CWyEj3z76Q/poky-agl-glibc-x86_64-agl-demo-platform-crosssdk-corei7-64-toolchain-4.99.5.sh’ saved [665996704/665996704] + +Automotive Grade Linux SDK installer version 5.0.0 +=================================================== +You are about to install the SDK to "/xdt/sdk/poky-agl/5.0.0/corei7-64". Proceed[Y/n]? Y +Extracting SDK....................................................................................................................done +Setting it up...done +SDK has been successfully set up and is ready to be used. +Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g. + $ . /xdt/sdk/poky-agl/5.0.0/corei7-64/environment-setup-corei7-64-agl-linux + +SDK ID d65fe750-d3a7-38f5-83d8-3d3806054f8d successfully installed. + + +# Abort an installation that is in progress +xds-cli sdks abort -id d65fe750 + +# Install a SDK (using a local SDK package/file) +xds-cli sdks install --file $HOME/xds-workspace/sdks/poky-agl-glibc-x86_64-agl-demo-platform-crosssdk-corei7-64-toolchain-5.0.0.sh + +``` + + +Installation based on a local SDK package is only supported when SDK file package +is located in `$HOME/xds-workspace/sdks` directory + + +### Install a new SDK from XDS Dashboard + +Open XDS-Dashboard in web-browser and select `SDKs` entry in left side menu. + +Then switch to `SDKs MANAGEMENT` view : + +![](../part-1/pictures/xds-dashboard-sdks-mgt.png){:: style="margin:auto; display:flex"} + +Use filter boxes to find the SDK you want to install and then click on plus +icon (Actions column) to start installation. + +SDK download and installation process may take several minutes and output of installation script (output of `add` script mentioned in above chapter). + +![](../part-1/pictures/xds-dashboard-sdks-install.png){:: style="margin:auto; display:flex"} + +Note that you can abort installation by clicking on `CANCEL` button. + +### Un-install a SDK from command line + +Used `sdks` command of `xds-cli` tool to managed SDKs. + +```bash +# List installed SDKs +xds-cli sdks ls +List of installed SDKs: + ID NAME STATUS VERSION ARCH + c39e5998 poky-agl_aarch64_4.0.1 Installed 4.0.1 aarch64 + d610bfbf poky-agl-aarch64.current_on_iotbzh_download-3.99.1+snapshot Installed 3.99.1+snapshot aarch64.current_on_iotbzh_download + a0ae663d poky-agl-corei7-64-3.99.1+snapshot Installed 3.99.1+snapshot corei7-64 + 87f0400b AGL-release-dab-3.99.3-m3ulcb-nogfx Installed 3.99.3 aarch64 + 352c0584 poky-agl-corei7-64-3.99.2+snapshot Installed 3.99.2+snapshot corei7-64 + d65fe750 AGL-release-eel-latest-qemux86-64 Installed 4.99.5 corei7-64 + +# Un-install a SDK +xds-cli sdks uninstall d65fe750 +SDK ID d65fe750-d3a7-38f5-83d8-3d3806054f8d successfully deleted. +``` + +### Un-install a SDK from XDS Dashboard + +Open XDS-Dashboard in web-browser and select `SDKs` entry in left side menu. + +If needed, switch to `BASIC SDKS VIEW` view and click on trash icon located +in the top-right corner of SDK card. + +## XDS server REST API and Web application + +`xds-server` exposes a REST API and serves a basic web-application. + +REST API based url is `http://localhost:8000/api/v1/` when XDS server is +running on your host (localhost) and basic web-application is available at +[http://localhost:8000](http://localhost:8000). + +Just replace `localhost` by the host name or ip when `xds-server` is running +on another host. + +```bash +# Get version using REST API +curl http://localhost:8000/api/v1/version + +# Open browser and local xds-server web-application +xdg-open http://localhost:8000 +``` + +Then follow instructions provided on this page to install and start `xds-agent` +that must run locally on your machine. + +See also [xds-agent documentation](../2_xds-agent/0_abstract.html) for more details. -- cgit 1.2.3-korg