A Tale of Two Systems

opplanet-tasco-usb-digital-microscope-780200tTwo years ago, my wife and I made the decision to home-school our two children.  It was the best decision we could have made, our kids are getting a better education, and with me working from home since joining Canonical I’ve been able to spend more time with them than ever before. We also get to try and do some really fun things, which is what sets the stage for this story.

Both my kids love science, absolutely love it, and it’s one of our favorite subjects to teach.  A couple of weeks ago my wife found an inexpensive USB microscope, which lets you plug it into a computer and take pictures using desktop software.  It’s not a scientific microscope, nor is it particularly powerful or clear, but for the price it was just right to add a new aspect to our elementary science lessons. All we had to do was plug it in and start exploring.

My wife has a relatively new (less than a year) laptop running windows 8.  It’s not high-end, but it’s all new hardware, new software, etc.  So when we plugged in our simple USB microscope…….it failed.  As in, didn’t do anything.  Windows seemed to be trying to figure out what to do with it, over and over and over again, but to no avail.

My laptop, however, is running Ubuntu 14.04, the latest stable and LTS release.  My laptop is a couple of years old, but classic, Lenovo x220. It’s great hardware to go with Ubuntu and I’ve had nothing but good experiences with it.  So of course, when I decided to give our new USB microsope a try……it failed.  The connection was fine, the log files clearly showed that it was being identified, but nothing was able to see it as a video input device or make use of it.

Now, if that’s where our story ended, it would fall right in line with a Shakespearean tragedy. But while both Windows and Ubuntu failed to “just work” with this microscope, both failures were not equal. Because the Windows drivers were all closed source, my options ended with that failure.

But on Ubuntu, the drivers were open, all I needed to do was find a fix. It took a while, but I eventually found a 2.5 year old bug report for an identical chipset to my microscope, and somebody proposed a code fix in the comments.  Now, the original reporter never responded to say whether or not the fix worked, and it was clearly never included in the driver code, but it was an opportunity.  Now I’m no kernel hacker, nor driver developer, in fact I probably shouldn’t be trusted to write any amount of C code at all.  But because I had Ubuntu, getting the source code of my current driver, as well as all the tools and dependencies needed to build it, took only a couple of terminal commands.  The patch was too old to cleanly apply to the current code, but it was easy enough to figure out where they should go, and after a couple tries to properly build just the driver (and not the full kernel or every driver in it), I had a new binary kernel modules that would load without error.  Then, when I plugged my USB microscope in again, it worked!

Red Onion skin at 120x magnificationPeople use open source for many reasons.  Some people use it because it’s free as in beer, for them it’s on the same level as freeware or shareware, only the cost matters. For others it’s about ethics, they would choose open source even if it cost them money or didn’t work as well, because they feel it’s morally right, and that proprietary software is morally wrong. I use open source because of USB microscopes. Because when they don’t work, open source gives me a chance to change that.

This entry was posted in OpenSource and tagged , , , , . Bookmark the permalink.

6 Responses to A Tale of Two Systems

  1. Colin Watson says:

    Hey, cool, I had no idea you were homeschooling too – we started a year or so ago, ages 5 and 2, so a bit younger than yours from the sounds of it but lots of fun stuff to come!

    • Michael Hall says:

      We’ve landed somewhere between homeschooling and unschooling. It’s hard to find non-religious homeschool material, so we tend more towards unstructured learning, but we make everything a learning experience. It has been a lot of fun

  2. Kirk Pearson says:

    Kudus to you for homeschooling! We schooled all of our children at home. Mine are all out and married, except the youngest who is engaged to be married, and the results could not be better. They all have earned degrees and the two youngest are still moving towards advanced degrees. One thing we are glad we did was give them the freedom to pursue their particular areas of interest as far as they wanted to go. When my son felt left out due to his peers learning about whales in government school we let him explore whales even to the extent of a family vacation to go whale watching in California. We regret none of the sacrifices that were necessary to accomplish this superior education.
    On curriculum: we used an eclectic mix from several sources. The public library and a local college library usually worked with us for extended checkouts. A tip: we found a book ” word/fraction system Hal Schneider” that helped greatly with our oldest son’s understanding of algebra. It is a difficult book to find but worth the effort should any issues arise with algebra.
    Thank you for your good work with Ubuntu!

  3. jezra says:

    Have you sent your patch upstream? Where is “upstream” in this case? The kernel itself?

Comments are closed.