1
0
mirror of https://github.com/ARM-software/devlib.git synced 2024-10-06 10:50:51 +01:00
Commit Graph

242 Commits

Author SHA1 Message Date
Marc Bonnici
0687dac23b Target: Invalidates _connected_as_root on reboot or reset.
From #92, when rebooting a platform the internal connection state becomes
different from `_connected_as_root`, now clears the state upon device reboot or
reset.
2017-02-28 13:48:10 +00:00
Sergei Trofimov
08e36bf782 gem5: fix for the previous fix
Somehow went from plural to singular when passing base params. Bad
Sergei.
2017-02-27 17:24:01 +00:00
Sergei Trofimov
d40e70d7f4 gem5: updating plaform with base params
Gem5SimulationPlatfrom was not acceping base Platform's parameters, such
as core_names, making it impossible to configure them on construction.
This is rectified in this commit.
2017-02-27 17:17:31 +00:00
Sergei Trofimov
fef7c16b42 utils/misc: allow modules in walk_modules input
Previsously, the import path passed to walk_modules must have been
pointing to a package. This update allows the path to point to a single
module.
2017-02-27 17:12:20 +00:00
setrofim
05215e7e1b Merge pull request #92 from ionela-voinescu/force_adb_root
android: add support for forced adb root
2017-02-24 14:43:23 +00:00
Ionela Voinescu
66eaf15cdc android: add support for forced adb root
When rebooting a platform the internal connection state becomes
different from _connected_as_root, which was set before reboot.

Add the possibility to force adb root if you've rebooted or know
to have done something that would result in the platform having
a different connection state than the one of _connected_as_root.

Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com>
2017-02-24 14:19:25 +00:00
Sergei Trofimov
1dd6950177 utils/misc: attach exc_info on error in walk_modules
Commit 28891a82 made it easier to debug issues during walk_modules by
attaching the specific name of the module being loaded to the exception.
However, the error may not originite in the imported module, but one of
the modules that module itself is importing.

To further facilitate debugging, exc_info (which contains the traceback)
for the orginal ImportError is now also attached to the raised
HostError.
2017-02-23 09:25:23 +00:00
setrofim
23087d14f5 Merge pull request #91 from bjackman/kernelversion-fixup
Fixup KernelVersion API
2017-02-21 08:05:03 +00:00
Brendan Jackman
6665693e8f target: Fix kernel version regex for -rc field
This regex currently matches the `rc` group against the added-patches-count,
e.g. "00005" in "4.4.41-00005-g17b74bafccbe-dirty" and "59" in
"4.4.0-59-generic". Fix this by requiring "rc" in the match.
2017-02-20 18:32:12 +00:00
Brendan Jackman
18b77b8808 target: Add parts field to KernelVersion 2017-02-20 18:32:12 +00:00
Brendan Jackman
54adf80eab target: Add KernelVersion docstring 2017-02-20 18:11:52 +00:00
Brendan Jackman
03561ee72c target: Make KernelVersion fields numerical 2017-02-20 18:11:52 +00:00
setrofim
e968901fe6 Merge pull request #90 from derkling/improve-kversion-parsing
target: better parse kernel version numbers
2017-02-20 16:08:47 +00:00
Patrick Bellasi
9a8d539e03 target: better parse kernel version numbers
This adds a regexp to better parse all the kernel version numbers as well
as additional (optional) fields like SHA1 and RC.

The regexp has been made generic enough to match these examples:

4.9.0-rc6-00202-g3a60597
4.9.0-rc6-00202
4.9.0-rc6-00202-g3a60597 #321 SMP PREEMPT Mon Feb 13 12:30:59 GMT 2017 aarch64 GNU/Linux
3.18.31-g226dafe #1 SMP PREEMPT Wed Feb 15 16:34:14 GMT 2017
4.4.0-59-generic #80~14.04.1-Ubuntu SMP Fri Jan 6 18:02:02 UTC 2017
3.11.0-26-generic #45~precise1-Ubuntu SMP Tue Jul 15 04:02:35 UTC 2014
3.13.0-107-generic #154-Ubuntu SMP Tue Dec 20 09:57:27 UTC 2016
3.13.0-generic #154-Ubuntu SMP Tue Dec 20 09:57:27 UTC 2016
4.8.0 #1 SMP Fri Jan 6 18:06:24 GMT 2017

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
2017-02-20 12:25:08 +00:00
setrofim
b7ac9e7edc Merge pull request #89 from derkling/android-support-updates
Android support updates
2017-02-16 15:21:08 +00:00
Brendan Jackman
baa32ec716 AndroidTarget: Add charging_enabled property
Disabling battery charging can be useful for measuring power efficiency of
Android devices with hardware modified for this purpose.
2017-02-16 15:09:44 +00:00
Patrick Bellasi
9ce57c0875 AndroidTarget: add support to reboot a device via ADB
This adds a couple of commodity ADB commands to reboot in bootloader
mode and to restart ADB in root mode.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
2017-02-16 15:07:18 +00:00
Patrick Bellasi
da588ea091 android: allow to specify a target for fastboot commands
ADB commands always expect a device ID as first parameter, here
unfortunately we need to pass it as an optional one to avoid breaking
existing clients.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
2017-02-16 13:08:31 +00:00
setrofim
9d5b1062dd Merge pull request #88 from bjackman/localconnection-platform-param
LocalConnection: Add ignored `platform` param to __init__ method
2017-02-14 12:05:26 +00:00
Brendan Jackman
680406bc37 LocalConnection: Add ignored platform param to __init__ method
This parameter is used by the other connection classes and as of
21f40035d7 ("gem5: Small tweaks in target to allow gem5 simulations") is
passed by to the connection class constructor via expansion of
Target.connection_settings (see Target.get_connection)
2017-02-14 11:30:32 +00:00
Sergei Trofimov
28891a822b utils/misc: walk_modules always raises HostError
Previously, if an error had occured while attempting to load a module
during walk_modules, it was propagated to the loading code. This
meant that walk_modules could, in theory, raise any exception at all,
and that it was not always possible to tell exactly where the exception
originated.

Now, all encounted errors are re-raised as HostError, which preserves
the original exception in an attribute and sets "modpath" attribute to
point to the module that originated it.
2017-02-08 11:30:33 +00:00
Sergei Trofimov
a9265031ba TimeoutError: moved to devlib.exception
Moved TimeoutError from devlib.util.misc to devlib.exception. It was
previously defined in misc because it needed to be there when the code
was part of WA in order to prevent an import cycle. This is not
necessary in devlib, so it is moved to be with the other exception
definitions.
2017-02-08 11:29:42 +00:00
marcbonnici
8abdfdc1ef Merge pull request #83 from avanlaer/gem5_integration
Gem5 integration
2017-02-08 11:24:44 +00:00
Anouk Van Laer
a02d68decd gem5: Updated the documentation on the use of gem5 in devlib
modified:   doc/connection.rst
	modified:   doc/index.rst
	modified:   doc/platform.rst
2017-02-08 11:16:23 +00:00
Anouk Van Laer
c6b77432ba gem5: Addition of m5 binaries
The m5 binary allows the user to interact with gem5 simulation (e.g. reset stats).
See www.m5sim.org/M5ops for more information

 Changes to be committed:
	new file:   devlib/bin/arm64/m5
	new file:   devlib/bin/armeabi/m5
2017-02-08 11:12:18 +00:00
Anouk Van Laer
21f40035d7 gem5: Small tweaks in target to allow gem5 simulations
The target knows as little as possible about gem5 as a platform
but these tweaks add gem5 as a valid platform.

	modified:   devlib/target.py
2017-02-08 11:12:18 +00:00
Anouk Van Laer
e9cf93e754 gem5: Addition of gem5 simulation platform
This commit adds a gem5 simulation platform. The platform is responsible for starting the gem5 simulation.

 Changes to be committed:
	modified:   devlib/__init__.py
	modified:   devlib/platform/__init__.py
	new file:   devlib/platform/gem5.py
2017-02-08 11:12:17 +00:00
Anouk Van Laer
29a7940731 gem5: Addition of a gem5 connection
This is the first in a series of commits to allow for the use of gem5 as a target in devlib.
The interaction with the gem5 simulation is done by the Gem5Connection, a type of TelnetConnection.
There are two types of Gem5Connections (Linux and Android) as they differ slightly in the implementation
of some methods. Other types of connections have only been changed to make them uniform (e.g. arguments for init method)

 Changes to be committed:
	modified:   devlib/__init__.py
	modified:   devlib/host.py
	modified:   devlib/utils/android.py
	modified:   devlib/utils/ssh.py
2017-02-08 11:12:17 +00:00
setrofim
5472b671ef Merge pull request #87 from bjackman/localconnection-glob
Enhancements for LocalConnection
2017-02-01 08:50:38 +00:00
Brendan Jackman
179e45f98e LocalConnection: Enrich TargetError message from execute method
Add exit code, command, and output to TargetError exception message when execute
fails. This brings LocalConnection into line with AdbConnection and
SshConnection.
2017-01-31 19:21:11 +00:00
Brendan Jackman
b587049eb9 LocalConnection: Support glob patterns in pull 2017-01-31 18:38:03 +00:00
Brendan Jackman
1cb4eb2285 doc/connection: Document the fact that pull supports globs
This feature is supported implicitly by SshConnection and explicitly by
AdbConnection. A subsequent commit implements it for LocalConnection.
2017-01-31 18:38:00 +00:00
Sergei Trofimov
6351a3bad9 Target.killall: catch TargetError on individual kills
killall() is implemented by discovering all PIDs who's name matches the
specified process, and then sending individual kills for each PID. If a
PID no longer exists by the time the kill is sent (e.g. if it was a
child of one of the previously killed PIDs), this will result in a
TargetError, which for the purposes of killall() should be ignored.
2017-01-30 11:14:36 +00:00
Brendan Jackman
adedad8e32 doc/connection: Fix missing word 2017-01-27 19:32:02 +00:00
setrofim
9038339373 Merge pull request #86 from bjackman/adb-exit-code-fix
android: Handle variation in ADB behaviour
2017-01-25 15:58:38 +00:00
Brendan Jackman
44fe0370f8 android: Handle variation in ADB behaviour
On older combinations of ADB/Android versions, the adb host command always
exits with 0 if it was able to run the command on the target, even if the
command failed (https://code.google.com/p/android/issues/detail?id=3254).

When we need the target's exit code (check_exit_code=True), we currently work
around this behaviour by echoing the target's exit code after the command and
parsing it out of the output.

The ADB behaviour is now "fixed" on newer versions with newer Androids (It's not
clear which versions these are and it appears that different builds of ADB with
the same version number differ in this respect). For those version combinations
adb_shell will currently raise a CalledProcessError when check_exit_code=False
and the target command fails.

So lets now use the "echo $?" trick whether or not we need the exit code.

Fixes https://github.com/ARM-software/devlib/issues/85
2017-01-25 15:27:13 +00:00
setrofim
76c4a725ed Merge pull request #84 from bjackman/cgroups-fix-run-into
Some fixes for running commands into cgroups
2017-01-12 17:04:58 +00:00
Brendan Jackman
de61937d09 cgroups: Strip shutils log message from run_into output 2017-01-12 17:03:10 +00:00
Brendan Jackman
d0e28f0a89 cgroups: Fix run_into method
The current run_into method attempts to execute:

  <...>/shutils CGMOUNT=<...> cgroups_run_into <...>

Which should instead be:

  CGMOUNT=<...> <...>/shutils cgroups_run_into <...>

So just use cgroups_run_into_cmd to generate the command, then execute that.
2017-01-12 16:49:24 +00:00
Brendan Jackman
dbd12994fb cgroups: Extend docstrings for run_into[_cmd] 2017-01-12 16:49:24 +00:00
marcbonnici
9f9910bc64 Merge pull request #82 from bjackman/hwmon-root
hwmon: Use as_root=True when listing directories
2017-01-11 10:23:20 +00:00
Brendan Jackman
beaa229279 hwmon: Use as_root=True when listing directories 2017-01-10 14:00:42 +00:00
setrofim
e88c6880ab Merge pull request #81 from bjackman/master
LocalConnection: Add ignored 'timeout' __init__ param
2016-12-14 14:46:12 +00:00
Brendan Jackman
be2775a29a LocalConnection: Add ignored 'timeout' __init__ param
Target::get_connection requires this.
2016-12-14 14:41:04 +00:00
Sergei Trofimov
d5460e1185 android: pick ANDROID_HOME/platform-tools over PATH
When ANDROID_HOME is defined, ANDROID_HOME/platform-tools was appended
to the PATH in the environment of the Python interpreter. That meant
that if an adb binary was in PATH, it would be picked in preference to
the one under ANDROID_HOME. This is now reversed so that ANDROID_HOME
takes precedence.
2016-12-13 11:26:32 +00:00
Sergei Trofimov
1ba7fbdc9a doc: documenting Platforms and Modules
Adding documentation for Platforms and Modules API.
2016-12-09 15:06:35 +00:00
Sergei Trofimov
b3cea0c0d2 TelnetConnction: splitting from SshConnection
Perviously, a parameter passed into SshConnection controlled whether the
connection was established over SSH or Telnet. Now, there is a separate
class for Telnet connections.
2016-12-08 11:50:17 +00:00
Sergei Trofimov
1ed29a8385 JunoEnergyInstrument: removed a stray print
Removed a stray print statement from take_measurement() method.
2016-12-08 09:54:30 +00:00
Sergei Trofimov
8528568c1c gitignore update. 2016-12-07 18:13:55 +00:00
Sergei Trofimov
01253100cd doc: documeting connections 2016-12-07 18:13:55 +00:00