Windows on arm?

If you have a question or need help, this is the place to be.
Post Reply
piert
Experienced User
Posts: 295
Joined: Tue Jun 14, 2011 2:53 pm

Windows on arm?

Post by piert » Sun Sep 09, 2018 7:10 am

The most recent Windows on Arm 2-in-1 from Lenovo, the C630, promises always-on and around 25 hrs of battery life. Apparently, some of the windows applications have to run in emulation. I am very interested in getting this laptop/tablet to replace my old Android tablet. Does anyone know if this will run OK with Eventghost and if there are any other caveats that I should be aware of?

User avatar
kgschlosser
Site Admin
Posts: 4754
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Windows on arm?

Post by kgschlosser » Sun Sep 09, 2018 8:48 am

your guess is as good as mine if it will run. EventGhost is not really all that dependent on the CPU so much as it is on the windows API. python is a programming language that is designed to be extremely portable. I would hazzard a guess that if python will run on it then so will eventghost so long as the windows API is the same as on an CISC processor. The ARM processor is classifies as a RISC based processor and todays x86-64 baes processors are considered to be a CISC processor. The latter processor is kind of a gray area. the modern "PC" processor in a very simplistic explanation is a RISC processor wrapped in a CISC processor. so the machine code would need to be CISC. Now we all do know that python does run on ARM CPU. take a look at the Raspberry Pi with it's ARM SOC. I do not for see an issue ith this. Tho I do have to say. Windows for an ARM processor is not the same windows you use on a PC. it is a development environment. so I do know that there is going to be a whole mess of things that are simply not available in an ARM version of windows. You need to do alot of reading on running Windows on an ARM processor. Now that I am typing this out i do remember i did some research on this. You can run Windows 10 on a raspberry pi. but do not expect to be able to run applications on it like you do on Windows that is installed on a PC. this is because Windows for the ARM processor is not a full version of Windows. it is basically the Windows core and i believe only a partial GUI and it is not able to run anything that utilizes .NET which is the majority of the applications that are made to run on Windows.

If you read about Windows on a Raspberry pi you will get the information you need. I do not think that development of Windows for an ARM processor has gained any real traction yet.
If you like the work I have been doing then feel free to Image

User avatar
yokel22
Experienced User
Posts: 265
Joined: Thu Feb 05, 2015 5:56 pm
Location: U.S. - Kansas city

Re: Windows on arm?

Post by yokel22 » Sun Sep 09, 2018 4:31 pm

Like kg said, arm versions of windows are so stripped down they likely won't be able to run eg. If your looking to run eg from a tablet. I have an older model of this x86 HP tablet. Runs. Full windows 8.1. Not a bad tablet for the price, just don't expect to find windows versions of your favorite Android apps. https://gadgets.ndtv.com/hp-stream-8-2020

piert
Experienced User
Posts: 295
Joined: Tue Jun 14, 2011 2:53 pm

Re: Windows on arm?

Post by piert » Mon Sep 10, 2018 7:09 am

Thanks for the suggestions, but I am choosing either a new Android tablet (with tasker on it to get me the events/actions from Eventghost that runs on my always-on PC), or a new Windows on Arm Always-on device on which I hoped to run also Eventghost to get me the events/actions from my always-on PC.
As far as I understand, these new Windows on Arm devices can always run Win 32 bit applications in emulation. Is Eventghost a Win 32 application?

User avatar
kgschlosser
Site Admin
Posts: 4754
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Windows on arm?

Post by kgschlosser » Mon Sep 10, 2018 3:13 pm

K i did a very brief skimming over the Windows on ARM thing. It is not the same as Windown IOT. It is more along the lines of Windows RT.

But... Python seems to have some issues with Windows on ARM. and do not function properly. specifically the ctypes library. EventGhost uses this library extensively. Also EventGhost is running on python 2.7. by the end of next year Python 2.x is going to be EOL. I would really be surprised if any work gets done with python 2.X to make it ARM compatible. I am going to hazard a guess that EventGhost will not run. it states that the emulation mode is for basic Win32 apps. EventGhost is anything but basic. I have been working on a Python 3.5 version of EventGhost. it is no small undertaking. One of the biggest things is the packaging utility we currently use is not available for python 3.5 If we build for a lower version of Python compiling the C++ coded extensions becomes a problem because of a now extremely outdated C compiler being needed and the inability to locate the Windows SDK's to have everything compile properly. Jump to Python 3.5 and we are now able to build with current compilers. Because of the incompatibility with the packaging utility. the whole build system needs to be written over from the ground up. (what I have been tinkering with).



Apps that try to hook Windows components or load their DLLs into Windows processes will need to recompile those DLLs to match the architecture of the system; ie Arm64. Typically, these are used by input method editors (IMEs), assistive technologies, and shell extension apps (eg to show cloud storage icons in Explorer or a right-click Context menu)."

Microsoft also notes that Arm64 Win32 SDK support is coming soon.

It also has an updated section on x86 apps that depend on drivers, which must be recompiled for Arm.

"The x86 app may run fine under emulation. However, its driver will need to be recompiled for Arm64 and any app experience that depends on the driver will not be available. For more info about compiling your driver for Arm64, see Building ARM64 Drivers with the WDK."
The above encompasses all of what EG does. and what is going to need to be done in order to have it run on an ARM processor.

So what this is basically saying is that anything that tries to access the windows API from a dll is going to need to be compiled specifically for ARM. This would be the reason why there is problems with the ctypes library because this is exactly what it does. pywin32 which is another module we use for interfacing with the windows API would also have to be recompiled.
If you like the work I have been doing then feel free to Image

piert
Experienced User
Posts: 295
Joined: Tue Jun 14, 2011 2:53 pm

Re: Windows on arm?

Post by piert » Mon Sep 10, 2018 5:27 pm

Thanks for checking it out! I must admit I don't understand much of the technical aspects you described, but I do understand from what you found out that Eventghost on that Windows on Arm machine will likely not work.

I guess I will be upgrading my old Lenovo Android tablet to the new Samsung Tab S4+Tasker then and keep my old&slow Windows 7 laptop for a bit longer than I had planned. I had hoped to switch to a new single device that could cater for all my software needs and that is always connected to receive and process Eventghost alarm signals. I

User avatar
kgschlosser
Site Admin
Posts: 4754
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Windows on arm?

Post by kgschlosser » Mon Sep 10, 2018 8:24 pm

Well here is the deal as far as the EventGhost on the ARM processor. From what I have read is that there are things that would need to be recompiled. It doesn't state that anything code wise would have to be changed. it only states that i would have to change the processor specification. and this is all that may need to be done. There is nothing that I have come across that states there are any API differences.

And it could be as simple as changing the processor Architecture. That being said. I do know how to compile Stackless python, wxPython (the GUI parts of EG), The EventGhost specific bits, as well as pywin32. Changing the processor architecture is as simple as a click of a button. I can build a full ARM release of EventGhost if this is the only thing that needs to be changed, or if there are only minor changes needed. From my readings it doesn't look like it would be a difficult task to accomplish. But I do not own anything that is capable of running Windows 10 ARM64 to be able to test with. and I would not want you to make a purchase when the end result has to many question marks.

As far as your laptop goes. Give me a little bit of information about it. brand, model, how much ram does it have how large is the HDD. Also the BIOS revision. I have been known to bring back to life what people thought was too old a laptop to make it worth anything. Laptop manufacturers have been known to do some really off the wall stuff. as an example the last laptop I worked a little bit of magic on was a Toshiba. The chipset on the main board was designed to support 4 GB or ram. tho the maximum amount of ram that could be put into the laptop was 2 GB. I do not know as to why this was done. but what was restricting it was the BIOS. I changed some of the BIOS code and i managed to squeeze 3GB out of it and still have it stable. in the world of windows & the difference between 2 and 3 GB of ram is kind of like driving a Pinto vs a Maserati. I changed out the HDD to an SSD. some OS tweaks. Total cost was 80 bucks and some time. The laptop would cold boot right up to the login prompt in a tad over 10 seconds. This was a laptop that was about 12 years old. It may be something worth taking a peek into. if it would make everything more usable for ya for a little while longer until more information becomes available as far as Windows 10 ARM64. I would love to see you have the setup you want. We simply need more time to gather the needed information and make it work for ya. I am all for making an ARM build of EG. this would be a great thing to be able to offer is a native Windows 10 ARM application.

I think that also having EG work native and not in emulation mode is really important. from my understanding of the emulation mode on Windows 10 ARM is that running an application in emulation mode make it run as tho you were running the app on a 1st generation celery (Celeron) processor. Not exactly a Maserati. More like the Pinto. Having the application run native would put you in that Maserati.

Microsoft did the smart thing and ditched the design they had in RT where you could only install apps that were available from the windows store. Also from what I have read is that the speed issues are no longer an issue as they were with RT. Those were the 2 biggest downfalls of RT and what caused it to fail in terms of being used by the consumer.

Do not settle... if you have to wait a bit and you can wait a bit. my suggestion is to do just that.
If you like the work I have been doing then feel free to Image

piert
Experienced User
Posts: 295
Joined: Tue Jun 14, 2011 2:53 pm

Re: Windows on arm?

Post by piert » Tue Sep 11, 2018 6:17 pm

No problem, I don't mind waiting with upgrading of the laptop. I use it seldom these days, but need it for a few particular software packages, mainly related to programming my KNX home automation part. BTW, I have not investigated yet if the ETS KNX software will run on Windows on Arm.

For information, the recently announced Lenovo device with Windows on Arm runs on Qualcom's Snapdragon 850 instead of the 835. Reportedly, this has improved the performance by so much that the device is now quite snappy.
Previous Sapdragon 835 devices, such as Asus Novago suffered somewhat in that department and also lacked sufficient RAM.
With the announced new device (should become available in the coming months) promising ~25 hours battery life, always-connected, Instant-on, Iam very tempted......
https://youtu.be/75I0j2hlQxg

User avatar
kgschlosser
Site Admin
Posts: 4754
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Windows on arm?

Post by kgschlosser » Tue Sep 11, 2018 8:00 pm

I have read about the 850 as well. it is made with Windows 10 ARM64 in mind. it is a processor that has been built to improve performance with Windows 10. The issue with speed does not stem from the processor. The slowness comes from the emulation mode. as an example if EG could be run in emulation mode it would be slower then if it was compiled to run on Windows 10 ARM64 without the need to run in emulation. The difference is a really large amount. Something i read stated running an application in emulation mode is like running it on a first generation Celeron processor. as far as the speed goes.
If you like the work I have been doing then feel free to Image

Post Reply