diff options
Diffstat (limited to 'docs/ATTIC')
71 files changed, 3276 insertions, 0 deletions
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/0_Overview/3.4.0_Overview.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/0_Overview/3.4.0_Overview.md new file mode 100644 index 0000000..3d638d7 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/0_Overview/3.4.0_Overview.md @@ -0,0 +1,65 @@ +--- +edit_link: '' +title: Overview +origin_url: >- + https://git.automotivelinux.org/src/xds/xds-docs/plain/docs/part-1/xds-overview.md?h=master +--- + +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Overview + +X(cross) Development System (XDS) is set of tools that provides +multi-platform cross development with +[near-zero](https://en.wikipedia.org/wiki/Zero_Install) +installation. + +This guide is available in two forms: the online version and a PDF +version: + +- Online: [http://docs.automotivelinux.org/docs/en/master/devguides/#xcross-development-system-user's-guide](../../../#xcross-development-system-user's-guide) + +- PDF: [http://iot.bzh/download/public/XDS/docs/XDS_UsersGuide.pdf](http://iot.bzh/download/public/XDS/docs/XDS_UsersGuide.pdf) + +XDS has two goals: + +1. Provide a multi-platform, cross development +tool with near-zero installation. + +2. Keep application source files local to the user's machine, which + makes XDS compatible with existing IT policies + (e.g. corporate backup or SCM), and lets users continue to work + using their favorite editors all while keeping performance during + editing and browsing activities. + +The following illustration shows XDS as two functional blocks: +the client part and the server part. + +The client part consists of several tools some essential and some +required. +The client part must have `xds-agent` and can optionally have `xds-cli` +and `xds-gdb`. +The client part runs on the user's machine (Development Host). + +The server part (`xds-server`) can run anywhere in a container, +which includes a standalone machine, a server machine connected +through a local network, or a server machine connected through the Cloud. + +![](pictures/xds-block-diagram.png) + +<!-- pagebreak --> + +The client part is portable and can run on the following platforms: + +- Linux +- Windows +- MacOS + +The following figure shows the three supported configurations for the client part: + +- standalone (i.e. local) +- On-Premise, which uses a local network +- [Software as a Service](https://en.wikipedia.org/wiki/Software_as_a_service) + (SaaS), which is Cloud-based + +![](pictures/xds-conf.png) diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/0_Overview/pictures/xds-block-diagram.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/0_Overview/pictures/xds-block-diagram.png Binary files differnew file mode 100644 index 0000000..fae6df2 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/0_Overview/pictures/xds-block-diagram.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/0_Overview/pictures/xds-conf.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/0_Overview/pictures/xds-conf.png Binary files differnew file mode 100644 index 0000000..64ba8a9 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/0_Overview/pictures/xds-conf.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /3.4.1.1_Server_Part.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /3.4.1.1_Server_Part.md new file mode 100644 index 0000000..6db9c98 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /3.4.1.1_Server_Part.md @@ -0,0 +1,459 @@ +# Server Part + +Depending on your situation, you must either install the +XDS server part or you can skip installation: + +- If you are a developer and plan to connect to and use an existing `xds-server` + that is running on your local network (On-Premise) or is available from + the Cloud (SaaS), you do not need to install the server part. +- If you are configured for Standalone or you are an administrator + that wants to install an On-Premise solution, you must install + the server part. + +This section describes three types of server part installations: + +| Install type | Supported OS | Section to refer | +|--------------|--------------|------------------| +| Container | Linux or MacOS | [Docker Container](#docker-container) | +| Virtual Machine | Linux, MacOS or Windows | [VirtualBox Appliance](#virtualbox-appliance) | +| Native | Linux | [Native](#native) | + +## Docker Container + +This section describes how to install the server part (`xds-server`) +into a +[Docker Container](https://www.docker.com/resources/what-container) +on a Linux-based system or a MacOS system. + +### Prerequisites + +The system on which you are installing the server part +must meet both the following prerequisites: + +- You must have Docker installed on the host machine. + For information on installing Docker, see the + [Docker documentation](https://docs.docker.com/engine/installation/). + +- Aside from having Docker installed, users must be part of a + docker + [group](https://www.linux.com/learn/intro-to-linux/2017/12/how-manage-users-groups-linux). + Enter the following command to display the system's groups and + then search for and list the Docker groups: + + ```bash + groups | grep docker + ``` + + If the users that plan on using the container are not part of the + Docker group or the group does not exist, you must take steps. + See the [docker post install instructions](https://docs.docker.com/install/linux/linux-postinstall/) + for details on creating a Docker group and adding users. + + Following is a summary of the key commands: + + ```bash + sudo groupadd docker + sudo usermod -aG docker $USER + # Log out and re-login so the system can re-evaluate the group membership + # You might also need to start docker service manually + + sudo service docker start + # or + sudo systemctl start docker + ``` + +### Get the Container + +Use the following command to load the pre-built AGL +SDK Docker image, which includes `xds-server`: + +```bash +wget -O - http://iot.bzh/download/public/XDS/docker/docker_agl_worker-xds-latest.tar.xz | docker load +``` + +The following command lists and displays information about the image: + +```bash +docker images "docker.automotivelinux.org/agl/worker-xds*" + +REPOSITORY TAG IMAGE ID CREATED SIZE +docker.automotivelinux.org/agl/worker-xds 5.0 877979e534ff 3 hours ago 106MB +``` + +### Create and Start a New Container + +Running the following script creates a new Docker image and starts a new container: + +```bash +# Get script +wget -O xds-docker-create-container.sh 'https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/xds/xds-server.git;a=blob_plain;f=scripts/xds-docker-create-container.sh;hb=master' + +# Create new XDS worker container (change the -id option value if you get a port conflict error) +bash ./xds-docker-create-container.sh -id 0 + +# Be sure the new container is running +docker ps | grep worker-xds +f67079db4339 docker.automotivelinux.org/agl/worker-xds:5.0 "/usr/bin/wait_for..." About a minute ago Up 34 seconds 0.0.0.0:8000->8000/tcp,0.0.0.0:10809->10809/tcp, 0.0.0.0:2222->22/tcp agl-xds-HOSTNAME-0-USERNAME +``` + +In the previous example, the container exposes following ports: + +| Port number | Description | +|-------------|---------------------------------------------| +| 8000 | `xds-server`: serve XDS webapp and REST API | +| 2222 | ssh | + +This container also creates the following volumes, which are shared folders between +inside and outside Docker: + +| Directory on host | Directory inside docker | Comment | +|-------------------|-------------------------|---------| +| $HOME/xds-workspace | /home/devel/xds-workspace | XDS projects workspace location| +| $HOME/xds-workspace/.xdt_0 | /xdt | location to store SDKs | +| $USER_VOLUME | $USER_VOLUME | user path, see `--volume` option of `xds-docker-create-container.sh` script | + +#### Optional Settings + +When you create the container, you can use optional settings. +This section shows minimal settings to configure the container. +For more detailed `xds-server` configuration information including settings, see the +"[xds-server configuration](../part-2/1_xds-server/2_config.html)" section. + +- **`--volume`** + + Adds a new shared directory using the `--volume` option (e.g. + used with Path-Mapping folder types): + + ```bash + # Create new XDS worker container and share extra '$HOME/my-workspace' directory + bash ./xds-docker-create-container.sh --volume /my-workspace:$HOME/my-workspace + ``` + +- **`--id`** + + Changes the port used by Docker: + + ```bash + # Create new XDS worker container with a different port number + ID=3 + bash ./xds-docker-create-container.sh -id ${ID} + + # Check that new container is running (in example below id has been set to 3) + docker ps | grep worker-xds + f67079db4339 docker.automotivelinux.org/agl/worker-xds:5.0 "/usr/bin/wait_for..." About a minute ago Up 34 seconds 0.0.0.0:2225->22/tcp, 0.0.0.0:8003->8000/tcp, 0.0.0.0:10892->10809/tcp agl-xds-3 + ``` + + <!-- section-note --> + **WARNING:** + Changing the container id impacts the port number used to connect to `xds-server`. + Consequently, you might need to adjust the `xds-agent` configuration in order + to match the correct port number. + + In the previous example where the container id is set to "3", the export + port number is `8003`. + In this case, you must define "url" in the `xds-server` configuration as follows: + + ```json + { + ... + "xdsServers": [ + { + "url": "http://localhost:8003" + } + ], + ... + } + ``` + + For more information, see the + [xds-agent configuration](../part-2/2_xds-agent/2_config.html) section. + <!-- end-section-note --> + +#### Manually Setup the Docker User ID + +If you are using path-mapping sharing type for your projects, you need to +have the same user ID and group ID inside and outside Docker. + +By default, user, password and group names inside Docker are `devel`, `devel` and `1664`, respectively. + +<!-- section-note --> +**NOTE:** + +If you used the `xds-docker-create-container.sh` script to create the XDS +Docker container, the user uid/gid inside Docker has already been changed. +<!-- end-section-note --> + +Use following commands to replace ID `1664` with your user and group ID: + +```bash +# Set the Docker container name (e.g. agl-xds-xxx where xxx is USERNAME@MACHINENAME-IDX-NAME). +export CONTAINER_NAME=agl-xds-seb@laptop-0-seb +docker ps | grep -q ${CONTAINER_NAME} || echo "ERROR: No container name \"${CONTAINER_NAME}\" please set a valid CONTAINER_NAME before you continue" + +# Kill all processes of with the user ID `devel`. This includes the running xds-server. +docker exec ${CONTAINER_NAME} bash -c "/bin/loginctl kill-user devel" + +# Change user and group IDs inside Docker to match your user and group IDs. +docker exec ${CONTAINER_NAME} bash -c "usermod -u $(id -u) devel" +docker exec ${CONTAINER_NAME} bash -c "groupmod -g $(id -g) devel" + +# Update file ownerships. +docker exec ${CONTAINER_NAME} bash -c "chown -R devel:devel /home/devel /tmp/xds*" + +# Restart the devel autologin service. +docker exec ${CONTAINER_NAME} bash -c "systemctl restart autologin" + +# Restart xds-server as a service. The ssh port 2222 might depend on your container ID. +ssh -p 2222 devel@localhost -- "systemctl --user restart xds-server" +``` +### Manually setup the Docker Password + +If you forget the password set for the container , you wont be able to ssh into the container and check on the files created. +For such a time , you need to set up a new password for the container. Use the following commands to do just that: + +```bash +# This will let you access the bash shell inside the container as root +docker exec -it ${CONTAINER_NAME} /bin/bash + +# Change the password of the user (root or devel) +passwd ${USER} +``` +### Check if xds-server is Running (open XDS webapp) + +When the container starts up, `xds-server` automatically starts as a +user service. + +If the container is running on your localhost, you can access a basic web +application to check on `xds-server`: + +```bash +xdg-open http://localhost:8000 +``` + +From a shell prompt, you can check status, stop, and start `xds-server` +using the following commands: + +```bash +# Status XDS server +ssh -p 2222 devel@localhost systemctl --user status xds-server.service + +# Stop XDS server +ssh -p 2222 devel@localhost systemctl --user stop xds-server.service + +# Start XDS server +ssh -p 2222 devel@localhost systemctl --user start xds-server.service + +# Get XDS server logs +ssh -p 2222 devel@localhost journalctl --user --unit=xds-server.service --output=cat +``` + +`xds-server` should be up and running. +You can now install AGL SDKs. +See the +"[AGL SDKs](install-sdk.html)" section for more information. + +## VirtualBox Appliance + +This section describes how to install the server part (`xds-server`) +into a guest Virtual Machine (VM) supported by +[VirtualBox](https://en.wikipedia.org/wiki/VirtualBox). +VirtualBox allows the creation and management of guest virtual +machines that run versions and derivations on many types of systems +(e.g. Linux, Window, MacOS, and so forth). + +### Prerequisites + +The system on which you are installing the server part must have +VirtualBox installed. +For information on how to install VirtualBox, see the +[VirtualBox documentation](https://www.virtualbox.org/wiki/Downloads). + +### Get the Appliance + +Use the following command to load the pre-built AGL SDK +appliance image, which includes `xds-server`: + +```bash +wget http://iot.bzh/download/public/XDS/appliance/xds-vm-debian9_latest.ova +``` + +### Clean the Old Appliance + +Only one appliance can exist on the machine. +Consequently, you must remove any existing XDS appliance. +Use the following commands: + +```bash +# Get the virtual machine name +VDS_VMNAME=$(VBoxManage list vms | grep xds-vm-debian | cut -d "\"" -f2) +echo ${VDS_VMNAME} + +# Remove the old XDS appliance +[ -n ${VDS_VMNAME} ] && VBoxManage controlvm ${VDS_VMNAME} poweroff +[ -n ${VDS_VMNAME} ] && VBoxManage unregistervm ${VDS_VMNAME} --delete +``` + +### Create and Start a New Appliance + +You can create a new appliance by using a provided script or by +using the VirtualBox GUI: + +```bash +# Import image into VirtualBox +VBoxManage import ./xds-vm-debian9_latest.ova + +# Check import result +VDS_VMNAME=$(VBoxManage list vms | grep xds-vm-debian | cut -d "\"" -f2) +echo ${VDS_VMNAME} +``` + +Add a share folder to the appliance. +You must use "path-mapping sharing type for projects": + +```bash +# Create local share folder +mkdir -p $HOME/xds-workspace + +#Add share folder to appliance +VBoxManage sharedfolder add ${VDS_VMNAME} --name XDS-workspace --hostpath $HOME/xds-workspace +``` + +Use the following command to start the appliance: + +```bash +# Start XDS appliance +[ -n ${VDS_VMNAME} ] && VBoxManage startvm ${VDS_VMNAME} +``` + +### Appliance Settings + +The image exposes the following network ports, which are NAT mode: + +- 8000 : `xds-server` to serve XDS basic web page +- 2222 : ssh + +### Check if xds-server is Running + +When the container in the virtual machine starts up, the `xds-server` automatically starts. + +To check if `xds-server` is correctly installed and running, you can access the +XDS basic web page and refer to the instructions: + +```bash +# If the container/appliance is running on your local host +# (else replace localhost with the name or the ip of the machine running the container) +xdg-open http://localhost:8000 +``` + +`xds-server` should be up and running. +You can now install AGL SDKs. +See the +"[AGL SDKs](install-sdk.html)" section for more information. + + +## Native + +This section describes how to install the server part (`xds-server`) 'natively' +on a Linux-based system. + +<!-- section-note --> +**NOTE:** +Hosts running a Linux distribution are the only hosts that support native +installation of the server part. +<!-- end-section-note --> + +### Prerequisites + +The system on which you are installing the server part must have +`python3` installed, which allows `xds-server` to manage AGL SDKs. + +#### Installing Packages for Debian + +Use the following commands to install packages for +`xds-server` on Debian-based systems: + +```bash +# Set 'DISTRO' (e.g. xUbuntu_16.04, xUbuntu_16.10, xUbuntu_17.04, Debian_8.0, Debian_9.0) +export DISTRO="xUbuntu_16.04" + +# Set AGL_RELEASE (e.g. AGL_ElectricEel, AGL_FunkyFlounder, AGL_Master) +export AGL_RELEASE="AGL_Master" + +wget -O - http://download.opensuse.org/repositories/isv:/LinuxAutomotive:/${AGL_RELEASE}/${DISTRO}/Release.key | sudo apt-key add - +sudo bash -c "cat >> /etc/apt/sources.list.d/AGL.list <<EOF +deb http://download.opensuse.org/repositories/isv:/LinuxAutomotive:/${AGL_RELEASE}/${DISTRO}/ ./ +EOF" + +sudo apt-get update +sudo apt-get install agl-xds-server + +# Install python3 +sudo apt-get install python3 +``` + +#### Install Packages for OpenSUSE + +Use the following commands to install packages for +`xds-server` on OpenSUSE-based systems: + +```bash +# Set DISTRO (openSUSE_Leap_42.3, openSUSE_Leap_15.0, openSUSE_Tumbleweed) +export DISTRO="openSUSE_Leap_15.0" + +# Set AGL_RELEASE (AGL_ElectricEel, AGL_FunkyFlounder, AGL_Master) +export AGL_RELEASE="AGL_Master" + +sudo zypper ar http://download.opensuse.org/repositories/isv:/LinuxAutomotive:/${AGL_RELEASE}/${DISTRO}/isv:LinuxAutomotive:${AGL_RELEASE}.repo + +sudo zypper ref +sudo zypper install agl-xds-server + +# Install python3 +sudo zypper install python3 +``` + +#### Configure the xds-server + +Configuring the `xds-server` occurs through a JSON configuration file +named `server-config.json`. +All fields in the JSON configuration file are optional. +Consequently, you can skip this configuration step if you want to use +the default settings in the JSON file. + +If you want to customize or alter the default configuration, see the +"[Configuration chapter of xds-server](../part-2/1_xds-server/2_config.html)" +section for details on the JSON configuration file. + +#### Start and Stop xds-server + +You can manage `xds-server` as a +[systemd](https://en.wikipedia.org/wiki/Systemd) service by using +the following commands: + +```bash +# Status XDS server: +systemctl --user status xds-server.service + +# Stop XDS server +systemctl --user stop xds-server.service + +# Start XDS server +systemctl --user start xds-server.service + +# Get XDS server logs +systemctl --user --unit=xds-server.service --output=cat +``` + +To check if `xds-server` is correctly installed and running, you can access +the XDS web interface through your browser: + +```bash +xdg-open http://localhost:8000 +``` + +Alternatively, you can use the following `curl` command: + +```bash +curl http://localhost:8000/api/v1/version +``` + diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /3.4.1.2_Client_Part.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /3.4.1.2_Client_Part.md new file mode 100644 index 0000000..b92cc0c --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /3.4.1.2_Client_Part.md @@ -0,0 +1,143 @@ +# Client Part + +The client part of the X(cross) Development System (XDS) is +a set of XDS client tools that must run on your development host. + +The tools that comprise the client part are: `xds-agent`, `xds-cli`, and `xds-gdb`. +Of the three, only `xds-agent`, whose source code can be found +[here](https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/xds/xds-agent.git) +in Gerrit is required. + +<!-- section-note --> +**NOTE:** + +The binary version is also available as standard Linux packages +or as a portable Windows archive (i.e. Zip). +<!-- end-section-note --> + +You should establish the following chain: + +- XDS Client: (i.e. `xds-cli` or XDS Dashboard). +- XDS Agent: (`xds-agent`) running on your development host. +- XDS Server: (`xds-server`) running on a remote server and/or in a container. + +HTTP and Websocket protocols establish exchanges between these three tools. + +You can change the default URL/port shown in the following illustration by using +configuration files. + +![XDS blocks chain](./pictures/xds-block-chain.png) + +<!-- section-note --> +**NOTE:** +Installation of the XDS client tools `xds-cli` and `xds-gdb` is +optional: + +- [xds-cli](https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/xds/xds-cli.git) : command line tool to used to interact with XDS (also used by IDE integration). +- [xds-gdb](https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/xds/xds-gdb.git) : requested for debugging application. +<!-- end-section-note --> + +## Install Packages for Debian + +Use the following commands to install packages for the client part +on Debian-based systems: + +```bash +# Set DISTRO (e.g. xUbuntu_16.04, xUbuntu_16.10, xUbuntu_17.04, xUbuntu_18.04, Debian_8.0, Debian_9.0) +export DISTRO="xUbuntu_18.04" + +# Set AGL_RELEASE (AGL_ElectricEel, AGL_FunkyFlounder, AGL_Master) +export AGL_RELEASE="AGL_Master" + +wget -O - http://download.opensuse.org/repositories/isv:/LinuxAutomotive:/${AGL_RELEASE}/${DISTRO}/Release.key | sudo apt-key add - +sudo bash -c "cat >> /etc/apt/sources.list.d/AGL.list <<EOF +deb http://download.opensuse.org/repositories/isv:/LinuxAutomotive:/${AGL_RELEASE}/${DISTRO}/ ./ +EOF" + +sudo apt-get update +sudo apt-get install agl-xds-agent +sudo apt-get install agl-xds-cli +sudo apt-get install agl-xds-gdb +``` + +## Install Packages for OpenSUSE + +Use the following commands to install packages for the client part +on OpenSUSE-based systems: + +```bash +# Set DISTRO (openSUSE_Leap_42.3, openSUSE_Leap_15.0, openSUSE_Tumbleweed) +export DISTRO="openSUSE_Leap_15.0" + +# Set AGL_RELEASE (AGL_ElectricEel, AGL_FunkyFlounder, AGL_Master) +export AGL_RELEASE="AGL_Master" + +sudo zypper ar http://download.opensuse.org/repositories/isv:/LinuxAutomotive:/${AGL_RELEASE}/${DISTRO}/isv:LinuxAutomotive:${AGL_RELEASE}.repo + +sudo zypper ref +sudo zypper install agl-xds-agent +sudo zypper install agl-xds-cli +sudo zypper install agl-xds-gdb +``` + +## Install Packages for Other Platforms (e.g. Windows / MacOS) + +- Follow these steps to install `xds-agent`: + + 1. Download the latest released tarball from the GitHub [Releases Page](https://github.com/iotbzh/xds-agent/releases). + + 1. Unzip the tarball anywhere into your local drive (e.g. `/opt/AGL/xds` or `C:\AGL\xds`). + + 1. Add binary to PATH: + + - MacOs: create the .bash_profile `nano .bash_profile` and add `export PATH="/opt/AGL/xds/xds-agent:$PATH` + - Windows: change the system path using the control panel or system settings. + Alternatively, you can `setx path "C:\AGK\xds\xds-agent;%path%"` + +- If you want to install optional tools, repeat the previous steps for each tool: + - `xds-cli`, which is used for command-line and IDE integration. + Downloaded from the ([released tarball link](https://github.com/iotbzh/xds-cli/releases)). + - `xds-gdb`, used for debugging applications. + Downloaded from the ([released tarball link](https://github.com/iotbzh/xds-gdb/releases)). + +## Start xds-agent + +As noted earlier, the `xds-agent` client tool must run on your local +development host when you use XDS. +Depending on your development host, use the following commands: + +- For a Linux-based development host, a user systemd service is provided + (i.e. `xds-agent.service`). + + To start this service automatically when your host boots, enable + the service using the following command: + + ```bash + # Enable xds-agent service at boot + systemctl --user enable xds-agent.service + ``` + + To start the XDS-agent service and display its log, use these + commands: + + ```bash + # Manually start xds-agent service + systemctl --user start xds-agent.service + + # Get status and log of xds-agent service + systemctl --user status xds-agent.service + ``` + +- For a MacOS-based host, use the following command to + manually start `xds-agent`: + + ```batch + /opt/AGL/bin/xds-agent + ``` + +- For a Windows-based host, use the following command to + manually start `xds-agent`: + + ```batch + C:\AGL\xds\xds-agent\xds-agent.exe + ``` diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /3.4.1.3_AGL_SDKs.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /3.4.1.3_AGL_SDKs.md new file mode 100644 index 0000000..18e41f1 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /3.4.1.3_AGL_SDKs.md @@ -0,0 +1,157 @@ +# AGL SDKs + +To build your AGL services or AGL applications using XDS, +you must install a Software Development Kit (SDK) that +matches your target/board. + +An SDK is a package that includes all the tools you need +to cross-build and cross-debug your service or application. +You install an SDK by running the SDK Installer. + +You can build an AGL SDK Installer for your board or you can download +a pre-built installer. + +This section describes how you can download a pre-built SDK +Installer using either the command line or the XDS Dashboard. +For information on how to build an SDK Installer, see the +"[Download or Build Your SDK Installer](../../../../getting_started/reference/getting-started/app-workflow-sdk.html)" +section. + +<!-- section-note --> +**NOTES:** +- In order to use the command line or the XDS Dashboard + to download an SDK Installer, you must + have the XDS UI set up in your toolchain (i.e. 'xds-cli'). + If you did not install 'xds-cli', see the + "[Client Part](client-part.html)" section for instruction on how + to install XDS UI. + +- See the + "[xds-server](../part-2/1_xds-server/0_abstract.html)" chapter + for more information on SDK management. +<!-- end-section-note --> + +## Command Line Operations + +This section describes how to download and install an SDK, +abort an installation, install an SDK from a local directory, +and view all installed SDKs. + +### Download and Install an SDK Using the Command Line + +Use the following commands to choose and install a pre-built SDK +Installer: + +```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 +... + +# Download and Install an SDK +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 4.99.5 +=================================================== +You are about to install the SDK to "/xdt/sdk/poky-agl/4.99.5/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/4.99.5/corei7-64/environment-setup-corei7-64-agl-linux + +SDK ID d65fe750-d3a7-38f5-83d8-3d3806054f8d successfully installed. +``` + +### Abort an Installation that is in Progress + +If for some reason you need to abort an ongoing installation, you can +use the `sdks abort` command: + +```bash +xds-cli sdks abort -id d65fe750 +``` + +### Install an SDK Using a Local SDK Package or File + +If you have an SDK Installer that is already local to your system, +you can use the command line to install it from your local directory: + +```bash +xds-cli sdks install --file $HOME/xds-workspace/sdks/poky-agl-glibc-x86_64-agl-demo-platform-crosssdk-corei7-64-toolchain-4.99.5.sh +``` + +<!-- section-note --> +**NOTE:** +Installation based on a local SDK Installer is only supported when the +SDK Installer is in the `$HOME/xds-workspace/sdks` directory. +<!-- end-section-note --> + +### List Installed SDKs + +To list the installed SDKs, use the following command: + +```bash +xds-cli sdks ls + +List of installed SDKs: +ID NAME STATUS VERSION ARCH +e45ac787 AGL-corei7-64-4.99.5+snapshot Installed 4.99.5 x86_64 +d65fe750 AGL-release-eel-latest-qemux86-64 Installed 4.99.3 corei7-64 +``` + +## Install an SDK Using the XDS Dashboard + +Follow these steps to locate, download, and install an SDK +using the XDS Dashboard: + +1. Open the XDS Dashboard in a Web Browser and select + `SDKs` in left-hand menu. + +2. Switch to `SDKs MANAGEMENT` view. + Following is an example: + + ![](../part-1/pictures/xds-dashboard-sdks-mgt.png){:: style="margin:auto; display:flex"} + +3. Use filter boxes to find the SDK you want to install. + +4. Click on the "plus" icon in the "Actions" column to + start the installation. + + The SDK Installer downloads and the installation process begins. + In can take several minutes for the installation to complete. + Following is an example of the output: + + ![](../part-1/pictures/xds-dashboard-sdks-install.png){:: style="margin:auto; display:flex"} + +## Aborting an SDK Installation + +If for some reason you need to abort an ongoing SDK installation, +you can do so by clicking the `CANCEL` button. diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /pictures/xds-block-chain.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /pictures/xds-block-chain.png Binary files differnew file mode 100644 index 0000000..0ecceb0 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /pictures/xds-block-chain.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /pictures/xds-dashboard-sdks-install.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /pictures/xds-dashboard-sdks-install.png Binary files differnew file mode 100644 index 0000000..20bc03e --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /pictures/xds-dashboard-sdks-install.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /pictures/xds-dashboard-sdks-mgt.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /pictures/xds-dashboard-sdks-mgt.png Binary files differnew file mode 100644 index 0000000..2a29151 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/1_Installing_XDS /pictures/xds-dashboard-sdks-mgt.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.0_Overview.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.0_Overview.md new file mode 100644 index 0000000..c8a04c0 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.0_Overview.md @@ -0,0 +1,29 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Overview + +The application development workflow using XDS begins with +making sure you have met all the +[requirements](create-app-requirements.html) needed to +use the tool. + +Once requirements are met, you have some options for +[getting the application source files](create-app-get-source-files.html) +together. +These options depend on where the XDS Server part is +running and which Client Part configuration you are using +(i.e. Standalone, On-Premise, or SaaS). + +You can build the application several ways: + +- Use the XDS Client + [Command Line](create-app-build-cmd-line.html) +- Use the XDS Client + [Dashboard](create-app-build-dashboard.html) +- Use a third-party Interactive Development Environment + ([IDE](create-app-build-ide.html)) application + (e.g. NetBeans, Visual Studio, and so forth). + +The following figure overviews the XDS application development process: + +![](pictures/create-app-workflow.png){:: style="margin:auto; display:flex"} diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.1_Requirements.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.1_Requirements.md new file mode 100644 index 0000000..e483e28 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.1_Requirements.md @@ -0,0 +1,29 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Requirements + +Before you can build your application using XDS, you need to be +sure you have satisfied the requirements described in this section. + +- The agent is running locally on your machine. + For information about the agent and how to install it, see the + "[Client Part](client-part.html)" topic. + +- The server is running locally in a Docker container + or is accessible on your network + For information about the server and how to install it, see the + "[Server Part](server-part.html)" topic. + +- one or more Software Development Kits (SDKs) are installed. + For information on installing an SDK, see the + "[AGL SDKs](install-sdk.html)" or + "[Download or Build Your SDK Installer](../../../../getting_started/reference/getting-started/app-workflow-sdk.html)" + topics. + +- Your XDS configuration is correct. + You can test this connection between the agent and the server + by opening the XDS Dashboard in a Web Browser and confirming + no error messages. + See the + "[Check if xds-server is Running](server-part.html#check-if-xds-server-is-running)" + topic. diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.2_Get_the_Source_Files.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.2_Get_the_Source_Files.md new file mode 100644 index 0000000..7f813ca --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.2_Get_the_Source_Files.md @@ -0,0 +1,83 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Get the Source Files + +XDS needs to be able to share your application source files. +This section describes the options you have for sharing your +files with the server running XDS. + +## Source Sharing Methods + +For this example, you will use the _helloworld-native-application_ +project. +You must clone this project's repository into a directory that +`xds-server` can access. + +Two methods exist: + +- If you Client Part is configured for SaaS (i.e. Cloud Sync), the local + directory into which you clone your application project is sent to + and replicated on the server running XDS. + This implies that you can use any local directory for your cloned + application repository. + +- If you `xds-server` is running locally, you can use path mapping. + Path mapping uses a volume shared between your development host and the server + that is running XDS. + The directory shared is `$HOME/xds-workspace`. + + <!-- section-note --> + **NOTE:** + + The path mapping method of sharing files is more efficient than + replicating the project on the XDS server. + However, you must clone the project under a directory that can be shared. + The most convenient directory is the default shared directory, which is + `$HOME/xds-workspace`. + + You could create additional shared volumes. + To create more shared volumes, See the + "[Create and Start a New Container](server-part.html#create-and-start-a-new-container)" + section. + +## Which File Sharing Method Should I Choose? + +The file sharing method you choose depends on the +Client Part configuration (i.e. Standalone, On-Premise or SaaS). + +- Standalone uses local path mapping. With this configuration, it + makes no sense to use SaaS (Cloud Sync) as it adds unnecessary overhead. + +- On-Premise uses Cloud Sync. + +- SaaS also uses Cloud Sync. With this configuration, replicating the + application project files on the XDS server is the only way to achieve + file sharing. + +<!-- section-note --> +**NOTE:** + +The +[helloworld-native-application](https://github.com/iotbzh/helloworld-native-application) +project is an AGL project that is based on CMake +(i.e. [cmake-apps-module](https://git.automotivelinux.org/src/cmake-apps-module/)). +For information on installing and using the CMake templates, see the +"[Installing the CMake Templates](../../../../devguides/reference/cmakeafbtemplates/dev_guide/installing-cmake.html)" +section. +CMake templates, when used to develop applications +with the AGL Application Framework, automatically generate Makefile rules +(e.g. `remote-target-populate`) or scripts (e.g. `build/target/xxx` scripts). +<!-- end-section-note --> + +## Clone project + +Now that you know where you are going to put your application files, +you can clone the repository. +In the following example, the local repository is cloned to the +default shared directory assuming path mapping, which is for +a Client Part Standalone configuration. + +```bash +cd $HOME/xds-workspace +git clone --recursive https://github.com/iotbzh/helloworld-native-application.git +``` diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.3_Build_Using_the_Command_Line.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.3_Build_Using_the_Command_Line.md new file mode 100644 index 0000000..05a24dd --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.3_Build_Using_the_Command_Line.md @@ -0,0 +1,173 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Build Using the Command Line + +One option for building your application using XDS is to use +the command line (i.e. `xds-cli`). +Building the application consists of declaring your project, identifying +some key ID values, and then using the command line to build it. + +<!-- section-note --> +**NOTE:** + +XDS tools, including `xds-cli`, are installed by default in +the `/opt/AGL/bin` directory. +During installation, this directory is automatically added to your +`PATH` variable. +If, for some reason, the tool is not in your `PATH` directory, +you can manually add it using the `export PATH=${PATH}:/opt/AGL/bin` +command. +<!-- end-section-note --> + + +## Declare Project + +Use the `projects add` command to declare your project: + +```bash +xds-cli prj add --label="Project_helloworld-native-application" --type=pm --path=/home/seb/xds-workspace/helloworld-native-application --server-path=/home/devel/xds-workspace/helloworld-native-application +``` + +When you declare the project, XDS creates the `xds-project.conf` +configuration file if one does not already exist. +You should examine this configuration file before you build the +project to be sure all configurations are correct for your project. + +<!-- section-note --> +**NOTE:** + +If the Server Part (i.e. `xds-agent`) is not running on the default +port, you can use the `--url=http://localhost:<port>` option with the +`xds-cli prj add` command to specify the port. +Just substitute the actual port for `<port>` with the option. +<!-- end-section-note --> + +## Determine the ID of Your Project + +After declaring your project, you need to determine the +unique ID of your project. + +From the command line, use the `prj ls` command, which is an abbreviation +for the `projects list` command: + +```bash +xds-cli prj ls +ID Label LocalPath +f9904f70-d441-11e7-8c59-3c970e49ad9b Project_helloworld-service /home/seb/xds-workspace/helloworld-service +4021617e-ced0-11e7-acd2-3c970e49ad9b Project_helloworld-native-application /home/seb/xds-workspace/helloworld-native-application +``` + +Once you have the ID of the project, you can use the `--id` option +or the `XDS_PROJECT_ID` environment variable to refer to your project. + +<!-- section-note --> +**NOTE:** + +When using the project ID from the command line, you can use the "short" +notation by providing a non-ambiguous portion of the ID. +For example, to refer to the `Project_helloworld-native-application` project +shown in the previous example, you can use `-id 40` rather than +`--id 40 instead of --id 4021617e-ced0-11e7-acd2-3c970e49ad9b`. +<!-- end-section-note --> + +## Determine the ID of Your SDK + +You also need to determine the ID of the SDK you want to use to cross-build +your application. + +To list installed SDKs, use the following command: + +```bash +xds-cli sdks ls +List of installed SDKs: + ID NAME + 7aa19224-b769-3463-98b1-4c029d721766 aarch64 (3.99.1+snapshot) + 41a1efc4-8443-3fb0-afe5-8313e0c96efd corei7-64 (3.99.2+snapshot) + c226821b-b5c0-386d-94fe-19f807946d03 aarch64 (3.99.3) +``` + +SDK IDs are returned by architecture and version. +Be sure to identify the SDK you need. + +## Build the Application + +You can now use XDS to cross-build your project. +Following is an example that builds a project that is based on CMake: + +```bash +# First, export the target IP address, or it's DNS name +export TARGET_ADDRESS=<target_adress> + +# Go into your project directory and create a build directory +cd $MY_PROJECT_DIR +mkdir build +``` + +Before using the command line to build the project, you should be +sure the project's configuration file is correct. +Examine the `xds-project.conf` configuration file and edit it +as needed. + +Generate the build system using CMake: + +``` +# You must set RSYNC_* variables so that you deploy and populate widgets on the target +xds-cli exec --id=4021617e --sdkid=c226821b -- "export RSYNC_TARGET=root@${TARGET_ADDRESS} ; export RSYNC_PREFIX=/opt ; cd build && cmake .." +``` + +Now you can build the project: + +``` +xds-cli exec --id=4021617e --sdkid=c226821b -- "cd build && make widget" +``` + +<!-- section-note --> +**NOTE:** + +If you use `&&`, `||` or `;` statements in the executed command line, +you need to double quote the command (e.g. `"cd build && make"`). +<!-- end-section-note --> + +To avoid having to set the project ID, SDK ID, and URL for each +command line, you can define these settings as environment variables +using an environment file. +Use the `--config` option or source file before executing +the `xds-cli` command. + +To specify your configuration file with the command line, +use the `--config` option. +For example, the equivalent of the previous build command but +with a specified configuration file is as follows: + +```bash +# MY_PROJECT_DIR=/home/seb/xds-workspace/helloworld-native-application +cd $MY_PROJECT_DIR + +# Edit and potentially adapt xds-project.conf file that has been created +# automatically on project declaration using XDS Dashboard +cat xds-project.conf + # XDS project settings + export XDS_AGENT_URL=localhost:8800 + export XDS_PROJECT_ID=4021617e-ced0-11e7-acd2-3c970e49ad9b + export XDS_SDK_ID=c226821b-b5c0-386d-94fe-19f807946d03 + +# Create build directory and invoke cmake and then build project +xds-cli exec --config=./xds-project.conf -- "mkdir -p build && cd build && cmake .." +cd build && xds-cli exec --config=../xds-project.conf -- "make all" +``` + +Alternatively, you could first source the configuration file to avoid using the +`--config` option as follows: + +``` +source xds-project.conf +xds-cli exec "mkdir -p build && cd build && cmake .." +cd build && xds-cli exec "make all" +``` + +<!-- section-note --> +**NOTE:** + +All parameters after a double dash (`--`) are considered as the command +to execute. +<!-- end-section-note --> diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.4_Build_Using_the_XDS_Dashboard.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.4_Build_Using_the_XDS_Dashboard.md new file mode 100644 index 0000000..07d9092 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.4_Build_Using_the_XDS_Dashboard.md @@ -0,0 +1,95 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Build Using the XDS Dashboard + +One option for building your application using XDS is to use +the XDS Dashboard. +Building the application consists of using the dashboard +to declare your project and then initiate the build. + +## Declare Project + +Follow these steps to declare the project: + +1. Open a Web Browser and connect to to the XDS Dashboard. + + The URL you use depends of your configuration (e.g. `http://localhost:8800`). + +2. Open the right sidebar and select the `Projects` entry to open the + project page. + Once the page is open, declare a new project by clicking on the + "plus" icon next to "Add Project": + + ![](./pictures/xds-dashboard-icon-2.png){:: style="margin:auto; display:flex"} + + When you declare the project, XDS creates the `xds-project.conf` + configuration file if one does not already exist. + You should examine this configuration file before you build the + project to be sure all configurations are correct for your project. + + The configuration file can be very useful when you plan to use + XDS client tools such as `xds-cli` or `xds-gdb`. + + <!-- pagebreak --> + +3. Set `Sharing Type` appropriately depending on your Client Part + configuration: + + ![](./pictures/xds-dashboard-prj-1.png){:: style="width:90%; max-width:560px; margin:auto; display:flex"} + + <!-- section-note --> + **NOTES:** + + - When `Path mapping` type is selected, you must clone your project into + `$HOME/xds-workspace` directory, which is named **Local Path** in the modal window. + + - If XDS server is running in the XDS docker container + the **Server Path** must be set to `/home/devel/xds-workspace/<xxx>` + where `<xxx>` is your project directory name. + See the "[Installation based on Docker container](server-part.html#docker-container))" + section for more information. + + - If you select `Cloud Sync`, you can clone your project wherever you want on + your local disk. + <!-- end-section-note --> + +## Build the Application + +Building the application requires opening the build page's "build entry" in the +left navigational pane, selecting both the project and the SDK, and +then initiating the build. + +<!-- section-note --> +**NOTE:** + +To use the `helloworld-native-application` example, you need to provide +some configuration items. +Specifically, you must pass values for both the +`RSYNC_TARGET` and `RSYNC_PREFIX` environment variables. +To pass these variables, use the `Settings` window in the `Build` tab. +You can use the `Env variables` field to pass a list of environment variables +that are set on the server prior to the build occurring. +You must separate individual variables using the semi-colon character: + +``` +RSYNC_TARGET=root@<mytarget>;RSYNC_PREFIX=/opt +``` + +When you pass these variables, substitute `<mytarget>` with the valid +target IP address or DNS name entry. +<!-- end-section-note --> + +Follow these steps to build the application: + +1. Open the build page build entry in the left-hand navigation pane: + + ![](./pictures/xds-dashboard-icon-3.png){:: style="display:inline; padding:0;"}, + +2. Select your **Project**. + +3. Seclect the **Cross SDK** you want to use. + +4. Click the **Clean / Pre-Build / Build / Populate** buttons to execute + the build action you want. + + ![](./pictures/xds-dashboard-prj-2.png){:: style="width:90%; max-width:600px; margin:auto; display:flex"} diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.5_Build_using_an_IDE.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.5_Build_using_an_IDE.md new file mode 100644 index 0000000..6effb00 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/3.4.2.5_Build_using_an_IDE.md @@ -0,0 +1,246 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Build using an IDE + +One option for building your application using XDS is to use +an Integrated Development Environment +([IDE](https://en.wikipedia.org/wiki/Integrated_development_environment)). +Many IDEs exist (e.g. [NetBeans](https://netbeans.org/), +[Visual Studio Code](https://code.visualstudio.com/), +[Qt Creator](https://www.qt.io/), +[Eclipse](https://www.eclipse.org/), and so forth). + +This section first develops an XDS configuration file +(i.e. `xds-project.conf`) and then provides two +examples, NetBeans and Visual Studio, that do the following. + +- NetBeans: Creates two separate build configurations + for a project, which makes it easy to switch back and forth + between types of builds. + +- Visual Studio: Creates tasks that allow you to build an example + based on CMake templates. + +## XDS Configuration File + +This section shows how to create an XDS configuration file +(i.e. `xds-project.conf`) or how to re-use an existing file. +For example, the following commands set up the configuration +file for an `aarch64` SDK to cross-build the +application for a Renesas Gen3 board. + +```bash +# create file at root directory of your project +# for example: +# MY_PROJECT_DIR=/home/seb/xds-workspace/helloworld-native-application +cat > $MY_PROJECT_DIR/xds-project.conf << EOF + export XDS_AGENT_URL=localhost:8800 + export XDS_PROJECT_ID=4021617e-ced0-11e7-acd2-3c970e49ad9b + export XDS_SDK_ID=c226821b-b5c0-386d-94fe-19f807946d03 +EOF +``` + +## NetBeans + +This section creates two configurations: one to compile the +project natively using native GNU gcc, and one to cross-compile +the project using XDS. + +Having two configurations allows you to easily switch between them +using NetBean's **Run -> Set Project Configuration** menu. + +### Native Configuration + +Follow these steps to create the native configuration: + +1. Open the **Tools** -> **Options** menu. + +2. Open the **C/C++** tab. + +3. Click on the **Add** button in the **Build Tools** sub-tab: + + ![Add new tool panel](./pictures/nb_newtool.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"} + +4. Fill the **Make Command** and **Debugger Command** fields to point to the XDS tools: + + ![Add new tool panel](./pictures/nb_xds_options.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"} + +5. Click **OK**. + +6. Select the **File** -> **New Project** menu item to declare the + project and create a native configuration. + +7. Select **C/C++ Project with Existing Sources** and click on **Next**. + +8. Specify your project directory and set **Select Configuration Mode** to + "Custom". + Be sure to keep **Tool Collection** set to "Default GNU" in order to create a + *native configuration*, which is based on the native GNU GCC. + +9. Click **Next**. + + ![Select Model panel](./pictures/nb_new-project-1.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"} + +10. Update the **Run in Folder** field to add the `build_native` suffix. + Doing so results in the build files being located in the + `build_native` sub-directory. + Be sure to keep the defaults for all other settings and then click **Next**. + + ![Select Model panel](./pictures/nb_new-project-2.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"} + +11. Click through **Next** several times while always keeping the + default settings until the **Finish** button appears. + +12. Click **Finish** to complete the creation of the native configuration. + +### Cross-Compilation Configuration + +Follow these steps to create the configuration for cross-compilation +based on the XDS tools: + +1. Edit project properties (using menu **File** -> **Project Properties**) + to add a new configuration that will use XDS to cross-compile + your application for example for a Renesas Gen3 board. + +2. in the **Build** category, click on **Manage Configurations** button + and then **New** button to add a new configuration named for example + "Gen3 board". + + ![Select Build category](./pictures/nb_new-project-3.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"} + +3. Click the **Set Active** button. + +4. Select the **Pre-Build** sub-category, and set the following: + + - Working Directory: `build_gen3` + - Command Line: `xds-cli exec -c ../xds-project.conf -- cmake -DRSYNC_TARGET=root@renesas-gen3 -DRSYNC_PREFIX=/opt ..` + - Pre-build First: `ticked`<br/><br/> + +5. Select the **Make** sub-category, and set the following: + + - Working Directory: `build_gen3` + - Build Command: `xds-cli exec -c ../xds-project.conf -- make remote-target-populate` + - Clean Command: `xds-cli exec -c ../xds-project.conf -- make clean`<br/><br/> + + ![Select Make sub-category](./pictures/nb_new-project-4.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"} + +6. Select the **Run** sub-category, and set the following: + + - Run Command: `target/start-on-root@renesas-gen3.sh` + - Run Directory: `build-gen3`<br/><br/> + + ![Select Run sub-category](./pictures/nb_new-project-5.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"} + +7. Click **OK** to save settings. + +By changing the configuration from **Default** to **Gen3 board**, you can +compile your helloworld application natively, which is the default configuration. +Or, you can cross-compile your application using XDS for the Renesas Gen3 board, +which is the Gen3 board configuration. + +## Visual Studio Code + +This section presents a Visual Studio example that creates tasks +that allow you to build an example that is based on CMake templates. + +Follow these steps: + +1. Start Visual Studio Code and open your project using the + following commands: + + ```bash + cd $MY_PROJECT_DIR + code . & + ``` + +2. Add new tasks by entering the `Ctrl+Shift+P` key combination and selecting + the `Tasks: Configure Task` command. + A list of task runner templates appears. + +3. Define your own tasks. + Following is an example that builds the + [helloworld-native-application](https://github.com/iotbzh/helloworld-native-application) + that is based on CMake templates. + + ```json + { + "version": "2.0.0", + "type": "shell", + "presentation": { + "reveal": "always" + }, + "tasks": [ + { + "label": "clean", + "type": "shell", + "command": "/bin/rm -rf ${workspaceFolder}/build/* && mkdir -p build && echo Cleanup done.", + "problemMatcher": [] + }, + { + "label": "pre-build", + "type": "shell", + "group": "build", + "command": "/opt/AGL/bin/xds-cli exec --rpath build --config xds-project.conf -- cmake -DRSYNC_TARGET=root@renesas-gen3 -DRSYNC_PREFIX=/opt ../", + "problemMatcher": [ + "$gcc" + ] + }, + { + "label": "build", + "type": "shell", + "group": "build", + "command": "/opt/AGL/bin/xds-cli exec --rpath build --config xds-project.conf -- make widget", + "problemMatcher": [ + "$gcc" + ] + }, + { + "label": "populate", + "type": "shell", + "command": "/opt/AGL/bin/xds-cli exec --rpath build --config xds-project.conf -- make widget-target-install", + "problemMatcher": [] + } + ] + } + ``` + +4. Run a task by entering the `Ctrl+Shift+P` key combination and + selecting `Tasks: Run task` and then selecting the specific task. + For example, select `pre-build` to trigger pre-build task. + +5. Optionally add keybindings that trigger tasks. + Following is an example: + + ```json + // Build + { + "key": "alt+f9", + "command": "workbench.action.tasks.runTask", + "args": "clean" + }, + { + "key": "alt+f10", + "command": "workbench.action.tasks.runTask", + "args": "pre-build" + }, + { + "key": "alt+f11", + "command": "workbench.action.tasks.runTask", + "args": "build" + }, + { + "key": "alt+f12", + "command": "workbench.action.tasks.runTask", + "args": "populate" + }, + ``` + + <!-- section-note --> + **NOTES:** + + - You can find more details about Visual Source Code keybindings + [here](https://code.visualstudio.com/docs/editor/tasks#_binding-keyboard-shortcuts-to-tasks). + + - You can find more details about Visual Source Code tasks + [here](https://code.visualstudio.com/docs/editor/tasks). + <!-- end-section-note --> diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/create-app-workflow.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/create-app-workflow.png Binary files differnew file mode 100644 index 0000000..7784063 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/create-app-workflow.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-1.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-1.png Binary files differnew file mode 100644 index 0000000..205d214 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-1.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-2.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-2.png Binary files differnew file mode 100644 index 0000000..a61866e --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-2.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-3.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-3.png Binary files differnew file mode 100644 index 0000000..b0a41eb --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-3.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-4.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-4.png Binary files differnew file mode 100644 index 0000000..bcb0716 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-4.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-5.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-5.png Binary files differnew file mode 100644 index 0000000..8b33787 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_new-project-5.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_newtool.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_newtool.png Binary files differnew file mode 100644 index 0000000..7c4fa40 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_newtool.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_xds_options.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_xds_options.png Binary files differnew file mode 100644 index 0000000..fa82a94 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/nb_xds_options.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-icon-2.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-icon-2.png Binary files differnew file mode 100644 index 0000000..e551d8c --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-icon-2.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-1.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-1.png Binary files differnew file mode 100644 index 0000000..d5b0621 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-1.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-2.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-2.png Binary files differnew file mode 100644 index 0000000..9429246 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/2_Create_your_first_AGL_application/pictures/xds-dashboard-prj-2.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.1_Overview.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.1_Overview.md new file mode 100644 index 0000000..83e425f --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.1_Overview.md @@ -0,0 +1,45 @@ +--- +edit_link: '' +title: Overview +origin_url: >- + https://git.automotivelinux.org/src/xds/xds-docs/plain/docs/part-1/debug-overview.md?h=master +--- + +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Overview + +Debugging your AGL application is based on the GNU Project Debugger +([GDB](https://www.gnu.org/software/gdb/)). +In order to use GDB, you must use `xds-gdb` as a wrapper on GDB to +cross-debug your application. +For information on `xds-gdb`, see the +"[Client Part](./client-part.html)" topic. + +Using `xds-gdb` allows you to debug an application built with +XDS without the need to install GDB or any cross-tools. + +XDS supports two debugging models: + +* Native debugging + +* XDS remote debugging + +The default debugging model is XDS remote. +To use this model, you must have previously set up the XDS +agent and server so that you can cross-debug your application. +See the +"[Server Part](./server-part.html)" and +"[Client Part](./client-part.html)" topics for more +information on getting set up. + +If you want to use the native debugging model, you must define the +`XDS_NATIVE_GDB` environment variable. +See the +"[Configuration](./debug-configuration.html)" topic for information +on XDS configuration variables. + +The remainder of this topic describes +[configurations](./debug-configuration.html), using the XDS +[command line](./debug-cmd-line.html) to debug, and using an +[IDE](./debug-ide.html) to debug. diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.2_Configuration.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.2_Configuration.md new file mode 100644 index 0000000..2bc28f3 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.2_Configuration.md @@ -0,0 +1,129 @@ +--- +edit_link: '' +title: Configuration +origin_url: >- + https://git.automotivelinux.org/src/xds/xds-docs/plain/docs/part-1/debug-configuration.md?h=master +--- + +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Configuration + +Debug configuration (i.e. `xds-gdb`) is defined by variables. +You can see the variables used further down in this section. + +You can set these variables using a number of methods: + +- Environment variables that are inherited. + +- Configuration file pointed to by the `XDS_CONFIG` environment variable + (e.g. `XDS_CONFIG=/tmp/my_xds_gdb_config.env xds-gdb`). + +- A GDB "init" command file. + +- A "user" configuration file located in one of the following + areas, which are order-dependent: + + 1. `$(CURRENT_DIRECTORY)/.xds-gdb.env` + + 1. `$(CURRENT_DIRECTORY)/../xds-gdb.env` + + 1. `$(CURRENT_DIRECTORY)/target/xds-gdb.env` + + 1. `$(HOME)/.config/xds/xds-gdb.env` + +## Configuration Variables + +This section describes the `XDS_*` configuration variables. +As previously mentioned, you can define these variables as +described in the previous section. + +- `XDS_LOGLEVEL` + + Sets the logging level. + Levels include "panic", "fatal", "error", "warn", "info", and "debug". + +- `XDS_LOGFILE` + + Sets the logging file. + The default is `/tmp/xds-gdb.log`. + +- `XDS_NATIVE_GDB` + + Specifies to use native GDB mode rather than remote XDS mode. + +- `XDS_PROJECT_ID` *(mandatory in XDS mode)* + + The project ID you want to build. + +- `XDS_RPATH` + + The relative path to the project. + +- `XDS_SDK_ID` *(mandatory in XDS mode)* + + Cross SDK ID to use to build project + +- `XDS_AGENT_URL` + + The local XDS agent URL. + The default is `http://localhost:8800`. + +## Configuration Using `XDS_CONFIG` + +As mentioned, you can define configuration variables in +a file you point to with the `XDS_CONFIG` variable. +Here is an example: + +```bash +XDS_CONFIG=/tmp/my_xds_gdb_config.env xds-gdb +``` + +Variables defined in this file overwrite any inherited +environment variables. +When you define a variable in the file, you can prefix the +assignment with the "export" string. +Doing so causes the variable to be exported to the environment. + +Following is an example of a configuration file pointed +to by the `XDS_CONFIG` variable. +These commands create the `xds-gen3.conf` configuration file +in the `$MY_PROJECT_DIR` directory: + +```bash +# MY_PROJECT_DIR=/home/seb/xds-workspace/helloworld-native-application +cat > $MY_PROJECT_DIR/xds-gen3.conf << EOF +export XDS_AGENT_URL=localhost:8800 +export XDS_PROJECT_ID=4021617e-ced0-11e7-acd2-3c970e49ad9b +export XDS_SDK_ID=c226821b-b5c0-386d-94fe-19f807946d03 +EOF +``` + +## Configuration Using GDB Init + +GDB is a versatile debugger and can be run with many options. +One such option is to execute a GDB "init" file upon startup. +You do this by using the "--command" or "-x" command-line options +and providing the name of the init file. + +<!-- section-note --> +**NOTES:** + +- For information on debugging with GDB, see + "[Debugging with GDB](https://www.sourceware.org/gdb/onlinedocs/gdb.html)". + +- For information on GDB init files, see + "[Command files](https://ftp.gnu.org/old-gnu/Manuals/gdb-5.1.1/html_node/gdb_190.html)". +<!-- end-section-note --> + +When you create an init file, it must conform to the following +syntax (i.e. inclusion of what are normally commenting characters +as well as use of the `:XDS-ENV:` tag). + +Following is an example init file that defines the `XDS_PROJECT_ID` +and `XDS_SDK_ID` variables: + +```bash + # :XDS-ENV: XDS_PROJECT_ID=4021617e-ced0-11e7-acd2-3c970e49ad9b + # :XDS-ENV: XDS_SDK_ID=c226821b-b5c0-386d-94fe-19f807946d03 +``` diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.3_Using_the_Command_Line.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.3_Using_the_Command_Line.md new file mode 100644 index 0000000..4dd7431 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.3_Using_the_Command_Line.md @@ -0,0 +1,123 @@ +--- +edit_link: '' +title: Using the Command Line +origin_url: >- + https://git.automotivelinux.org/src/xds/xds-docs/plain/docs/part-1/debug-cmd-line.md?h=master +--- + +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Using the XDS Command Line + +You can debug your AGL application using the XDS command line +in XDS remote mode or in native mode. + +## XDS Remote Mode + +XDS remote debugging is the default mode for using XDS to debug your +application. + + +Follow this procedure to use XDS remotely to debug your application: + +1. Declare the project you want to debug to the `xds-server`. + The project can also have been built using XDS. + See the "[Create your first AGL application](../../../#create-your-first-agl-application)" + topic for more details. + +2. Be sure you have the XDS agent and XDS server chain in place. + You can find more information on this chain in the + "[Installing XDS](../../../#installing-xds)" topic. + +3. Determine the unique project and SDK ID values. + Two methods exist for you to locate these ID values: + + - Use the "Project" page of the XDS dashboard. + + - Use the `xds-gdb --list` command from the XDS command line. + This command returns the list of all existing project and SDK + IDs: + + ```bash + xds-gdb --list + ``` + +4. Define the `XDS_PROJECT_ID` and `XDS_SDK_ID` variables. + Defining these variables refers the project to the + `xds-server`. + Once you refer the project, you are ready to use `xds-gdb` + (e.g. cross debug your project). + +5. Build and debug the project. + +**Example** + +Following is an example that builds and debugs a project +based on a CMakefile and the +[cmake-apps-module](https://git.automotivelinux.org/src/cmake-apps-module/): + +```bash +# Go into your project directory (e.g. helloworld-native-application) +cd ~/xds-workspace +# Clone the project files into your local directory. +git clone https://github.com/iotbzh/helloworld-native-application.git +# Go to the local project's directory. +cd helloworld-service + +# Declare your project on xds-server +# For now, you can only do this step using the XDS Dashboard. +# See the "Build Using the XDS Dashboard" topic in the "Create Your +# First Application" topic. + +# Define XDS configuration variables by creating a "xds-config.env" file. +cat <<EOF >./xds-config.env +#optional if not default value: XDS_AGENT_URL=http://localhost:8800 +XDS_PROJECT_ID=IW7B4EE-DBY4Z74_myProject +XDS_SDK_ID=poky-agl_aarch64_4.0.1 +EOF + +# Define the configuration file to use. +export XDS_CONFIG=../xds-gen3.conf + +# Create a new build directory. +mkdir build && cd build + +# Start remote cross-build +xds-cli exec -- cmake -DRSYNC_TARGET=root@myTarget .. +xds-cli exec -- make +xds-cli exec -- make remote-target-populate + +# Start debugging +xds-gdb -x target/gdb-on-root@myTarget.ini +``` + +<!-- section-note --> +**NOTE:** + +The [helloworld-native-application](https://github.com/iotbzh/helloworld-native-application) +project is an AGL project based on the +[cmake-apps-module](https://git.automotivelinux.org/src/cmake-apps-module/). +For information on installing this module, see the +"[Installing the CMAKE Templates](../../cmakeafbtemplates/dev_guide/installing-cmake.html))" +topic. + +The CMake templates that are used to develop applications +with the AGL Application Framework, automatically generate +Makefile rules (e.g. `remote-target-populate`) or scripts +(e.g. `build/target/*`). + +For more info about the CMake templates, see the +"[Using the Cmake Applications Module](../../../#using-the-cmake-applications-module)" +topic. +<!-- end-section-note --> + +## Native debugging + +Native debugging is best for applications or services that are also +built natively and you want to use any debugger (e.g. GDB) on an actual +piece of hardware. + +To enable native debugging mode, set the `XDS_NATIVE_GDB` variable. + +For information on debugging with GDB, see +"[Debugging with GDB](https://www.sourceware.org/gdb/onlinedocs/gdb.html)". diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.4_Using_an_IDE.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.4_Using_an_IDE.md new file mode 100644 index 0000000..c4b0341 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.4_Using_an_IDE.md @@ -0,0 +1,94 @@ +--- +edit_link: '' +title: Using an IDE +origin_url: >- + https://git.automotivelinux.org/src/xds/xds-docs/plain/docs/part-1/debug-ide.md?h=master +--- + +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Using an IDE + +This topic describes how to use `xds-gdb` from within an Interactive +Development Environment (IDE) to debug your application. +The topic uses the +[NetBeans](https://netbeans.org/) IDE as an example. + +## Prerequisites + +Before using the IDE, you need to declare the project you want to debug +on the `xds-server`. + +<!--section-note--> +**NOTE:** + +The project you declare can also have been built using XDS. +For information on building the project using XDS, see the +"[Create your first AGL application](../../../#create-your-first-agl-application)" +section. +<!--end-section-note--> + +## NetBeans + +This section presents an example using NetBeans version 8.x: + +1. Select the **Options** item in the **Tools** menu. + +2. Open the **Build Tools** tab. + +3. Open the **C/C++** tab and click the **Add** button to reveal the "Add New + Tool Collection" dialog box: + + ![Add new tool panel](./pictures/nb_newtool.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"} + +4. Fill in the **Make Command** and **Debugger Command** fields so that they point to the XDS tools. + Following is an example: + + ![Add new tool panel](./pictures/nb_xds_options.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"} + +5. Click on **OK** button. + +6. Select the **Project Properties** item in the **File** menu to + update your debug settings. + +7. In the "Project Properties" dialog, be sure that the "Gen3 board" + appears in the "Configuration" field (i.e. active). + +8. In the "Categories" navigation pane, select **Run**. + +9. Set the following: + + - Run Command: `target/start-on-root@renesas-gen3.sh` + <!--section-note--> + **NOTE:** + + The script name could depend on the `RSYNC_TARGET` + variable you set in pre-build command. + <!--end-section-note--> + + - Run Directory: `build_gen3` + +10. In the "Categories" navigation pane, select **Debug**. + +11. Set the following: + + - Debug command: `/bin/true` + + - Working Directory: Leave this field blank + + - Gdb Init File: `target/gdb-on-root@renesas-gen3.ini` + <!--section-note--> + **NOTE:** + + The script name could depend on the `RSYNC_TARGET` + variable you set in pre-build command. + <!--end-section-note--> + + ![Select Model panel](./pictures/nb_project_debug-1.png){:: style="width:90%; max-width:700px; margin:auto; display:flex"} + +12. Click **Apply**. + +13. Click **OK** to save your settings. + +14. Start debugging your application by selecting the **Debug Project** item + in the **Debug** menu, or by entering the **CTRL+F5** shortcut. diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/pictures/nb_newtool.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/pictures/nb_newtool.png Binary files differnew file mode 100644 index 0000000..7c4fa40 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/pictures/nb_newtool.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/pictures/nb_project_debug-1.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/pictures/nb_project_debug-1.png Binary files differnew file mode 100644 index 0000000..7d89fc5 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/pictures/nb_project_debug-1.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/pictures/nb_xds_options.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/pictures/nb_xds_options.png Binary files differnew file mode 100644 index 0000000..fa82a94 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/pictures/nb_xds_options.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.0_Abstract/3.4.4.0_Abstract.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.0_Abstract/3.4.4.0_Abstract.md new file mode 100644 index 0000000..b0c50a9 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.0_Abstract/3.4.4.0_Abstract.md @@ -0,0 +1,8 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# XDS internals (advanced documentation) + +## Abstract + +This 2nd part is the "technical" documentation of all XDS pieces/tools that allows +for example to fine tune XDS configuration or rebuild all XDS tools from scratch. diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.1_Prerequisites/3.4.4.1_Prerequisites.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.1_Prerequisites/3.4.4.1_Prerequisites.md new file mode 100644 index 0000000..f505a39 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.1_Prerequisites/3.4.4.1_Prerequisites.md @@ -0,0 +1,63 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Prerequisites + +XDS is written in Go and currently only build on Linux host has been validated. + +So to build XDS binaries you need to install first [Go](https://golang.org/doc/install) +version 1.8.1 or higher and some other tools. To build `xds-server` and `xds-agent` +you also need to install in addition `nodejs` and `python3` tools. + +**Ubuntu:** + +```bash +# Install various tools +sudo apt-get install git make npm curl git zip unzip wget + +# Install Go +source /etc/os-release +wget -O - "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x52B59B1571A79DBC054901C0F6BC817356A3D45E" | sudo apt-key add - +sudo bash -c "cat >> /etc/apt/sources.list.d/golang.list <<EOF +deb http://ppa.launchpad.net/longsleep/golang-backports/ubuntu ${VERSION_CODENAME} main +EOF" +sudo apt-get update +sudo apt-get install golang-go + +# Install python3 +sudo apt-get install python3 +``` + +**openSUSE:** + +```bash +# Install various tools +sudo zypper install git make npm curl zip unzip + +# Install Go +# ( the value 'DISTRO' can be set to {openSUSE_Leap_42.2, openSUSE_Leap_42.3, openSUSE_Tumbleweed} ) +source /etc/os-release; export DISTRO="openSUSE_Leap_$VERSION" +sudo zypper ar http://download.opensuse.org/repositories/devel:/languages:/go/${DISTRO}/devel:languages:go.repo +sudo zypper --gpg-auto-import-keys ref +sudo zypper install go1.9 + +# Install python3 +sudo zypper install python3 +``` + +> Don't forget to open new user session after installing these packages. + +**All Linux distro:** + +```bash +# Install nodejs LTS version (only mandatory for xds-server and xds-agent) +sudo npm install --global n +sudo n lts +``` + +Angular developers that's plan to modify XDS Dashboard webapp (part of +`xds-agent` repo) may also need angular cli tool named `ng` : + +```bash +# Install angular cli tool (ng) +sudo npm install --global n @angular/cli +``` diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.0_ Abstract.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.0_ Abstract.md new file mode 100644 index 0000000..ab6c8c4 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.0_ Abstract.md @@ -0,0 +1,44 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# XDS - X(cross) Development System Server + +`xds-server` is a web server that allows user to remotely cross build applications. + +- The first goal is to provide a multi-platform cross development tool with near-zero installation. +- The second goal is to keep application sources locally (on user's machine). + - Make it compatible with existing IT policies (e.g. corporate backup or SCM). + - Let user to continue to work as usual. + - Use his favorite editor. + - keep performance while editing/browsing sources. + - Avoids manual operation + +This powerful and portable webserver (written in [Go](https://golang.org)) +exposes a REST interface over HTTP. + +`xds-server` uses [Syncthing](https://syncthing.net/) tool to synchronize +projects files from user machine to build server machine or container. + +`xds-server` is commonly running on a build server (within a container or not) +and [xds-agent](../2_xds-agent/0_abstract.html) must run on the developer/user machine in order +to setup the following connection chain: + +```schema + developer/user machine | build server or container + ---------------------------|----------------------------- + xds-cli <---> xds-agent <-|-> xds-server +``` + +**SEE ALSO**: [xds-cli](https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/xds/xds-cli.git), +a command-line tool that allows you to send commands to `xds-agent / xds-server` +and for example build your application from command-line or from your favorite +IDE (such as Netbeans or Visual Studio Code) through `xds-agent <=> xds-server`. + +--- + +Links to subchapters : + +- [Build from scratch](./1_build.html) +- [Configuration](./2_config.html) +- [How to run](./3_how-to-run.html) +- [Debugging](./4_debug.html) +- [Tests](./5_test.html) diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.1_Build.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.1_Build.md new file mode 100644 index 0000000..11c18b3 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.1_Build.md @@ -0,0 +1,84 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --># Build xds-server from scratch + +## Dependencies + +Install [Go](https://golang.org/doc/install), [npm](https://www.npmjs.com/), +[nodejs](https://nodejs.org/en/) and some other tools. + +Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details. + +## Building + +### Native build + +Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-server` +in order respect directory hierarchy that match Go package import logic (see +[How to Write Go Code](https://golang.org/doc/code.html) for more details). + +Then use delivered Makefile : + +```bash +# Declare ROOTDIR, can be any location (for example xds-build) +ROOTDIR=$HOME/xds-build + +# Create directory hierarchy that match Go package import logic +mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds +cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds + +# Clone sources +git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-server +# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-server + +# Build xds-server +# (note that GOPATH will correctly be set by Makefile) +cd xds-server +make all +``` + +Generate xds-server package / tarball + +```bash +make package-all +``` + +And to install `xds-server` (by default in `/opt/AGL/xds/server`): + +```bash +make install +``` + +<!-- section-warning --> +**Warning:** + +Makefile install rule and default values in configuration file are set +to fit the docker setup. + +So you may need to adapt some settings when you want to install xds-server natively. +<!-- end-section-warning --> + +<!-- section-note --> +**Note:** + +Used `DESTDIR` to specify another install directory + +```bash +make install DESTDIR=$HOME/opt/xds-server +``` + +<!-- end-section-note --> + +### XDS docker image + +As an alternative to a pre-build image, you can rebuild the container from scratch. + +`xds-server` has been integrated as a flavour of AGL SDK docker image. + +So to rebuild docker image just execute following commands: + +```bash +# Clone docker-worker-generator git repo +git clone https://git.automotivelinux.org/AGL/docker-worker-generator +# Start build that will create a docker image +cd docker-worker-generator +make build FLAVOUR=xds +``` diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.2_Config.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.2_Config.md new file mode 100644 index 0000000..ba97d1f --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.2_Config.md @@ -0,0 +1,91 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Configuration + +`xds-server` configuration is driven by a JSON config file (`server-config.json`). + +Here is the logic to determine which `server-config.json` file will be used: + +1. from command line option: `--config myConfig.json` +1. `$HOME/.xds/server/server-config.json` file +1. `/etc/xds/server/server-config.json` file +1. `<xds-server executable dir>/server-config.json` file + +Supported fields in configuration file are: + +- **httpPort** : HTTP port of client webapp/REST API +- **webAppDir** : location of client web application (default: webapp/dist) +- **shareRootDir** : root directory where projects will be copied +- **logsDir** : directory to store logs (eg. syncthing output) +- **sdkScriptsDir** : directory where scripts, used to managed SDKs, are installed +- **sdkDbUpdate** : define how SDK database(s) is(are) updated, supported values are: + `disable`, `startup` (default: `startup`) +- **syncthing.binDir** : syncthing binaries directory (default: executable directory) +- **syncthing.home"** : syncthing home directory (usually .../syncthing-config) +- **syncthing.gui-address** : syncthing gui url (default <http://localhost:8385>) +- **syncthing.gui-apikey** : syncthing api-key to use (default auto-generated) + +All fields are optional and example below corresponds to the default values. + +```json +{ + "httpPort": 8000, + "webAppDir": "webapp/dist", + "shareRootDir": "${HOME}/.xds/server/projects", + "logsDir": "/tmp/logs", + "sdkScriptsDir": "${EXEPATH}/scripts/sdks", + "sdkDbUpdate": "startup", + "syncthing": { + "binDir": "./bin", + "home": "${HOME}/.xds/server/syncthing-config", + "gui-address": "http://localhost:8385", + "gui-apikey": "123456789", + } +} +``` + +>**Notes:** +> +>Environment variables are supported by using `${MY_VAR}` syntax. +> + +When `xds-server` is started as a systemd service, default environment variables +are set into `/etc/default/xds-server` file. + +`xds-server` configuration is also driven by a JSON config file (`server-config.json`), +and default JSON config is `/etc/xds/server/server-config.json`. + +<!-- section-note --> +**Note:** +You can use your own JSON config by settings `APP_CONFIG` variable of +`/etc/default/xds-server` file to your file, for example `/home/MYUSER/.xds/server/server-config.json` +<!-- end-section-note --> + +## Disable syncthing + +`CloudSync` synchronization type based on `syncthing` tool can be disabled by +simply removing (or renaming) `"syncthing"` key in configuration file. +Here is a JSON configuration file example where syncthing key as been renamed: + +```json +{ + "httpPort": 8000, + "webAppDir": "webapp/dist", + "shareRootDir": "${HOME}/.xds/server/projects", + "logsDir": "/tmp/logs", + "sdkScriptsDir": "${EXEPATH}/scripts/sdks", + "syncthing_DISABLE": { + "binDir": "./bin", + "home": "${HOME}/.xds/server/syncthing-config", + } +} +``` + +On benefit to do that is to increase XDS-Server startup time. + +<!-- section-note --> +**Note:** + +- `CloudSync` (AKA syncthing) synchronization type can also be disabled when `"syncthing"` key is not defined in JSON configuration file. + +<!-- end-section-note --> diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.3_how-to-run.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.3_how-to-run.md new file mode 100644 index 0000000..38bfbc3 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.3_how-to-run.md @@ -0,0 +1,199 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> +# 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](../../../../../getting_started/reference/getting-started/docker-container-setup.html) + +## Start xds-server + +There are several way to install xds-server and start-up depend of installation type: + +| Installation type | Supported<br> host OS | Start-up | Install instructions | +|-------------------|-------------------------|---------------------------------------------------|----------------------| +| Docker container | Linux or MacOS | Automatic based on systemd user service | [see Installation based on Docker container](../../part-1/server-part.html#docker-container) | +| Virtual Machine | Linux, MacOS or Windows | Automatic based on systemd user service | [see Installation based on VirtualBox appliance](../../part-1/server-part.html#virtualbox-appliance) | +| Native | Linux | Automatic based on systemd user service or manual | [see Native installation](../../part-1/server-part.html#native) | +| Native | MacOS or Windows | Manually | [see Native installation](../../part-1/server-part.html#native) | + +### Automatic start-up based on systemd user service + +XDS server is started as a user service by Systemd. + +```bash +/usr/lib/systemd/user/xds-server.service +``` + +Use well-known systemd commands to control `xds-server.service` service. + +```bash +# Enter in docker container or VM +# (optional, depending on installation type) +ssh -p 2222 devel@localhost + +# Status XDS server: +systemctl --user status xds-server + +# Restart XDS server +systemctl --user restart xds-server +``` + +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" +``` + +### Manual start-up + +On **Linux or MacOS**, simply execute `xds-server` executable: + +```bash +/opt/AGL/bin/xds-server +``` + +On **Windows**, simply execute `xds-server` executable: + +```batch +C:\AGL\bin\xds-server.exe +``` + +<!-- section-note --> +**Note:** + +Invoke `xds-server --help` to get more details about possible options that allow +for example to change logging level or select another configuration file. + +<!-- end-section-note --> + +## 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`. + +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. + +## SDK cross-toolchain Management + +### Setup to add support of a new SDK family + +<!-- section-note --> +**Optional step**: read this chapter only if you plan to add a new SDK family. +<!-- end-section-note --> + +`xds-server` dynamically detects supported SDKs by scanning sub-directories of +`sdkScriptsDir` directory (see [Configuration chapter](2_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-update` to update database (only when `SdkDbUpdate` is set to ̀`startup`, + see [Configuration chapter](2_config.html) for more details) +- `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 + +Please refer to [Installing AGL SDKs](../../part-1/install-sdk.html) chapter. + +### 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. diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.4_Debug.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.4_Debug.md new file mode 100644 index 0000000..ceb3e5b --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.4_Debug.md @@ -0,0 +1,47 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> +# Debugging + +## XDS server architecture + +The server part is written in *Go* and web app (basic HTML) in *Angular4*. + +```bash +| ++-- bin/ # where xds-server binary file will be built +| ++-- conf.d/ # Linux configuration and startup files (systemd user service) +| ++-- glide.yaml # Go package dependency file +| ++-- lib/ # sources of server part (Go) +| ++-- LICENSE # XDS server license +| ++-- main.go # main entry point of of Web server (Go) +| ++-- Makefile # makefile including +| ++-- README.md # readme +| ++-- scripts/ # hold various scripts used for installation or startup +| ++-- test/ # XDS test suite +| ++-- tools/ # temporary directory to hold development tools (like glide) +| ++-- vendor/ # temporary directory to hold Go dependencies packages +| ++-- webapp/ # source client basic web application +``` + +## Debug server part (Go code) + +Install first [Visual Studio Code](https://code.visualstudio.com/) and +[Go plugin](https://marketplace.visualstudio.com/items?itemName=lukehoban.Go) +(`ext install lukehoban.Go`) + +Visual Studio Code launcher settings can be found into `.vscode/launch.json`. + +Please follow instructions of xds-agent [debugging chapter](../2_xds-agent/4_debug.html#debug-xds-agent-go-code), +knowing that you execute these same instructions in `xds-server` repo, in other words +by replacing *xds-agent* references by *xds-server*. diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.5_Test.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.5_Test.md new file mode 100644 index 0000000..2376d43 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.2_xds-server/3.4.4.2.5_Test.md @@ -0,0 +1,43 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> +# XDS Server Test + +## XDS Server test architecture + +The test part is written in go and source code is available in test directory. + +```bash +| ++-- test/ # where xds-server test source files +| ++-- test/main_test.go # main entry point of xds-server test +| ++-- test/fixtures # fixtures for running test +``` + +The test execution will locally launch xds-server and access the api through REST and test results, events, ... + +## Dependencies + +* sshd + +Make sure sshd is in your user PATH. + +## Launch test + +Use the following command to launch test in xds-server root directory: + +```bash +make test +``` + +Launch only one test, for example launch TestSdks: + +```bash +make test name=TestSdks +``` + +Increase test verbosity: + +```bash +make test VERBOSE=1 +``` diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.0_Abstract.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.0_Abstract.md new file mode 100644 index 0000000..21126ec --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.0_Abstract.md @@ -0,0 +1,21 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# XDS - X(cross) Development System Agent + +XDS-agent is a client that should run on your local / user development machine when you use XDS. + +This agent takes care, among others, of starting [Syncthing](https://syncthing.net/) +tool to synchronize your project files from your local host to XDS build server +machine or container (where `xds-server` is running). + +> **SEE ALSO**: [xds-server](https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/xds/xds-server.git), a web server +used to remotely cross build applications. + +--- + +Links to subchapters : + +- [Build from scratch](./1_build.html) +- [Configuration](./2_config.html) +- [Start-up](./3_start.html) +- [Debugging](./4_debug.html) diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.1_Build.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.1_Build.md new file mode 100644 index 0000000..6447244 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.1_Build.md @@ -0,0 +1,92 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Build xds-agent from scratch + +## Dependencies + +Install [Go](https://golang.org/doc/install), [npm](https://www.npmjs.com/), +[nodejs](https://nodejs.org/en/) and some other tools. + +Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details. + +## Building + +Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-agent` +in order respect directory hierarchy that match Go package import logic (see +[How to Write Go Code](https://golang.org/doc/code.html) for more details). + +Then use delivered Makefile : + +```bash +# Declare ROOTDIR, can be any location (for example xds-build) +ROOTDIR=$HOME/xds-build + +# Create directory hierarchy that match Go package import logic +mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds +cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds + +# Clone sources +git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-agent +# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-agent + +# Build xds-agent +# (note that GOPATH will correctly be set by Makefile) +cd xds-agent +make all +``` + +Generate xds-agent packages / tarballs for Linux, MacOS, Windows + +```bash +make package-all +``` + +And to install `xds-agent` (by default in `/opt/AGL/xds/agent`): + +```bash +make install +``` + +<!-- section-warning --> +**Warning:** + +Makefile install rule and default values in configuration file are set +to fit the docker setup. + +So you may need to adapt some settings when you want to install xds-agent natively. +<!-- end-section-warning --> + +<!-- section-note --> +**Note:** + +Used `DESTDIR` to specify another install directory + +```bash +make install DESTDIR=$HOME/opt/xds-agent +``` + +<!-- end-section-note --> + +### Cross build + +For example on a Linux machine to cross-build for Windows, just follow these steps. + +The first time you need to install all the windows-amd64 standard packages on +your system with + +```bash +# List all supported OS / ARCH +go tool dist list + +# Install all standard packages for another OS/ARCH (eg. windows amd64) +GOOS=windows GOARCH=amd64 go install -v -a std +``` + +Then compile and package xds-agent using provided makefile + +```bash +export GOOS=windows +export GOARCH=amd64 +make all +make package +``` diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.2_Config.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.2_Config.md new file mode 100644 index 0000000..2eac51a --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.2_Config.md @@ -0,0 +1,49 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Configuration + +xds-agent configuration is driven by a JSON config file. + +The tarball mentioned in previous section includes this file with default settings. + +Here is the logic to determine which conf file will be used: + +1. from command line option: `--config myConfig.json` +1. `$HOME/.xds/agent/agent-config.json` file +1. `/etc/xds/agent/agent-config.json` file + +Supported fields in configuration file are (all fields are optional and example +below corresponds to the default values): + +- **httpPort** : http port of agent REST interface +- **webAppDir** : location of client webapp / dashboard (default: webapp/dist) +- **logsDir** : directory to store logs (eg. syncthing output) +- **xdsServers** : an array of xds-server object + - **xdsServers.url**: url of xds-server to connect to +- **syncthing**: a object defining syncthing settings + - **syncthing.binDir** : syncthing binaries directory (default: executable directory) + - **syncthing.home"** : syncthing home directory (usually .../syncthing-config) + - **syncthing.gui-address** : syncthing gui url (default <http://localhost:8386>) + - **syncthing.gui-apikey** : syncthing api-key to use (default auto-generated) + +```json +{ + "httpPort": "8800", + "webAppDir": "./www", + "logsDir": "${HOME}/.xds/agent/logs", + "xdsServers": [ + { + "url": "http://localhost:8000" + } + ], + "syncthing": { + "home": "${HOME}/.xds/agent/syncthing-config", + "gui-address": "http://localhost:8386", + "gui-apikey": "1234abcezam" + } +} +``` + +>**Note:** +> +>environment variables are supported by using `${MY_VAR}` syntax. diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.3_Start_Up.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.3_Start_Up.md new file mode 100644 index 0000000..5c83875 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.3_Start_Up.md @@ -0,0 +1,54 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Start-up + +## Start-up based on systemd user service + +For **Linux** distro, XDS agent can be started as a user service by Systemd. + +```bash +/usr/lib/systemd/user/xds-agent.service +``` + +Use well-known systemd commands to control `xds-agent.service` service. + +```bash +# Status XDS agent: +systemctl --user status xds-agent + +# Start XDS agent +systemctl --user start xds-agent + +# Stop XDS agent +systemctl --user stop xds-agent +``` + +Default settings are defined in `/etc/default/xds-agent` file but these +settings you can overwritten by `$HOME/.xds/agent/agent-config.json` file, +see [Configuration chapter](./2_config.html) for more details. + +## Manual start-up + +On **Linux or MacOS**, simply execute `xds-agent` executable: + +```bash +/opt/AGL/bin/xds-agent +``` + +On **Windows**, simply execute `xds-agent` executable (root path may change +depending where you installed/unzipped xds-agent tarball): + +```batch +C:\AGL\bin\xds-agent.exe +``` + +<!-- section-note --> +**Note:** + +If need be, you can increase log level by setting option +`--log <level>`, supported *level* are: panic, fatal, error, warn, info, debug. + +Invoke `xds-agent --help` to get more details about possible options that allow +for example to change logging level or select a specific configuration file. + +<!-- end-section-note --> diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.4_Debug.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.4_Debug.md new file mode 100644 index 0000000..7842741 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.3_xds-agent/3.4.4.3.4_Debug.md @@ -0,0 +1,132 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Debugging + +## XDS agent architecture + +The agent part is written in *Go* and the webapp / dashboard is in *typescript + Angular4*. + +```bash +| ++-- bin/ where xds-server binary file will be built +| ++-- conf.d Linux configuration and startup files (systemd user service) +| ++-- glide.yaml Go package dependency file +| ++-- lib/ sources of server part (Go) +| ++-- main.go main entry point of of Web server (Go) +| ++-- Makefile makefile including +| ++-- README.md readme +| ++-- scripts/ hold various scripts used for installation or startup +| ++-- tools/ temporary directory to hold development tools (like glide) +| ++-- vendor/ temporary directory to hold Go dependencies packages +| ++-- webapp/ source client basic webapp / dashboard +``` + +## Debug xds-agent (Go code) + +Install first [Visual Studio Code](https://code.visualstudio.com/) and +[Go plugin](https://marketplace.visualstudio.com/items?itemName=lukehoban.Go) +(`ext install lukehoban.Go`) + +Visual Studio Code launcher settings can be found into `.vscode/launch.json`. +The important think is to correctly set `GOPATH` in launch.json in order to +build xds-agent and debug it within Visual Studio Code. + +Here is an example of launch.json: + +```json +{ + "version": "0.2.0", + "configurations": [{ + "name": "XDS-Agent", + "type": "go", + "request": "launch", + "mode": "debug", + "remotePath": "", + "port": 2345, + "host": "127.0.0.1", + "program": "${workspaceRoot}", + "env": { + "GOPATH": "${workspaceRoot}/../../../../../..:${env:GOPATH}", + }, + "args": ["-log", "debug", "-c", "__agent-config_local_dev.json"], + "showLog": false + } + ] +} +``` + +And `__agent-config_local_dev.json` file content is as follow : + +```json +{ + "webAppDir": "./webapp/dist", + "logsDir": "${HOME}/tmp/xds-agent/logs", + "xdsServers": [ + { + "url": "http://localhost:8000" + } + ], + "syncthing": { + "binDir": "./bin", + "home": "${HOME}/tmp/xds_local_dev/syncthing-config", + "gui-address": "http://localhost:8386", + } +} +``` + +### Tricks to debug both xds-agent and xds-server + +To debug both `xds-agent` and `xds-server` or common code `xds-common`, it may +be useful use the same local sources. + +A trick to do that is to replace `xds-server` + `xds-common` in `vendor` +directory by a symlink that points to local sources. + +So clone first `xds-server` + `xds-common` sources next to `xds-agent` directory. + +You should have the following tree: + +```bash +tree -L 5 src/ +src/ +`-- gerrit.automotivelinux.org + `-- gerrit + `-- src + `-- xds + |-- xds-agent + |-- xds-common + `-- xds-server +``` + +Then invoke `vendor/debug` Makefile rule to create symbolic links inside vendor +directory : + +```bash +cd src/gerrit.automotivelinux.org/gerrit/src/xds/xds-agent +make vendor/debug +``` + +## Debug dashboard part (Typescript / angular code) + +Start `xds-agent` either from command line or in debug mode (see previous +chapter) and in another terminal start a watcher daemon so that type typescript +sources of webapp / dashboard are automatically "transpiled" using following +command : + +```bash +cd webapp +npm run watch +``` + +Then open the XDS Dashboard page ([http://localhost:8800](http://localhost:8800)) +and open the developer tool of web browser (for example `Ctrl+Shift+I` in Chrome). diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.0_Abstract.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.0_Abstract.md new file mode 100644 index 0000000..dad78f8 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.0_Abstract.md @@ -0,0 +1,17 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# xds-cli: command-line tool for XDS + +`xds-cli` is a command-line tool for X(cross) Development System. + +This tool can be used in addition to `XDS Dashboard` to control XDS from command +line. + +--- + +Links to subchapters : + +- [Build from scratch](./1_build.html) +- [Configuration](./2_config.html) +- [Start-up](./3_commands.html) +- [Debugging](./4_debug.html) diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.1_Build.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.1_Build.md new file mode 100644 index 0000000..3935054 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.1_Build.md @@ -0,0 +1,41 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# How to build + +## Dependencies + +Install [Go](https://golang.org/doc/install) and some other tools. + +Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details. + +## Building + +Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-cli` +in order respect directory hierarchy that match Go package import logic (see +[How to Write Go Code](https://golang.org/doc/code.html) for more details). + +Then use delivered Makefile : + +```bash +# Declare ROOTDIR, can be any location (for example xds-build) +ROOTDIR=$HOME/xds-build + +# Create directory hierarchy that match Go package import logic +mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds +cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds + +# Clone sources +git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-cli +# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-cli + +# Build xds-cli +# (note that GOPATH will correctly be set by Makefile) +cd xds-cli +make all +``` + +Generate xds-cli package / tarball + +```bash +make package-all +``` diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.2_Config.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.2_Config.md new file mode 100644 index 0000000..4696d24 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.2_Config.md @@ -0,0 +1,59 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Configuration + +`xds-cli` configuration is defined either by environment variables or by +setting command line options. + +Configuration through environment variables may also be defined in a file that +will be sourced by `xds-cli` on start-up. + +Use `--config|-c` option or set `XDS_CONFIG` environment variable to specify the config file to use. + +So configuration is driven either by environment variables or by command line +options or using a config file knowing that the following priority order is used: + +1. use option value (for example use project ID set by `--id` option), +1. else use variable `XDS_xxx` (for example `XDS_PROJECT_ID` variable) when a + config file is specified with `--config|-c` option, +1. else use `XDS_xxx` (for example `XDS_PROJECT_ID`) environment variable + +<!-- section-note --> +**Note:** + +All parameters after a double dash (--) are considered as the command +to execute on xds-server. +<!-- end-section-note --> + +## Global Options / Configuration variables + +Following is the list of global options across all sub-commands. + +__`--config|-c` option or `XDS_CONFIG` env variable__ + +Env config file to source on startup + +__`--log|-l` option or `XDS_LOGLEVEL` env variable__ + +Logging level, supported levels are: + +- panic +- fatal +- error +- warn +- info +- debug + +Default level is "error". + +**`--rpath` option or `XDS_PATH` env variable** + +Relative path into project + +**`timestamp|-ts` option or `XDS_TIMESTAMP` env variable** + +Prefix output with timestamp + +**`url` option or `XDS_AGENT_URL` env variable** + +Local XDS agent url (default: "localhost:8800") diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.3_Commands.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.3_Commands.md new file mode 100644 index 0000000..4feb8a2 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.3_Commands.md @@ -0,0 +1,123 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Commands + +## projects + +`projects` (short `prj`) command should be used to managed XDS projects. + +This command supports following sub-commands: + +```bash +add, a Add a new project +get Get a property of a project +list, ls List existing projects +remove, rm Remove an existing project +sync Force synchronization of project sources +``` + +Here are some usage examples: + +```bash +# Create/declare a new project +xds-cli prj add --label "myProjectName" --type pm -p /home/seb/xds-workspace/myProject -sp /home/devel/xds-workspace/myProject + +# List projects +xds-cli prj ls + +# Delete an existing project +xds-cli prj rm 8e49 +``` + +## sdks + +`sdks` (alias `sdk`) command should be used to managed cross SDKs. + +This command supports following sub-commands: + +```bash +get Get a property of a SDK +list, ls List installed SDKs +install, i Install a SDK +uninstall, rm UnInstall an existing SDK +abort, a Abort an install action +``` + +Here are some usage examples: + +```bash +# List existing SDKs +xds-cli sdks ls + +# Get SDK info +xds-cli sdks get c64d +``` + +<!-- section-note --> +**Note:** + +Refer to the +"[AGL SDKs](../../part-1/install-sdk.html)" +topic for details about SDK installation. + +<!-- end-section-note --> + +## exec + +`exec` command should be used to exec command through XDS system. + +For example you can use this command to build your project in XDS system. + +This command supports following sub-commands: + +`exec` command options are: + +**`--id` option or `XDS_PROJECT_ID` env variable (**mandatory option**)** + +project ID you want to build + +**`--rpath` (short `-p`) or `XDS_RPATH` env variable** + +relative path into project + +**`--sdkid` (alias `--sdk`) or `XDS_SDK_ID` env variable (**mandatory option**)** + +Cross Sdk ID to use to build project. + +Here are some usage examples: + +```bash +cd $MY_PROJECT_DIR +mkdir build + +# Generate build system using cmake +xds-cli exec --id=4021 --sdkid=c226 -- "cd build && cmake .." + +# Build the project +xds-cli exec --id=4021 --sdkid=c226 -- "cd build && make all" +``` + +In case of `xds-agent` is not running on default url:port (that is `localhost:8800`) + +You can specify the url using `--url` option : + +```bash +xds-cli --url=http://localhost:8800 exec --id=4021 --sdkid=c226 -- "cd build && make all" +``` + +## misc + +`misc` command allows to execute miscellaneous sub-commands such as: + +```bash +version, v Get version of XDS agent and XDS server +status, sts Get XDS configuration status (including XDS server connection) +``` + +Here are some usage examples: + +```bash +xds-cli misc version --verbose + +xds-cli misc sts +``` diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.4_Debug.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.4_Debug.md new file mode 100644 index 0000000..311efaf --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.4_xds-cli/3.4.4.4.4_Debug.md @@ -0,0 +1,42 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Debugging + +## XDS cli architecture + +This tool is written in *Go*. + +```bash +| ++-- bin/ # where xds-cli binary will be built +| ++-- cmd-XXX.go # GO sources of each sub-commands +| ++-- conf.d/ # Linux configuration and startup files (systemd user service) +| ++-- glide.yaml # Go package dependency file +| ++-- LICENSE # XDS cli license +| ++-- main.go # main entry point (Go) +| ++-- Makefile # makefile including +| ++-- README.md # readme +| ++-- scripts/ # hold various scripts used for installation +| ++-- vendor/ # temporary directory to hold Go dependencies packages +``` + +## Debug + +Install first [Visual Studio Code](https://code.visualstudio.com/) and +[Go plugin](https://marketplace.visualstudio.com/items?itemName=lukehoban.Go) +(`ext install lukehoban.Go`) + +Visual Studio Code launcher settings can be found into `.vscode/launch.json`. + +Please follow instructions of xds-agent [debugging chapter](../2_xds-agent/4_debug.html#debug-xds-agent-go-code), +knowing that you execute these same instructions in `xds-cli` repo, in other words +by replacing *xds-agent* references by *xds-cli*. diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.5_xds-gdb/3.4.4.5.0_Abstract.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.5_xds-gdb/3.4.4.5.0_Abstract.md new file mode 100644 index 0000000..6f8aa16 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.5_xds-gdb/3.4.4.5.0_Abstract.md @@ -0,0 +1,26 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# xds-gdb: wrapper on gdb for XDS + +`xds-gdb` is a wrapper on gdb debugger for X(cross) Development System. + +This tool allows you to debug an application built with an xds-server without +the need to install gdb or any cross tool. + +Two debugging models are supported: + +1. native debugging + +1. XDS remote debugging requiring an XDS agent/server setup. That allows you to + easily cross debug your application. + + By default XDS debug model is used and you need to define `XDS_NATIVE_GDB` +variable to use native gdb debug mode instead. + +--- + +Links to subchapters : + +- [Build from scratch](./1_build.html) +- [Configuration](./2_config.html) +- [Debugging](./3_debug.html) diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.5_xds-gdb/3.4.4.5.1_Build.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.5_xds-gdb/3.4.4.5.1_Build.md new file mode 100644 index 0000000..4ea9a9e --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.5_xds-gdb/3.4.4.5.1_Build.md @@ -0,0 +1,41 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# How to build xds-gdb from scratch + +## Dependencies + +Install [Go](https://golang.org/doc/install) and some other tools. + +Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details. + +## Building + +Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-gdb` +in order respect directory hierarchy that match Go package import logic (see +[How to Write Go Code](https://golang.org/doc/code.html) for more details). + +Then use delivered Makefile : + +```bash +# Declare ROOTDIR, can be any location (for example xds-build) +ROOTDIR=$HOME/xds-build + +# Create directory hierarchy that match Go package import logic +mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds +cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds + +# Clone sources +git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-gdb +# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-gdb + +# Build xds-gdb +# (note that GOPATH will correctly be set by Makefile) +cd xds-gdb +make all +``` + +Generate xds-gdb package / tarball + +```bash +make package-all +``` diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.5_xds-gdb/3.4.4.5.2_Config.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.5_xds-gdb/3.4.4.5.2_Config.md new file mode 100644 index 0000000..6108c7b --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.5_xds-gdb/3.4.4.5.2_Config.md @@ -0,0 +1,88 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Configuration + +`xds-gdb` configuration is defined by variables (see listed below). + +These variables may be set using: + +- environment variables (inherited), +- or a config file set with `XDS_CONFIG` environment variable, for example: + `XDS_CONFIG=/tmp/my_xds_gdb_config.env xds-gdb` +- or by setting variables within a gdb ini file (see details below), +- or a "user" config file located in following directory (first found is taken): + 1. $(CURRENT_DIRECTORY)/.xds-gdb.env + 1. $(CURRENT_DIRECTORY)/../xds-gdb.env + 1. $(CURRENT_DIRECTORY)/target/xds-gdb.env + 1. $(HOME)/.config/xds/xds-gdb.env + +## Configuration Variables + +`XDS_CONFIG` + +Config file defining `XDS_xxx` configuration variables. + +Variables of this file will overwrite inherited environment variables. + +Variables definition may be prefixed or not by "export" keyword. + +Here is an example of config file: + +```bash +cat $HOME/myProject/xds-gdb.env + +export XDS_AGENT_URL=http://localhost:8800 +export XDS_PROJECT_ID=4021617e-ced0-11e7-acd2-3c970e49ad9b +export XDS_SDK_ID=c226821b-b5c0-386d-94fe-19f807946d03 +``` + +`XDS_LOGLEVEL` + +Set logging level + +Supported levels: + +- panic +- fatal +- error +- warn +- info +- debug + +`XDS_LOGFILE` + +Set logging file, default `/tmp/xds-gdb.log`. + +`XDS_NATIVE_GDB` + +Use native gdb mode instead of XDS mode. + +`XDS_PROJECT_ID` *(mandatory in XDS mode)* + +Project ID you want to build + +`XDS_RPATH` + +Relative path into project + +`XDS_SDK_ID` *(mandatory in XDS mode)* + +Cross Sdk ID to use to build project + +`XDS_AGENT_URL` + +Local XDS agent url (default `http://localhost:8800`) + +## Configuration variables set within gdb init command file + +Above `XDS_xxx` variables may also be defined within gdb init command file +(see --command or -x option of genuine Gdb). + +You must respect the following syntax: commented line including `:XDS-ENV:` tag + +Example of gdb init file where we define project and sdk ID: + +```bash + # :XDS-ENV: XDS_PROJECT_ID=4021617e-ced0-11e7-acd2-3c970e49ad9b + # :XDS-ENV: XDS_SDK_ID=c226821b-b5c0-386d-94fe-19f807946d03 +``` diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.5_xds-gdb/3.4.4.5.3_Debug.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.5_xds-gdb/3.4.4.5.3_Debug.md new file mode 100644 index 0000000..e1f33dd --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /3.4.4.5_xds-gdb/3.4.4.5.3_Debug.md @@ -0,0 +1,42 @@ +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Debugging + +## XDS gdb architecture + +This tool is written in *Go*. + +```bash +| ++-- bin/ # where xds-gdb binary will be built +| ++-- gdb-XXX.go # xds-gdb Go sources +| ++-- conf.d/ # Linux configuration and startup files (systemd user service) +| ++-- glide.yaml # Go package dependency file +| ++-- LICENSE # XDS gdb license +| ++-- main.go # main entry point (Go) +| ++-- Makefile # makefile including +| ++-- README.md # readme +| ++-- scripts/ # hold various scripts used for installation +| ++-- vendor/ # temporary directory to hold Go dependencies packages +``` + +## Debug + +Install first [Visual Studio Code](https://code.visualstudio.com/) and +[Go plugin](https://marketplace.visualstudio.com/items?itemName=lukehoban.Go) +(`ext install lukehoban.Go`) + +Visual Studio Code launcher settings can be found into `.vscode/launch.json`. + +Please follow instructions of xds-agent [debugging chapter](../2_xds-agent/4_debug.html#debug-xds-agent-go-code), +knowing that you execute these same instructions in `xds-gdb` repo, in other words +by replacing *xds-agent* references by *xds-gdb*. diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/create-app-workflow.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/create-app-workflow.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/create-app-workflow.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-1.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-1.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-1.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-2.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-2.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-2.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-3.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-3.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-3.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-4.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-4.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-4.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-5.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-5.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_new-project-5.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_newtool.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_newtool.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_newtool.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_project_debug-1.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_project_debug-1.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_project_debug-1.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_xds_options.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_xds_options.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/nb_xds_options.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-conf.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-conf.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-conf.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-icon-2.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-icon-2.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-icon-2.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-icon-3.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-icon-3.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-icon-3.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-prj-1.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-prj-1.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-prj-1.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-prj-2.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-prj-2.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-prj-2.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-sdks-install.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-sdks-install.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-sdks-install.png diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-sdks-mgt.png b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-sdks-mgt.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/4_X(cross)_Development_System:_ Internals /pictures/xds-dashboard-sdks-mgt.png |