2 title: Setup_AGL_LAVA_Lab
7 As well as the packages docker, docker-compose and pyyaml mentioned in the top
9 level README, you will need the following:
13 1) The following ports are forwarded to docker and therefore need to be kept free
17 - 69/UDP: proxyfied to the slave for TFTP
19 - 80: proxyfied to the slave for TODO (transfer overlay)
21 - 5500: proxyfied to the slave for Notification
23 - 55950-56000: proxyfied to the slave for NBD
25 2) You will need a remote power switch to remotely power the DUTs on and off.
27 3) You need to have an account with lava.automotivelinux.org. Please contact the
29 agl-dev-community mailing list if you would like an account, and include that you would
31 like to create your own lab in the email so that the relevant user permissions
37 ## Steps to create your own LAVA lab ##
41 1) Clone AGL lava-docker image:
45 git clone https://git.automotivelinux.org/AGL/lava-docker.git
53 2) On the LAVA master web GUI, create a new API token:
55 https://lava.automotivelinux.org/api/tokens/
59 3) Connect all the DUTs' serial to usb and ethernet connections to the host.
62 4) Edit the boards.yaml file:
64 - Copy the API token you created in step 2 in the place of <generated_lab_token>.
66 - Add details of each board connected to the lab. See the top level README for
68 instructions. You will need the following:
70 - any custom options you require in the kernel args
72 - uart idvendor, idproduct, devpath
74 - power on, off and reset commads for the power switch
78 To get the uart idvendor and idproduct, unplug and re-plugin the USB cable of the
80 device in question and then find the details in the latest output of:
84 sudo dmesg | grep idvendor
90 To get the uart devpath, run the command:
94 udevadm info -a -n /dev/ttyUSB1 |grep devpath | head -n1
100 NOTE: Make sure you have at least one "board" included. (It is easiest to keep
106 5) Run the automated setup script:
116 7) Check the web GUI to see if the lab has successfully connected to the LAVA
118 master: https://lava.automotivelinux.org/scheduler/allworkers. If it isn't, run the
120 following command for debugging:
124 docker-exec -it <name_of_docker_container> cat /var/log/lava-dispatcher/lava-slave.log
128 To identify the container name run the following to list the running containers:
138 LAVA logs can be found in `/var/log/lava-dispatcher/`.
144 There are a few helper scripts to automate starting/stopping the lab.
158 ## Adding new device-type templates ##
162 Not all device types are supported by default. Templates for new devices will
164 need to be added to the LAVA master. Please submit new templates to the agl-dev-community
170 Before you submit any new device-type templates, please verify that they work.
172 You can verify that they work in LAVA by carrying out the following instructions:
174 1) Install lavacli on Debian Stretch or Ubuntu 18.04 and later (if you don't
176 have a compatible OS, please see https://lava.automotivelinux.org/api/help/ for an
178 alternative way to use the API)
180 2) Create your lavacli config file
184 touch ~/.config/lavacli.yaml
188 3) Configure this file to look like the following (note: use the first token
190 created in https://lava.automotivelinux.org/api/tokens/)
196 uri: https://lava.automotivelinux.org/RPC2
204 4) Add your device template to the master
208 lavacli device-types template set <device-type-name> <device-type-name>.yaml
212 NOTE: make sure your device-type templates always follow the following naming scheme:
214 ```<device-type-name>.yaml```