Good morning everyone,
I would like to have your advices on the following subject : attaching a fastboot device in LXC container during a LAVA job.
I am currently running jobs on a device through adb without issues. LAVA is adding udev rules which make it possible for the LXC container to successfully attach the target.
However, when the device turns into fastboot mode, a "fastboot devices" command in the LXC returns nothing. In fastboot mode, the USB link of the device is added whereas the device is not listed among the fastboot devices.
In the host, a "fastboot devices" command returns the id of the device.
Did anyone here already faced that situation in the past?
regards,
Hi Conrad,
On Sunday 08 April 2018 06:39 PM, Conrad Djedjebi wrote:
I am currently running jobs on a device through adb without issues. LAVA is adding udev rules which make it possible for the LXC container to successfully attach the target.
However, when the device turns into fastboot mode, a "fastboot devices" command in the LXC returns nothing. In fastboot mode, the USB link of the device is added whereas the device is not listed among the fastboot devices.
The udev rules gets applied only when the device gets re-enumerated / restarted ie., on an udev add event. Otherwise the udev rule will not get applied to a device. For devices that are attached already when the job starts or if the device will not get re-enumerated, then use static_info as seen here - https://git-us.linaro.org/lava/lava-lab.git/tree/staging.validation.linaro.o... along with the device_info variable in the device dictionary.
In the host, a "fastboot devices" command returns the id of the device.
I haven't faced this. But on the other hand when the host runs adb daemon, then it takes control of all the devices and the devices will not be visible from within the containers (LXC), even when the udev rule is applied. So care should be taken that 'adb' daemon is not running on the host. It is good, not to run any operation with fastboot too on the host, when the device is accessed via a container within the same host.
Thank You.
Hi Senthil, Chris,
Thank you for your answers,
Senthil, the udev rule is triggered each time my device switch from fastboot to adb mode or from adb to fastboot mode. I tried the process of switching from adb to fastboot mode and vice versa in the container. Before that, I uninstalled fastboot and adb packages from the host so there is no way the adb and fastboot daemons of the host are creating conflicts with the fastboot and adb deamons of the container.
Each time the device enters adb mode, the udev rule is triggered and I can find the device with the command adb devices. But each time the device switchs to fastboot mode, I can 't see it with the command fastboot devices. I can see that the udev rule is triggered in the logs but the device is still not appearing. *I even did a "lxc-device -n myLxcName add /dev/bus/usb/001/056" manually to add the device to the container in fastboot mode*. The add process was done properly but there was still no fastboot device visible.
Chris, my container is successfully adding the usb device each time it is plugged. In adb mode, I can easily run Android CTS or Android VTS test suites on the device. So I think the container have access to "/dev/bus/usb" and also to the host's network stack.
Someone told me he had to add an additional mount entry into /usr/share/lxc/config/debian.common.conf otherwise fastboot could not see his device from the container. I will explore that option.
*I am still looking for a way to fix my issue anyway.*
regards,
On 8 April 2018 at 14:47, Senthil Kumaran S senthil.kumaran@linaro.org wrote:
Hi Conrad,
On Sunday 08 April 2018 06:39 PM, Conrad Djedjebi wrote:
I am currently running jobs on a device through adb without issues. LAVA is adding udev rules which make it possible for the LXC container to successfully attach the target.
However, when the device turns into fastboot mode, a "fastboot devices" command in the LXC returns nothing. In fastboot mode, the USB link of the device is added whereas the device is not listed among the fastboot devices.
The udev rules gets applied only when the device gets re-enumerated / restarted ie., on an udev add event. Otherwise the udev rule will not get applied to a device. For devices that are attached already when the job starts or if the device will not get re-enumerated, then use static_info as seen here - https://git-us.linaro.org/lava/lava-lab.git/tree/ staging.validation.linaro.org/master-configs/staging-master. lavalab/lava-server/dispatcher-config/devices/staging-hi6220-hikey-r2-02. jinja2#n16 along with the device_info variable in the device dictionary.
In the host, a "fastboot devices" command returns the id of the device.
I haven't faced this. But on the other hand when the host runs adb daemon, then it takes control of all the devices and the devices will not be visible from within the containers (LXC), even when the udev rule is applied. So care should be taken that 'adb' daemon is not running on the host. It is good, not to run any operation with fastboot too on the host, when the device is accessed via a container within the same host.
Thank You.
Senthil Kumaran S http://www.stylesen.org/ http://www.sasenthilkumaran.com/