Getting USB devices to show up in VirtualBox 3.2 on Ubuntu

This is more for me than anyone else. Every so often I have to run Windows to update some (USB based) device that only works with some terrible software. That terrible software almost always only runs on Windows. My next three steps are opening VirtualBox on my computer (running Ubuntu 10.10 (Maverick) at the moment), launching my Windows VM, and then scratching my head trying to remember how to get USB devices to work. The USB devices are discovered, but they’re all grayed out. If this sounds familiar, here’s what you (Joshua) have to do/remember:

  1. Make sure you’re running the full VirtulBox package, not the open source edition (OSE)
  2. Open System > Administration > Users and Groups
  3. Click “Advanced Settings”
  4. Check the “Use VirtualBox virtualization solution” checkbox and click “OK”
  5. Logout and login of Ubuntu (or just restart all together)
  6. Open Virtualbox
  7. Select your VM and click the “Settings” button
  8. Click on “USB” and make sure “Enable USB Controller” and “Enable USB 2.0” are both checked
  9. Click the “Add empty filter” button and click “OK” to close the settings window
  10. Start up your VM
  11. Click Devices > USB Devices and select the devices you want to use (so they have a checkmark next to them)
  12. Enjoy the thrills of updating/using your USB device in Windows running on top of Ubuntu

I heart the ASUS UL30A-A2

First, some background
Confession time. I used to be a die hard Apple fan. I remember second grade when the Apple IIe and I first made eye contact. I’m pretty sure I saw the computer smile at me. Apple IIe I was in love. Sure, over the years I occasionally flirted with PCs running Microsoft operating systems but I always stayed faithful to Apple computers. (Strange. I started writing that last sentence and The Avett Brother’s song Shame started playing. Coincidence. Pure coincidence.) Later I even tried installing Red Hat Linux on a PC. I think that was when it came with a baker’s dozen worth of CDs. Nothing could compare to Apple, even with the crippled (pre OS X) Mac OS. Yes, I was an Apple fan boy in the dark years when Steve Jobs was wandering in the desert of silicon valley before making his triumphant return to the Apple throne.

Circa 2005 HP laptop

Typical 2005 laptop

Circa 2005 Apple PowerBook

2005 Apple PowerBook

Fast forward to about 2005. I was using both Windows and Mac OS X for work. I used the tools necessary to get the job done. I was no longer a devout Apple fan. It wasn’t Apple, it was me. OK, maybe it was a little bit Apple. No matter, I found a new love in Ubuntu on my home computers. Free software, which I had grown accustom to over the years with web development, finally looked compelling to me on the desktop in the form of a Linux distro. There was just one problem. The PC hardware, laptops specifically, were, at best, bland. In many cases they were worst than that. Most PC laptops looked like bricks impersonating laptops. They were thick blocks of plastic lacking any sense of design. Apple’s PowerBooks (and later MacBooks) looked like fine art compared to their PC counterparts. There were exceptions but the price was just as high as Apple’s gear. It seemed like a no-win situation. So I settled for middling hardware from a variety of PC manufacturers. I conceded that reasonably priced hardware with good form and function wasn’t going to happen.

Dell Studio XPS 16At the beginning of spring last year I bought a Dell Studio XPS 16. It had a beautiful 1080p LED display, dedicated graphics, fast hard drive, and more than enough processing power for me. It was also heavy and only portable as long as I had a never ending extension cord. It was a quality laptop but I found it didn’t meet my real needs. I wanted something that had substantially better battery life, about half the weight, thin, looked/felt good, “good enough” performance, reasonably priced, and played nice with Ubuntu.

Enter the ASUS UL30A-A2
A few months ago, after some research, it seemed like my best bet for getting a laptop meeting my requirements was going to be one with a CULV processor. Asus UL30A-A2 That’s Consumer Ultra-Low Voltage for those not in the know. (And really, don’t admit that you know, even if you do.) My biggest concern with CULV laptops was that the processor would be crippled. While I don’t actively develop software anymore, I do help test it quite a bit, and testing software in this case means compiling code, running automated test suites, and loading enough virtual machines to make Amazon jealous. That last part was pretty key. The ability to run virtual machines was a must-have. I found out that I would probably be OK on that front as long as I had a laptop with an Intel SU7300 processor and not the SU4100. The SU7300 has VT-x, the SU4100 does not.

One thing I did not want was a computer with a hybrid video card. This is where there is both a dedicated and built-in video card. The theory is that you switch over to the dedicated card for stuff like games and then flip back over to the built-in card when you don’t want to carry a car battery around to help power your computer that’s out of reach of an outlet. From what I’ve read, these hybrid video card setups can be tricky to get working properly in Linux. I’ve been in video card hell before. I decided to pass. Maybe next time it’ll be a better option for me.

After looking at the CULV laptops out there I finally decided to go with the ASUS UL30A-A2. With a catchy name like that how could you go wrong? Turns out you can’t. The ASUS UL30A-A2 meets all my requirements. It’s light (under 4 pounds), thin (under an inch thick at its thickest), has outstanding battery life (8 hours minimum doing real work with brightness turned down to about half way), plenty powerful, and runs Ubuntu (Lucid and Maverick) 64bit really well. It also costs less than $700.

Asus UL30A-A2Have no fear about running 64bit Ubuntu 10.04 LTS on the UL30A. I’ve yet to run into an issue. Suspend, hibernate, video, sound, wifi, webcam, touchpad, etc. all work well. There’s nothing exciting to report on Ubuntu compatibility, which is just as it should be.

My greatest concern with buying the UL30A was not having enough processing power. It turned out to be a non-issue. Even though the processor is slower than the Core 2 Duo on my previous Dell, I don’t notice it in day-to-day use. I use Virtualbox right now as my virtualization software of choice and it runs great. I have VMs of Ubuntu, Windows 7, Kubuntu, Fedora, and others installed. They run fine. In fact, I’ll run two Linux based VMs at the same time and it’s not a problem. The only time it slows down noticeably is when you’re running upgrades on the VMs at the same time. I remember reading that the CU7300 processor was likely only going to satisfy those who were doing some email, web browsing, music listening – nothing too serious. But I’ve found that not to be true. I even do some light video editing on it and it works fine, very responsive. I expected it to be at least a bit sluggish based on some of what I’ve read about laptops with the CU7300 processor. Maybe those opinions reflected more on Windows rather than the processor itself? Not sure. Will an Intel i3/5/7 do better? Of course. But it’s hard to get 10 hours of battery life on a 13.3″ laptop less than an inch thin and less than four pounds with an Intel i3 (or better) processor in it. Not to mention one that costs less than $1,000.

Asus UL30A-A2 touchpad

Dimples on babies? Cute. On a touchpad? Not so much.

In order to avoid sounding too Pollyannish about my undying love for the little computer that could, there are a couple of things I wished were better. The first being the trackpad. It has a strange dimple texture on it that is supposed to help you identify it from the rest of the body. Unfortunately, I find it a bit finicky and my ginormous paws tend to accidentally hit the trackpad more often than on other computers I’ve owned. The second thing I’d like to see is an all aluminum body. The current build quality is good, but I like the feel of metal over plastic. That’s asking too much for a computer in this price range, but I would’ve paid at least $200 more for an all aluminum body.

All-in-all, the ASUS UL30A-A2 is a great laptop. I’m sure as soon as I finish writing this there will be some amazing new computer that comes out that is 100x better and costs pennies on the dollar. Ah the joys of technology!

64-bit Lightning and Provider for Google Calendar add-ons for Linux

For some reason, finding the Mozilla Thunderbird calendar add-ons that are compatible with 64-bit Linux were not as easy to find as I thought they would be. It took me several Google searches to finally turn up this link: When I went to either the Lightning install page or the Provider for Google Calendar install page to get the extensions, it was always an incompatible 32bit version. When I attempted to install those versions I would get an error that said, “Lightning could not be installed because it is not compatible with your Thunderbird build type (Linux_x86_64-gcc3). Please contact the author of this item about the problem.”

P.S. I now noticed that there is an Ubuntu help page on where to find the correct versions. Not sure how that didn’t come up in my searches before. Or maybe I just overlooked it since it’s a bit buried in the page. Not sure.

Free software, Ubuntu One, E.T. and me

On May 11, 2009 I joined Canonical as a project manager on the Ubuntu One team. I went from working in the world of Department of Defense contracting to the world of free software. I now have a better appreciation for E.T.’s plight. OK, maybe not. E.T. was trying to get back home. I feel like I’ve found mine. I love what I do at work.

Everyday is something new. My contributions to Ubuntu and free software aren’t nearly as noticeable as those I work with. I do smaller things. Things that often get overlooked in any software project. Some of these includes:

  • Writing tutorials about how to use Ubuntu One and upstream software together to help people get the most out of the software.
  • Updating FAQs that help users get answers to their questions.
  • Support. Send a support request into Ubuntu One and there’s a good chance you’ll get a reply from me. Hopefully it’s a helpful one!
  • Triaging and prioritizing bug reports which helps improve the software one bug fix at a time.
  • Coordinating work between our team and other upstream projects to keep improving free software across the board.
  • Writing acceptance test cases others can use to test Ubuntu One and Ubuntu functionality.
  • Testing Ubuntu One and our contributions to other upstream projects to improve quality.

Lots of little things. And I don’t do them without help from many others, both within and outside of Canonical.

I realize Ubuntu One is often perceived as (at least part) alien in the free software world. I can relate to that, coming from my previous employment to Canonical. We, the Ubuntu One team, make mistakes. We know we’re far from perfect citizens of the free software world. We need to work better with those in the community and we have plans to do that. We’ve been learning so much, so fast that it’s hard sometimes to lift your head up and realize that you’ve probably ignored people who want to collaborate. We’ll do better. I’m committed to doing better in this area by dedicating some more time to working with those in the community who have an interest in making free software as a whole better.

I’m excited moving forward with Canonical, Ubuntu, Ubuntu One, and free software in general. It’s a crazy time in technology. So much is changing and many new opportunities are opening up as result of that change. It’s hard to imagine what tech will look like ten years out, five even. I’m just happy to be working with all of you in the free software community. It’s a great community, filled with so many unique perspectives and focused on doing so much good. It’s a place where even someone such as myself is welcome and whose talents can be put to good use. Thank you!

Setting up Ubuntu One on Ubuntu 10.04 LTS

I help out with the support requests that come into Ubuntu One. It doesn’t take too long helping out there before you realize our process for setting up your computer with Ubuntu One on Ubuntu 10.04 LTS can be problematic for some people. We’re making the setup process better in the next release (Maverick, Ubuntu 10.10) but we’ve got another 2.5 years supporting 10.04 LTS, so I thought it might be helpful to show some screencasts of the setup process.

The first video is for those signing up for Ubuntu One for the first time.

The next one is for those who already have an Ubuntu One account and need to setup their computer with Ubuntu One.

We’ve tried to reproduce the issues people are facing with the setup process and haven’t been able to do it. The main problem seems to be with step 8 where the “add this computer” web page should appear. Those having trouble with the instructions don’t get this page. There is a workaround documented in the first FAQ entry. If you think you can reproduce this problem, please let me know, either through the contact form here or through the support contact form on the Ubuntu One web site. Also, if you have ideas on how to improve the install/setup instructions, please let me know. I’d love to make them clearer.

Cloning VirtualBox images (or how I save hours a day when testing software)

First things first. If you’re testing software and you’re not using some sort of virtualization solution, stop reading this and go install one. My product of choice is VirtualBox. It’s free (as in no cost and most of it is open source), user friendly, runs on an Ubuntu host computer and I’m familiar with it.

Lately I’ve been doing a lot of testing of the Ubuntu One desktop software and I need to be able to quickly get various versions of Ubuntu up and running. Below I outline how I do that on an Ubuntu host computer. My steps assume that you’re familiar with VirtualBox enough that you know how to setup a virtual machine (VM) already.

Create a master image

The master image is the one we’ll use to clone test images off of. By doing this we can worry about keeping our master image up-to-date and configured the way we need it and then simply clone that image when we have to test.

  1. Create a new VM in VirtualBox and install the OSĀ  (see Lifehacker’s guide if you’re not sure how to do this)
  2. After restarting the VM when the install is done, install all the latest updates on the master image and restart
  3. Install the VirtualBox Guest Additions (allows nice integration with the host computer)
  4. Shutdown the master image

Periodically you’ll want to make sure your master image has all the latest updates, so just boot it up, install the updates and then shut it down.

Clone the master image

Now we’re ready to start testing some software. Instead of using the master image we created above, we’re going to clone that image. This should take less than 5 minutes start to finish.

  1. In a terminal session do the following:
    cd ~/.VirtualBox/HardDisks
    VBoxManage clonehd master_image.vdi test_image.vdi --format VDI
  2. In VirtualBox, create a new VM by clicking the New button
  3. Go through each screen selecting the appropriate values and clicking the Next button until you get to the Virtual Hard Disk part
  4. Select the Use existing hard disk radio button
    VirtualBox Hard Disk Setup screenshot
  5. Click on the folder icon next to the pull down menu listing existing VDI files
  6. Click the Add button
    Add VirtualBox VDI screenshot
  7. Select the image you created (should be in ~/.VirtualBox/HardDisks) to add it to the list of available hard disks
  8. Click on the image you just added and then click the Select button
  9. Click the Next button
  10. Click the Finish button

You now have a brand new VM to use for testing. Once you test with this image and decide its usefulness is over you can delete the virtual disk image (VDI) file in ~/.VirtualBox/HardDisks, repeat step 1 above to create a new cloned image, and then edit your cloned VM in VirtualBox to use the new clone image. In other words, you don’t have to setup a new VM (steps 2-10) every time you want to use another VDI if you don’t want to.