Ubuntu Linux on the MacBook Pro

12 January 2010

OS X on my MacBook Pro was getting sort of screwy, and I was preparing to reinstall, so I thought I'd see how far I could get with Ubuntu 9.04 on the MacBook Pro.

Booting EFI

First things first, I read a bunch about lilo and grub and the Mac's EFI instead of a normal BIOS. I was expecting some real trouble here, but the Ubuntu install CD booted up fine, and after the install finished, it was able to just boot from the hard drive with no extra work.

Wireless Networking

I was happy to see the wireless work and even our Juniper VPN software seemed to work pretty easily -- it uses Linux' built-in tunnel interfaces. I had initially found the wireless to be a bit flakey, and it would freeze up shortly after connecting. It was sort of similar to the trouble I was having on the EeePC, so I installed the current linux-modules-backports package, and it got much better.

Software for Work

One of my first concerns was going to be accessing the corporate Exchange servers for my email, address book, and calendar, but Evolution with the Exchange Connector (straight from the Ubuntu repository) can handle this. It's not all that stable, but it works well enough with a couple restarts of the client through the day.

Evolution sometimes gets a bit slow or otherwise wonky, and that in turn causes the clock/calendar applet on the Gnome Panel to freeze up. Sometimes the whole panel freezes. A quick kill of gnome-panel gets it all moving again, but having a stopped clock can get really inconvenient. Evolution's notifier daemon is also unreliable, so I've gotten accustomed to being aware of my schedule and the time, and not relying on a pop-up reminder.

I installed Eclipse myself, so I can keep it more up-to-date, so I had a 1.6 version of Subclipse. This immediately caused me some trouble when Ubuntu 9.04 was only shipping Subversion 1.5. I ended up installing Subversion 1.6 from source, and then later going back to packaged versions when I upgraded to Ubuntu 9.10.

Function Keys

Using Eclipse, I really need the top function keys to work as function keys, and not volume, brightness, etc as is default for the Mac keyboard.

To get the keyboard to default to F-keys, and require the Fn key combo for the other controls, I needed to add a module parameter, so add create the /etc/modprobe.d/hid_apple.conf file with the single line:

options hid_apple fnmode=2

Upgrade to Ubuntu 9.10

The upgrade became available, so I jumped on it right away -- that's what I do. It went rather fabulously -- I had almost no trouble. Only Eclipse gave me trouble with the GTK+ update. I twiddled the environment in my Eclipse start-up script, per some advice, and the components in Eclipse almost always work now. I hear this'll be more completely fixed when newer versions of Eclipse are released.

The upgrade to Ubuntu 9.10 also took away Java 5, since Sun officially dropped support for it about the time Ubuntu released. Most of our projects just built fine with Java 6, but a few needed to be updated a bit to get them compliant with Java 6. I chose the OpenJDK installs, bounced back to Sun a couple times, but have now pretty reliably settled into OpenJDK with no problems.

Power Management

One of my favorite perks of running Linux is getting back control of the machine. I configured CPU frequency scaling to use the "conservative" CPU governor to save battery, I can sleep or suspend the machine (which works!) with a push of the power button, and it stays awake when I close the lid to walk to a meeting.

Running Linux is like coming home again, and it's serving my daily needs well at work. The MacBook hardware is holding up nicely too, which has not been my experience with older plastic-cased PCs.

Filed Under: Java Linux Computers Technology Work