Sunday, August 14, 2011

One time around the Bodhi Tree

Background of Bodhi Linux

So bodhi is a Pali/Sanskrit work that loosely translates to "enlightenment".  They seem to make heavy reference to this lineage in their artwork and as well as their naming.  For example, they have two recommended software sets:
Nikhila (meaning entire/all in Hindi) - their full featured software collection
Pratibha (meaning light in Hindi) - their lightweight software collection

Bodhi Linux itself is very new (first release, 1.0.0, was out March 2011).  Version 1.0.0 was based off of Ubuntu 10.04LTS as was their update 1.1.0, which was released in May, but with the 2.6.39 kernel and Midori 0.3.6.  According to their website, they are targeting only the LTS (long term support) Ubuntu versions, which come out every 2 years.  They will have quarterly updates to keep their software fresh in between.  I don't have much interest in bleeding edge, but 2 year release cycles are a bit much.  I haven't even gotten anywhere yet and I'm already questioning my decision.

Getting Boot Camp Access

I'm installing this on a 15" MacBook Pro (Intel Core 2 Duo, ~ 4 years old).  It's been a long time since I have used Linux on anything other than a desktop for work, and since this is my personal laptop that I'm also going to be doing work on, I need to make sure that both work and play will be supported.  But before anything else happens, I need a boot loader.  All Googling points to one choice: rEFIt.  Installing it is very simple, like all things Mac, just download and run.  I reboot, and .... nothing.  Weird.  I install it again, and reboot, and .... nothing.  I look on their troubleshooting section and I see that you have to restart twice.  Interesting, and now it works.... great! 

Live CD Boot

I downloaded what I thought was the 1.1.0 install CD from their website and ran it from the rEFIt menu.  I don't get an install screen, I get a Live CD?  Ok, well I'm here, and it's not bad to try the Live CD out for a little bit.  It lets me play with what kind of theme I want the desktop to have.  These range from netbook style (think big and clunky so a touchscreen will work), to very basic, to a composite choice, where all of the eye candy is turned on.  I try several of them, but figure I'll go with the composite one, since I partly came for the eye candy.

The first thing I notice is that there is a wireless widget.  I select my network and put in the settings (had to look them up again, since I totally forgot), and it works.  Great!  I then open a terminal and realize that I don't really like eye candy as my "artsy" terminal has low contrast as well as being largely transparent.   Edit->Preferences, Set Foreground white, Background black, with no transparency, and aaahhh, I can see again.

Next I play around with Midori for a while.  Seems nice, although I immediately miss chrome or firefox w/omnibar single address line goodness.  I think all browsers need to support this, even if they don't make it default.  It just feels right.  I poke around in the preferences and settings and realize that Ubuntu might be a porker, but it does have a coherent layout for system preferences.  Enlightenment leaves something to be desired in this department.  I run top and validate my initial purpose: the memory footprint on this puppy is tiny (~80 mb of E/X).  Alright ease of use is great and all, but I'm sure I can figure it out, and hey, the wireless, and video card just worked, so I'm already ahead.

I do have to point out here that when I was running the composite theme, I got a complaint that OpenGL was not supported by my video card.  I'll delve into this later once everything's installed.

Actual Install
So eventually I find a button right in the middle of the bottom panel that is for "Installing Bodhi".  So the LiveCD is an install CD, nice.  I partition my drive by deleting with windows partition and replacing it with the new Linux partition.  I then run the install, and it's really fast (the iso was only 400 mb) compared to Ubuntu.  I restart and it's up and running.

I next venture over to YouTube, with no Flash.  I click on the get Flash option which sends me over to Adobe's website.  It detects Linux, and lets me choose which type of file to download (Yum, .tar.gz, .rpm, APT for Ubuntu 10.04+).  Well this is basically Ubuntu 10.04, so I think I'm in luck.  I click on it and I get:

 Unknown channel: 'lucid-partner'

Ok, maybe this isn't so easy.  Actually bothering to look at the installation instructions indicates that I need to run:

sudo apt-get update

And then install Flash by clicking here.   Ok, after restarting Midori I now have YouTube working (with sound).  Life is good again.  Just to get things up and running for basic code editing, I run:

sudo apt-get install subversion cvs gdb

Now I need to get emacs, but I'm not sure exactly which package.  I open up synaptic through the Bodhi menu->Applications->Preferences->Synaptic.  Shouldn't synaptic be in System Tools?  Anyway, I opened up synaptic after entering my master password, and find, well, yeah, the package is named emacs (although in my defense I thought it was called emacs23 and their does appear to be that package as well).  Note that packages with an Ubuntu icon has Canonical's guarantee that they will provide updates until April 2013.  Emacs has this icon, so I'll be golden if the Emacs devs find a critical need for a first person shooter (psychoanalysis and tetris are already in there).  Anyway, I realize that I need an Office Suite and sorry guys, but Light Office (Abiword, Gnumeric, and Inkscape) is not going to cut it.  LibreOffice you big tub of lard (I mean that in the nicest possible way), mosey on over here.  The "Install Now" button on Bodhi's webpage worked as it should, and so now I have used synaptic, apt-get command line, and clicking from Midori to get software.  Not too bad.

I got Octave (open source Matlab clone)  and Wine (from scratch Windows compatibility library and environment to run Windows programs directly) from Synaptic while I was there.  I hadn't really used Wine too much, I just wanted to see how well it worked with games.  I installed Hearts of Iron II using Wine (which took forever, copy a large number of small bmp files is not Wine's forte).  I noticed during the install that no other window was responding.  I'm not sure whether this was a Wine or an Enlightenment issue, but it was there.   When I went to close the installer after it was done, nothing seemed to respond.  I got an enlightenment crash menu (F1 to recover, F2 to exit).  I clicked the recover button, since the mouse was still responsive, and enlightenment appeared to reboot.  I then tried to run the game by:

wine ~/.wine/drive_c/Program\ Files/Paradox\ Interactive/Doomsday/HoI2.exe

 This failed with some weird error.  I eventually realized that the Wine install added an icon to Applications->Other->Doomsday.  This icon started the game up and it worked better than Parallels did under Mac.


Next I had to fix my keyboard settings.  An apple keyboard with two command keys and only one Alt key does not work so well in a Linux world.

Relevant tips for keyboard/mouse config are found here:

Tuning Ubuntu On A Mac
Reassigning Ctrl,Alt Keys

Basically there is a lookup table between keycodes generated by the physical keyboard and conceptual symbols such as "Ctrl_L".  The program xmodmap allows a user to modify this table.  I decided to map the Apple/Command keys to Alt and what Linux calls the Command keys (Super Keys), I mapped to the original Alt key.  I still have no idea what the Super key modifier does in Linux, but I don't really care either.  I created the following xmodmap file and put it in ~/.Xmodmap:

! Swap Alt and Cmd keys.
keycode 37 =    Control_L
keycode 133 =   Alt_L Meta_L
keycode 134 =   Alt_R Meta_R
keycode 64 =    Super_L
keycode 104 =   Control_R Multi_key
clear Shift
clear Lock
clear Control
clear Mod1
clear Mod2
clear Mod3
clear Mod4
clear Mod5
add    Shift   = Shift_L Shift_R
add    Lock    = Caps_Lock
add    Control = Control_L Control_R
add    Mod1    = Alt_L Alt_R
add    Mod2    = Num_Lock
add    Mod4    = Super_L
add    Mod5    = Mode_switch

Running this using xmodmap ~/.Xmodmap worked fine.  I then tried to add this command to my .xinitrc and nothing happened.  I realized that xinitrc is only for when calling startx directly not going through a display manager (which most distros have, in Bodhi it is lxdm).  So I tried .xsession and still nothing.  I then went and looked at what lxdm was doing (by looking in /etc/lxdm/Xsession, and then because this is Ubuntu based, looking in /etc/X11/xinit/xinitrc).  Based on the xinitrc, per user customization is done in the .xsessionrc file.  Moving my .xsession to .xsessionrc and rebooting makes it work.

Next I had to fix the very annoying touchpad tap while I'm typing problem.  Basically, I want it off while I'm typing so my cursor doesn't keep on moving around the screen randomly.  Good news there's a fix for that:

Disable Touchpad While You're Typing

To test for yourself, run:

syndaemon -i 2 -t -d

This will turn off touchpad tapping for up to two seconds after typing.  This will only last until you reboot/restart X.  To make it permanent, add it to your startup file.  (I added it to ~/.xsessionrc, just like the keyboard remapping).

Network Mounts

Now the nice thing about Ubuntu, bloated though it is, is that everything you need is either built in, or almost automatically added.  Nautilus and remote shares transparently working come to mind in this.  Now Bodhi doesn't come with a lot of libraries, and in trying to stay true to this, I resisted downloading nautilus and nautilus-share.  They are there if you want them however.  (Bodhi seems to come with something called Nautilus Elementary, not really sure what this is though).  I went to synaptic to install samba.  Note that if you don't need to run a samba server, all you need to install is the smbclient and smbfs.

I ran:

smbclient -L other-computer -U user-name  # password at prompt

And I see my shares.

 Now I try and do:

sudo smbmount //other-computer/share-name /mnt/lan/share-name -o user=WORKGROUP/user-name%password 

This fails with the error: Could not resolve address for other-computer: Name or service not known.  This is weird because the smbclient sees it, but smbmount fails.

I can get it to mount by replacing the computer name "other-computer" with the IP address of that computer on the network.

sudo smbmount //192.168.X.X/share-name /mnt/lan/share-name -o user=WORKGROUP/user-name%password

This works, but I don't like it very much (and also has nothing to do with Bodhi Linux).

Video Codecs 

I wanted to try out watching videos, so I installed totem and vlc.  Some videos wouldn't play out of the box, and unlike Ubuntu, mplayer did not find what codecs I needed and ask me if I wanted them installed.  I really like this feature and it should be included.  This plugin finder might be located in a package that I didn't know to download.  If so, having an "install now" for a fully featured video player capable of downloading new codecs is a must for Bodhi.  To solve it right now, I went to synaptic and searched codecs.  I installed w32codecs and non-free-codecs.  This fixed the problems for the movies I tried.

Graphics Engine

To get back to the graphics problem I was having where OpenGL support for my card was not available, I did a little searching in Enlightenment's menus.  To find the graphics engine Enlightenment is currently using is a fun exercise in Settings Navigation (It is not in Settings->All->Advanced->Engine, instead, find it in Settings->All->System->Elementary Configuration->More->Rendering).  Here my was running Software x11.  However, there were two other available engines Fb and OpenGL x11.  I selected OpenGL x11 and clicked "Use Engine".  I'm not sure if that did anything, and Googling it did not seem to give me much insight.  I'll delve into this more later.


I still have a bunch of development libraries that I have to install for work.  We are using g++4.6 to take advantage of the new C++0x code support.  We have Ubuntu 10.04 computers with gcc 4.6 on them, but I can't seem to find any gcc 4.6 packages for 10.04.  I'll wait until I get to work to figure out how it was installed.  This is the really important test to see if I can use this distribution.  Bodhi Linux's decision to only have Ubuntu LTS also means that for problems like these I can't easily upgrade my way out of them.


The system feels incredibly responsive.  Unlike Ubuntu, a full day of running different programs has not created a bloated X or Window Manager.  Midori is also amazingly compact in the memory department.  Taking up a small footprint, but being able to easily install and run all of the programs Ubuntu has seems like the best of both worlds.  If I had one recommendation for them, it would be to release a version for each .04 Ubuntu release.  For those that don't need to be up to date, they can use just the LTS releases.  Two years is a really long time in the Linux world.


  1. That`s why I left Bodhi and switched to Jolicloud, now JoliOS. One-click installs of programs, running-updates of those programs and the newest Chromium! You can also access your desktop from any computer anywhere using Chromium/Chrome Sync. Bodhi is a good idea, but Jeff (Hoogland, the dev), treasures minimalism way too much. I had to suggest several times for him to put a choice of default themes in, which many users have since said it played a big part of attracting them in the first place. E17, pretty though it is, is a PITA. (Btw, I guarantee you`ll have a visitor defending Bodhi show up fairly quickly, lol.

  2. I don't think Bodhi needs to be defended I think that's a very good review. E17 is not based on any other window manager so it takes a bit of getting used to for a new user especially when it come's to changing settings. It all depends on how many preconceptions you have about where things should be. As far as the LTS and Upgrading is concerned. A lot of the programs in the bodhi software wiki are kept up to date so I can use Firefox 6 and chrome 12 and If I want to really fly by the seat of my pants I could enable the mozilla daily ppa and be running Firefox 8 almost all major programs can be updated to the latest and greatest through the ppa system remembering that it could be unstable. Finally the getdeb repository has been added to give access to new versions and some software not in the offical repositories.

    The one thing I would like to see more of are video tutorials especially when its about gui usage as they say a picture is worth a thousand words which means a 10 min video is worth 240000 words