WizardStan
Mega GP Mania
- Joined
- May 24, 2008
- Messages
- 16,731
Except for the lack of 3D acceleration as Notaz mentioned.Good to know! Maybe it can be used as a VM for Android then
Except for the lack of 3D acceleration as Notaz mentioned.Good to know! Maybe it can be used as a VM for Android then
Hi, first post hereWhat makes you think it's x86? KVM doesn't imply x86 at all.It can only do ARM on ARM.
No, but it can layer in QEMU on an ARM VM... Fake X86 VM on ARM?
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-arm/
No? The fact that someone managed to pull off a spinning cube on some platform (exynos?) doesn't mean we can do full blown android on OMAP5, especially knowing the usual breakage of SGX driver and all.Is this demonstration any help?http://www.virtualopensystems.com/en/solutions/demos/vosyshmem-api-remoting/Note that android is useless without 3d acceleration (recent versions won't even boot without 3d I think?), and 3d is real difficult to do on virtualization..
You, sir, are a cool guy. I like what you are doing. Any way to easily access android apps lets me ditch my phone entirely.Hi, first post hereWhat makes you think it's x86? KVM doesn't imply x86 at all.No, but it can layer in QEMU on an ARM VM... Fake X86 VM on ARM?It can only do ARM on ARM.
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-arm/No? The fact that someone managed to pull off a spinning cube on some platform (exynos?) doesn't mean we can do full blown android on OMAP5, especially knowing the usual breakage of SGX driver and all.Is this demonstration any help?http://www.virtualopensystems.com/en/solutions/demos/vosyshmem-api-remoting/Note that android is useless without 3d acceleration (recent versions won't even boot without 3d I think?), and 3d is real difficult to do on virtualization..
I don't have an OMAP5 board but I am fiddling around with the Android SDK source code (including the emulator); Google provide a 3D OpenGLES acceleration library that forwards the calls to the host under their Qemu-based emulator. Under Linux it already supports KVM.
Putting this together, with some modding (as the host render is probably an OpenGL context, but changing some of that to keep OpenGLES as OpenGLES shouldn't be too much trouble... hopefully) it makes sense that a recompiled ARM version should be able to employ KVM acceleration to have near-native CPU performance and indirect OpenGLES 1.x and 2.x call forwarding to have near-native GPU performance, at which point one would have a very competent Android version installed as a VM.
Another great 'feature' of this approach is that Google support their emulator on all AOSP builds and, as such, when a new Android version is released, the changes would be as trivial as building the official emulator image with no further modding.
Put that together with a little "Notification-Clipboard forwarding" VM app, some optional built in Qemu constructs for file-system sharing and ADB with menu shortcuts to launch applications in the Android system, that really shouldn't be too much trouble to put together as everything but the bespoke VM app is documented, and you have a very competent, fast and portable solution that's trivially upgradeable with little effort.
NOTE: This is assuming their Qemu build isn't a minefield of x86 assembly or x86-dependent code, at which point more porting is needed... Again, haven't really given the emulator source a good look, will try to start this afternoon with a Qemu A15 emulated board and some OS on it .
PD: Anyone wanting to understand the advantages of this over Dalvik, it's just a different beast:
On the other hand:
- This is a much more secure system; if you get malware or attacked in your Android environment it is isolated from the Pyra OS (I'm very much into secure systems).
- The Pyra host kernel doesn't need a meshf*ck of tweaked Android patches, like a modified process killer that will only affect Android processes (sorry, no other way to put it), which eases kernel portability with a lower system-specific patch list.
Just food for thought, excited about the Pyra and wanting to do something for the community myself now
- Alien Dalvik doesn't have a static memory cap like a KVM machine does (although AFAIK dynamic memory ballooning in KVM can be used to mitigate that somewhat).
- Alien Dalvik is less resource intensive and more integrated, the applications can feel native.
- Alien Dalvik shares the kernel with the Pyra OS, which allows tighter inter-process communication between the Alien Android ecosystem and the native Pyra OS (again, less security).
EDIT: Upon further examination of the "android-emugl" libraries (at https://android.googlesource.com/platform/external/qemu/+/master/distrib/android-emugl/READMEwith quite a self explanatory name really) it appears that the encoding and decoding of GLES commands is independent from the GLES-to-GL layer, which could mean a potentially easier porting process
I'm on the same boat, thank the Pyra guys for designing such an awesome deviceYou, sir, are a cool guy. I like what you are doing. Any way to easily access android apps lets me ditch my phone entirely.Hi, first post hereWhat makes you think it's x86? KVM doesn't imply x86 at all.No, but it can layer in QEMU on an ARM VM... Fake X86 VM on ARM?It can only do ARM on ARM.
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-arm/No? The fact that someone managed to pull off a spinning cube on some platform (exynos?) doesn't mean we can do full blown android on OMAP5, especially knowing the usual breakage of SGX driver and all.Is this demonstration any help?http://www.virtualopensystems.com/en/solutions/demos/vosyshmem-api-remoting/Note that android is useless without 3d acceleration (recent versions won't even boot without 3d I think?), and 3d is real difficult to do on virtualization..
I don't have an OMAP5 board but I am fiddling around with the Android SDK source code (including the emulator); Google provide a 3D OpenGLES acceleration library that forwards the calls to the host under their Qemu-based emulator. Under Linux it already supports KVM.
Putting this together, with some modding (as the host render is probably an OpenGL context, but changing some of that to keep OpenGLES as OpenGLES shouldn't be too much trouble... hopefully) it makes sense that a recompiled ARM version should be able to employ KVM acceleration to have near-native CPU performance and indirect OpenGLES 1.x and 2.x call forwarding to have near-native GPU performance, at which point one would have a very competent Android version installed as a VM.
Another great 'feature' of this approach is that Google support their emulator on all AOSP builds and, as such, when a new Android version is released, the changes would be as trivial as building the official emulator image with no further modding.
Put that together with a little "Notification-Clipboard forwarding" VM app, some optional built in Qemu constructs for file-system sharing and ADB with menu shortcuts to launch applications in the Android system, that really shouldn't be too much trouble to put together as everything but the bespoke VM app is documented, and you have a very competent, fast and portable solution that's trivially upgradeable with little effort.
NOTE: This is assuming their Qemu build isn't a minefield of x86 assembly or x86-dependent code, at which point more porting is needed... Again, haven't really given the emulator source a good look, will try to start this afternoon with a Qemu A15 emulated board and some OS on it .
PD: Anyone wanting to understand the advantages of this over Dalvik, it's just a different beast:
On the other hand:
- This is a much more secure system; if you get malware or attacked in your Android environment it is isolated from the Pyra OS (I'm very much into secure systems).
- The Pyra host kernel doesn't need a meshf*ck of tweaked Android patches, like a modified process killer that will only affect Android processes (sorry, no other way to put it), which eases kernel portability with a lower system-specific patch list.
Just food for thought, excited about the Pyra and wanting to do something for the community myself now
- Alien Dalvik doesn't have a static memory cap like a KVM machine does (although AFAIK dynamic memory ballooning in KVM can be used to mitigate that somewhat).
- Alien Dalvik is less resource intensive and more integrated, the applications can feel native.
- Alien Dalvik shares the kernel with the Pyra OS, which allows tighter inter-process communication between the Alien Android ecosystem and the native Pyra OS (again, less security).
EDIT: Upon further examination of the "android-emugl" libraries (at https://android.googlesource.com/platform/external/qemu/+/master/distrib/android-emugl/READMEwith quite a self explanatory name really) it appears that the encoding and decoding of GLES commands is independent from the GLES-to-GL layer, which could mean a potentially easier porting process
If you manage to make good progress, it might be a good idea to get you access to a dev board. I'd kick in a few dollars for that!I'm on the same boat, thank the Pyra guys for designing such an awesome deviceYou, sir, are a cool guy. I like what you are doing. Any way to easily access android apps lets me ditch my phone entirely.Hi, first post hereWhat makes you think it's x86? KVM doesn't imply x86 at all.No, but it can layer in QEMU on an ARM VM... Fake X86 VM on ARM?http://www.virtualopensystems.com/en/solutions/guides/kvm-on-arm/It can only do ARM on ARM.No? The fact that someone managed to pull off a spinning cube on some platform (exynos?) doesn't mean we can do full blown android on OMAP5, especially knowing the usual breakage of SGX driver and all.Is this demonstration any help?http://www.virtualopensystems.com/en/solutions/demos/vosyshmem-api-remoting/Note that android is useless without 3d acceleration (recent versions won't even boot without 3d I think?), and 3d is real difficult to do on virtualization..
I don't have an OMAP5 board but I am fiddling around with the Android SDK source code (including the emulator); Google provide a 3D OpenGLES acceleration library that forwards the calls to the host under their Qemu-based emulator. Under Linux it already supports KVM.
Putting this together, with some modding (as the host render is probably an OpenGL context, but changing some of that to keep OpenGLES as OpenGLES shouldn't be too much trouble... hopefully) it makes sense that a recompiled ARM version should be able to employ KVM acceleration to have near-native CPU performance and indirect OpenGLES 1.x and 2.x call forwarding to have near-native GPU performance, at which point one would have a very competent Android version installed as a VM.
Another great 'feature' of this approach is that Google support their emulator on all AOSP builds and, as such, when a new Android version is released, the changes would be as trivial as building the official emulator image with no further modding.
Put that together with a little "Notification-Clipboard forwarding" VM app, some optional built in Qemu constructs for file-system sharing and ADB with menu shortcuts to launch applications in the Android system, that really shouldn't be too much trouble to put together as everything but the bespoke VM app is documented, and you have a very competent, fast and portable solution that's trivially upgradeable with little effort.
NOTE: This is assuming their Qemu build isn't a minefield of x86 assembly or x86-dependent code, at which point more porting is needed... Again, haven't really given the emulator source a good look, will try to start this afternoon with a Qemu A15 emulated board and some OS on it .
PD: Anyone wanting to understand the advantages of this over Dalvik, it's just a different beast:
On the other hand:
- This is a much more secure system; if you get malware or attacked in your Android environment it is isolated from the Pyra OS (I'm very much into secure systems).
- The Pyra host kernel doesn't need a meshf*ck of tweaked Android patches, like a modified process killer that will only affect Android processes (sorry, no other way to put it), which eases kernel portability with a lower system-specific patch list.
Just food for thought, excited about the Pyra and wanting to do something for the community myself now
- Alien Dalvik doesn't have a static memory cap like a KVM machine does (although AFAIK dynamic memory ballooning in KVM can be used to mitigate that somewhat).
- Alien Dalvik is less resource intensive and more integrated, the applications can feel native.
- Alien Dalvik shares the kernel with the Pyra OS, which allows tighter inter-process communication between the Alien Android ecosystem and the native Pyra OS (again, less security).
EDIT: Upon further examination of the "android-emugl" libraries (at https://android.googlesource.com/platform/external/qemu/+/master/distrib/android-emugl/READMEwith quite a self explanatory name really) it appears that the encoding and decoding of GLES commands is independent from the GLES-to-GL layer, which could mean a potentially easier porting process
From additional documentation (https://android.googlesource.com/platform/external/qemu/+/master/distrib/android-emugl/DESIGN ):
A.K.A. No heavy porting needed, it *should* hook into the native EGL + GLES subsystem.
- 2 - The ability to use vendor-specific desktop EGL/GLES libraries is
- important.
- GPU vendors like NVidia, AMD or ARM all provide host versions of the
- EGL/GLES libraries that emulate their respectivie embedded graphics
- chipset.
- The renderer library can be configured to use these instead of the
- translator libraries provided with this project. This can be useful to
- more accurately emulate the behaviour of specific devices.
- Moreover, these vendor libraries typically expose vendor-specific
- extensions that are not provided by the translator libraries. We cannot
- expose them without modifying our code, but it's important to be able
- to do so without too much pain.
I am setting up an ARM VM to experiment with, will keep updating with anything.
I've been looking around to see if Qemu would provide a capable enough A15 to simulate a (rough and slow) Pyra, but unfortunately it doesn't support the virtualisation extensions that ARM introduced and that are integral to this project; additionally forwarding OpenGLES from a Linux guest seems a rather convoluted and outdated process with very specific builds, which means I'm going to need to get some hardware.[REDACTED]
If you manage to make good progress, it might be a good idea to get you access to a dev board. I'd kick in a few dollars for that!
Not only might it be possible but there's no technical reason why it shouldn't be possible, it's early to talk but as of now it seems Google have made this easy by separating the forwarders from the translators and by using Qemu, which is very well documented in terms of cross-platform recompilation AND already supports KVM. It also leaves you with additional options like only encrypting the work Android, etc.So - my dream of having:
Pyra running Debian acting as the host OS
Android as a VM client running on the Debian host for work stuff.
Android as a VM client running on the Debian host for personal stuff.
Android as a VM client running on the Debian host for games/suspect stuff.
That might be possible?
COOL.
I know, no rush, I just discovered a few additional specs and design characteristics of this project not long ago and got a little hypedNo need to hurry about testing it on a OMAP5 devboard, KVM isn't working on PyraOS yet anyway.
That's awesome, I messed around with some of that before but never got a reliable chroot workingWe might not need KVM for basic Android use. Someone contacted me who's working on a chroot version of this here:
http://talk.maemo.org/showthread.php?s=9a2a578b08e5fddbc040653d2a4c307c&t=95631
I would also recommend greatly against using an Allwinner SoC for testing this. You either get the buggy hacked up sunxi kernel (which in my experience is prone to crashing), or you get a new kernel with no drivers
Cool, will take that into consideration, broadcock sounds better than crapwinner...RaspberryPi 2 supposidly have hardware virtualization. The GPU is a bit iffy with the broadcock stuff, but I did see a patched kernel floating around that adds KVM support.
The emulator emulates a 3G modem, so you could use that (with some work needed on the code) to get it to receive/send SMS and calls, even for mobile data, from several VMs at onceNice!
I for one would welcome a decent Android build on the Pyra.
Would it handle phone stuff/be able to access the Pyra's sim card?
It's easier to sync my contacts via my google account. Also it's already got a very nice dialer, several very nice dialers in fact, whereas the Pyra will likely have a command line utility to start, possibly a very rudimentary QT application that'll take a few months to reach a similar point of user friendliness.Why do that?
I will look into it but, as of now, it isn't a priority for me, when the GPU and CPU acceleration is working with HW controls and the Play store available then I will look into it, there's still a lot of time left until the Pyra arrives so hopefully it will be ready for primetime however I don't know how much work has to be done.It's easier to sync my contacts via my google account. Also it's already got a very nice dialer, several very nice dialers in fact, whereas the Pyra will likely have a command line utility to start, possibly a very rudimentary QT application that'll take a few months to reach a similar point of user friendliness.Why do that?
If you can get the network bridging to work so that whatever network Debian can see gets bridged to the Android VMs, that would be good enough for my use. To me, the Android instances are all about 'connected tablet' mode, not so much phone.I will look into it but, as of now, it isn't a priority for me, when the GPU and CPU acceleration is working with HW controls and the Play store available then I will look into it, there's still a lot of time left until the Pyra arrives so hopefully it will be ready for primetime however I don't know how much work has to be done.It's easier to sync my contacts via my google account. Also it's already got a very nice dialer, several very nice dialers in fact, whereas the Pyra will likely have a command line utility to start, possibly a very rudimentary QT application that'll take a few months to reach a similar point of user friendliness.Why do that?
Official Ti OMAP5 Devboard is pretty expensive, luckily I'll have uses for it even after getting the Pyra.So - how expensive IS a proper dev board to work on this anyway? Or does it need to be done on a full-on Pyra (or prototype)?
As TrashyMG pointed out, an OMAP5 Devboard is a little out of reach... However this can be developed on any system that can run the Pyra OS until the kernel for the Pyra is finalised and, if KVM is working, it should just work on it too, so no need for anything fancy[...]
So - how expensive IS a proper dev board to work on this anyway? Or does it need to be done on a full-on Pyra (or prototype)?