I Might Be Wrong

Notes on dual-booting Ubuntu and MeeGo on an ExoPC

Posted in Howto, Ubuntu by Leif Ryge on April 30, 2011

I attended an Intel developer marketing event last thursday promoting MeeGo and their AppUp program, where everyone received an ExoPC tablet. Officially these are not gifts, but rather a three year loan “for engineering purposes only”: after three years we are supposed to destroy them or return them to Intel. (They said it is up to us which of those options to choose.)

I hope MeeGo is a success, and I hope to make some apps for it (although, as I am not at all interested in the AppUp DRM regime, I was glad to hear that they will allow apps to be listed in their catalog without using the AppUp apis), but first I wanted to see how a modern version of Ubuntu fares on this keyboardless tablet. The short version of this post is: it works quite well!

I was pleased to find that ubuntu-11.04-desktop-amd64.iso (copied to a USB stick with usb-creator-gtk) supports the ExoPC’s touchscreen, audio, video and wifi without any hassle. Unfortunately gparted (and thus the Ubuntu installer) does not yet support resizing btrfs, which is what MeeGo uses as its root filesystem. Luckily it wasn’t too difficult to do this manually.

I shrunk the btrfs partition down to 10GB using these commands in a root shell in the Ubuntu live environment:

mkdir /meego
mount /dev/sda2 /meego
btrfs resize 10G /meego
umount /meego

Then, using fdisk I then deleted (“d”) sda2 and recreated it (“n”) with a size of 10G, and created a new (“n”) partition sda4 in the new free space. I wrote the changes to disk (“w”), quit fdisk (“q”), and ran partprobe. Then, I ran the ubuntu installer and told it to format sda4 and use it as / and to use meego’s swap partition (sda3) for swap and to use the meego /boot (sda1) as its /boot but not to format it. Somewhat to my surprise, this all worked out fine, and I am now dual-booting MeeGo and Ubuntu from the Ubuntu grub2 menu!

I was going to create an LVM-on-LUKS crypto layer under the Ubuntu filesystem (I recently retaught myself how to do that manually from the desktop installer CD – something else I should write up a blog post about) but then realized that would mean I’d need a hardware keyboard to boot up since the passphrase is needed long before X starts. So, I held my nose and went with the “encrypt home directory” (ecryptfs) option instead.

Three caveats about dual-booting: First, interacting with grub obviously requires a usb keyboard. Second, MeeGo (aka “Unknown linux distro on sda2”) is listed twice, first with the MeeGo kernel and then with Ubuntu’s. Finally, to actually boot MeeGo it is necessary to edit the boot options to add “insmod btrfs”. I could put that line in grub.cfg so I wouldn’t need to do that every time, but it will just get overwritten on the next kernel upgrade… I haven’t yet figured out the correct way to make this type of setting stick with Ubuntu’s grub2.

I think my next step with MeeGo might be to try to boot its partition in VirtualBox using raw disk mode; if that works then I could do development on the device in Ubuntu and test on the same MeeGo system which I can also boot natively. But for now, I’m more interested in using Ubuntu. :)

I played with the new Unity desktop shell for a while, but soon switched to “Ubuntu classic” (the familiar GNOME desktop).

I installed the “Grab and Drag” firefox extension, which is nice once you get used to its physics. It should have more positions on the various sliders in its settings.

I was very pleased to discover that, when properly configured, the “onboard” software keyboard makes Ubuntu quite usable without a hardware keyboard! Unfortunately, unless I’m missing something, adding a launcher for it ironically requires another keyboard to type its name – it comes preinstalled, but is not listed in the menus or UI anywhere except on the login screen. I was especially pleased to discover the “show onboard when unlocking the screen” checkbox in its settings! Onboard also provides right-click and middle-click functionality which works in many but not all contexts.

I also installed the florence onscreen keyboard, which is nicer looking than onboard but much less usable. For instance, the firefox awesome bar steals every other keypress from florence while with onboard it works fine.

In the Appearance settings, under Fonts, I changed the dpi from the default of 96 to 135 (which is what wikipedia says the ExoPC’s screen is). This made lots of text larger, and generally made the whole UI more finger-friendly.

The ExoPC has a single button sensor at the top left of the screen. By default in Ubuntu it launches the audio player. I remapped it to the “Hide all windows and show the desktop” toggle in Keyboard Shortcuts.

I haven’t yet figured out how to get the brightness to stop changing when it is on battery power, and sometimes when I plug it back in the brightness does not return until I go to power management and use the slider. This is irritating.

I haven’t installed the broadcom CrystalHD driver yet, but I understand that doing so will improve flash video performance which is presently not great.

If you’re running Ubuntu on an ExoPC, here are some other resources with useful info:

7 Responses

Subscribe to comments with RSS.

  1. Akkana said, on April 30, 2011 at 8:00 pm

    Thanks — great article, lots of helpful tips.

    I wondered if my ExoPC was the only one with wild brightness fluctuations, and hadn’t yet connected it to running on battery.

    On the grub2 menu, I have some tips in 3 articles I wrote last year, linked at the bottom of http://shallowsky.com/blog/linux/grub2-lightning.html — the second one might have what you need to clean up that boot menu (it’s a bit of a pain).

  2. Yarr said, on May 14, 2011 at 12:46 am

    Hey, thanks a lot! I also have an ExoPC with Ubuntu 11.04 on it and I’ve been fighting with the same exact problems. I switched the sensor key to minimize all windows. It’s not doing that but at least it’s not opening Banshee anymore.

    I am also having the problem with screen brightness when on battery power. The brightness sometimes fluctuates intensily, even though I have set “Reduce backlight brightness” to off from the power management. Also, it is irritating that you can adjust the brightness only for AC power usage and not for battery usage. I tried changing it with some terminal commands but didn’t manage to get it working.

    I’ve been using the Florence keyboard as it look better but it does have some issues, so I guess I’ll give the onBoard a second chance.

    I’ve been fighting with the Easystroke Gesture Recognition to make some scrolling gestures and whatnot, but haven’t managed to get it working with the touchscreen. They do however work easily with a traditional mouse.

  3. Peter Mui said, on June 16, 2011 at 9:11 pm

    With the GRUB 2 menu: to change the boot option, tap the EXOPC’s ambient light sensor (in the upper left) to highlight your boot choice, then hold your finger over the ambient light sensor to select. NOTE: the “tap to highlight” works one-way only in the GRUB 2 menu, it doesn’t cycle back to the top of the menu. If you miss the OS you want to boot into you have to power off the EXOPC and start again (frown.)

  4. Knut Behrends (@sudo_f) said, on August 12, 2011 at 2:36 pm

    Very useful article. Brightness fluctuations here as well.

  5. Knut Behrends (@sudo_f) said, on August 12, 2011 at 2:42 pm

    A fine point I’d like to mention: I recommend to put the entire ubuntu DVD on an USB stick and use that for the installation. It works much better than the CD- iso -File, which had a lot of problems and crashed during the installation procedure.

  6. naveen bollimpalli said, on October 8, 2012 at 9:29 am

    brightness fluctuation is a hardware problem actually! ……… a sensor at top left of ur exopc’s is the cause ……. if light intensity is more around u , your pc screen ll be more brighter , if less light intensity , then less brightness by your pc screen ……… but the problem with the sensor is , it is detecting even very minute fluctuations of light intensity around us ….. so brightness of our exopc’s varying continuously….. The pc’s hardware is programmed in such a way that , the sensor must be kept off during the time of charging ….. so , no fluctuation of brightness during charging ………… but as temporary solution ,u could use

    1.black tape over that sensor so it never detects light intensity around but your screen will be duller every time except during the time of charging
    ……. however it even have advantages also ….. if u do so …… it results in increase in battery back up , less irritation for ur eyes when ever ur pc is on battery power

    …………. if anybody know how to cease the sensor functionality …… please post it here!

  7. Engineering Jobs in Peterlee said, on March 13, 2013 at 5:22 pm

    I’ve to convey my respect for your kindness for all those that call for guidance on this one field. Your particular commitment to passing the answer up and down has been extremely functional and has continually empowered many people just like me to attain their dreams. Your wonderful insightful data entails significantly to me and specifically to my peers. Thanks a ton; from all of us.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: