From patchwork Tue Jun 11 18:17: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: 17800 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-ve0-f199.google.com (mail-ve0-f199.google.com [209.85.128.199]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 158CA25E1A for ; Tue, 11 Jun 2013 18:17:18 +0000 (UTC) Received: by mail-ve0-f199.google.com with SMTP id ox1sf8815209veb.2 for ; Tue, 11 Jun 2013 11:17:17 -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=er+JC4EiZRu//1rTAjXn/EmdiSEH3y6D6Dt3xEnugCY=; b=cOsCNU9dZ/hkT7dowA2VZ7uzX/c90ah2nreqDILj2HuEceEcCz1H/HiAL1A5P4JTKM ieaNj32R6ZWgt7QQMtOWo524njvbd+m0aBj6sJB7neN8Ew242XNXf8+csdXipKka+laM RbDV5UCv9XKl4mb4GpV/HZP+9zRj8ilJl4hHicnkzj2EFg4h1qMlu3mtSBujgULpjDII JSpyYKNq+UmngD0e1I9QLSCZ3aM40BmPo3rDGnmlBHoJZkN4sf45g8/mSVAVH4T75AS8 Or1ZoYFbL+Gt7O0klg3GaBZiSekGioKdQB+iZ7Yj9xhayQQFMnoTyOQKKSeVroUlU+3L xT3Q== X-Received: by 10.58.205.143 with SMTP id lg15mr2974296vec.13.1370974637552; Tue, 11 Jun 2013 11:17:17 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.49.29.3 with SMTP id f3ls3416322qeh.83.gmail; Tue, 11 Jun 2013 11:17:17 -0700 (PDT) X-Received: by 10.52.97.233 with SMTP id ed9mr7197993vdb.13.1370974637006; Tue, 11 Jun 2013 11:17:17 -0700 (PDT) Received: from mail-vb0-x22e.google.com (mail-vb0-x22e.google.com [2607:f8b0:400c:c02::22e]) by mx.google.com with ESMTPS id ml6si7294225vec.29.2013.06.11.11.17.16 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 11 Jun 2013 11:17:16 -0700 (PDT) Received-SPF: neutral (google.com: 2607:f8b0:400c:c02::22e is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=2607:f8b0:400c:c02::22e; Received: by mail-vb0-f46.google.com with SMTP id 10so5470315vbe.33 for ; Tue, 11 Jun 2013 11:17:16 -0700 (PDT) X-Received: by 10.220.170.72 with SMTP id c8mr8515919vcz.14.1370974636515; Tue, 11 Jun 2013 11:17:16 -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.221.10.206 with SMTP id pb14csp119808vcb; Tue, 11 Jun 2013 11:17:15 -0700 (PDT) X-Received: by 10.180.206.180 with SMTP id lp20mr2161354wic.41.1370974635141; Tue, 11 Jun 2013 11:17:15 -0700 (PDT) Received: from indium.canonical.com (indium.canonical.com. [91.189.90.7]) by mx.google.com with ESMTPS id ls2si5812647wjb.20.2013.06.11.11.17.14 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Tue, 11 Jun 2013 11:17:15 -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 1UmT86-0001sp-I9 for ; Tue, 11 Jun 2013 18:17:14 +0000 Received: from ackee.canonical.com (localhost [127.0.0.1]) by ackee.canonical.com (Postfix) with ESMTP id 77889E02D3 for ; Tue, 11 Jun 2013 18:17: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: 624 X-Launchpad-Notification-Type: branch-revision To: Linaro Patch Tracker From: noreply@launchpad.net Subject: [Branch ~linaro-validation/lava-dispatcher/trunk] Rev 624: Add support for Huawei k3v2 Message-Id: <20130611181714.20747.36090.launchpad@ackee.canonical.com> Date: Tue, 11 Jun 2013 18:17: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="16667"; Instance="launchpad-lazr.conf" X-Launchpad-Hash: fda934e06a1dcd9ddd3eef7407386a2b95c04449 X-Gm-Message-State: ALoCoQkRPq/ALiamFi7oo8c3PYYkthXHAl+k6ULFUyAqqY7Mxf9/oELHoNBGwUywSR20mMhuXmBI X-Original-Sender: noreply@launchpad.net X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 2607:f8b0:400c:c02::22e 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/k3v2-support-next/+merge/168717 proposed by: Tyler Baker (tyler-baker) review: Approve - Tyler Baker (tyler-baker) ------------------------------------------------------------ revno: 624 [merge] committer: Tyler Baker branch nick: lava-dispatcher-latest timestamp: Tue 2013-06-11 11:16:18 -0700 message: Add support for Huawei k3v2 added: lava_dispatcher/default-config/lava-dispatcher/device-types/k3v2.conf lava_dispatcher/device/k3v2.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/k3v2.conf' --- lava_dispatcher/default-config/lava-dispatcher/device-types/k3v2.conf 1970-01-01 00:00:00 +0000 +++ lava_dispatcher/default-config/lava-dispatcher/device-types/k3v2.conf 2013-06-10 20:26:18 +0000 @@ -0,0 +1,46 @@ +client_type = k3v2 + +# 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 === added file 'lava_dispatcher/device/k3v2.py' --- lava_dispatcher/device/k3v2.py 1970-01-01 00:00:00 +0000 +++ lava_dispatcher/device/k3v2.py 2013-06-11 15:43:17 +0000 @@ -0,0 +1,75 @@ +# 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 +) +from lava_dispatcher.utils import ( + connect_to_serial, +) + +class K3V2Target(FastbootTarget): + + def __init__(self, context, config): + super(K3V2Target, 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() + # Need to sleep and wait for the first stage bootloaders to initialize. + sleep(10) + 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') + + # The k3v2 does not implement booting kernel from ram. + # So instead we must flash the boot image, and reboot. + self.fastboot.enter() + self.fastboot('reboot') + proc = connect_to_serial(self.context) + proc.expect(self.context.device_config.master_str, + timeout=300) + + # The k3v2 does not yet have adb support, so we do not wait for adb. + #self._adb('wait-for-device') + + self._booted = 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 = K3V2Target