summaryrefslogtreecommitdiffstats
path: root/HAL-afb/Scarlett-Focusrite
diff options
context:
space:
mode:
Diffstat (limited to 'HAL-afb/Scarlett-Focusrite')
0 files changed, 0 insertions, 0 deletions
'n41' href='#n41'>41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
# Installation based on Docker container

## Docker container prerequisites

Docker is installed on the host machine, please refer to [Docker documentation](https://docs.docker.com/engine/installation/) for more details.

## Get the container

Load the pre-build AGL SDK docker image including `xds-server`:

```bash
wget -O - http://iot.bzh/download/public/XDS/docker/docker_agl_worker-xds-latest.tar.xz | docker load
```

You should get `docker.automotivelinux.org/agl/worker-xds:X.Y` image

```bash
# List image that we just load
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

Use provided script to create a new docker image and start 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
bash ./xds-docker-create-container.sh

# Check that 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:69->69/udp, 0.0.0.0:10809->10809/tcp, 0.0.0.0:2222->22/tcp   agl-xds-HOSTNAME-0-USERNAME
```

This container exposes following ports:

| Port number | Description                                 |
|-------------|---------------------------------------------|
|     8000    | `xds-server`: serve XDS webapp and REST API |
|      69     | TFTP                                        |
|     2222    | ssh                                         |

This container also creates the following volumes (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 |

<!-- section-note -->
**Note:**

You can add a new shared directory using `--volume` option in order
to use for example with Path-Mapping folder type.

```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
```

You can change docker used port with `-id` option

```bash
# Create new XDS worker container with a different port number
bash ./xds-docker-create-container.sh -id ${ID}

# Check that 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:(2222+ID)->22/tcp, 0.0.0.0:(69+ID)->69/udp, 0.0.0.0:(8000+ID)->8000/tcp, 0.0.0.0:(10809+ID)->10809/tcp   agl-xds-HOSTNAME-ID-USERNAME
```

<!-- end-section-note -->

### Manually setup docker user id

<!-- section-note -->
**Note:**

If you used `xds-docker-create-container.sh` script to create XDS
docker container, user uid/gid inside docker has already been changed by this script.
<!-- end-section-note -->

If you plan to use **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 and group name inside docker is set `devel` (id `1664`).

Use following commands to replace id `1664` with your user/group id:

```bash
# Set docker container name to use (usually 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"

# First kill all processes of devel user (including running xds-server)
docker exec ${CONTAINER_NAME} bash -c "/bin/loginctl kill-user devel"

# Change user and group id inside docker to match your ids
docker exec ${CONTAINER_NAME} bash -c "usermod -u $(id -u) devel"
docker exec ${CONTAINER_NAME} bash -c "groupmod -g $(id -g) devel"

# Update some files ownership
docker exec ${CONTAINER_NAME} bash -c "chown -R devel:devel /home/devel /tmp/xds*"

# Restart devel autologin service
docker exec ${CONTAINER_NAME} bash -c "systemctl restart autologin"

# Restart xds-server as a service (ssh port 2222 may depend on your container ID)
ssh -p 2222 devel@localhost -- "systemctl --user restart xds-server"
```

## Check if xds-server is running (open XDS webapp)

**`xds-server` is automatically started** as a user service on container startup.

If the container is running on your localhost, you can access to a basic web
application:

```bash
xdg-open http://localhost:8000
```

If needed you can status / stop / start  it manually using 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` is now up and running, you can now install AGL SDKs, please refer
to next chapter named [Installing AGL SDKs](./3_install-sdks.html)

<!-- section-note -->
Please refer to [xds-server configuration](../part-2/1_xds-server/1_config.html) chapter for additional info about xds-server settings.
<!-- end-section-note -->