From patchwork Thu Jun 20 15:41:14 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Baker X-Patchwork-Id: 18032 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-ve0-f198.google.com (mail-ve0-f198.google.com [209.85.128.198]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 20DE02397B for ; Thu, 20 Jun 2013 15:51:10 +0000 (UTC) Received: by mail-ve0-f198.google.com with SMTP id jz10sf9135572veb.9 for ; Thu, 20 Jun 2013 08:51:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-beenthere:x-forwarded-to:x-forwarded-for:delivered-to :mime-version:x-launchpad-project:x-launchpad-branch :x-launchpad-message-rationale:x-launchpad-branch-revision-number :x-launchpad-notification-type:to:from:subject:message-id:date :reply-to:sender:errors-to:precedence:x-generated-by :x-launchpad-hash:x-gm-message-state:x-original-sender :x-original-authentication-results:mailing-list:list-id :x-google-group-id:list-post:list-help:list-archive:list-unsubscribe :content-type; bh=FAxnyC4foZ1Ma0njEqY1JpxRsvcQjH/H9bIF6VKm/5s=; b=TluvyN8sZkflEmUdqeULAQKBcRhoV4FQsRgr8tS5q4WlnNWmg4S7SbFfSJDmwGiu+a 0+AlfaVAP4ETeAk8+8tka2NySpGwaWigxDXONc1pmap2n/LSBwCWnq2p6uz8aMOENZr2 tVo5/ZPLX/+lxjTFeMCnz63bctTQvKjcYzvL7WS7FB1CMuHDXalTUmbEE8vxHqrpdICF UZMZP17Sx8i2nXHdRliYb051a8CLGwtD0uRRn+FFYSqeELYlHYLmf3fwilDSxfMh5t76 dCd/clWbtkakbDPfYmB4Tcj8d3jtvilbMAli/HcgPAxD8RXOdWc1dTKk5/99XsNan45y V/OQ== X-Received: by 10.236.138.20 with SMTP id z20mr4531831yhi.31.1371743469291; Thu, 20 Jun 2013 08:51:09 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.49.49.38 with SMTP id r6ls757810qen.91.gmail; Thu, 20 Jun 2013 08:51:09 -0700 (PDT) X-Received: by 10.220.111.206 with SMTP id t14mr3160009vcp.77.1371743468974; Thu, 20 Jun 2013 08:51:08 -0700 (PDT) Received: from mail-vc0-f181.google.com (mail-vc0-f181.google.com [209.85.220.181]) by mx.google.com with ESMTPS id ia10si286903vdb.25.2013.06.20.08.51.08 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 20 Jun 2013 08:51:08 -0700 (PDT) Received-SPF: neutral (google.com: 209.85.220.181 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=209.85.220.181; Received: by mail-vc0-f181.google.com with SMTP id lf11so4809954vcb.26 for ; Thu, 20 Jun 2013 08:51:08 -0700 (PDT) X-Received: by 10.220.70.140 with SMTP id d12mr3092836vcj.15.1371743468820; Thu, 20 Jun 2013 08:51:08 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patches@linaro.org Received: by 10.58.165.8 with SMTP id yu8csp26686veb; Thu, 20 Jun 2013 08:51:08 -0700 (PDT) X-Received: by 10.194.93.74 with SMTP id cs10mr6460317wjb.9.1371743467341; Thu, 20 Jun 2013 08:51:07 -0700 (PDT) Received: from indium.canonical.com (indium.canonical.com. [91.189.90.7]) by mx.google.com with ESMTPS id eh8si368669wic.73.2013.06.20.08.51.06 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 20 Jun 2013 08:51:07 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of bounces@canonical.com designates 91.189.90.7 as permitted sender) client-ip=91.189.90.7; Received: from ackee.canonical.com ([91.189.89.26]) by indium.canonical.com with esmtp (Exim 4.71 #1 (Debian)) id 1Uph8c-0007pf-ET for ; Thu, 20 Jun 2013 15:51:06 +0000 Received: from ackee.canonical.com (localhost [127.0.0.1]) by ackee.canonical.com (Postfix) with ESMTP id ECBF4EB37C for ; Thu, 20 Jun 2013 15:41:14 +0000 (UTC) MIME-Version: 1.0 X-Launchpad-Project: lava-dispatcher X-Launchpad-Branch: ~linaro-validation/lava-dispatcher/trunk X-Launchpad-Message-Rationale: Subscriber X-Launchpad-Branch-Revision-Number: 629 X-Launchpad-Notification-Type: branch-revision To: Linaro Patch Tracker From: noreply@launchpad.net Subject: [Branch ~linaro-validation/lava-dispatcher/trunk] Rev 629: Add Nexus 10 support Message-Id: <20130620154114.997.83349.launchpad@ackee.canonical.com> Date: Thu, 20 Jun 2013 15:41:14 -0000 Reply-To: noreply@launchpad.net Sender: bounces@canonical.com Errors-To: bounces@canonical.com Precedence: list X-Generated-By: Launchpad (canonical.com); Revision="16673"; Instance="launchpad-lazr.conf" X-Launchpad-Hash: 96731fe86aa9da0cf3f4849a5035c5c3643fd239 X-Gm-Message-State: ALoCoQmq+HED2MIfGRx3CUEw2kg1OoDGvsO4TRmKNdxAtU1hF+wvYCy1MI8nBtfSjhnk795M3oSD X-Original-Sender: noreply@launchpad.net X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.220.181 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org List-ID: X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Merge authors: Tyler Baker (tyler-baker) Related merge proposals: https://code.launchpad.net/~tyler-baker/lava-dispatcher/nexus10-support/+merge/170472 proposed by: Tyler Baker (tyler-baker) review: Approve - Georgy Redkozubov (gesha) ------------------------------------------------------------ revno: 629 [merge] committer: Tyler Baker branch nick: lava-dispatcher timestamp: Thu 2013-06-20 08:40:34 -0700 message: Add Nexus 10 support added: lava_dispatcher/default-config/lava-dispatcher/device-types/nexus10.conf lava_dispatcher/device/nexus10.py modified: lava_dispatcher/device/fastboot.py --- lp:lava-dispatcher https://code.launchpad.net/~linaro-validation/lava-dispatcher/trunk You are subscribed to branch lp:lava-dispatcher. To unsubscribe from this branch go to https://code.launchpad.net/~linaro-validation/lava-dispatcher/trunk/+edit-subscription === added file 'lava_dispatcher/default-config/lava-dispatcher/device-types/nexus10.conf' --- lava_dispatcher/default-config/lava-dispatcher/device-types/nexus10.conf 1970-01-01 00:00:00 +0000 +++ lava_dispatcher/default-config/lava-dispatcher/device-types/nexus10.conf 2013-06-20 00:42:56 +0000 @@ -0,0 +1,46 @@ +client_type = nexus10 + +# The ADB command line. +# +# In the case where there are multiple android devices plugged into a +# single host, this connection command must be overriden on each device to +# include the serial number of the device, e.g. +# +# serial_number = XXXXXXXXXXXXXXXX +# adb_command = adb -s %(serial_number)s +adb_command = adb + +# The fastboot command. +# +# The same as above: if you have more than one device, you will want to +# override this in your device config to add a serial number, e.g. +# +# serial_number = XXXXXXXXXXXXXXXX +# fastboot_command = fastboot -s %(serial_number)s +# +# Of course, in the case you override both adb_command *and* fastboot_command, +# you don't need to specify `serial_number` twice. +fastboot_command = fastboot + +# Working directory for temporary files. By default, the usual place for LAVA +# images will be used. +# +# This is useful when the lava dispatcher is controlling the device under test which is +# physically plugged to other machines by setting adb_command to something like +# "ssh adb" and fastboot_command to something like "ssh +# fastboot". adb and fastboot always operate on local files, so +# you need your local files to also be seen as local files on the host where +# adb/fastboot are executed. +# +# In this case, you should set shared_working_directory to a shared directory +# between the machine running the dispatcher and the machine where the phone is +# plugged. This shared directory must have the same path in both machines. +# For example, you can have your /var/tmp/lava mounted at /var/tmp/lava at +# (or the other way around). +shared_working_directory = + +connection_command = %(adb_command)s shell + +enable_network_after_boot_android = false +android_adb_over_usb = true +android_adb_over_tcp = false === modified file 'lava_dispatcher/device/fastboot.py' --- lava_dispatcher/device/fastboot.py 2013-03-29 18:21:28 +0000 +++ lava_dispatcher/device/fastboot.py 2013-06-20 00:53:44 +0000 @@ -59,7 +59,7 @@ return try: # First we try a gentle reset - self.device._adb('reboot') + self.device._adb(self.device.config.soft_boot_cmd) except subprocess.CalledProcessError: # Now a more brute force attempt. In this case the device is # probably hung. === added file 'lava_dispatcher/device/nexus10.py' --- lava_dispatcher/device/nexus10.py 1970-01-01 00:00:00 +0000 +++ lava_dispatcher/device/nexus10.py 2013-06-20 01:07:00 +0000 @@ -0,0 +1,65 @@ +# Copyright (C) 2013 Linaro Limited +# +# Author: Tyler Baker +# +# This file is part of LAVA Dispatcher. +# +# LAVA Dispatcher is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# LAVA Dispatcher is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along +# with this program; if not, see . + +from time import sleep +from lava_dispatcher.device.target import ( + Target +) +from lava_dispatcher.device.fastboot import ( + FastbootTarget +) + +class Nexus10Target(FastbootTarget): + + def __init__(self, context, config): + super(Nexus10Target, self).__init__(context, config) + + def deploy_android(self, boot, system, userdata): + + boot = self._get_image(boot) + system = self._get_image(system) + userdata = self._get_image(userdata) + + self.fastboot.enter() + self.fastboot.flash('boot', boot) + self.fastboot.flash('system', system) + self.fastboot.flash('userdata', userdata) + + self.deployment_data = Target.android_deployment_data + self.deployment_data['boot_image'] = boot + + def power_on(self): + if not self.deployment_data.get('boot_image', False): + raise CriticalError('Deploy action must be run first') + + self.fastboot.enter() + self.fastboot('reboot') + + self._adb('wait-for-device') + + self._booted = True + proc = self._adb('shell', spawn=True) + proc.sendline("") # required to put the adb shell in a reasonable state + proc.sendline("export PS1='%s'" % self.deployment_data['TESTER_PS1']) + self._runner = self._get_runner(proc) + + return proc + +target_class = Nexus10Target