Related
Hello gents and ladies,
Since the announcement that Canonical made on making Ubuntu on Android a release for OEMs to put on their devices, there has been quite a stir and interest on when we are getting to get this on our phones. Sadly, while the distro of Ubuntu is open-sourced, the programs that were created to achieve this method are not available to the public due to Canonical outsourcing the work to a 3rd party company.
Some users here may already say that we have Ubuntu on our phones but the method that is most commonly used by the community is to load up a virtual environment or Chroot inside of Android then remote into the interface via a VNC connection app. While this does work, it is a pretty sloppy method that is resource intensive and does not benefit from any hardware acceleration for the Linux desktop environment that is used. Plus, there is no way to pipe audio thru a VNC connection so using any audio/video programs in VNC is pointless.
Lastly, Ubuntu on Android is actually nothing new to the world of Android, as its been around for about a year and a half. It came in the form called Webtop that Motorola had launched on their Atrix/Bionic/RAZR lineup of phones. Webtop is essentially a stripped down version of Ubuntu with a lot of Linux tools taken out along with a very limited desktop environment. Webtop does everything that Ubuntu on Android does but in a neutered manner but there are different groups on each phone that have accomplished bringing back many of the linux tools that were taken out. Check out the thread below to see what I mean.
http://forum.xda-developers.com/showthread.php?t=1397583
It is believed that the same methods and tools that are present in Webtop are the same ones being used by Ubuntu on Android and possibly made by the same company. This can be seen in the demo video of Ubuntu on Android where the demonstrator had replaced the Webtop distro with a full Ubuntu 12.04 distro on a Motorola Atrix 2. So to debunk the myth that Ubuntu on Android can be easily loaded up on a phone as shown on video, no cause it was initially was setup with the required framework and partition space to load Ubuntu on Android even before Canonical announced Ubuntu on Android.
With all that is said, Canonical is targeted OEMs and Carriers to launch their Ubuntu on Android on select model phones and probably will not release the necessary tools as open-source code so the development community can compile their own working Ubuntu on Android. Now, all hope is not lost because some of the work has already been done but needs to come together into a package that can be ported from one phone to another.
Here are different parts that are needed:
1) Ubuntu image
There are many working images out there that run in a chroot environment but there is one universal image that is being implemented that is made by zacthespack that works on a variety of different devices - See attached thread
http://forum.xda-developers.com/showthread.php?t=1467811
2) X Server Port
Instead of using a VNC client and server model which is very resource intensive and does not benefit from GPU acceleration/Framebuffer. Using a X Server windows management system like they do on home PCs and laptop will greatly increase speed and functionality of a Linux distro opposed to VNC. This is how Webtop on the Motorola phones work is by using a port of X Server which pipes the display out to the HDMI port to be used with the Laptop dock or home dock. There is a group at AndroiX.org that is working on a port of X Server for Android that is looking very promising so hopefully anybody that can contribute to project to speed it up as it is the most crucial part for Linux in Android.
3) Sound
The biggest drawback of VNC is the lack of any sound processing which can be very annoying when trying to watch any videos or listen to sound clips on the web. What they are using on Webtop and Ubuntu on Android is a custom compiled version of PulseAudio module to pipe audio thru Android's audio manager system. No projects have yet been started on this so if anybody knows of one, feel free to post a link.
4) Android in Window
As demo'ed in the video and on Webtop, you have the ability to see whats on your Android display but in a window within Ubuntu when Webtop/Ubuntu on Android is engaged. This is a cool feature that maybe a X client app within android that pipes the display to a window in Ubuntu or maybe VNC client/server scenario. This is not really necessary to Linux in Android but non the less a cool feature to have.
5) Contacts/Text messages/Call logs
This is more shown in Ubuntu on Android opposed to Webtop where in Ubuntu mode, you can look at your Contacts or call logs in a program as opposed a Android view in a window. They also demo'ed a special program in Ubuntu to where you can send/receive text messages in a interface designed for Unity. They accomplished this by using a server application in Android, more commonly known as Motorola Phone Portal, that can relay information from the phone to applets inside of Webtop/Ubuntu on Android using a web interface API on localhost:8080 or on a remote computer on the same network. Like I said before, not really necessary but another cool function to have.
All and all, this pretty much sums up all the different parts for a project like this to take place. I am in no way a seasoned developer, just a person throwing out concepts that I have learned and done myself on the Bionic Webtop phone which hopefully some skilled individuals can run with as I am no Linux expert by any means. Anywho, let me know what you guys think about this and what can be improved.
Ubuntu on arm.
I've been looking into the development of something like this and have found a few resources that may prove beneficial:
Linux 4 Tegra (nVidia)
System Requirements
Host PC running Ubuntu Linux version 9.04 or higher.
Tegra Linux Driver Package providing a kernel image, bootloader, NVIDIA drivers, and flashing utilities. For more information, see the Release Notes.
Sample filesystem (example provided derived from Ubuntu 12.04)
Click to expand...
Click to collapse
Please note that nVidia currently provides driver packages for each model of the Tegra (Tegra 2 and 3).
As well as:
Ubuntu on Smartphones
Now. I've been playing with both an Ubuntu and Debian chroot and have ran into the issues you speak about (in a chroot with only vnc support is very limited, no sound, no camera, etc.) and would like the ability to dual boot at least.
[Q&A] Ubuntu on the Transformer (eMMC install) (xda-developers)
Basically, the creator of this thread is working from another dev's work to get ubuntu running on an Asus eeePad.
So I tried out Android x86 for my PC. It works beautifully. I cannot boot it on my Surface Pro though... It seems like the Surface Pro was designed to only boot EFI boot loaders. Not BIOS boot loaders... I was wondering if somebody could lend a hand at helping me get past this issue. I really think Android x86 would be great for the Surface Pro, there are so many things I miss from my Nexus 7 but I don't want an Android device, if I could just dual boot it every now and then, I would be happy. Can someone please get the Android 4.2 x86 ISOs to boot via EFI? That would be appreciated.
sionicion said:
So I tried out Android x86 for my PC. It works beautifully. I cannot boot it on my Surface Pro though... It seems like the Surface Pro was designed to only boot EFI boot loaders. Not BIOS boot loaders... I was wondering if somebody could lend a hand at helping me get past this issue. I really think Android x86 would be great for the Surface Pro, there are so many things I miss from my Nexus 7 but I don't want an Android device, if I could just dual boot it every now and then, I would be happy. Can someone please get the Android 4.2 x86 ISOs to boot via EFI? That would be appreciated.
Click to expand...
Click to collapse
hmmm ... interesting you tried ...
and came out with a finding ...
following this thread on the possible development on this front ...
I've always dreamt of a Surface Pro on Android always ...
a reboot to Win7 for Work ... and back to Android !!!
going to be really very interesting ...
Hope the Android X86 team is peaking at this thread ...
Cheers!
Did you bother disabling secure boot?
Otherwise you can try "jar of beans" or "bluestacks" to run android applications for windows. There is a version of bluestacks which claims to be optimised for the surface pro, in reality its just bluestacks with proper windows 8 touch support.
SixSixSevenSeven said:
Did you bother disabling secure boot?
Otherwise you can try "jar of beans" or "bluestacks" to run android applications for windows. There is a version of bluestacks which claims to be optimised for the surface pro, in reality its just bluestacks with proper windows 8 touch support.
Click to expand...
Click to collapse
Of course I did, the problem is the Surface Pro's UEFI chip does not actually support booting BIOS-based bootloaders. It only boots EFI-based bootloaders like the Windows Boot Manager or Grub EFI, etc. Unless one was to emulate BIOS to boot Android, it needs a EFI bootloader to even boot it on the Surface Pro. Ubuntu boots fine on the Surface Pro, but it is booting from Grub EFI. I copied the Grub EFI file to my other flash drive, and Grub indeed boots. It is the trouble of getting Android x86 to boot because it isn't using a EFI-based bootloader.
Also, that wasn't the point. I want to run pure Android just for the experience of having Android right on my Surface so I don't miss having a Nexus 7. I tried it on my desktop PC and it runs beautifully, if only I could get it on my Surface...
Surface Pro comes with Windows 8 Pro and a CPU capable of second-level address translation. It is therefore capable of running Client Hyper-V, which is a hypervisor-based virtualization (rather than hosted VM) technology that allows you to run another OS in parallel with Windows. I believe it includes support for BIOS-based OSes. Perhaps you should try that?
GoodDayToDie said:
Surface Pro comes with Windows 8 Pro and a CPU capable of second-level address translation. It is therefore capable of running Client Hyper-V, which is a hypervisor-based virtualization (rather than hosted VM) technology that allows you to run another OS in parallel with Windows. I believe it includes support for BIOS-based OSes. Perhaps you should try that?
Click to expand...
Click to collapse
But what's the point in that? I don't want to virtualize. I want to run it natively... That's like saying hey use Bluestacks. I want Android running native on my Surface.
Anyway, guys I got it. Here it is.
First of all, running on a hypervisor is nothing like using Bluestacks. Android would then be running as "natively" as Windows at that point (Windows itself would also be running on the hypervisor), except that Windows would have first access to the display (Android would be able to use the graphics hardware nonetheless). When the virtual display was set to the Android machine, Android would be interacting with the input devices. As a plus side, you could switch back and forth rapidly...
That said, if you managed to get it working on bare metal, that's cool. Did you mean to include a link in your "Here it is "?
GoodDayToDie said:
First of all, running on a hypervisor is nothing like using Bluestacks. Android would then be running as "natively" as Windows at that point (Windows itself would also be running on the hypervisor), except that Windows would have first access to the display (Android would be able to use the graphics hardware nonetheless). When the virtual display was set to the Android machine, Android would be interacting with the input devices. As a plus side, you could switch back and forth rapidly...
That said, if you managed to get it working on bare metal, that's cool. Did you mean to include a link in your "Here it is "?
Click to expand...
Click to collapse
The tutorial is on the YouTube page. But the problem with the Hyper-V hypervisor is it uses that remote console. I only found it decent for running Windows with the guest drivers installed. Unless I'm just not executing it very well, Hyper-V isn't a good solution. Since VirtualBox is used much more in the Linux world, I would use that before using Hyper-V.
I'll investigate the virtual solutions though and let you know.
more recent linux kernel versions do support hyper-v, partly provided by microsoft believe it or not
I would assume that hyper-v support would carry over into android. Just a case of setting it up.
Worth trying. However, Android runs a somewhat customized kernel build that probably doesn't include a lot of the optional stuff such as the Hyper-V helpers. Of course, you could install the required kernel module for them...
SixSixSevenSeven said:
I would assume that hyper-v support would carry over into android. Just a case of setting it up.
Click to expand...
Click to collapse
I somewhat doubt the android platform itself has support for hyper-v.
Further, if you're looking to boot android directly would an android kernel and platform support booting via UEFI at all yet?
What partition would android be installed to? it likely wouldn't like being stuffed into an NTFS partition so you'd have to repartition the SSD and take some of the space from Windows, or boot android from an SDcard or USB memory stick.
EDIT: I see you did infact get it running, nice job, did you just use GRUB for a bootloader? did you have android run from the SSD or from elsewhere?
tbh if I had a surface pro I don't think i'd be installing android on it, slightly a waste.
by the way, a faster way of doing advanced reboot so you get the boot options is to hold shift and select the reboot option from the power menu.
So, after a short little flip around the web, I came across this
https://01.org/android-ia/downloads/2013/android-4.2.2r1-ia0
somehow.
I would love to have my Surface Pro dual-bootable between Android and Win8, but your tutorial has sort of overwhelmed me.
Are you using this code? Would it be better to?
Just wasn't sure where this development was going....
Purrsia said:
So, after a short little flip around the web, I came across this
https://01.org/android-ia/downloads/2013/android-4.2.2r1-ia0
somehow.
I would love to have my Surface Pro dual-bootable between Android and Win8, but your tutorial has sort of overwhelmed me.
Are you using this code? Would it be better to?
Just wasn't sure where this development was going....
Click to expand...
Click to collapse
You can try my guide in windows 8 development forums
Sent from my HTC One X+ using xda app-developers app
---------- Post added at 10:37 AM ---------- Previous post was at 10:36 AM ----------
feherneoh said:
Can't you add the lines which boot android-x86 into Ubuntu's GRUB? If it can be loaded, it could be used to load Android's kernel
Click to expand...
Click to collapse
Microsoft locked it, you can only use the stock bootloader for now
Sent from my HTC One X+ using xda app-developers app
rEFIit
Have you tried a rEFIit or rEFIitd? As the name subtly suggests, its a bootloader for EFI machines. I suggest having a look. I'm going to try this myself on a couple of machines tomorrow once I get to work. Good luck! Let me know how it turns out or if I lead someone down the right track!
rEFInd - An EFI boot manager utility: http://goo.gl/KRwzk
rEFIt: http://refit.sourceforge.net/
Agreed, Android on a Surface would be kick ass. Windows for work, Android for real life!
Hi Folks.....
Feeling a little nervous here seems I must have took a wrong turn somewhere to end up in the Microsoft Surface forum LOL.
Is anyone still wondering about this? I noticed the other day that the linux kernel 3.10 which is currently used by the android-x86 project has android efi drivers/patches which maybe what you require. I'd also have a poke around the Android-IA sources which is the official intel android open source project from what I recall there's more efiboot goodies in there.
As an extra bonus the 3.10 kernel also includes a patch for Binder which allows a 32bit userspace to function correctly with a 64bit PAE kernel which means "BIG RAM" so if you have more than 4 gig and a 64 bit processor you can get access to the full ram allocation, not quite the pure 64bit Android that I want but it'll do for now while I figure out the finer points of x86_64 assembly language.
If Anyone wants/needs a kernel rattling off with these options enabled just let me know and i'll well rattle one off!
Thanks
trevd said:
Hi Folks.....
...I noticed the other day that the linux kernel 3.10 which is currently used by the android-x86 project has android efi drivers/patches which maybe what you require. I'd also have a poke around the Android-IA sources which is the official intel android open source project from what I recall there's more efiboot goodies in there.
As an extra bonus the 3.10 kernel also includes a patch for Binder which allows a 32bit userspace to function correctly with a 64bit PAE kernel which means "BIG RAM" so if you have more than 4 gig and a 64 bit processor you can get access to the full ram allocation, not quite the pure 64bit Android that I want but it'll do for now while I figure out the finer points of x86_64 assembly language.
If Anyone wants/needs a kernel rattling off with these options enabled just let me know and i'll well rattle one off!
Thanks
Click to expand...
Click to collapse
If the offer still stands, I would be interested in this (..or even just a how-to).
I have a multiboot system with PCLinuxOS, Ubuntu, and Win8.1 running right now, and I can get the recent 4.4rc1 release from android x86 to boot if I switch to legacy bios and use legacy grub from PCLinuxOS or the android_x86 thumbdrive, but I cannot get it to boot from Ubuntu's EFI capable Grub2 (..d/t kernel panic). On my Acer m5-583p it works great in legacy mode (wifi, touchscreen, keyboard, etc), but I would like to be able to use an EFI bootloader so that I don't have to change to/from legacy/efi before selecting the OS at boot.
Thanks! :good:
I have searched lots on the subject of getting a full linux distro running on an android device most of which were really not really what I am looking for, almost everything I find on the subject seems to be some kind of hybrid solution where running linux side by side or on top of android but imo that just seems messy and may as well just be using andorid with it's apps than do that.
I ran into interesting information about modding chromebooks some of when were the similar side-by-side solution but others actually more what I was looking for, they enable legacy seabios while not enough to get windows installed seems to work fine to boot into linux and another guy had baked his own custom seabios replacing the chrome bios entirely.
my question, the atom tablets Im seeing pop up a few places are standard x86 right ? is it possible to either
1/run a modded sea bios similar to chromebook mods? then boot a stock ubuntu distro installation maybe from external storage?
2/or somehow have the existing/modded bootloader boot linux kernel/ubuntu install ?
can't help think if it were that simple maybe someone would have done it already but also thinking the hardware (drivers) are supported by android so they should be supported by linux right ? and if it is standard x86 can't be too much a stretch right ?
I don't own an atom tablet but was thinking it may be desirable (and add more use) if I could get a full linux distro installed and be a lot more affordable than full fledged windows based tablet.
anyway thanks
ps:that captcha is harcore
They are kinda standard. But they are not following PC architecture. They are so called Intel MID (Mobile Internet Device). On such devices you may find neither EFI nor ACPI. They have so called SFI which is a complete disaster. But Intel Merrifield is more or less supported by upstream kernel and Yocto (thanks to Intel Edison platform). You may try to gather information about those devices (official name of SoC is Intel Atom Z34xx).
What phones can boot into and run a desktop ARM Linux distro (such as Arch, Slackware, Ubuntu or Debian) natively, with call and messaging support?
Ubuntu Edge.
linuxphone said:
What phones can boot into and run a desktop ARM Linux distro (such as Arch, Slackware, Ubuntu or Debian)
natively, with call and messaging support?
Click to expand...
Click to collapse
The closet you can get is with Ubuntu Edge but it is still under development and will not be available for a some time.
I am sorry I can not post the links yet in the post but you can google for the "Ubuntu Edge" and you will get enough reading material about the project.
There are also some solutions with VNC and a VM in which you run a desktop Linux. Might not be what you want, but you would have a Linux running on your phone.
The main problem is going to be drivers, which is why a ARM Linux can't just be booted. Someone would need to be merging device specific drivers into the linux, test it, debug it and so on, which doesn't make sense if there are so few people really wanting it. And as you can see with Ubuntus try on that: It is a lot of development needed.
It's possible to dual boot Maemo (to use it for phone features) and Ubuntu (desktop) on Nokia N900.
It's also possible to dual boot Windows Mobile (for phone features) and Ubuntu (desktop) on HTC HD2.
On the other hand, these Indian tablets boot and run Linux:
w w w .youtube.com/watch?v=n1tC8uSR0og
And have phone features:
w w w .techulator.com/resources/9492-Datawind-UbiSlate-7C-Edge-tablet-Full-specifications-features-online.aspx
If anyone tested Linux with phone calls on those devices, please tell.
A long time ago I installed Gentoo Linux on an ARM based hx4700 iPaq; it worked but ran so slowly it wasn't much use. The specialised Linux distros Familiar and Angstrom ran much better, as they were specifically designed for handheld devices. Granted phone specs are way improved now, but is there any real advantage running a full-blown Linux on a phone.... surely Android is basically a Linux distro optimised for phone specs (and chargeable apps, etc...). Would it be less work to port apps you need to run on Android instead - if that's your aim? Although it may be worth doing just for the sake of it....
Full-blown Linux offers the advantage of being in control of the operating system. You choose the tools you need. Android is less secure (backdoors, apps reading your data) and mobile apps generally feel like crippled desktop apps. For example, apt-get is much more comfortable to use, you just type the packages you need and it downloads them, no need for searching inside categories of app market (and all of them are free with full functionality with no ads). You can use the same scripts you wrote for your PC. It can be tweaked to run really fast (low resource usage apps written in C vs Android's Java), and you choose your desktop environment (e. g. a tiling window manager with the right apps literally flies on an old machine, RAM used on system start with Xorg running equals 20 MBs). Also, there's full filesystem encryption.
Mobile hardware is more or less the equivalent of a Pentium 2 / 3 / 4 desktop PC, which is enough for full desktop app experience.
Im glad i found this topic.
Thats not new to me...
I think the questions to add are:
- How to fully remove Android to Install Linux
- Can i install all the Drivers needed?
So that i can use: Modem(phone); WiFi & GPS under Linux.
-Is it possible to revert to Android?
- Minimum Requirements to Run Linux and What Distro?
Sent from my GT-I9003 using XDA Free mobile app
Hi. Can someone that compiles kernels compile one with KVM enabled and make it available to download for various popular devices? I'd love to test this out on ARM. This would really make these machines appealing if you could spin up VMs on them especially considering how much RAM they have today. There aren't many ARM devices as powerful as the Samsung Galaxy S9 that run Linux and can be tested with KVM. You could even run a different version of Android or Linux in the VM or try BSD.
This was already done for the Intel x86 based Zenfone 2 and as a result, it can run x86 Windows 10 32/64-bit editions, Mac OS X, BSD and any Linux distro full speed in a VM. Of course this is x86 and much more refined than virtualization on ARM and you don't have quite the OS selection on ARM either.
I'd like to see how well the new ARM Windows 10 performs on these Galaxy phones. It would be a great alternative to running Windows 98 in QEMU slowly. Windows 10 ARM runs Office 2016 and Photoshop at decent speeds on some of the latest Snapdragon SoCs.
Though, from what I've read, there will be some issues running Windows initially. ARM QEMU with KVM currently doesn't support the VGA display mode that is required for Windows 10 on ARM.
I was thinking of starting a project to do this for various Android hardware besides the Zenfone 2. There are a number of x86 tablets from companies like Dell or Nextbook that would really benefit from a KVM enabled kernel but ARM phones would benefit as well.
For those that want this feature now, here is a list of current retail Android devices with KVM support and the various custom ROMs/kernels available that enable it. If you would like to see this feature enabled in your device's kernel please reply and do not hesitate to request it to your custom kernel developers.
x86-64:
Asus Zenfone 2 ZE551 and ZE550:
ycavan's custom KVM Enabled Zenfone 2 FHD(ZE551) & HD(ZE550) kernels:
https://forum.xda-developers.com/ze...fhd-kernel-ze551-kvm-bridge-compiled-t3145055
ycavan's tutorial thread: https://forum.xda-developers.com/zenfone2/general/zf2-running-windows-7-using-kvm-t3153299
TheSSJ's Custom Kernel for ZenFone 2 version 51:
https://forum.xda-developers.com/zenfone2/development/project-t-custom-kernel-zenfone-2-t3150822
Nyks45's [KERNEL]OctoDex[GCC 5.3.1][CM-13.0/AOSP6.0.X] ZE551ML/ZE550ML (formerly Veno-M):
https://forum.xda-developers.com/zenfone2/development/kernel-veno-m-ze551ml-ze550ml-t3375800
Discussion of KVM builds on the above:
https://forum.xda-developers.com/search/thread/3375800?query=kvm
Downloads: https://androidfilehost.com/?w=files&flid=57205
BORET24's ROM for ZE551ML/550ML/Zoom ZX551ML as of 2017/08/29:
https://forum.xda-developers.com/zenfone2/development/borets-rom-ze551ml-550ml-t3551225
https://forum.xda-developers.com/ze...51ml-550ml-t3551225/post73580815#post73580815
nutcasev1.5's [Kernel]Holo Kernel[AOSP/LinOS14.1][-O3][LINARO][Z00A/8]
https://forum.xda-developers.com/zenfone2/development/kernel-holo-kernel-t3443689
RussiaNBearReborN's [Rom][6.0.1][B352][18/03/18][Unified Z00A/Z008]:
https://forum.xda-developers.com/zenfone2/development/rom-rbr-v1-0-t3550544
Renix63's [KERNEL][UC] ZenKernel V1.9 Super for MM [Z00A/8][HotPlug][STOCK ROM]
https://forum.xda-developers.com/zenfone2/development/kernel-zenkernel-1-0-mm-t3510734
Aterfax's custom LineageOS 14.1 with KVM enabled kernel for Asus Zenfone 2:
https://forum.xda-developers.com/showpost.php?p=74568996&postcount=400
Asus Zenfone 5 and Zenfone 6:
tank014 & BORETS24's Custom Lolipop kernel for Zenfone 5 & Zenfone 6:
https://forum.xda-developers.com/zenfone-5/general/custom-lollipop-kernel-zenfone-5-t3238970
dgadelha's [ROM][6.0.1] CyanogenMod 13.1 Stable Builds (Unofficial)
https://forum.xda-developers.com/zenfone-5/development/cyanogenmod-13-t3382702
Asus Zenfone Zoom ZX551ML:
BORET24's ROM for ZE551ML/550ML/Zoom ZX551ML as of 2017/08/29:
According this thread, BORET24's ROM works with this and has KVM.
https://forum.xda-developers.com/zenfone2/development/borets-rom-ze551ml-550ml-t3551225
Post about it: https://forum.xda-developers.com/ze...51ml-550ml-t3551225/post73580815#post73580815
If you know of any other devices with KVM enabled kernels (ARM or x86) please let me know and I will add them to this list.
I might have to purchase an ASUS Zenfone 2, as I've wasted the whole year trying to get Windows 7, 10 running on my Android phone at anything beyond a snail's pace. The main problem is that KVM hardware virtualization is turned off in, like, every smartphone on sale in the market! This is bad brain - SUCH BAD BRAIN!!! My phone provider would not even respond to me on this issue.
I bought the first ever ARM64 laptop @ £999, but had to return it to the shop because it never booted up any Linux live USBs/DVDs. Since then I managed to get an ARM64 Linux distro - with a KVM-enabled kernel - running on the Raspberry Pi 3 B+ (thanks to help from a woman!) only to find that -enable-kvm is incompatible with qemu-system-aarch64's graphics options.
So what might the problem be exactly...? Well, the qemu-system-aarch64 generic -M virt machine type has no graphics output built into it - very clever!!! So we have to use -device VGA as an add-on to get VGA output. That will then allow snail's pace running/displaying of Windows 10 ARM; however, KVM happens to not be compatibile with this display mode - or perhaps any kind of display mode on aarch64 - due to the "VGA framebuffer" not being emulated (whatever that means!) by Qemu perhaps. The alternative is to use a different display device addon. We have -device virtio-gpu-pci, which allows you play around with the bios at near-native speeds - but the moment you boot from there into Windows 10 ARM it blackscreens cos' Microsoft did not put any virtio graphics drivers on their OS. So, basically, we are stuffed!
Ubuntu tells us "Ubuntu/arm64 can run inside the QEMU emulator. You can either do this fully emulated (e.g. on an x86 host) or, accelerated w/ KVM if you have an arm64 host." - yet they have no shame in omitting the fact that their installation runs with -nographics!
-display type none
Do not display video output. The guest will still see an emulated graphics card, but its output will not be displayed to the QEMU user. This option differs from the -nographic option in that it only affects what is done with video output; -nographic also changes the destination of the serial and parallel port data.
-nographic
Normally, if QEMU is compiled with graphical window support, it displays output such as guest graphics, guest console, and the QEMU monitor in a window. With this option, you can totally disable graphical output so that QEMU is a simple command line application. The emulated serial port is redirected on the console and muxed with the monitor (unless redirected elsewhere explicitly). Therefore, you can still use QEMU to debug a Linux kernel with a serial console. Use C-a h for help on switching between the console and monitor.
Click to expand...
Click to collapse
Therefore, I seriously doubt we can get even an RDP option on our Windows 10 ARM guest, alas. And, to add insult to injury, there is no sign of a Surface Phone or any Android software that might allow us to run Windows 10 ARM on our modern smartphones. What a bad time to be living...
Now I'm curious. How did you get KVM working on your Rasberry Pi 3 B+? I compiled QEMU from source using a modification of your instructions and couldn't get QEMU to even start with KVM enabled. What Linux distro are you using on the Pi? What linux did you use as your guest image? What was your exact qemu command line?
I wouldn't expect the ARM Windows 10 laptops to run any Linux yet. They're too new. We may need to wait years. The Windows RT devices were just secure boot unlocked a few months ago by someone from here and they still can't run any Linux.
Honestly, you probably are just better off getting a Zenfone 2. With the kernel mod, x86 Windows pretty much "just works." I just wish QEMU had a virtual battery meter so the VM could hibernate when the phone's battery gets low.
As an aside, I have a few Atom Baytrail Windows tablets that are quite similar to Android models and it's quite amazing what I can do with them out of the box when compared to Android. A few of them have virtualization enabled out of the box so all I need to do to use a VM is install VMWare, Virtualbox, Virtual PC, etc. and it "just works". No hacking, no flashing custom kernels, no command line tools at all. I've attached a picture of my Nextbook NXW8QC16G running Windows XP in VMWare and showing virtualization enabled in the task manager. The other picture is running Windows Server 2012R2, a 64-bit guest OS.
Your mention of virtio gives me an idea: Isn't it possible we can compile the virtio graphics driver for AARCH64 and somehow inject it in our ARM64 Windows image? If we did that, would Windows then be able to be used with ARM64 KVM acceleration? That guy who made the ARM64 Windows QEMU blog post already compiled the virtio disk drivers for AARCH64 and was able to get the installer to install to a virtual hard drive. Maybe all we need are ARM Windows compiled drivers for the rest of QEMU's special emulated hardware. I use the x86 Windows QXL driver with Windows 8.1 on my Zenfone 2 and it seems to work. Though, I had to boot with the VGA video mode first and install it via device manager manually.
Also, if you want an NT based OS on emulated x86 on ARM, have you thought of trying something older than XP like Windows NT 3.51 or 4.0? These were designed for 386/486s so should be more usable on emulated x86 QEMU than something like Windows XP. Office 97 works on Windows NT 3.51 and Office 2000 and maybe even XP and 2002 will work on NT 4.0. Softmaker Office 2008 also works somewhat on NT 3.51. Obviously Windows 98 may also be faster but it sounds like you prefer NT so these may be an option. If you install Windows NT 4.0 Terminal Server Edition, you will even be able to RDP into your emulated machines. Windows NT 3.51 also has an optional edition with remote, multiuser support called Citrix Winframe but I was unable to find an Android Citrix client that can still connect to it. (they're all too new)
I think we're starting to see the limitation of devices marketed as "phones" They're not an open computing platform or standard like the PC or even Macs.
We really need some kind of open standard firmware for phones like the UEFI/BIOS on PCs and an OS to go with it. It would be great if there were some kind of "open", generic (not neccessarily open source) OS that let you install drivers after being installed like Windows. Android is sort of open but not the hardware and good luck buying a device that will have an unlocked bootloader and get custom ROMs. Plus, you can't run anything other than Android and maybe another linux if you are lucky. I dunno, it scares me that these phones may become the defacto computing platform when they are so closed and proprietairy. At least with a PC, I know I can install the latest OS and be up to date for at least 15+ years if I want to be. We need that for phones but it just doesn't exist yet.
Update: I found a work in progress WDDM Windows driver for QEMU's VirtIO 3D GPU driver mentioned here:
https://www.phoronix.com/scan.php?page=news_item&px=QEMU-3D-Windows-Guests
The source code for it is here: https://gist.github.com/Keenuts/199184f9a6d7a68d9a62cf0011147c0b
Well it looks like our prayers are answered and our dreams came true. Thanks to the folks at limboemulator.weebly.com, there is now an ARM KVM enabled kernel available for the Snapdragon based Samsung Galaxy S8 and S8+
The latest Limbo PC Emulator even has KVM support even with the ARM builds.
Get it here:
https://limboemulator.weebly.com/android-arm-kvm---kernels.html
TFGBD said:
Well it looks like our prayers are answered and our dreams came true. Thanks to the folks at limboemulator.weebly.com, there is now an ARM KVM enabled kernel available for the Snapdragon based Samsung Galaxy S8 and S8+
The latest Limbo PC Emulator even has KVM support even with the ARM builds.
Get it here:
https://limboemulator.weebly.com/android-arm-kvm---kernels.html
Click to expand...
Click to collapse
These are only for Exynos
our snapdragons have a locked bootloader they will never work for us
dd the following lines to file: arch/arm64/configs/exynos8895-dreamlte_defconfig
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_KVM_MMIO=y
CONFIG_KVM_ARM_HOST=y
#from the command line type:
make clean
make mrproper
make exynos8895-dreamlte_defconfig
Does anyone know how to compile/use Virtio drivers for Qemu-system-aarch64?
"You are welcomed to check the branch: https://github.com/virtio-win/kvm-guest-drivers-windows/tree/arm64
Instructions for build machine (using community edition of VS2017):
https://github.com/virtio-win/kvm-g...vers-including-arm64-using-visual-studio-2017
Soon will be integrated to master and we will distribute the binaries.
Best regards,
Yan."
https://github.com/virtio-win/kvm-guest-drivers-windows/issues/177
If the above works as a GPU for KVM then we might be able to pursue the Samsung Galaxy/Limbo solution?
I found out a lot of phones have KVM already enabled:
*Xiaomi phones, i.e. Pico F1 and Mi 8 with up to 8GB RAM (Mi 9 and Black Shark 2 have 12GB RAM)
*OnePlus phones, i.e. OnePlus 6T with up to 10GB RAM (McLaren Edition)
*Realme 2 Pro with 8GB of RAM
To find out just check the following file in a kernel source code:
https://github.com/MiCode/Xiaomi_Kernel_OpenSource/blob/dipper-o-oss/arch/arm64/configs/defconfig
KVM is disabled in all Huawei and Samsung devices by default. And Huawei cannot be unlocked/rooted anymore.
However, I found out how to compile custom ROMs for Samsung, etc.
KVM enabled on Mi 9 Xiaomi. What's the latest on a VM build we can use to build kernels etc.? Great idea here I proposed this AM and was shot down by a bunch of old school devs that think you should go through the pain of setting up a build env yourself that no one can replicate.
mslezak said:
KVM enabled on Mi 9 Xiaomi. What's the latest on a VM build we can use to build kernels etc.? Great idea here I proposed this AM and was shot down by a bunch of old school devs that think you should go through the pain of setting up a build env yourself that no one can replicate.
Click to expand...
Click to collapse
I probably need to update it, but for a VM you can try Builduntu here: https://nathanpfry.com/builduntu-virtual-machine-android-rom-compiling/
XDA post: https://forum.xda-developers.com/showthread.php?t=2585828
That should save you some trouble hopefully. ROMs and kernels will compile.
Thanks!
It's great someone is forward thinking enough to put this together. Much appreciated!
What updates do you suggest?
Seems to be running in VM
sylentprofet said:
I probably need to update it, but for a VM you can try Builduntu here: https://nathanpfry.com/builduntu-virtual-machine-android-rom-compiling/
XDA post: https://forum.xda-developers.com/showthread.php?t=2585828
That should save you some trouble hopefully. ROMs and kernels will compile.
Click to expand...
Click to collapse
Seems to be running from Virtual Box after the Extensions was added. Almost got the torrent downloaded but had to revert to the Google Drive and change to .html extension to download. Virtual Box 5.2.30 is the version.
Didn't sleep at all just got it booted which is a success at least. Thanks for providing.
Has anyone tried to turn on KVM on Xiaomi phones?
I tried to compile the kernel with the included KVM on Xiaomi Redmi Note 5. It compiled without errors, the KVM folder appeared with the files in the folder with the compiled kernel. But the phone with this kernel hangs on the logo. Maybe it's because of the miui?
To enable KVM, I added this to the defconfig:
CONFIG_VIRTUALIZATION = y
CONFIG_KVM = y
CONFIG_KVM_MMIO = y
CONFIG_KVM_ARM_HOST = y
One person with the help of such a compilation was able to enable KVM on their phones (Honor 7c pro, honor p20 pro, samsung galaxy s8), and the KVM works. Windows 10 arm launched.
TFGBD said:
Well it looks like our prayers are answered and our dreams came true. Thanks to the folks at limboemulator.weebly.com, there is now an ARM KVM enabled kernel available for the Snapdragon based Samsung Galaxy S8 and S8+
The latest Limbo PC Emulator even has KVM support even with the ARM builds.
Get it here:
https://limboemulator.weebly.com/android-arm-kvm---kernels.html
Click to expand...
Click to collapse
new link plsssssssssssssssss
monsterdimon said:
Has anyone tried to turn on KVM on Xiaomi phones?
I tried to compile the kernel with the included KVM on Xiaomi Redmi Note 5. It compiled without errors, the KVM folder appeared with the files in the folder with the compiled kernel. But the phone with this kernel hangs on the logo. Maybe it's because of the miui?
To enable KVM, I added this to the defconfig:
CONFIG_VIRTUALIZATION = y
CONFIG_KVM = y
CONFIG_KVM_MMIO = y
CONFIG_KVM_ARM_HOST = y
One person with the help of such a compilation was able to enable KVM on their phones (Honor 7c pro, honor p20 pro, samsung galaxy s8), and the KVM works. Windows 10 arm launched.
Click to expand...
Click to collapse
so does kvm works in honor 7c pro(as u have mention) ? And launch windows fastly?
also i wanna enable kvm in my redmi note4 .is it possible ? And How?
@TFGBD
Hi bro,
I have some questions that I hope you will answer me.
Note: My English language is bad ? ..
I was looking for how to activate the KVM feature on the LG G4 H818P phone to run Windows 10 ARM quickly on the phone, I have read that all ARM processors that work with Cortex-a15 or higher support KVM feature, but mobile manufacturers do not include this feature in the system, So,
I want a simplified way to activate this feature on my phone ?,
I want to know how fast I will get after activating KVM in Windows 10 ARM simulations ?,
will the method work with any device or each device has a method designated for it ?,
and
do you need experience ?,
How dangerous is it on the device?,
Do I need root privileges to benefit from KVM?
And will I need to reinstall the system again or only the kernel ? .
Thanks, bro ? ...
---------- Post added at 05:57 PM ---------- Previous post was at 05:52 PM ----------
tarikkaya said:
new link plsssssssssssssssss
Click to expand...
Click to collapse
link: https://github.com/limboemu/limbo/wiki/KVM
It's not simply a matter of enabling the KVM support in kernel. The vendor has to enable virtualization capabilities for the SoC in the firmware. On most (if not all) mobile platforms this will be disabled. Although there have been exploits that enable you to overcome that and they have been confirmed to work (think Lumia 950[XL] custom UEFI).
Hi all,
Anybody has enabled or knows of somebody enabling KVM on samsung galaxy tab s6? (4.14 kernel)?
I tried enabling the virtualization options in the kernel config, kernel compiles and device boots as normal but /dev/kvm does not appear...
"The vendor has to enable virtualization capabilities for the SoC in the firmware"
@konradybcio What do you mean by "firmware"?
Bye
Had a look at the kernel boot log and found the following line:
kvm [1]: HYP mode not available
So it appears the kernel is running in wrong mode and cannot operate as hypervisor
Probably samsung's bootloader (firrmare!?) does not allow it...