Sometime ago, I committed myself to Linux and Wine, with the promise that I would sincerely abandon Microsoft Windows by not dual booting my system nor installing any virtualization software. Well, it is now tax-time and the Federal government wants their "fair share" of my income. Will my preferred tax software package, TurboTax, run with Linux & Wine? All the evidence I have gathered (see Wine's ratings for one data point) on the web leads me to believe I will be very disappointed. I can't find any success stories! Never the less, I will use this as a learning opportunity. I'm going to plunge forward and try to get TurboTax working with Wine, .... and it it fails me, resort to VirtualBox, which appears to have at least some success stories.

Installing and Configuring Wine

Wine can be installed via the following:

# installing wine
sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine
sudo apt-get install cabextract
sudo apt-get install winetricks

winetricks is a script which automates the installation of various useful packages, offering a friendly interface to do so. The cabextract package is a native Linux application that extracts Microsoft Cabinet files (CAB). ppa:ubuntu-wine/ppa will get the latest versions for Wine and keep it updated with new releases. This is important since the Wine support team is frequently fixing and tweaking it to get Microsoft Windows software working. To test if you got things installed properly1, execute one of the already installed Microsoft Windows packages. Try the following: wine notepad.exe.

Installing TurboTax with Wine

Wine is complex and large. I don't have the patience for hours of configuring and testing; particularly if in the end I can't print or electronically email my tax return. I'm going to plunge into installing TurboTax via Wine, and see if I can get things running with minimal effort.

So, I put the CD in the drive, right clicked on the setup.exe file, picked the menu item "Open With Wine Windows Program Loader", and got a error screen titled "We can't install TurboTax on your computer just yet...". Appears that TurboTax doesn't like Wine's version of the .NET Framework. A little research suggested that I should install .NET 4 via this command:

# install .NET
winetricks dotnet40

After this, I still got a .NET related error. Specifically, the TurboTax installer was looking for the netfx40testapplication.exe. Another quick search brought me to these bug report: #1 and #2. I have had enough ... on to VirtualBox!!


Installing TurboTax Within VirtualBox

VirtualBox is being setup with Microsoft Windows (specifically Windows 8.1) as the Guest OS and with the native Linux (specifically Ubuntu 13.10) as the Host OS. VirtualBox version 4.3 has added Windows 8.1 support, so that is the version I wish to install. I initially installed VirtualBox via Ubuntu's software center (equivalent to using sudo apt-get install virtualbox virtualbox-qt), which installed version 4.2.16-dfsg-3, and I had to back it out. Instead, I install VirtualBox from the Oracle maintained repository, following the procedures outlined by Oracle. I added the following lines (for the appropriate Linux distribution; mine is saucy) to the /etc/apt/sources.list file:

# Oracle's software repository for VirtualBox
deb http://download.virtualbox.org/virtualbox/debian saucy contrib

Downloaded the Oracle public key for the software:

# get the public key for VirtualBox's repository
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

Now install VirtualBox:

# install VirtualBox
sudo apt-get update
sudo apt-get install virtualbox vde2 virtualbox-guest-additions-iso virtualbox-ext-pack

Configuring VirtualBox and Installing Windows 8.1

It appears you can install 32 or 64 bit Windows (assuming you have virtualization supporting processor). I choose the 64 bit version. As to the installation steps, I was guided by the posting "Windows 8.1 in VirtualBox", and the steps are basically the following:

Configure VirtualBox

  • Fired up VirtualBox, clicked the "New" button, and used the Wizard to create a virtual partition for Window
  • I gave the virtual machine the name "MS Windows"
  • I allocated to the virtual machine the maximum amount of RAM, that being 3.584GB
  • I created a 50GB virtual hard drive with a VirtualBox Disk Image (VDI). I Choose to have the virtual drive to grow dynamically.
  • I opened up "Settings" and under "System" > "Processor", enable "PAE/NX". I also increased the CPU Cores to the number supported on my box (i.e. 4).
  • Under "Display" > "Video", I increased the Video Memory as high as I can, disable 3D Acceleration but enabled 2D Acceleration.

Install Windows 8.1

  • Still in the "Settings" window, go to "Storage" and under "IDE" where it shows "Empty", click the disk next to it and installed Windows 8.1 64-bit DVD into the drive.
  • Still with "Storage", click the disk icon right of the "CD/DVD Drive" and select "Host Drive ...". Also check "Passthrough". Click "OK".
  • Select the "Start" button om the VirtualBox Manager window.
  • At this point, a window should pop up and you see the Windows 8.1 install process begin.

Installing TurboTax on VirtualBox

This is easy. Fire up the "MS Windows" virtual machine, and load TruboTax like you would any other Microsoft Windows application.


Apple iTunes

I also wanted to use my iPod with my music collection. All my music is in MP4 format on my Linux box, working happily with Rhythmbox, but it can't be synced with my iPod. Apple has finally successfully blocked any form of access between Linux and my version of iPod (7th generation). My work around is to run iTunes on my Windows Guest OS and share the my music directory under the Linux Host OS with the Guest OS.

Wine and iTunes .............

Step 1: Install Host OS (Linux) Guest Additions

First, you have to install VirtualBox Guest Additions in the Host OS. You can check to see if guest additions has already been loaded by using lsmod or mprobe, as shown below:

# check if virtualbox guest additions package has been installed (yes in this case)
$ dpkg -l | grep virtualbox-guest
ii  virtualbox-guest-dkms                                       5.2.10-dfsg-6ubuntu18.04.1                 all          x86 virtualization solution - guest addition module source for dkms
ii  virtualbox-guest-utils                                      5.2.10-dfsg-6ubuntu18.04.1                 amd64        x86 virtualization solution - non-X11 guest utilities
ii  virtualbox-guest-x11                                        5.2.10-dfsg-6ubuntu18.04.1                 amd64        x86 virtualization solution - X11 guest utilities

If the guest additions hasn't been loaded, you can do this via:

sudo apt-get install dkms build-essential linux-headers-generic module-assistant
sudo apt-get install virtualbox-guest-dkms virtualbox-guest-x11 virtualbox-guest-utils

With the VirtualBox additions installed, you should do a reboot.

Step 2: Install Guest OS (Windows) Guest Additions

Launch VM VirtualBox and start your Guest OS in which you want to share drives/folders and files contained in them. Now its time to add Guest Additions to the Guest OS (Windows).

  1. Click on Devices tab provided on the VM VirtualBox taskbar and select Insert Guest Additions CD image... from the drop-down list.
  2. Download the VBoxWindowsAdditions.exe and run it via the popup window.
  3. On the Setup Wizard select Next, use the default destination folder, install the device software, and then reboot when prompted.

Step 3: Setup Shared Folders

Once the VM reboots, log back in and proceed onto setting up the shared folder.

  1. Click on Devices tab provided on the VM VirtualBox taskbar and select Shared Folders from the drop-down list.
  2. VirtualBox will open a window Shared Folders. Click on the top icon in the right-hand corner to add the drive/folder. Another window will open - Add Share.
  3. Add Share allows you to give the path of the drive/folder you wish to share from the Host OS by giving the path in Folder Path (You can also browse the drive/folder from your Host OS, in my case /home/jeff/Music).
  4. Now type the name of the folder in the Folder Name box. It can be any name you wish to have on Guest OS, but make sure it doesn't currently exist (I used DesktopMusic). Also, check the boxes Auto Mount and Make Permanent and click OK.
  5. Go to the Windows Start, select and click Run on Guest OS. Type net use x: \\vboxsrv\Drive F as the run command and click OK.
  6. If you have done everything right, then no messages or notifications will appear. Note that the shared drive/folder name should be the same as given in the Share Folder window. I gave it Drive F and you can check for its existence via the File Explorer.

Step 4: Guest OS (Windows) Access to USB

To sync my iPod, I'll need my Guest OS (Windows) based iTunes access the Host OS (Linux) USB ports. VirtualBox by default only supports USB 1.x devices.

  1. Make sure you have the VirtualBox extension pack (includes support for USB 2.0 and USB 3.0 devices). You can validate you have the extension package installed by going to File > Preferences... > Extensions. You should see Oracle VM VirtualBox Extension Package listed. If not listed, follow the instructions in the articles listed in the "Sources" section below under the heading "VirtualBox Guest OS Access to USB".
  2. In order for VirtualBox to have access to the USB subsystem, the user running VirtualBox must belong to the vboxuser group. To check this, I ran on the Host OS (Linux) the command groups jeff, which list all the groups the user jeff is part of. If vboxuser isn't present, I would execute sudo usermod -aG vboxusers jeff, and make sure to restart VirtualBox.
  3. Click on Machine > Settings... > USB. I then clicked on the icon for adding USB device but I didn't find my device. I then picked the approprate icon to added a new USB Device Filter. In the filter, I filled otu the Vendor ID and the Product ID which I got for the iPod via lsusb.
  4. Unplug your iPod, open VirtualBox make sure it spins up completely, and plug in your iPod. Finally, right click on the VM status bar USB icon and select the USB device you want to attach to the VM.

Step 5: Install iTunes

Now we'll install iTunes. Got to Apple's iTunes download page, and down load the software. After the download is completed and you have gone through all of Apple's marketing BS, click on File > Add Folder to Library.... Select the folder you are sharing with the Host OS (Linux) and wait while Apple iTunes processes all your music for its consumption.

Step 6: Sync iPod with iTunes

With iTunes fully initialized, you can now cable up the iPod and sync it with iTunes. See "Sync your iPhone, iPad, or iPod touch with iTunes on your computer using USB" for detail instructions.

Conclusion

Everything seems to be working perfectly within TurboTax and iTunes using VirtualBox! I believe VirtualBox is destine to stay load and in use on my Linux box. As to Wine, .... screw it!

Sources

Getting Wine Working

Getting TurboTax or Quicken Working

Getting VirtualBox Working

Shared Folders Within VirtualBox

VirtualBox Guest OS Access to USB


  1. NOTE: Use the utility winecfg to configure Wine and change settings like sound, graphics, Windows version, and so on.