Main Site Documentation

Using a Virtual Machine for the Development Environment


#1

I have always used VMs for development. This allows me to customize my development VM up the wahzoo without endangering the host machines tranquility and basic functionality.

However I have was having a lot of trouble with my normal VM, VMWare Workstation 7. I finally figured out that they were only truly supporting USB device like HID and removable drives, though they say they can passthrough any USB device. I tried for two days and gave up.

I looked at the sites for Windows Virtual PC (WVPC is for Windows 7 machines while MS Virtual PC 2007 works on Vista and XP) and Oracle’s Virtual Box. I lean toward open source, so I tried VirtualBox 3.2.10 and after removing and loading the 32 bit USB drivers from the host and then applying them to the VM and then rebooting one more time, I can report that MFDeploy works and I have programmed Blinky onto my domino and panda.

Has anyone used Windows Virtual PC for this? If so was it easy to get the USB functions going? It seems that WVPC does have some interesting features that VirtualBox doesn’t have and vise versa. I just don’t want to eat up time and space to check it out if it is a known failure.

I set a snapshot at just before installing USB drivers, C# VS, MS NetMF 4.1 and GHI NetMF 4.1 and Teraterm, so at the next update I can rebuild pretty easily. I actually separated the USB drivers, C# VS, and the others into three restores assuming that the USB and VS are less likely to change than the versions of NetMF.

Any other ideas on using VMs to develop on the FEZs?


#2

I know another user have used vmware on MAC http://www.tinyclr.com/forum/2/1330/


#3

Haven’t hooked up a FEZ device to my VMWare development environment yet, (because GHI aren’t shipping the Panda Tinkerer Kit yet (hint, hint) ;)) but I’ve been developing on an Arduino using the bog standard FTDI configuration, which is a serial driver for USB.

Having said that, I did have a few hiccups until I installed VMWare Workstation 7.1.0. My current iron machine is running Win 7 64-bit, and as I say, using VMW 7.1.0, I can drive an Arduino via Win7 x64, x32, Windows Server 2003 and XP SP3 VMs.


#4

This is from tuxbear and maybe something you should be aware of;


#5

I just checked my VMWare box rev# and it is 7.0.4. I will have to update to 7.1 and give it another go.

I had set Settings>USB to auto connect, but I can see a fix for something like this in a x.x release.

I have noticed that the FEZ get reset. VS always complains the FEZ is not set up right and the FEZ was being reset, BUT you have to stare at the immediate window and NOT blink to see it.


#6

I too am waiting for my Panda Tinkerer kits to actually connect things. But so far I’ve been using VmWare Fusion on the Mac successfully. I’m running VmWare Fusion 2.0.7 on OSX 10.5.8. I believe VmWare Fusion 3.x is required for OSX 10.6 (Snow Leopard), but I’m not running that yet.

Using VMs has been a godsend for NETMF port kit work. The port kit build system only works with obsolete toolchain versions. For example the Keil tools are currently up to V4.13a, but the port kit only claims to work with V3.1 and V3.80a. AFAIK you can’t buy those old versions today even if you want to. GNU-derived tools (CodeSourcery, Atollic, Yagarto, etc.) are especially problematic since they all seem to step on each other in mysterious ways. And uninstalling them doesn’t straighten out the tangled mess they’ve made.

With VMs I can have one environment with antique toolchains for port kit stuff, and other with current tools for forward development.

I also installed both Visual Studio 2010 Pro and C# Express on the same VM (since Microsoft claims they don’t interfere), but I’m having problems trying to move Express projects to Pro. I haven’t yet chased down the details, but I intend to install these on separate VMs before I do.


#7

Mooz,
Can you keep us up-to-date on the porting to VS 2010 Pro issue. I am currently setting up VS 2010 Pro and if I can learn any fixes from you, well, I am sure there are many who would appreciate it.

You’ve listed many of the issues on why I use VMs for any project.


#8

[quote]GNU-derived tools (CodeSourcery, Atollic, Yagarto, etc.) are especially problematic since they all seem to step on each other in mysterious ways. And uninstalling them doesn’t straighten out the tangled mess they’ve made.
[/quote]

Open source is great! If something does not work you can fix it yourself.


#9

Yes, assuming you have the experience to fix it; otherwise, you are dead in the water.

Can you imagine you are trying to fix a bug in GCC compiler? Going through thousands of files and millions of lines of code is a not going to be fun at all :wall:

I personally love open source for smaller projects but when it goes over 100 files then I rather pay someone to do the work for me.


#10

[quote]Open source is great! If something does not work you can fix it yourself.
[/quote]

Can you imagine open source cars? :o

It is great for some things but not for everything.


#11

I was being a little sarcastic when I made my open source remark.

Generally I would rather wear sandpaper underwear than use open source. It is less painful.


#12

Mike,

Does that mean your going to stop using the the Micro Framework? It has a open source license now. :whistle:

-Eric


#13

Mike has GHI on his side. If he has problem, he doesn’t need to look through thousands of files. He only needs to come here and post what he needs GHI to do for him :slight_smile:


#14

Yeah, but after a while the sandpaper underwear doesn’t feel too bad at all.

In fact, mmmmm!

I speak as an Englishman, of course. :o


#15

I’ve never done FEZ on Windows… all my development has been on an XP VM in VMware Fusion on OS X. Works awesome!

Fusion lets you easily connect/disconnect USB devices to any virtual machine, or the host machine itself, as well as defining the “default” host when a device is connected - useful as when the FEZ resets, it disconnects and presents itself again as a new “device connected”, so you’re not prompted each time.

This includes the initial firmware upload via TerraTerm, MFDeploy, etc. All done under Fusion. Not even a hiccup!


#16

Well, I updated to the very latest VMWare Workstation. Couldn’t get the Domino to connect reliably. It would appear then disappear once I tried using the device in VS 2010. I even manually altered the .VMX file adding an entry using the Domino’s VID and PID as documented in the VMWare help. No go.

If you an idea about how to solve this, I do prefer VMWare. BUT for now I am using Oracles VirtualBox.