| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Silly me, KVM is only available on Linux hosts.
Change-Id: I983c87b1f5473e92823398b7812a574f56fc3a68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes the build of KVM support in the x86 emulator by
copying official Ubuntu Lucid KVM headers into android/config/linux-*/
This removes the need to rely on the build machine's versions of these
headers, which caused various issues.
Also, by default, the emulator will now probe the system to see if it
can start in KVM mode automatically. See android-kvm.c for details.
You can see the result of the probing with the -verbose option.
IMPORTANT NOTE:
It looks like there is a bug in the KVM code when the emulator
is built as a 32-bit binary, running on a 64-bit kernel, so
we explicitely disable KVM when we detect this case. It's hard
to tell whether this is a bug in QEMU or some versions of the
KVM driver.
As such, KVM only works when building the emulator as a
64-bit program. For now, this is only possible with
"android-configure.sh --try-64", not the Android build system.
+ Add a new QEMU option (-disable-kvm) to explicitely disable KVM
if needed. This is an addition to -enable-kvm which already exists
(and forces usage of KVM).
Change-Id: I6a397cae29ab62b1c56fce95c1ee75a4664d6688
|
|
|
|
| |
Change-Id: I58f06af3c39efc1fcc7dd4e53a701136229379de
|
|
|
|
|
|
|
|
|
|
|
| |
This patch dumps the content of the hardware configuration
file when the -verbose option (or equivalent -debug-init)
is used.
This is useful to determine exactly what is launched when
debugging emulator issues.
Change-Id: I101b87cddb12c603b43420ea72bb357fc33f327d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes two bugs in the implementation of the 'event send'
command:
1/ It prevents a crash when using the '0:0:0' event triple
(note that the equivalent EV_SYNC:0:0 used in testing didn't crash)
2/ If fixes the parser to correctly handle several event triples on
the same line, as in:
event send <type1>:<code1>:<value1> <type2>:<code2>:<value2> ...
Change-Id: I26cb55dd2feb75fda4f50ba0d49c7c8ad8a9dcca
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch makes -snapshot-list work properly. More specifically:
- If the AVD has snapshotting enabled, the emulator will find the
appropriate file if you don't use -snapstorage.
- If the AVD has no snapshot support, the emulator will print
a user-friendly message to explain that.
- If you're in the Android build, the emulator indicates that
-snapstorage <file> is mandatory.
Bug 4384430
Change-Id: I472b12f50b7f7da5a282b24036083c7598fe48eb
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
The console's 'avd name' command returned "unknown" incorrectly.
This was due to a missing option when invoking the core, even in
the standalone case.
Fixes bug 3454261
Change-Id: I5d4e346591e13bd7f525ad81953fd2d17c8f27b7
NOTE: This is similar to the tools_r10 quick fix at
https://review.source.android.com/#change,22735,
only simpler.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A previous patch introducing the "emulator" launcher program
did regress the way ANDROID_SDK_HOME is parsed. Fix that by
actually trusting bufprint_config_path() to always do the right
thing :-)
Change-Id: I11a13fea95727ee9c487595fd4ae5e81805986da
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QEMU is a weird animal. The "snapshot" property speeds-up snapshot
saving but also redirect all stores to a temporary file which is
deleted when the emulator exit.
Use a different property to get the desired speed-up. Note that
using "writeback" instead of "unsafe" forces the use of fdatasync()
which will still be horribly slow.
+ Argument checking in avd snapshot commands in the console.
(trying to load a name-less snapshot actually crashes the emulator).
Change-Id: Ie61f110f037bbb3539c7f9892cb03bee8bfec6bd
|
|
|
|
|
|
| |
+ Rename android/pipe-net.c to android/hw-pipe-net.c
Change-Id: Ia2e2466c3bf3ea812f36639420fad7ce2e0cb61d
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch renames the current ARM-specific emulator binary to 'emulator-arm'
and introduces a new tiny (less than 20KB) 'emulator' launcher program.
The role of 'emulator' is to launch either 'emulator-arm' or 'emulator-x86'
based on the target AVD or platform build being used.
This program will be replaced in the future by what is currently known
as 'emulator-ui', but is a good placeholder until this work is completed.
+ Move some utility functions from android/avd/info.[hc] to
android/avd/util.[hc] so that 'emulator' can use them directly.
IMPORTANT: For platform builds, the target architecture is detected
automatically by parsing the build.prop file.
For SDK AVDs however, there is no easy way to determine the
target architecture, so the patch adds a new hw.cpu.arch
property which can have value 'arm' or 'x86'
Change-Id: I0084c196695a75c8b9230ba716b3cd2e12610ded
|
|/
|
|
|
|
|
| |
Instead of use /tmp/android/, use /tmp/android-$USER/ so that several
users can run the emulator easily on the same system.
Change-Id: Ifda1b773cc87a9e0d4ff7e256b74a3f93377d73a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a new virtual hardware device named "goldfish_pipe"
used to implement a very fast communication channel between the
guest system and the emulator.
IMPORTANT: This depends on a special kernel driver, see:
https://review.source.android.com/#change,22496
Usage from the guest is simply the following:
fd = open("/dev/qemu_pipe", O_RDWR);
const char* pipename = "pipe:<name>";
ret = write(fd, pipename, strlen(pipename)+1);
if (ret < 0) {
/* could not connect to service named <name> */
}
/* now you can read()/write()/close() as a normal
* file descriptor to exchange data with the service.
*/
In addition, this implements the following pipe services in the
emulator:
tcp:<port>
tcp:<hostname>:<port>
unix:<path>
opengles
The 'tcp:' and 'unix:' services simply redirect to a TCP or Unix
socket on the host with minimal
The 'opengles' service simply connects to tcp:locahost:22468 for now.
We may change this to be more configurable in the future, but that's
the port number used by the current experimental OpenGL ES hardware
emulation host libraries / programs.
Benchmarking with a simple ping-pong program shows that the
guest <-> emulator can achieve a roundtrip bandwidth of 192 MB/s
(on a 2.7 Ghz Xeon PC).
Using the tcp: service to talk to a ping-pong server listening
on localhost reaches 102 MB/s on the same machine, using a Unix
socket reaches 140 MB/s.
By contrast, using standard sockets in the guest reaches only
3.8 MB/s on the same machine (and requires special privileges
from the application anyway).
|
|
|
|
|
|
| |
This will be used later by the goldfish network pipe implementation.
Change-Id: I70c770efba15b2fd5ef7cc52450aa07163fa21f5
|
|
|
|
|
|
|
|
|
|
|
|
| |
Starting the emulator with something like "-qemu -vnc :1"
didn't result in a valid boot sequence, due to the way our
"hw-control" service is initialized.
This patch fixes the issue. Note however that since a VNC client
cannot send proper touch events, it can only be used as a viewer
at the moment.
Change-Id: Ib9b60ff7028892368547bff89b84f580344c2edd
|
|
|
|
| |
Change-Id: I02dc12caa76c86de5d294b6fc857ae37b74f0130
|
|
|
|
| |
Change-Id: I3ad498380de8438dbf430316af2d4391876057cc
|
|
|
|
|
|
| |
+ add android/hw-qemud-pipe.h
Change-Id: Icf7b316137cd9f1ce46e4c3642addccea6222a24
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch removes the LoopIo parameter from asyncReader_run() by
storing the initial pointer passed to asyncReader_init() inside the
object itself.
Same treatment is performed for:
- AsyncReader
- AsyncWriter
- AsyncLineReader
- AsyncConnector
- AsyncConsoleConnect
Change-Id: Ic74b817e4c326230ca1d38b3a5d8c4790c4f90c1
|
|
|
|
| |
Change-Id: If69874ace211e043d82ffd8349f54396fd334e94
|
|
|
|
| |
This will be used later to support QEMUD fast pipes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes a bug in the skin parsing code that computes the
dimensions of the emulated framebuffer. The bug had the following
symptoms:
- The vertical framebuffer size reported by the 'events' device
was always 640 (the default), independent of the skin's
dimensions and emulated 'framebuffer' device dimensions.
As such, all touch event Y coordinates were scaled by the
system by 480/640 when running inside a HVGA screen.
Change-Id: I8c67f011ee3929ef25cbf2c858ee800f277c516c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch modifies the emulator to extract the target API level for
the AVD or the current platform release, and use it to set the
default value of hw.keyboard.lid.
This will *not* affect any existing AVD/platform that sets the value
explicitely in its config.ini (for AVDs) or hardware.ini (for platform
builds).
The change is beneficial for platform builds targetting API level >= 12,
because the input framework changed its the window orientation behaviour
depending on the availability of a hardware lid.
In short, this allows platform builds to be correctly oriented, even
if they don't provide a custom hardware.ini.
Fix for bug 4128604
Change-Id: I195135aae6f3c4cc11d2f01e1293f3cd6cad2f58
|
|
|
|
|
|
| |
They didn't work because the guest was trying to write to the wrong serial port.
Change-Id: Ibd68c4b63d0808afcb0cfaffa07c35898e21df9a
|
|
|
|
|
|
|
|
| |
The old implementation always expressed the size as multiples of kilobytes
due to an improper order to size checks. For example, 66MB was written as
'67584k' instead of '66m', which is correct but sub-optimal.
Change-Id: I6365bf4c269ed7d213043182a8ae501713798b8f
|
|
|
|
|
|
|
|
|
|
| |
This patch enables KVM mode on x86 Linux to boost performance of x86 emulaiton
if the hardware-based virtualization feature is present on the host machine.
Change-Id: I4b24474b3ec115a3b9a7bf017801f4f610253b09
Signed-off-by: Xiaohui Xin <xiaohui.xin@intel.com>
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
|
|
|
|
|
|
| |
The previous commit broke it due to the way it handled LOCAL_AR.
Change-Id: I3458f9306b3fca9771d868673ae89f4d995aeec3
|
|
|
|
|
|
|
| |
Use a hardware property to send the AVD name to the core.
The -android-avdname core option is still supported though.
Change-Id: I4daac5c9fb65ed5261b5c04c1e1a18daed057a3f
|
|
|
|
|
|
|
|
|
|
|
| |
This moves the initialization of the ports used by qemud
and the "kmsg" component to the core.
+ Gets rid of the -old-system option used to suppot pre-1.4
Android system. We don't officially support anything before 1.5
anyway.
Change-Id: Ied7e284d952adfd3419d96c39a7c48761f1b3f5c
|
|
|
|
| |
Change-Id: I3c2b4668593391026da028194503fc87246e44ba
|
|
|
|
| |
Change-Id: Ic8da3ccaed9bab7dbb44c0bb341b0dba20b90980
|
|
|
|
| |
Change-Id: I2c2b782fe4711cc8c323433e7976222b878cf679
|
|
|
|
| |
Change-Id: I2c8fa2a7df3d79ed4222296a93b787994a8ee11d
|
|
|
|
| |
Change-Id: I1f887e6f8fc38e43b1fff3f7bab3814b52542762
|
|
|
|
|
|
|
| |
The QEMU -kernel, -initrd and -append options are still supported for
overriding the hardware configuration.
Change-Id: I034d9e25d0a23341086aa052f449db5de50b2c8d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch changes the code in android/avd/info.c to prepare
for future patches that will move initialization disk images
to the core (including locking and creating temporary files).
+ Remove AvdInfo structure dependencies on many of the
functions, to make them more generic/usable.
+ Remove skin-related processing from avdInfo_new() and
avdInfo_newFromBuild().
+ Remove avdInfo_getSkinName() and avdInfo_getSkinDir(), and
replace them with a single avdInfo_getSkinInfo().
+ Rename 'qemu-hardware.ini' to 'hardware-qemu.ini' to follow
the same naming convention than the one used for disk
images (e.g. "userdata-qemu.img" and "system-qemu.img")
Change-Id: I32cb0a5850f8c0b9df93d2630552941fd2b461c1
|
|
|
|
|
|
| |
The feature is no longer optional.
Change-Id: I4558f12e3804e42069e8a3e6bcf0837d350206ed
|
|
|
|
|
|
|
|
|
| |
This patch removes the use of "-netspeed full" and "-netdelay none"
when starting a core, since these values correspond to the default.
Usually, these were triggered by the values found in the skin files.
Change-Id: I88944c6736dc721a8645b1c7d87bc0cb949feec4
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the '-clock unix' used to start the core on Linux.
We do that by moving the problematic 'dynticks' clock to the
end of the list in qemu-timer.c.
The effect is that the unix clock will become the default
for normal usage. You can still use the dynticks one for
experimentation with -qemu -clock dynticks though.
Change-Id: Ia7a8b2b262c62e8b80a82d6dbadec25964774b57
|
|
|
|
|
|
|
|
|
|
|
| |
When launching two instances of the same AVD, we need to ensure that
we don't end-up overwriting the hardware-qemu.ini in the content
directory.
Note that this case is supported at the moment. Both the system and
data partition will be backed by a temporary file when this is detected.
Change-Id: I2c5d9195edc4c5be3b889c8da38cb1c7cae3662a
|
|
|
|
| |
Change-Id: I2d95fa0aa9a5f679372dfd1ae7c7cec906c3049d
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
A snapshot saved with the Tools r9 emulator couldn't be restored properly
because we added another sensor (proximity) in Tools r10. Provide code to
deal with this case properly and avoid a nasty crash.
Change-Id: Ifc395c12496a599eb4ae02e089fe8e13a90865b4
|
|/
|
|
|
|
|
|
|
|
|
|
| |
This patch modifies the way we build the emulator's various programs.
It reduces the number of static libraries generated, and better segregates
between common, ui, qemu and target-specific code.
Note that we build both the arm and x86 binaries at the same time in all
build scenarios for now. This is done to catch build regressions as soon as
possible.
Change-Id: I6240705041e137e32f207e1e2444c614c52aaf05
|
|
|
|
|
|
|
|
|
|
|
|
| |
The differences between android/main.c and android/main-ui.c are now
minimal, so remove the latter source file by moving the corresponding
code into android/main-common.c
Also add a -snapshot-no-time-update core option to implement the
emulator-ui -no-snapshot-update-time option. We're probably going to
clean this up a little in the future, but this is enough for now.
Change-Id: I868bb4e47c3d106ae7436ee3f5b2c0ff5fb6ea5c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes the hard-coding of the prebuilt architecture path in
android/avd/info.c, in order to build a single version of this source
that can work with any supported architectures.
NOTE: The target architeture is only useful in the case of the
Android build system. We check the target arch by parsing
$ANDROID_PRODUCT_OUT/system/build.prop and look for a line
that looks like:
ro.product.cpu.abi=<abi>
Change-Id: I4e573343fa532e66eb034c895a5759754f2d1aef
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch contains minor cleanups that will be needed by
a few future patches that will improve the way core and ui
sources are separated and built.
- remove a few compiler warnings
- formatting
- remove the memcheck CONFIG_MEMCHECK checks (they later get in the way)
- refine hw/hw.h inclusion's of cpu.h (this comes from upstream)
- add missing definitions for PRUd64 and PRUx64 (used later)
- remove CONFIG_SHAPER test, replace with CONFIG_ANDROID instead.
- add missing strdup() calls.
Change-Id: Ic7d6681a51af718c298f0ee4bd884b1d8750f28e
|