I'm hoping to avail myself on your knowledge as I am a linux noob in many respects.

A little background: I have this idea to deploy something like a Raspberry Pi to our clients sites to handled remote support and troubleshooting without having to get access to a clients computer on site first. However, we would also like to install a program we use to submit data about printers back to us. This program is an x86 Windows-only system, but is compatible going back to XP and isn't built on .NET Frameworks.

My question for you is, how would you get the x86 program to run in a Linux environment? I have tried using Crossover for Linux, but it appears that it is only x86 or x64 compatible and thus won't run on ARM7.

Alternatively, has anyone been able to get a version of Windows with a GUI (i.e. NOT Windows 10 IoT Core) to run on something like a Raspberry Pi so I could use this Windows program?

Any suggestions that anyone can suggest would be greatly appreciated. Thank you!!

Your project is not going to work. AMD64 and Aarm32 are not compatible. Plain and simple. It is two completely different architectures. So the first thing that you would need is a full AMD64 emulation layer to run on top of the far less powerful Aarm32 architecture. No one makes one of this because it is such a bad idea (the opposite works moderately well.)

So if you think about the drop in performance from even a tiny AMD64 chip (like an Intel Atom) to the super low end Aarm32 in the RP2, that alone would make performance horrific. Now imagine you are running an emulator that takes away 80% of the remaining performance! So imagine the slowest PC you have ever seen, now imagine something 1/10th the speed. That's about where you would be starting.

Now imagine you have hardly any memory and can barely load the OS. Now imagine that that OS is Linux, not Windows. Now that you are running this emulator you need to figure out how to get Windows libraries over to this machine and deal with putting Windows apps on Linux after that point.

Basically no, you can't do this and there are really good reasons why even if someone thought this was an interesting PhD project to make happen, it would be completely useless.

34 Replies

I've tried using WINE a little, but when I tried to connect through Terminal to a PPA I would keep getting an error that it couldn't find the version of WINE (I think its on 1.6 for the stable version) when I tried to install it.

Any pointers on place that has a good set of instructions on installing WINE on Ubuntu (specifically I'm using Ubuntu MATE right now).

You would be better served by getting a Dual Core Celeron Intel NUC for $140 USD, then add in a SSD drive and 4GB of ram for a total of ~$230 USD. This will run Windows 7 "just OK" for the price. I think the windows performance index was 4.2 with the limiting factor of the graphics card.

Even if you could get it to run WINE or any other emulator the Raspberry PI would be terribly slow (even the Pi 2).

Your project is not going to work. AMD64 and Aarm32 are not compatible. Plain and simple. It is two completely different architectures. So the first thing that you would need is a full AMD64 emulation layer to run on top of the far less powerful Aarm32 architecture. No one makes one of this because it is such a bad idea (the opposite works moderately well.)

So if you think about the drop in performance from even a tiny AMD64 chip (like an Intel Atom) to the super low end Aarm32 in the RP2, that alone would make performance horrific. Now imagine you are running an emulator that takes away 80% of the remaining performance! So imagine the slowest PC you have ever seen, now imagine something 1/10th the speed. That's about where you would be starting.

Now imagine you have hardly any memory and can barely load the OS. Now imagine that that OS is Linux, not Windows. Now that you are running this emulator you need to figure out how to get Windows libraries over to this machine and deal with putting Windows apps on Linux after that point.

Basically no, you can't do this and there are really good reasons why even if someone thought this was an interesting PhD project to make happen, it would be completely useless.

Thanks for the suggestion, I would love to use an Intel NUC. However, that is double the price for the bulk cost of the Pi 2 (which would be around $70-$80 for all the components) and for my company they want to keep the price down so I need to try and make it work with the Pi 2 for now.

I should also add that the size of the Pi itself is attractive as well as we would like to attach the Pi 2 to the back of the printers we are deploying.

Thanks for the suggestion, I would love to use an Intel NUC. However, that is double the price for the bulk cost of the Pi 2 (which would be around $70-$80 for all the components) and for my company they want to keep the price down so I need to try and make it work with the Pi 2 for now.

I should also add that the size of the Pi itself is attractive as well as we would like to attach the Pi 2 to the back of the printers we are deploying.

Thank you for your input and suggestion!

Whoa, "keeping the price down" is the exact opposite of this project. Trying to redesign the wheel from an architecture AND OS perspective is an epic project. This is a massively expensive project to even consider, let alone pull off. It would be, at best, pretty fragile. If you had a few million to throw at it up front, I could see you getting a large enough team to get this done in a year. But the result would be.... awful.

Figure out what data you need in regards to your printers and build a light-weight version of the application yourself using python, ruby, or bash. Run said code on your Raspberry-PI.

Yup. Rewriting the original application from scratch has to be no more than 1% the effort of this project. And so much better as a result. Make something modern and good for cheap (relatively) rather than spending a fortune to end up with something terrible.

Thanks for the suggestion, I would love to use an Intel NUC. However, that is double the price for the bulk cost of the Pi 2 (which would be around $70-$80 for all the components) and for my company they want to keep the price down so I need to try and make it work with the Pi 2 for now.

Whats the price of it not working or is something that is fragile which you have to put a lot of effort into?I understand the lure of using the Raspberry Pi. I have one at home where I'm toying with FreePBX on it. For an embedded device (what it was intended) it works great. When you try to make it into something its not that's when the processor falls short.

I'm trying to think of a way you could even use that as an RDP jump box, but you will need a full linux gui to support rdesktop or vnc.

If you're just pulling information for printers you could probably just setup ssh access to your Raspberry PI and then use SNMP to query your networked printer(s) status and pull the appropriate information you need.

Thank you for your input, I will definitely take this back to my boss and have another discussion with him about the costs of a NUC. As I said I am fairly inexperienced in Linux and programming in general so I didn't know the restriction and issues that could be caused by trying to port a Windows-based program into ARM7. I had played around with some other Windows programs in a Linux VM and was able to get them to work, but didn't take into account the major difference in the processor architecture.

Just as an FYI I have been able to get a RPD/VNC/SSH client and an unattended access client (ScreenConnect) installed and running on the Pi2 and it works pretty well, it definitely is a little sluggish at times, but overall it runs well.

If there are other ideas please keep them coming so I have more info to share when I talk with my boss about this project.

Lastly, a little pricey but solid as heck, look at CLI Embedded windows 7 units. They are rock solid, we use them in warehouse, dock's, gatehouses, and other nasty places where we just need the gear to work.

Thank you for your input, I will definitely take this back to my boss and have another discussion with him about the costs of a NUC. As I said I am fairly inexperienced in Linux and programming in general so I didn't know the restriction and issues that could be caused by trying to port a Windows-based program into ARM7.

Familiarity with Linux should not be a factor. The issue here is architecture. If Linux and Windows was the barrier we could work around that. That's not at all the issue here. The real core issue is understanding how a change in architecture means you just can't make this work. It's not like you could install Windows on here and make it work. The app itself can't run on there, regardless of the OS or available libraries. The app that you have is compiled for the wrong architecture.

Alternatively, has anyone been able to get a version of Windows with a GUI (i.e. NOT Windows 10 IoT Core) to run on something like a Raspberry Pi so I could use this Windows program?

No, and no one is going to. Windows does not run on ARM, it's that simple. I think that the core confusion here is coming from not understanding how computer architecture plays in the equation. You are aware that you have an ARM7 but I'm not sure you understand what that really means. This is not a PC and does not have PC hardware in it. Windows only runs on PCs, as does Mac OSX.

This is a RISC machine and totally different under the hood. You can't just run things from the AMD64 (PC) world on it. Even Microsoft themselves would have a major chore getting this to work and they get to start from source code and recompile for the new architecture.