Hi,
I have some questions about the fastboot/adb in docker support I hope you can help with.
Use case is for android 10 aosp testing with LAVA 2020.05.
Thanks to Antonio's presentation and draft documentation I have simple fastboot host to
DUT communication working for a u-boot based arm64 board. I am now trying to apply an
existing flash process, which uses a script on the host to send fastboot cmds, into a LAVA job.
I can see how fastboot --set-active, reboot and flash commands all have equivalent controls
in a 'deploy to fastboot docker' LAVA job section. Do equivalents exist for the fastboot
oem format, oem erase, format and erase commands or is there a way to insert them
in the deploy?
Expecting that will take some engineering work, in parallel I wanted as a stop gap to try
running the flash script from a LAVA job. So people could work on the testing side whilst
I resolved the deploy section. Antonio suggested trying to do that from the test section
I recall.
To do that I face two issues:
1) The build artifacts are on a local volume rather than an artifact server so I need to
get them into the docker container in an automated way. Is there a way to either mount
a local volume or file list into the container without asking LAVA to deploy them?
As an experiment I tried using the docker image manipulation added in 2020.04 to do
this. There I hit a problem with the current implementation. It seems the 'deploy to
downloads' implementation does not check for a local image first, as the other docker
support does, before trying to pull the image. So I get an error when the pull fails:
https://lava.genivi.org/scheduler/job/961#L24
2) The job needs to be able to boot the DUT, interrupt u-boot and start fastboot
so the host has something to communicate with once the test section is reached.
I can achieve that in a horrible hacky way by having a deploy section with a simple
single flash image (dtbo say) and using the reboot controls to get the board to reboot into
fastboot to await the flash script being run from the test section, but I expect there
is a better way. Any ideas?
Regards
Steve
Thanks Antonio for the clarify.
A side question:
For docker test shell, if possible add more docker options for user? E.g. bind mount, etc.
A scenario is:
If we have some code needed when test, currently, we could just inject it into docker image when do docker build, or when test git clone the code from network.
You know docker test shell use `--rm`, means every time, we need to git clone it, or if a small changes we need to build the image.
A bind mount there to mount our code may make things easier for us?
-----Original Message-----
From: Lava-users <lava-users-bounces(a)lists.lavasoftware.org> On Behalf Of lava-users-request(a)lists.lavasoftware.org
Sent: Saturday, June 6, 2020 8:00 PM
To: lava-users(a)lists.lavasoftware.org
Subject: [EXT] Lava-users Digest, Vol 22, Issue 7
Caution: EXT Email
Send Lava-users mailing list submissions to
lava-users(a)lists.lavasoftware.org
To subscribe or unsubscribe via the World Wide Web, visit
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.lav…
or, via email, send a message with subject or body 'help' to
lava-users-request(a)lists.lavasoftware.org
You can reach the person managing the list at
lava-users-owner(a)lists.lavasoftware.org
When replying, please edit your Subject line so it is more specific than "Re: Contents of Lava-users digest..."
Today's Topics:
1. Re: [EXT] Re: docker shell cannot handle adbd. (Antonio Terceiro)
----------------------------------------------------------------------
Message: 1
Date: Fri, 5 Jun 2020 09:26:18 -0300
From: Antonio Terceiro <antonio.terceiro(a)linaro.org>
To: lava-users(a)lists.lavasoftware.org
Subject: Re: [Lava-users] [EXT] Re: docker shell cannot handle adbd.
Message-ID: <20200605122618.GA359587(a)linaro.org>
Content-Type: text/plain; charset="us-ascii"
On Fri, Jun 05, 2020 at 07:06:16AM +0000, Larry Shen wrote:
> Hi, Milosz,
>
> Maybe I understand wrong, but I already see there is code like next to
> add dynamic device node to docker container.
>
> I tried it in manual, adb find devices after a new device node added
> with next code. But I don't see the docker shell try to call it with
> some way. What's the aim of next code if you did not want to use it?
> Could you double confirm internal maybe some guys is handling it, but
> just in process? Could you do me a favor inform me your plan if my
> guess is true?
>
> I don't think people could switch from lxc to docker on android if
> this not support, maybe my environment wrong or anything else?
Yes, you are right. The way the docker test shell currently works won't support such a use case.
First, there was an issue with the udev rules being too strict, which was recently fixed and will be in the next release:
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.lavas…
This issue that you mention also needs to be fixed; I created an issue to track and I will work on it:
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.lavas…
Hello Lava-Users,
For minimal boot setup should the dispatcher with which target is configured should have apache server setup configuration ?Having the Lava server version of 2019.11.
When trying to pull test suites from the dispatcher with overlay mechanism facing http not found error during job execution.
--2020-06-24 14:50:07-- http://xx.xx.xx.31/tmp/21866/compress-overlay-mmk3i76o/overlay-1.4.2.4.tar.…
Connecting to xx.xx.xx.31:80... connected.
HTTP request sent, awaiting response... 404 Not Found
Also needed suggestion on
Presently trying with the multi deploy mechanism where in 1st deploy boot test method we boot with nfs boot and wget the latest wic image and write that image to hard disk as test case.
In the scenario of writing of Image fails how should we exit from job execution without going to 2nd deploy boot test
Thanks,
Hemanth.
Hello,
Situation with running Docker containers inside the official
Docker-based LAVA setup
(https://git.lavasoftware.org/lava/pkg/docker-compose) was already
discussed at least once recently.
LAVA starts to offer more and more convenient usages of Docker
containers to extend its functionality (e.g.
https://connect.linaro.org/resources/ltd20/ltd20-304/), and people
start to leverage it. For docker-compose based setup, that effectively
means running Docker containers inside the docker-compose, and that
currently doesn't work.
Another reason for raising this matter again are the apparent plans to
migrate components of the production LAVA setup as run by Linaro
(https://validation.linaro.org/) to Docker-based setup. The concern is
that if Docker-in-Docker scenario is not explicitly accounted and
planned for, then there will be a regression due to this switchover.
So, I posted
https://git.lavasoftware.org/lava/pkg/docker-compose/-/issues/7 with
more detailed discussion, and would be ready to follow up with a patch
(we just need to decide what kind of patch, please the proposed
options there).
--
Best Regards,
Paul
Linaro.org | Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linarohttp://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog
Hi,
What is the procedure to follow in order to upgrade LAVA to a new release
while preserving the test results database? I am using the docker-based
setup.
I tried
>
> sudo tar cvzf lava-server-pgdata-backup.tgz
> /var/lib/docker/volumes/lava-server-pgdata
> <wipe away old LAVA, rebase to latest>
> sudo tar xvzf lava-server-pgdata-backup.tgz -C
> /var/lib/docker/volumes/lava-server-pgdata
But the old results don't seem to show up in the UI after the upgrade. Also
the user accounts, settings, etc. are gone, and it'd have been nice to keep
them.
Thanks,
Vincent
--
-----------------------
Vincent Wan
Linaro.org
Hi, guys,
I have a job like next:
- test:
timeout:
minutes: 10
docker:
image: terceiro/android-platform-tools
definitions:
- from: inline
name: smoke-case
path: inline/install-google-fastboot.yaml
repository:
metadata:
format: Lava-Test Test Definition 1.0
name: smoke-case-run
description: Run smoke case
run:
steps:
- env
- sleep 10
- adb devices
- adb root
- sleep 10
- adb devices
- lava-test-case get-release-version --shell adb shell getprop ro.vendor.build.fingerprint
It output as next:
+ sleep 10
+ adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
040c41d4d72d7393 device
+ adb root
+ sleep 10
+ adb devices
List of devices attached
+ lava-test-case get-release-version --shell adb shell getprop ro.vendor.build.fingerprint
<LAVA_SIGNAL_STARTTC get-release-version>
Received signal: <STARTTC> get-release-version
error: device '040c41d4d72d7393' not found
<LAVA_SIGNAL_ENDTC get-release-version>
Received signal: <ENDTC> get-release-version
<LAVA_SIGNAL_TESTCASE TEST_CASE_ID=get-release-version RESULT=fail>
Received signal: <TESTCASE> TEST_CASE_ID=get-release-version RESULT=fail
You know "adb root" will make usb bus change during run, so could docker shell handle this? How can I make above work? Thanks.
Hello Team,
With the existing JLink.py library i have modified and able to flash
multiple *.bin files in single instance/Job. I have used method : Jlink in
boot:
But On the Renesas boards, After flash the binaries through Debugger Say
JLink,
Will get U-boot prints at ttyACM0. I can see the prints through ser2net
telnet host.
Q1. How to send command at uboot level while using JLink boot method. I
need to *send run xa_boot from uboot prompt: =>*
*Below is sample Job description :*
- boot:
method: jlink
prompts: ["=>"]
commands: ["run xa_boot"]
timeout:
minutes: 5
*i am getting following error :*
*Invalid job definition:*
extra keys not allowed @ data['actions[1]']['boot']['jlink']['prompts']
I tried with out prompts and commands key values in job description Job
terminated once the flash has done.
Attached logs for reference:
Looking forward for your kind response
Thanks
Regards
Nagendra S
Hello Team,
To get better understanding the lava frame work , Can any one share me the code
flow diagram for LAVA.
I have gone through the available Doc's in lava, but i did not understand
the flow properly.
thanks & Regards
Nagendra S
Hi Team,
I am using U-boot method to boot up to linux.
But at the end of booting means before gets the login prompt it got hanged
at here..
[ 3.759014] Console: switching to colour dummy device 80x30[?25lfbv - The
Framebuffer Viewer/root/images/renesas_logo-800x480.jpg800 x 480[?25hWelcome
to Buildroot
after 2 minutes got *buildroot login: [ 90.929835] random: crng init done *
due to this Lava did not fetch "root" string and unable to login. And i
have seen stange string in lava while booting
[?25h .
I am able to boot manually (with out lava) with out an issue. And i did
not get [?25h string ..
How to avoid this problem .Attaching job description/device dictionary
files .
[ 2.837060] Run /sbin/init as init process�Starting logging: OKread-only
file system detected...doneStarting network: OKWed Oct 31 09:00:00 UTC 2018[
3.759014] Console: switching to colour dummy device 80x30[?25lfbv - The
Framebuffer Viewer/root/images/renesas_logo-800x480.jpg800 x 480[?25hWelcome
to Buildrootbuildroot login: [ 90.929835] random: crng init done