Linux guest makes Windows host BSOD IRQL_NOT_LESS_OR_EQUAL - virtualization

When I start up my Linux VM (Xubuntu 14.04 aka Trusty) on VMWare Player (v6.0.3), my Windows host (Windows 7 pro x64) makes an IRQL_NOT_LESS_OR_EQUAL blue screen of death.
The fact is that BSOD occurs juste after selecting an entry in my guest's GRUB screen.
How to avoid that?

The problem occurs because somewhere in VMWare drivers, an Interruption Request is made to satisfy guest shared hardware (USB, NAT, ...). The workaround is to uncheck "Connect at power on" checkbox on every device listed in "Virtual Machine Settings > Hardware" menu. You will then be able to boot.
Once the guest is started you can individually connect the pieces of hardware you want.

With my HP laptop, if I add the CD/DVD drive to my Ubuntu VM then this happens every time. So like the doctor says, "Does it hurt when you do that? then don't do it." ;) It'd be nice if VMware Player didn't bomb out for something straightforward like that, but such is life. You can always turn off that hardware before you run the VM.
My general experience as well is that it's better to add/remove hardware to the VM with the VM off. Remember that these are things which you usually wouldn't be able to change with a PC running, so it's not unreasonable for driver authors to assume that what they have on startup will not change.
BTW, don't forget that you'll need to manually delete all the lock files in the VM directory as well. VMware Player does a less-than-perfect job of cleaning up after crashes.

Related

How can I use a local TwinCat 3 runtime with Hyper-V enabled?

I'm trying to run TwinCat 3 XAR in a PC where I need to have hyper-V ON to run Azure IoT Edge (which uses hyper-V). Is there a way to run XAR with hyper-V turned on? Is there any way to isolate the cores from hyper-v or something else?
Edit 22 April 2022
For a complete tutorial on this see my blog post.
There is a way to accomplish this. You can do this by instead of having a local runtime, you can run the code on a runtime in a virtual machine. I got the idea from this reddit post.
To make it work I did the following:
Download and install VMware Player. Its free for non-commercial use. You can also use the paid Pro (Workstation) version. I'm not sure if this also works with Virtual Box.
Install TwinCAT BSD on the virtual machine as described in this excellent YouTube video by Jakob
If you're using VMware Player and need to enable UEFI you need to do the following as noted by YouTube user Eivind Hilde:
Follow the guide in the video, but skip the step where the firmware type is set.
Try to boot the VM. it will fail.
Open the .vmx file in the VM directory with notepad .
Find "firmware = "bios" and replace with "firmware ="efi"" and save. If this line doesn't exist, just add it somewhere.
It will now boot, and you can follow the guide in the video for the rest.
Run your TwinCAT project on the virtual machine, without the need to disable Hyper-V. 🎉
Previous answer
I don't think so. InfoSys mentions:
Hyper-V environment:
The runtime environment cannot be started inside a Hyper-V environment. This refers in particular to virtual Hyper-V machines, which are run in a privileged Hyper-V machine. As soon as a component of the computer uses Hyper-V, only the engineering environment (XAE) can be used on this computer, not the runtime environment (XAR).
But they also mention that:
TwinCAT attempts to detect these Hyper-V environments; however, it is in the nature of virtualization approaches that they do not wish to be detected and TwinCAT therefore cannot carry out any 100% detection.
So maybe there is some way you can prevent TwinCAT from detecting a Hyper-V environment. However, that is something I can't answer.

Newbie Hypervisor Questions

If I install a bare-metal hypervisor (say, ESXi), would it allow me to run Windows 7 concurrently with Linux?
Would it allow me to run multiple instances of Windows 7?
When I'm sitting at the PC that's running Win7 and Linux on a hypervisor, which OS do I see when I look at the screen? (I'm suspecting that the only way to access either OS is to do a remote login.)
Assuming the answer to #2 is yes, how do you manage multiple installs of Win7 on the same hard drive?
Thanks in advance!
If you simply want to run Linux and Windows in parallel you may of course do this on e.g. ESXi. Still, the OSes would run with virtualized (or emulated) hardware available to them, i.e. you would not be able to easily access all the hardware directly and the hypervisor itself not only introduces an overhead but this overhead is not deterministic.
If you want to run an RTOS (like Real-Time Linux) or any other RTOS, then you need a "real-time hypervisor".
You can google for such hypervisors - there are a few out there.
(I dont want to recommend one here as we are a vendor of such a solution our selves)
Regards
GFL

Windows Phone 7 emulator on a VM?

It seems that the Windows Phone 7 SDK doesn't support running inside a VM. On Parallels, the entire VM simply crashes when the emulator is starting up.
Around the web, though, a few people have reported that they were able to use it by changing a lot of the VM settings.
What do I have to change to be able to run it? I'm specially interested in Parallels, but VMWare or any other simulator that run on OSX if fine for me!
The WinPhone7 (and WinPhone8) emulator is itself a VM and few (if any) general-purpose VM's will host another VM infrastructure, which is why it crashes Parallels etc.
If you want to have the emulator run from within a different VM to the one MS provides, then you're into the realm of extracting images, toggling bits and trying to tack it into your VM of choice. Of course, the chances of the emulator then working as expected with no residual issues is as close to nil as makes no difference ;)
[Update 2013-01-30] VMWare5 & Parallels Desktop 8 now support running Hyper-V guest VM's. This is particularly useful for those wanting to develop against the Windows Phone 8 SDK which runs Windows Phone 8 guest VM's on Hyper-V.
Here's a guide to how to run Visual Studio 2012 & Windows 8 SDK (inc. the Windows Phone 8 Hyper-V-based emulator) in VMWare5 or Parallels desktop 5: Link
Note: Running Windows & Hyper-V inside a VM will be slower than running natively. Dual-booting into Windows (using Boot Camp on OSX) is stil the recommended method of developing for the Windows platform, especially if you want to use Hyper-V guest VM's.
I'm working in VMware Fusion with Expression Blend 4 RC AND the emulator.
works like a charm!
As others have said, WP7 is itself a virtual machine. Even if you can get it to run inside a virtual machine like Parallels, the performance will be abysmal. If your computer supports hardware virtualization, the emulator runs really smooth, without it it's very very sluggish. Running it inside another VM will make it even more sluggish - I am guessing to the point that it's unusable.
I know this is not the answer you want to hear, but I would recommend running Windows in Bootcamp, you will have much better experience developing and emulating.
I'm not so sure about compatibility for long term development, but in last september, I remembering trying the Windows Phone 7.1beta SDK on VirtualBox (I'm using mac SL), a free virtual machine from oracle (previously by Sun) and it works well there.
I just do a regular install of Windows 7 Home Basic (any Win7 except Starter will do, CMIIW) in the VBox with no tweaking at all, install the GuestAddition inside win7 (provided by VBox), then install the SDK. I create new WP project, arrange UI, make some codes as usual, then run it in emulator. Surprisingly, the emulator works fairly well and showing the app I've developed.
I'm not even experience any lag (my macbook is i5, 4GB ram, the VBox setting is dual core, 2GB ram, note that no other heavy mac process is on the run, so I solely run the VBox ... and iTunes for listening musics).
So if you still want to try WP SDK 7.1 on VM, why don't you try VirtualBox? My current VBox is installed with Windows 8 and have no extra space to reinstall the win7+WPSDK. If you do give a try on VBox, please report the result here to inform everyone.
I've run the Android emulator inside a VM before. It was slower, but still usable to test basic apps. Also, the Android emulator was then slow to where you couldn't tell a difference from between native or from within running Eclipse from within a virtual machine running Linux
x86-to-x86 emulation tends to be pretty fast nowadays due to both Intel and AMD CPUs having hardware to help it along. A lot of x86-to-x86 emulation also doesn't do a full emulation (see Android's emulator to see how a full emulator runs in comparison). In the x86-to-x86 case, the faster ones will try to pass as many instructions to the host OS so that a chunk of the code runs natively
People have made claims like 80-95% performance, which is pretty good. If you have a 3.2 GHz CPU, you get knocked down to around a 2.4 GHz equivalent of your CPU. That's not bad at all, and I honestly don't notice that much overhead running in a good x86-to-x86 VM
The biggest reason why the WP emulator has problems with VMs doesn't have to deal with it being a VM-in-a-VM, but it's most likely that it requires DirectX 10. This might have to do with XNA, which is Microsoft's really nifty gaming API that lets you easily port between Windows, WP, and the Xbox 360. A lot of VM programs don't support hardware 3d acceleration
On another note: if you want to use a low-end system, AMD CPUs may fare better since AMD doesn't tend to disable hardware virtualization features in their lower-end CPUs
If you're deploying to a device, you should be able to use a VM, since it's the emulator that has issues being a VM itself.
We have successfully deployed, and performance is acceptable in our environment, virtual Windows 8.1 Pro Desktop under VMware vSphere 5.5 (ESXi 5.5), and have the Windows 8 SDK and Emulator working correctly with no performance issues. (In Education - to University Labs for Windows Phone development).
The issue experienced by most, is you most have the Hypervisor pass through the Intel-VT into the VM, to effecticely create Nested Hypervisors. This is possible using VMware vSphere 5.5.
This option is available in virtual machine version 10, enabled in the vSphere Web Client - Enable Hardware Virtualisation.

Physical to virtual conversions?

Can I really do this?
As I am reading up on virtualization, I am getting more excited. The latest thing I am realizing, that it may actually be possible to take my existing XP Pro development workstation(VS 2005/vs2008/sql server etc) and simply convert the entire installation to a virtual image and load onto my new box? Sounds to good to be true? Does it really work that easy? If I can take a complete "dump" of a machine and simply move it onto my new workstation, not even need to find all my old install disks, that is truly amazing.
Does one of the VM products support this better than others? that may tip the scales for me to pick one platform over another..
How is it that I have not gotten onto this VM bandwagon sooner!?
Edit/Update: Just as a quick update in case anyone is interest. Got the machine, decided to go with vmware and had a heck of a battle, first trying to figure out which product to use, and then actually getting anything to work. The instructions are not obvious and wasted my 6 hours trying to a) get a vmware working, and b) actually trying to do a conversion of my old XP machine into a VM - never got it working.
In frustration I downloaded MS Virtual PC in minutes, had it up and running in 5 minutes, and was creating VM's within the hour....VERY easy. I haven't however figured out how to convert my old XP machine into a VM - but, now having a VM running, it seems obvious to me that I wouldn't want to actually run a primary development setup in my VW window anyway.
Definitely VMware Converter.
VMware Workstation is the most user friendly and fully-featured app that I've used and is well suited for debugging. Check out an awesome video demo of the record/replay feature here.
VMWare has p2v. By far the easiest solution you could take, and it's pretty easy to convert the VMDK into a VHD if you want to use a different solution.
Three options I have used.
1) Vmware convertor will create an image for you you can move around forever. You can then run it for free in the VMWare player.
I think the easiest thing would be to connect an external drive to your computer, convert a computer into an image onto that drive, plug the drive into another machine, and try it out..
2) Ghost is ghost.. You can use something like norton ghost or a linux equivalent to mirror the drive onto a larger one. If you have driver issues you can do an inplace re-install over the existing xp install and it will replace the drivers and leave all your applications, data, and settings intact.
3) Go Mac. They're strange. You can link two macs up with a firewire cord and it will copy over your entire setup, including virtual machines. I have my laptop backed up and if it dies, I can transfer the identical computer onto another one in minutes as all the internal components in Apple are intel and the drivers are one and the same.
Options I've heard of:
4) Microsoft Virtual PC. A fourth option that I have been hearing good things about is Microsoft Virtual PC. They bought the technology from another company and
5) Citrix - This one is intriguing because it would conceivably work as well, if not better than VMware. At least that's what I hear from my Citrix friend.
Welcome to the club of virtualisation. I set up a virtual machine on my Vista Os and running xp simultaneously. Its great as some apps don't work in 64bit (ie. those old 16bit apps.). You can try Microsoft Virtual PC 2007 its most probably the most user friendly. It's what I use. You can try Virtualbox too.
You can set up a partition and allocate space to the new operating system for this to work. Or use a spare formatted secondary drive if you have one.
Best of luck!
We now do all development in VM's.
The desktops are locked down tight and out IT manager is happy.
We use VirtualBox and it's fine.
There are fairly clear instruction for using physical disks directly for VirtualBox anyway.
The P->V transofer is not terribly hard.
Can't say the same of MS VPC or VMWare.
Here's a link to XenConvert, which is specifically designed for this "P2V" (Physical to Virtual) conversion, to show that the answer to your first question is "yes", it can be done.
http://www.citrix.com/site/ss/downloads/details.asp?downloadId=2318170&productId=683148
However, that tool is designed for stuffing your XP machine's image into a server, rather than onto your desktop machine.
For your more specific problem of doing this for your desktop, you're talking more about "Client Virtualization" (as opposed to Server Virtualization), where tools like XenClient, KVM, Virtual Box, qemu, Parallels, VMWare Workstation, etc. are better suited, and each will have their own P2V conversion technique.

How do I make my mouse in a VMWare Server virtual machine work properly?

My mouse, in my virtual server virtual machine is all jittery, and not working smoothly.
Outside the virtual machine it is fine.
My mouse is set to use the VMWare Pointing Device, which it says is working properly.
I've tried the sample rate in 100 and 200 reports/second and it makes no difference.
Any ideas?
Install VMware Tools and enable Full Acceleration in Display Properties -> Advanced -> Troubleshoot Tab on the VMware machine.
Also, make sure the mouse is using VMware drivers. Sometimes it reverts to general PS/2 drivers, which can cause very irritating lag.