4 As well as the packages docker, docker-compose and pyyaml mentioned in the top
6 level README, you will need the following:
10 1) The following ports are forwarded to docker and therefore need to be kept free
14 - 69/UDP: proxyfied to the slave for TFTP
16 - 80: proxyfied to the slave for TODO (transfer overlay)
18 - 5500: proxyfied to the slave for Notification
20 - 55950-56000: proxyfied to the slave for NBD
22 2) You will need a remote power switch to remotely power the DUTs on and off.
24 3) You need to have an account with lava.automotivelinux.org. Please contact the
26 agl-dev-community mailing list if you would like an account, and include that you would
28 like to create your own lab in the email so that the relevant user permissions
34 ## Steps to create your own LAVA lab ##
38 1) Clone AGL lava-docker image:
42 git clone https://git.automotivelinux.org/AGL/lava-docker.git
50 2) On the LAVA master web GUI, create a new API token:
52 https://lava.automotivelinux.org/api/tokens/
56 3) Connect all the DUTs' serial to usb and ethernet connections to the host.
59 4) Edit the boards.yaml file:
61 - Copy the API token you created in step 2 in the place of <generated_lab_token>.
63 - Add details of each board connected to the lab. See the top level README for
65 instructions. You will need the following:
67 - any custom options you require in the kernel args
69 - uart idvendor, idproduct, devpath
71 - power on, off and reset commads for the power switch
75 To get the uart idvendor and idproduct, unplug and re-plugin the USB cable of the
77 device in question and then find the details in the latest output of:
81 sudo dmesg | grep idvendor
87 To get the uart devpath, run the command:
91 udevadm info -a -n /dev/ttyUSB1 |grep devpath | head -n1
97 NOTE: Make sure you have at least one "board" included. (It is easiest to keep
103 5) Run the automated setup script:
113 7) Check the web GUI to see if the lab has successfully connected to the LAVA
115 master: https://lava.automotivelinux.org/scheduler/allworkers. If it isn't, run the
117 following command for debugging:
121 docker-exec -it <name_of_docker_container> cat /var/log/lava-dispatcher/lava-slave.log
125 To identify the container name run the following to list the running containers:
135 LAVA logs can be found in `/var/log/lava-dispatcher/`.
141 There are a few helper scripts to automate starting/stopping the lab.
155 ## Adding new device-type templates ##
159 Not all device types are supported by default. Templates for new devices will
161 need to be added to the LAVA master. Please submit new templates to the agl-dev-community
167 Before you submit any new device-type templates, please verify that they work.
169 You can verify that they work in LAVA by carrying out the following instructions:
171 1) Install lavacli on Debian Stretch or Ubuntu 18.04 and later (if you don't
173 have a compatible OS, please see https://lava.automotivelinux.org/api/help/ for an
175 alternative way to use the API)
177 2) Create your lavacli config file
181 touch ~/.config/lavacli.yaml
185 3) Configure this file to look like the following (note: use the first token
187 created in https://lava.automotivelinux.org/api/tokens/)
193 uri: https://lava.automotivelinux.org/RPC2
201 4) Add your device template to the master
205 lavacli device-types template set <device-type-name> <device-type-name>.yaml
209 NOTE: make sure your device-type templates always follow the following naming scheme:
211 ```<device-type-name>.yaml```