OpenSUSE 12.1 on a 2011 MacBook Air

OpenSUSE on the MacBook AirThere are not a lot of guides out there on how to install OpenSUSE on any Mac. And the few guides that I’ve found on installing other Linux flavors on the MacBookAir4,2 (which is how the 2011 MBA identifies itself with dmidecode) are all incorrect in many subtle ways. So I figured I should write my own. This one is targeting the somewhat experienced Linux person. Installing Linux on a Mac may not be something a complete beginner should try. So in several of the steps I am not trying to give you every little detail and command option as I am assuming you know how to use dd or how to find out which device your USB stick shows up under…

First you need to decide whether you want to keep MacOS around. It’s easy enough to do – just shrink the Mac partition using disk utility and create a FAT partition in the free space – that’s the partition you will then later replace during the install.

While booted into MacOS, install rEFIt on your MBA. This will take two reboots before it works, but then you should get the boot manager at start.

Next, ignore all the guides showing you various scripts to create bootable USB sticks for the Mac. They all try to use some sort of FAT partition and that does not work. All it takes is to dd the iso image of one of the install CDs (I chose the Gnome Live Image) onto a USB stick. Reboot your MBA and rEFIt should show you the USB stick as one bootable device (USB sticks get a strange rectangular orange badge on their logo – not sure how that is intuitive).

On the boot screen pick Installation and type nomodeset into the line for additional boot arguments; this will avoid using the Intel gfx mode setting in the install kernel which doesn’t play well with the MBA – instead it will run in VESA 1024×768 mode which is fine for installation. Hit return and after a short while you should see the graphical installer start.

Install as usual; if you decided to go for dual boot be careful with the partitioner. For me the default suggestion included reformating /dev/sda1, the EFI partition. Probably a bad idea. But you can simply pick Create Partition Setup and then chose the partition that you want to replace (the FAT partition we created earlier). And then everything seems to work smoothly. I first tried btrfs but sadly with the new kernel we’ll build in a moment that hung my computer twice – so I reinstalled with ext4. I decided to go with an LVM based solution that encrypts data on disk – that seems to be the sane approach. YaST for some reason decided to leave most of the space unused and created only a 20G root filesystem and a rather small 2G swap volume. So I manually expanded those to more reasonable values (6G of swap as I often use virtual machines and all the rest of the space for the root filesystem as I don’t want a separate home partition).

The install runs fairly smoothly after that. One hickup is that after the first reboot you can’t pick nomodeset – so you get broken graphics. Simply ignore this – YaST will start in text mode and finish the installation. After that you can reboot and once again type in nomodeset and have working graphics.

Next we need to install some packages and get you the latest kernel. Connect to your wireless network, start YaST and install at least git, gcc and make plus gsynaptics (for the touchpad).

Get the latest kernel. Right now this means top-of-git as even 3.1 is too old (you need changes that were added during the merge window). As this guide ages you can take 3.1-rcX or a later kernel.

git clone \
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

Linus created a fairly cut down kernel config that I edited a bit more and which seems to work well so far – I haven’t played with all the devices (bluetooth, camera, etc), but the basics are there. Feel free to download that kernel.config, copy it to linux/.config and run make oldconfig – you should be able to use it as a starting point for your configuration.

Build the kernel, install it and its modules:
make
sudo make modules install
sudo make install

Edit the /boot/grub/menu.lst file to remove the vga= entry at the end of the kernel boot parameters, make item 0 (the new kernel) the default and reboot. You now should have a full resolution display and get rewarded with the full Gnome 3 experience (I still am not a huge fan of Gnome 3, but I told myself I just need to give it more time).

Login, open a terminal and setup sound.
alsamixer -c0
It seems that by default the outputs are mutted. Curser right and then m to unmute. ESC to exit.

Open System Settings (in Gnome3, click on your name in the upper right corner) and select Mouse and Touchpad. Turn on the features you want (like two finger scrolling).

I personally don’t like having to press fn to get to a function key, so I added
echo 2 > /sys/module/hid_apple/parameters/fnmode
to /etc/rc.d/boot.local which gives you function keys by default and special keys by pressing the fn key. The mapping for the special keys is still wrong (need to figure out how to fix that), but it’s just a few minor changes: F12 still gives you Eject even though there’s no optical drive, the volume keys are just one to the left of the labels, the screen brightness keys work, the others don’t seem to do much useful, yet. I definitely want to get the keyboard backlight keys to work.

I still don’t love the way the touchpad works (selecting text is a pain without real buttons, middle and right click are just weird, etc). I haven’t played with the webcam or bluetooth. But at this point I’d say the MacBook Air is functional with OpenSUSE. And it is a beautiful and very light machine…

Update: Linux-3.2-RC1 is out and it contains the changes needed to support the MBA, including the keyboard fix. I also updated the kernel .config file linked here to make it play nicer with the SUSE infrastructure (which really wants dm_mod to be a module) and to support kvm, tun/tap interfaces and ethernet bridges. We are getting there…

Did Google+ kill many blogs?

I certainly notice that I never post here anymore. Granted, I haven’t been blogging much even before G+ came around, but still, Google+ has made me even less interested in posting here – many many more people see things that I post on G+…

MeeGo Conference 2010

MeeGoConferenceMore than a thousand people attended the MeeGo Conference 2010. Hundreds more watched the live streams of keynotes and track 1. The energy in the hall ways was impressive.

Since I organized the event, I was hesitant to write much about it here, but then I figured “why not”.

It was an amazing show of excitement and interest by a surprisingly large crowd of mostly developers that came to Dublin to talk for a few days about the future of their OS. As an organizer, the event exceeded all of my expectations. More attendees from more countries and more companies than I thought we’d get in my wildest dreams. 70 sessions in the reviewed traditional conference. Another 30 or so during the unconference on day 3. Great tutorials and workshop, organized by the community (thanks Dave Neary for all your help). A fun run with about 35 attendees out at 6:45 in the morning for about 5.5km through Dublin. It all came together very well.

What were the highlights for me?

  • Attendance, energy and “feel” of the event.
  • The number of top developers / maintainers who attended and gave talks on their subject matters. Gnome people, KDE people, kernel people, tool people, community people, commercial people. MeeGo people.
  • The Guinness party and the Ireland-Norway match. That will be hard to top.
  • I really wanted to call out one talk or session that I liked best – but I can’t. Too many great ones to chose from.

Was everything perfect? No. We had issues with the registration system (a bunch of registrations apparently got lost somewhere – but we made things up on site). The give-away didn’t go as planned because a storm the week before the conference delayed the arrival of the Lenovo S10 that we were planning to hand out. There were a bunch of other hickups here and there that we hope we hid well from the attendees. But given that this was the first external conference that we had organized and given that the event ended up hosting about twice as many people as we had planned, I think things went very well.

Thanks to everyone who attended – I can’t wait to do this again next May.

The Yocto Project

The Linux Foundation had two very interesting announcements at the ELC conference in Cambridge today. Yocto ProjectFirst, the merger with CELF (the Consumer Electronics Linux Forum) and second the Yocto Project.

I think both of them are really interesting and important developments. And both really strengthen the embedded Linux market. The LF can (and will) provide more resources and better support to embedded Linux initiatives. It can integrate the embedded Linux events into the extremely well run events that it hosts all over the world. And it can strengthen the voice of the embedded Linux community in the market place.

Additionally, through the Yocto Project it will make it easier for embedded developers to create Linux images for specific embedded devices. The goal here is not to create a new Linux distribution, but to strengthen an existing set of tools (mainly Poky plus a few other tools used around it) to enable developers to focus on the value-add components of creating Linux images for specific embedded devices.

This will lead to a consistent set of tools and methods, available across different architectures, that allow the developer to easily create, optimize and debug a targeted Linux image. With the ability to pick and chose from a significant set of “layers” (or add new ones) that allow the developer to add specific features, capabilities and optimizations to the image. And with an automatically generated SDK that makes it easy to develop applications for such device-specific Linux images.

So not yet another distribution, not even yet another tool – instead resources and investment in existing open source projects with the goal to accelerate embedded Linux development.

Open development, open source tools, with the goal of making it easier to create tightly integrated embedded devices. Open source at its best.

The next generation of kernel hackers

Most every year, as we prepare for the kernel summit, this topic comes up. How do we ensure Linux doesn’t turn into the old boys club. How do we attract new developers and get them to grow into bigger roles into the developer community.

It’s a typical application of the ten thousand hour rule. You start working on the kernel. It will take you about ten thousand hours to become an expert and be truly able to work on the next level, owning a subsystem, be truly a leader. According to research by Anders Ericsson that is a fairly consistent threshold how long it takes to reach true greatness in any art form. Music, painting, computer programming.

If you manage to spend 20 hours a week hacking the kernel that will take you about ten years. At which point you will no longer be perceived as “new blood”. If you are one if the few people willing and able to hack 80 hours a week you can get there in about two and a half years and be one of the very few brilliant newcomers we see. Maybe one or two every other year.

So the next time people ask about the new blood, I think we should turn around and ask them if they are looking at this the right way.

Apple is the new AOL

AppleAOLThis isn’t a new idea. Joe Wilcox has discussed this in his BetaNews article a couple of months ago.

But spending a lot of time at OSCON last week made it clear to me how true this observation has become – with all its implications.

The developers of Android and MeeGo are quite actively playing “Internet” to Apple’s “AOL”. Instead of inviting innovation and content onto their platform, Apple is focused on controlling every aspect. All under the guise of delivering a better user experience. At the same time throttling innovation and freedom for their users. And just as with AOL, at first that seemed like a good idea. You know, a well maintained garden, everything is pretty, none of that pesky dangerous (or seedy) stuff that is out there in the unregulated Internet.

But it turns out that people want that. Whether it is free access to applications (thanks to the Library of Congress, there is some good news for Apple users – but if you have to “jailbreak” your device in order to get the software you want, maybe you are using the wrong device to begin with). Or whether it is the ability to extend functionality (tethering, anyone?).

A year ago everyone was looking at Android and was writing them off. Look at all the apps that the iPhone has. Look at all that mind share. Today, Android is activating about 160k devices every day, the app store is growing like crazy and the traction in the eco system (and the non-stop comparisons) are showing that the tides have turned.

How will Apple prove that they’ve lost touch? Here are my predictions. They will continue to show their contempt for their customers. New feature in Mac OS 10.7 (rebranded as iOS7 or something): applications can only be installed from the Apple AppStore. Adding an additional monitor to your Mac will require an app (that of course you pay for). The iPad will only connect to Apple approved wireless networks. They will continue to prohibit network sharing between devices. It’s just like dial-up.

And what will the Linux players do to counter this? They will encourage innovation and new ideas. They will allow people to hack the devices that they bought, to make them better, weirder, different.

Yes, it took a while for the Internet to drive AOL into irrelevance. And similarly, it will take time for the mass of the customers to realize just how Apple is taking advantage of them. And there will continue to be some fanboyz. Hey, I just this week got email from someone with an AOL email address (and the “real name” in the email headers was their AOL email address again, this time in all caps)…

Finding a good picture

DirkAvatar_by_James_Duncan_DavidsonThis may seem like a silly problem to have – but I tend to hate pictures of myself. But with Twitter and many other social media services (and blogs, and wikis where you are supposed to introduce yourself) it turns out that having a good picture of yourself is very useful – first impressions matter.

I actually found a picture that I like – taken by James Duncan Davidson during my OSCON 2008 keynote.

Understandably his terms on Flickr restrict reuse of his work, but when I asked him he was kind enough to allow me to use a crop of this as my avatar. Super nice!

MeeGo presentation at LinuxTag

Today I had the pleasure of presenting about MeeGo in the mobile Linux track at LinuxTag 2010. The room was packed, thankfully I had a double slot so I had plenty of time to talk about the what and the why and the how of MeeGo. I talked about the origins of MeeGo and explained the governance model. I walked through the architecture and then spent a lot of time explaining how we focus on working with the upstream projects. Finally I dared to do an unscripted demo of MeeGo on a Netbook (for stupid reasons I had to show it on a somewhat bigger system, a ThinkPad X200s). I was able to show myZone, some of the apps (email, media), social media interactions and the breadth of additional software that is available.

Things went fairly well, if I can believe the comments on Twitter and what people told me afterwards in person.

The presentation is on the MeeGo presentation site

Froyo for Nexus One

Lots of posts and happiness about the unexpected early availability of Android 2.2 aka Froyo for the Nexus One. But sadly the update fails if you have the AT&T version of the phone as it has a different build number (EPE54B vs ERE27).

So those of us on AT&T still have to wait with everyone else.

Community distributions with corporate involvement

One of the hardest things for people to understand about MeeGo is the intersection between what wants to be a community distribution and what appears to be a distribution with a strong influence by its two major sponsors (Intel and Nokia).

In a community distribution the maintainers make the decisions. Today, in MeeGo those maintainers are employed by the corporate sponsors. So this causes confusion about who runs the project. No, it’s not the corporations. It’s the maintainers.

What can we do to fix that? Get maintainers that don’t work for Intel or Nokia. So as far as I’m concerned, this is our biggest challenge right now. Once we have a diverse set of maintainers the actions by the major corporations involved will no longer appear as the corporate overlords imposing their will, it will be significant contributions by major contributors. And that’s a much healthier view of things.

Next Page »