Category Archives: A Bite o’ Apple

Virtual Box Issue “Kernel driver not installed (rc=-1908)”

Alright, nothing like multi-OS environments so you can prepare for the maximum number of issues that might come up. My recent issue is re-opening some virtual machines, originally created on Windows 10, and now with intent to use them on Linux. When trying to open these existing virtual machines I’ve gotten the following error:

Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing

‘modprobe vboxdrv’

as root.

where: sublibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) – The support driver is not installed. On linux, open returned ENOENT.

vbox-error1908

Error Screenshot on Ubuntu Linux

Upon researching I found this could occur on multiple operating systems really, and have included the fixes for the various platforms. First however, let’s talk about the Linux fix.

Linux

For this particular situation I tried the command given in the dialog modprobe vboxdrv to see if that would fix it. But no go. I got some additional errors that seemed nonsensical.

arg

At this point I dug into the search engine. The first post I found seemed to make sense. I tried the commands.

sudo apt-get install build-essential module-assistant
sudo m-a prepare

step1.png

That went well, so on to the next step of building the virtualbox kernel driver.

sudo /etc/init.d/vboxdrv setup

That gave me “sudo: /etc/init.d/vboxdrv: command not found“. So I did a find for the file.

sudo find / -name "vboxdrv"

The results pointed out that my install of Virtual Box, done via the Ubuntu App Store, was version 5.2.8. This is clearly not going to work out well because the latest version is 6.0.4 right now. Next I uninstalled this old version via the Ubuntu App Store Application.

step2.png

Next I navigated back out the Virtual Box Download page. There I downloaded the latest version and installed it via the downloadable Ubuntu *.deb file.

This installs Virtual Box through the Ubuntu App Store application but sets up the more up to date repository to get the installation from.

step3.png

Ok, so all this at this point I ran VirtualBox after the installation, it installed according to the standard directories this time but still didn’t work. What the hell, I’ve no idea. I did another search and found Øyvind Stegard’s blog entry on fixing the “VirtualBox + Secure Boot = Fail“. He states at the start of the blog entry,

“The problem is the requirement that all kernel modules must be signed by a key trusted by the UEFI system, otherwise loading will fail. Ubuntu does not sign the third party vbox* kernel modules, but rather gives the user the option to disable Secure Boot upon installation of the virtualbox package.”

Stegard then adds two very important links with pertinent information about this issue, I’ve reposted here too:

After going through Øyvind‘s steps, I finally got the previously specified command from above.

sudo /etc/init.d/vboxdrv setup

Now VirtualBox started up just fine. Finally. Ugh! But hey, in the process I now understand a little bit more about secure boot, current BIOS’s, and related hardware concerns. Not that I had set out or wanted to deal with this right now, but boom, it’s done!

Alright, but if you fall into this with MacOS, it’s a slightly different story. Here’s some fixes around that.

MacOS

Ok, I started writing up and searching as I wrote, and instead of continuing to write it looks like this blog entry popped up with the exact error I’d gotten in the past (the reason I wanted to included MacOS for future ref). If you’ve gotten this error, check out Xilin Sun‘s post Solving VirtualBox “Solving VirtualBox “kernel driver not installed (rc=-1908)” Error on macOS“.

That Was Fun, Done With The Lenovo Carbon X1, Back to GSD!

Over the last couple of months I’ve been double laptoping it. I’ve had a Lenovo Carbon X1 with Windows 8 and Ubuntu dual boot configuration with 8GB RAM, 256GB SSD and i7 and I had a Mac Book Air (MBA) 8GB, 512GB SSD and i7 Proc. The MBA was my primary work machine with the Lenovo being a secondary machine that I was using to test and build Windows 8 Applications and for building native Linux services and related code work.

Windows 8 Critique

Simply, Windows 8 is one of the most broken operating systems I’ve used since Windows ME. Forget Vista, I consider it officially dethroned. Let me clarify what is and isn’t horrible about Windows 8 though. It isn’t that it technically is a bad operating system, it’s that the idea and approach that Microsoft has taken is inherently flawed at several key points.

First, having a desktop on a tablet, which is almost impossible except for all but the finest of finger pointing tablet users, is blindingly stupid. Just go into any place where there is a Windows 8 tablet user and watch them whacking away when they get into the desktop.

The Windows 8 desktop on a tablet is patently absurd for the vast majority of potential Windows 8 users.

However, the straight Metro Interface of Windows 8 (which Microsoft now calls the Windows 8 interface because of legal reasons) is magnificent for tablet usage. There are a few major things that need fixed: responsiveness related to connection state, update status and the availability of high quality applications. Once those things are fixed Windows 8 will be as competent as iOS or Android in the usability department. Until then, it’s a nice dream, with a small number of usable apps with a huge potential.

Now the desktop is the tried and true classic desktop of Windows. Thus, when you’re on a desktop machine or a laptop with a dedicated pointing device or touch screen the back and forth is fine. Matter of fact it is great! I find myself using the touch screen regularly to do a number of tasks, and hope to see its use increase more and more on a number of platforms (yo Apple, got game on this yet or not, OS-X can definitely use a touch interface).

Overall though, Windows 8 – unless you solely do Windows 8 Development, is not a reason to buy a Lenovo X1 Carbon.

Ubuntu Critique

Minus the touch screen, which Ubuntu has no clue what to do with except treat it like a pointer, this is how you see the real power and beauty of the Lenovo X1 Carbon. Ubuntu loads 2x faster and shuts down 2x faster than Windows 8. Comparable builds in IntelliJ, C, C++, Erlang and other compilers are regularly 1.2-3x faster than on Windows. The servers that one would build against, such as GlassFish (see this for my latest on setting up GlassFish & Java 7) are also routinely faster, more responsive and less prone to difficulty than in Windows.

One of the problems that is ongoing, is it is hard to move to Ubuntu unless you are doing dev. Using Adobe tools is a non-starter, best to stick to slow Windows or get real fast using OS-X. Again though, if it runs on Windows and Linux, I’d take a safe guess that the Linux versions will be faster, probably more stable, and all around it’ll likely work better over time. There is something to that whole unix way about building things. One other big booster for Ubuntu, is writing JavaScript, which I do regularly these days is a much better experience than on Windows. I use standard tools, that usually are available on Windows, but launching Sublime 2 or WebStorm is just faster, noticeably, on Linux versus Windows 8 (or whatever version really).

So overall, if you’re going to get a Linux machine, the Lenovo X1 Carbon is a prime choice. If not one of the best. If I understand correctly, there may even be some solid Linux software out there that would make the touch screen more usable too. So if you’re adventurous you may be able to solve that one single issue that I had with Linux running on the X1.

Would I Give Up My Mac for the X1?

This is easy, the answer is absurdly simple. However I did give up the Mac Book Air I had in parallel with the Lenovo for several months, as it belonged to Basho (which I’ve departed from).

Hell no!!!

Matter of fact, even though I’ve used the laptop extensively with Ubuntu and Windows 8, I’ve just bought a new Mac Book Pro Retina 15″ to do all of my work with Ubuntu, Windows 8 and OS-X. The solidness of the MBP is untouchable compared to the X1. The screen is better, the keyboard is more consistent and easier to type on, the ghost tracking of the track pad is non-existent on the air, versus the X1 Carbon. In this case, I’d even turned off the trackpad entirely on the X1 Carbon. Simply, the X1 Carbon just doesn’t measure up to the Mac Book Pro.

Other observations I’ve made about the two machines. The Mac Book Pro is far more solid, the construction is just not even comparable. The X1 feels solid but compared to the MBP it feels cheap and flimsy. Considering the hardware works flawlessly with the software on the MBP is also no competition. The Carbon regularly needed driver updates, things would flake out and I’d have to restart. This would be prevalent in windows or linux, it didn’t matter. Fortunately a restart would fix it, but none of these issues exist on the MBP, using either OS-X or running a VM with Windows 8 or Ubuntu.

Also, even though the MBP design is over a year old now, the i7, 16 GB RAM and 512 GB SSD makes the X1 Carbon seem like a morbidly out of date, slow and antiquated device even though it is actually a newer device!

So, would I give up my mac for the X1?

Un-breaking OS-X Mountain Lion

I posted a blog entry about my efforts last week, which included a rather frustrating experience with a freshly loaded OS-X Mountain Lion install. I had installed XCode and eventually got the Command Line Tools installed, which I outlined in the entry. Things seemed to be working ok, and for the most part in doing other things all is good, but when trying to install middleman and by reference blockenspiel I ran into an issue getting the C compiler (or any of the compilers I tried) to build the native extensions that were included in this gem. Here’s what I installed and did to finally – FINALLY – get things running right.

The first thing, since it kept coming up, was to get Homebrew installed.

ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"

I’d already installed RVM, which consists of either the JewelryBox or

$ \curl -L https://get.rvm.io | bash -s stable --ruby

After that I installed Ruby 1.9.3p327.

rvm install 1.9.3

You can check the RVM and Ruby versions by using the -v switch. Also to verify what ruby versions you actually have installed with RVM you can use the list command.

Adron$ ruby -v
ruby 1.9.3p327 (2012-11-10) [x86_64-darwin12.2.0]
Adrons-MacBook-Air-2:~ Adron$ rvm -v

rvm 1.17.2 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

papis@gmail.com> [https://rvm.io/]

Adron$ rvm list

rvm rubies

=* ruby-1.9.3-p327 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

When I ran ‘rvm requirements’ the current readme doc that is displayed covers a lot of the problems I’ve noticed. It seems there is all sorts of stupid issues between the GCC Compiler and XCode and blagh blagh blagh somebody didn’t even check our stuff before we shipped. This actually goes into detail about what the issues could be if you too have run into this problem.

To use an RVM installed Ruby as default, instead of the system ruby:

    rvm install 1.8.7 # installs patch 357: closest supported version
    rvm system ; rvm gemset export system.gems ; rvm 1.8.7 ; rvm gemset import system.gems # migrate your gems
    rvm alias create default 1.8.7

And reopen your terminal windows.

Xcode and gcc:

Right now Ruby requires gcc to compile, but Xcode 4.2 and later no longer ship with gcc. Instead they ship with llvm-gcc (to which gcc is a symlink) and clang, neither of which are supported for building Ruby. Xcode 4.1 was the last version to ship gcc, which was /usr/bin/gcc-4.2.

Xcode 4.1 and earlier:
- Ruby will build fine.

Xcode 4.2 and later (including Command Line Tools for Xcode):
- If you have gcc-4.2 (and friends) from an earlier Xcode version, Ruby will build fine.
- If you don't have gcc-4.2, you have two options to get it:
 * Install apple-gcc42 from Homebrew
 * Install osx-gcc-installer

  Homebrew:

  If you are using Homebrew, you can install the apple-gcc42 and required libraries from homebrew/dupes:

      brew update
      brew tap homebrew/dupes
      brew install autoconf automake apple-gcc42
      rvm pkg install openssl

  Xcode 4.2+ install or/and Command Line Tools for Xcode is required to provide make and other tools.

  osx-gcc-installer:

  If you don't use Homebrew, you can download and install osx-gcc-installer: https://github.com/kennethreitz/osx-gcc-installer.

  Warning: Installing osx-gcc-installer on top of a recent Xcode is known to cause problems, so you must uninstall Xcode before installing osx-gcc-installer. Afterwards you may install Xcode 4.2+ or Command Line Tools for Xcode if you desire.

  ** NOTE: Currently, Node.js is having issues building with osx-gcc-installer. The only fix is to install Xcode over osx-gcc-installer.

If you need to uninstall XCode you’ll have to follow the directions for each specific version you may have. However for 4.5.2 the steps are as follows.

sudo <Xcode>/Library/uninstall-devtools --mode=all

I wrapped up the current changes and those listed above as follows to see if I could get a good build.

sudo chown -R `whoami` /usr/local
brew update
brew tap homebrew/dupes
brew install apple-gcc42

At the end of all this, still problems. Apple completely screwed the Ruby Community on this one. But really, at the end of the day, the message is don’t frikkin’ install XCode before you get an appropriate gcc installer on your machine. At this point…

I did the unthinkable. I gave up and nuked my machine, loading OS-X back on with a completely fresh installation that has now XCode on it. I went through all of these steps again, minus installing XCode out of order and guess what…

Everything worked.

Computers, ugh!

Until next time, good luck with your install.

A Tour of My Workspace & Dev Tools – Virtual & Physical

First off, here’s a tour of my physical space where I do the bulk of my coding when I’m not travelling.

Right Side Monitors (and iPad3)

Right Side Monitors (and iPad3) Click for full size image

The second bit, a good many months ago I published my developer tools list, which is still available in my blog entry “My Current Windows Developer Machine“. That entry however is very outdated. I’ve since dropped the Windows OS as my primary developer platform operating system for a deluge of reasons. In it’s place is OS-X, Ubuntu, and VMs for Windows and other operating systems. Even though I’ve changed my OS of choice, and boy has life been much simpler ever since, I still do a ton of .NET & C# Development. My toolset however has been minimized for Windows. It now includes the following.

Music Generation

Music Generation (Click for full size image)

Virtualized Windows Development Machine

  • Windows 7
  • Visual Studio 2010 w/ SP1 + other downloads available at http://www.asp.net
  • ReSharper ( I keep this updated, even if I buy it out of pocket because it saves THAT much time w/ .NET Dev )

Yup, my Windows machine is now THAT simplified. Dev on it is just as easy or easier before. With an SSD drive in my MacBook Air and the iMac I have w/ 16GB of RAM, it’s easy to have the VM perform BETTER than a natively installed version of Windows 7. I know it is hard to believe, but it is true. But I digress, I won’t try to sell you on that. Give it a try, research it, you’ll need to know for sure yourself to make that leap.

My main development OS these days however is OS-X, and here’s my stack of tools for it.

  • Ruby on Rails (It comes w/ the default install, but in case hit the site to check out the latest bits)
  • Gems so I can get any of those shiny bits I need.
  • Node.js w/ Express.js generally.
  • WebStorm for PHP/JavaScript/Ndoe.js hacking w/ an IDE => Check out JetBrains
  • IntelliJ for Java Dev => Check out JetBrains
  • Objective-C with XCode (easy, just grab it via the app store)
  • TextMate
  • Sublime 2

For office things, I sometimes use Microsoft Office, but generally Google Docs works just fine.

For video editing and creation, such as the video above I use ScreenFlow. Again, something you can easily get via the App Store.

I use MOU for editing README.md files on github, cuz it makes life simpler.  🙂

…and that about wraps it up. Enjoy. If you have any suggestions, thoughts, or rants, please let me know in the comments!  Cheers!

OS-X Cocoa Quickie #1 => Make Sure to Have Unit Tests

When starting an Xcode Cocoa Project you should have a testing project that you include. It’s a simple check box on the project creation dialogs.

Keep This Checked! Write Tests!

Keep This Checked! Write Tests!

If for some reason you inherit a project that doesn’t have unit tests, tests, or anything of the sort and need to add a testing project follow these steps. With the project open add a new target as shown below.

Add a New Target to the Project

Add a New Target to the Project

Add a Cocoa Unit Testing Bundle.

Cocoa Touch Unit Testing Bundle

Cocoa Touch Unit Testing Bundle (Click for full window and full size image)

Set the appropriate parameters for your project. Be sure to select the project from the drop down.

Set the product name and be sure to select the correct Project from the drop down. (Click for full window and full size image)

Set the product name and be sure to select the correct Project from the drop down. (Click for full window and full size image)

Once finished adding the testing target, edit the schema. The project will have an additional schema. I personally like to keep them rolled together, so delete the “*Tests” schema and just make sure that the Tests section has the right target listed.

Schema Settings

Schema Settings

If it isn’t listed, as shown in the above dialog, click the + to add the tests project. Select it in the target dialog as shown below.

Adding the test target for the schema

Adding the test target for the schema

Once all that is done then the tests can be executed from the Product -> Test menu option or the shortcut key combo of ⌘U. With the default code that is added to the target project, you’ll end up with one failing test.

Test FAIL!

Test FAIL!

Now write tests!

Steve Jobs

I have paid attention to Steve Jobs only in knowing he was producing some pretty sexy products at Apple. I had never owned one until December 23rd of 2011.  I had however respected Apple & Job’s Products. I knew very little about the level of his drive and passion. I also knew little about his rock star attitude, which often cast him as the “asshole”.

It was time to learn more about Steve Jobs. What better way than to give the recent bestseller a read. You know, the one with his face planted right on the front. By the end of the book, I had rooted for Apple far more than I had imagined I would have. I have damned them over the years far more than I should have and I have respected them a little less than is due. Apple with Steve Jobs at the helm has indeed done some amazing and great things.

After reading the book I came away with a new respect for Jobs, more than I already had. I had learned he is not the hippy nut he’s portrayed as, nor some capitalist pig, but all of the above and somewhere in between. I found him to be a dreamer, loves intensely, and is passionate about creating. Something we all could learn from. Creating new beauty, designs, products that enable us is indeed one of the great human achievements.

Some of the key parts of the book include his interactions with his parents, not the blood parents, but his honorable and loving parents that actually raised him. Stood fast beside him and cast aside things to enable and help him learn. One of the quotes that stood out as how awesome his father was, reminding me of my own father, “Paul Jobs told the teachers, his son recalled, “If you can’t keep him interested, it’s your fault.” His parents never punished him for his transgressions at school. “My father’s father was an alcoholic and whipped him with a belt, but I’m not sure if I ever got spanked.” Both of his parents, he added “knew the school was at fault for trying to make me memorize stupid stuff rather than stimulating me.” He was already starting to show the admixture of sensitivity and insensitivity, bristliness, and detachment, that would mark him for the rest of his life.”

He grew into this way of acting, and I really can’t wrong him for it regardless of who he cut down with his wrath, because he knew and wanted people to jump into the fire with him. He didn’t want nor deem that he wanted to waste time with people that couldn’t step right up to a brash, honest, and give 110%. Maybe I related with it too much, I try diligently to avoid such outbursts or other characteristics, but I for one don’t have a problem working with people like that. I want passion for a product. I want love of design. I want an insatiable desire in people around me to create.  I can absolutely understand why he did too.

Late in the book, the reader learns of other battles Jobs had. He saw himself as a person of the counterculture, and thus naturally part of the political left. Even though he throughout life rarely involved himself directly in politics. But because of this, and the views of the counterculture on technology at the time he was often torn. Regarding the counterculture, “Many in the counterculture saw computers as ominous Orwellian, the province of the Pentagon and the power structure.. In The Myth of the Machine, the historian Lewis Mumford warned that computers were sucking away our freedom and destroying “life-enhacning values.” An injunction on punch cards of the period-“Do not fold, spindle or mutilate”-became an ironic phrase of the antiwar left.”

It was something that Jobs, as his life unfolds in the book, just faced up to and dealt with. Eventually the counterculture caught up with the times and became enraptured with technology, in large part because of Apple & Steve Jobs.

Overall I think the book captured Jobs in a realistic way. In the typical Jobs fashion too, the book ends with a segment written by Jobs himself. You’ll have to give the book a read yourself to know what it says, but suffice it to say he managed some amazing things in life. He was also very much more aware of the world regardless of his “Reality Distortion Field” and insanely passionate about insanely great products.

In summary, a great read. Pick it up!

A Few Choice Quotes:

“If you want to live your life in a creative way, as an artist, you have to not look back too much. You have to be willing to take whatever you’ve done and whoever you were and throw them away.”

– In a scary way, this holds to be true, as an artist grows and evolves the previous passion often must be cast aside to find an ongoing and new passion.

“God gave us ten styluses, let’s not invent another.”

– A statement that the purchasers of the iPad, iPod, and iPhone proved through purchasing millions of these devices and turning Apple into the world’s most valuable company. I just found it rather funny myself, yet rings very true.

“Stay Hungry, Stay Foolish”

– Nuff said!

“Simplicity is the ultimate sophistication.”

– Passion embodied in a simple phrase.

“Here’s to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes. The ones who see things differently. They’re not fond of rules. And they have no respect for the status quo. You can quote them, disagree with them, glorify or vilify them. About the only thing you can’t do is ignore them. Because they change things. They push the human race forward. And while some may see them as the crazy ones, we see genius. Because the people who are crazy enough to think they can change the world are the ones who do.”

– Yes, it was the ad, but it is one of those times when an ad becomes something a bit more, one could almost say it becomes art.

Macbook Air Multiple Monitor Support

The Macbook Air is indeed an “insanely great” device. I have slammed this thing around, physically and virtually, from the bicycle messenger bag situation described in my buying decision post, all the way to running multiple virtual machines and multiple monitors! This machine, of course if you’re using lean, clean, powerful, and intelligent built software, is top of the game for light weight machines.

The “how did you get multiple monitors?” question has come up several times since I bought the Air. So I’ve put together this blog entry on multiple monitor support, with instructions, and what can expect to run once the monitors are hooked up.

The first things you’ll need to get up and running are the appropriate gear. I purchased a Newer Technology USB to VDI, HDMI, and VGA  Adapter.

New Technology Monitor Adapter (Click for Larger Image)

New Technology Monitor Adapter (Click for Larger Image)

This adapter comes with an adapter to connect to the adapter for HDMI and VGA in addition to the already built in DVI connection on the device. Once you receive the adapter unpack it and get it installed. The driver will probably need retrieved from the company’s site, I wouldn’t use the included CD as the driver is a little dated. The latest OS-X driver supports Lion & all the other versions.

Adapters (Click for larger image)

Adapters (Click for larger image)

The other thing you’ll need is an appropriate Apple Adapter for the actual Thunderbolt Port as shown in the forefront of the image above. With all these parts you’re set for some wicked dual monitor or even three way monitor support.

Multiple Monitors Hooked Up (Click for larger image)

Multiple Monitors Hooked Up (Click for larger image)

The monitors fully activated.

Macbook Air + 26" Left Monitor + 26" Right Monitor (Click for larger image)

Macbook Air + 26″ Left Monitor + 26″ Right Monitor (Click for larger image)

I wanted to point out a few more things before wrapping this up. A follow up question to how I have these setup is usually “isn’t their lag or slowness?” Well, here’s a short review of what I was running while writing up this review.

Webstorm, Node.js App Running, w/ OS-X Bar (Click for full size image)

Webstorm, Node.js App Running, w/ OS-X Bar (Click for full size image)

Screen #1:  Macbook Air 1440×900 Resolution

  • Webstorm 3.0
  • Node.js (application running)
  • OS-X Bar, etc.
Screen #2 (Click for full size image)

Screen #2 (Click for full size image)

Screen #2: 26″ at 1920×1200 Resolution

  • Viewing in Chrome: http://compositecode.com
  • File Copying & Management of Drives connected via USB Hub with Finder
  • Ubuntu Linux Load Booting up in VMware Fusion
  • CloudFoundry Instance running (Linux) in VMware Fusion
Screen #3 (Click for full size image)

Screen #3 (Click for full size image) 

Screen #3: 26″ at 1920×1200 Resolution

  • Pandora providing some Children of Bodom to code to.
  • VMware Fusion machine library.
  • Chrome executing the Node.js example code.
  • iCal displaying upcoming delivery dates and meetings via Google Calender Feed.

Summary

The Macbook Air isn’t going to run Modern Combat 3 in two windows or anything crazy like that. It will however provide a powerful and capable system to code, develop, run virtual machines, web services, and other things that you would need to work with as a software developer. It may only have 4GB of RAM, but between the clean architecture, execution, and design of OS-X to use that i5 (or i7), the 4 GB of RAM, and extremely fast 256 GB SSD, this machine can handle its own.

STATUS UPDATE:  June 28th, 2013

I now use two Mac Book Air Laptops. I have the original which I wrote this article using and a newer 10″ MBA with 8 GB RAM and related improvements. In addition to these laptops however I now use an iMac 27″ that is connected to my other 27″ Cinema Display. This is dramatically more performant and easier to use than trying to run two monitors on either of the MBAs that I have. In that light, I no longer use the connector nor know if it works with the latest Apple products. I’ve since given it to a friend who does however use it, and the friend tends to stay up to date with the latest Apple OS releases. Thus one could assume that the device works with the latest OS-X but you’d have to do your own research.

Thanks for reading my blog, cheers!

-Adron