Tuesday, February 8, 2011

Solidworks on an Ubuntu netbook? A Howto for MIT MechE undergrads

yo, I heard u liek solidworks so i put a solidworks in ur windows7 in ur desktop, and put that in ur ubuntu in ur netbook
TECHNOLOGY FTW: making life complicated since 10,000 BC

Ah, the life of a course 2 (MechE) major, where everything I need is Windows-only.

Here's the situation:
2.007 recommends that we install Solidworks on our laptops.
Solidworks only runs on Windows.
I only run Ubuntu. On mai netbook. :)

Possible solutions:

  1. Dual-boot XP: well, I hate rebooting. Scratch that.
  2. Install XP inside a virtual machine on my netbook: Works under casual inspection
  3. Triple boot windows 7 on my desktop, install Solidworks, and remotely connect to that:
    The Win!
    Specifically, using the RDC protocol, Windows 7 on my desktop, and remmina on Ubuntu Maverick on my netbook.

I have: a netbook (1.6 ghz, 2 gb RAM, 160 gb drive) running Ubuntu (Maverick 10.10), with about 50 gb of free space.

Solution 2.
I installed:

  1. VirtualBoxfrom the virtualbox website
  2. Downloading the Windows XP iso from IS&T
  3. Creating a new machine in VirtualBox with 1.4 gb of RAM and 20 gb of  (dynamically expanding) virtual hard drive space
    (my Ubuntu setup consumes 500+ mb of RAM)  
  4. Installed Solidworks the normal route (MIT MechE website / share folder)
    This step took, oh, half a day or so on my netbook.

Results: Runs okay, faster than all my friends expected. Haven't tested it on a really complicated assembly. At the speed at which XP boots on my netbook, followed by starting up Solidworks (~15 minutes total), I'm very grateful for the "pause" feature on VirtualBox (so I can boot everything up ahead of time), but the virtual machine still sits there eating 1.4 gb of RAM.
Verdict: Not a great solution.

(This is skipping a long story of trying to install a modified-to-be-slim 1gb XP, followed by hours spent trying to expand the virtual hard drive from 1 gb to 20 gb so that I could install SolidWorks. Many thanks to my friends at MITERS last Friday/Saturday).

Solution 3
Now, I also have a desktop, which allows me to reach a more ideal solution. Over IAP I installed Windows 7 in order to install Solidworks, bringing me to a triple boot of XP, Ubuntu, and Win7.
Desktop: 80 gb SATA drive, 3.6 ghz, 2 mb RAM. + a 50 gb IDE (aka PATA) drive I acquired.

In retrospect, I should have mounted the 50 gb drive and commanded XP to recognize it, thus giving me enough disk drive space to install Solidworks. (XP eats up less RAM than Win7). Oh well.

Anyway, there's a few options here.
1. VNC (Virtual Network Connection): TightVNC, UltraVNC, and RealVNC are free software for Windows. For connecting to a VNC server, Vinagre comes by default on Ubuntu.
2. RDC (Remote Desktop Connection): Comes by default on Windows. sudo apt-get install remmina for Ubuntu.

VNC: Allows both server (local user) and listener (remote user) to see the screen at the same time. Slow (literally transmitting images).
RDC: Fast. When listener (remote user) connects, locks out the server (the local user) so she can't see what's going on.


  1. Download and install TightVNC, set and remember passwords. Run it as a service (supposedly faster). Icon (with "V") should appear in status bar.
  2. Notes: I went with TightVNC, since it looked like it had been updated more recently (mid-2010) than UltraVNC, and I read mixed review of the free version of RealVNC.
    No idea about TightVNC vs. RealVNC vs. UltraVNC in terms of speed.
  3. On Ubuntu, run vinagre and set up a new VNC connection to your IP address
  4. Done!

  1. Enable remote access on win7 (Control Panel > System > Allow Remote Access)
  2. Disable hibernation / suspend power saving
    Also note that the IPs (via ethernet) change every few days, and you may hit a IP change like I did, so double-check via www.whatismyip.com (or other method, such as the TightVNC status tray icon)
  3. Install Remmina on Ubuntu (sudo apt-get install remmina)
    Start Remmina
    Create new connection: Under basic, put RDC protocol, the IP address of my windows machine, my username and password on windows. Hit "Ok"
  4. Done!

The result: VNC showed noticeably lag both refreshing the screen and updating cursor position (half a second, perhaps) and it was funny watching the mouse cursor jerk around on my desktop. RDC ran like I was sitting at my desktop, even after bumping it up in remmina from 256 colors (the default, which looked very weird) to 16 bit colors.

VNC (lag)

RDC (almost negligible lag)

Verdict: RDC to a desktop is fastest. Run Solidworks on my desktop. It's acceptable to reboot into windows occasionally, especially if it's just for set times like lecture or lab. I wasn't happy about the idea of constantly running windows instead of Ubuntu on my desktop, which won't be the case.

Notes for myself

BIOS Settings: Turn all drives ON (PATA-1, PATA-2, SATA-1, SATA-2). Set Boot Order to SATA before IDE.
Ignore "Drive 1, 3 not found" warnings and hit F1 to continue.
Booting Windows 7: Connect all drives. At GRUB screen (installed with Ubuntu), select "Windows 7 (loader)" followed by "Windows 7" (the second time is only because I have an old UNetBootin installation).
~Win7 GRUB e: "root (hd0,1)"
Booting Ubuntu: Disconnect Win7 hard drive (otherwise, says "Error mounting")

I think I had to do some work to repair GRUB after installing Windows, but I don't remember exactly what. Google!

No comments:

Post a Comment