Quick start xubuntu 12.04

From RidgeRun Developer Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

My Ubuntu 10.10 distro went out of support. After ignoring the problem for months, I decided today (2012 12 22) to give myself a holiday present and upgrade. I bought another 64GB SSD for the root directory (except /home and /opt, which I keep on another physical disk). I bought the second SSD, so I could get back to work using the one holding Ubuntu 10.10 if everything went wrong.

I spent several day getting my xorg.conf file working with my 3 monitors (two X screens, one with two monitors). I didn't want to spend several more days trying to get xubuntu happy.

Installing Xubuntu

Downloaded 64 bit Xubuntu 12.04 ISO from http:www.xubuntu.org and did a default install, selecting installing non Open Source packages. Updated to the latest version.

sudo apt-get upgrade

When I started Xubuntu 12.04, one monitor was black and the other two were mirrored - ugh. I checked the /etc/X11/xorg.conf file only to find none existed. I installed the nvidia drivers (I have two nvidia cards), copied over the Ubuntu 10.04 xorg.conf file, crossed my fingers, and reboot. Yeah! two X screens one with two monitors and a separate one for IM on the third monitor. The only issue I have to work out is why everything looks grayed out on the IM monitor. But I can ignore that for now and instead focus on getting Xubuntu ready for embedded Linux development.

sudo, my best friend

I don't want sudo to ask me for a password all the time, so I run:

sudo sh -c "echo '%admin ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers"

Capturing packages installed on desktop PC

I have been using the same desktop PC, with Ubuntu installed, for several years. The simple way to make sure my Xubuntu desktop would have what I needed while on the road was to install the same packages I have installed on my desktop.

With Ubuntu 10.10 running, I executed:

INSTALLED_PACKAGES=`aptitude search '[a-z]*'  | grep ^i | cut -c5-36`
for PACKAGE in $INSTALLED_PACKAGES ; do echo apt-get -y install $PACKAGE ; done > /tmp/get-packages.sh

Installing packages on xubuntu

I used /tmp/get-packages.sh to install the set of packages I have used in the past:

time sudo sh -x $HOME/Desktop/get-packages.sh

The only problem with this approach is when I stop using a package, I still carry it around. It also took around XXX hours to download and install. If I would have put all the packages on one command line it would have been much faster.

Windows and mouse

I like auto focus and auto-raise as I move the mouse around. I also like the close, minimize, and maximize buttons to match OSX. I wen into menu -> Settings -> Settings Manager -> Window Manager to adjust those settings.

Use bash instead of dash

The shell scripts I use follow the bash syntax, so I need it as my default shell.

rm /bin/sh ; ln -s /bin/bash /bin/sh

Separating operating system data from user data

Many years ago someone taught me the trick to keep my data in /local/opt and /local/home, where I have the following symbolic links

mv /opt /opt.old
ln -s /local/opt /opt
mv /home /home.old
ln -s /local/home /home

where /local is the mount point for a separate hard disk. This is the same /local I used on Ubuntu 10.04, so all my personal settings and data are ready to go, along with all the tools and libraries I have installed that were not part of the distribution.

My /etc/fstab contains:

# <file system>                             <mount point>   <type>  <options>                  <dump>  <pass>
UUID=15b2e4cf-d939-4b6c-aa8e-4c3625d0c7b9   /               ext4    errors=remount-ro          0       1
UUID=877d0afa-7afd-4a63-af9d-73de26a63c85   /local          ext4    relatime,errors=remount-ro 0       2

It can be a bit tricky to make the first user (/home/tfischer in my case). I make a normal one during the Ubuntu install process, then I run the symblic line commands shown above and my home directory with all it contents magically appears. I sometimes have to change the UID (user ID) in the /etc/passwd file.

Get some needed 32 bit versions of the libraries

sudo apt-get install liblzo2-2:i386 liblzo2-dev:i386 # for mkfs.ubifs

Check out, configure, and build RidgeRun SDK

To see if I had everything I needed installed, I checked out one of RidgeRun's SDKs and built the target hardware images.

cd
mkdir -p work
cd work
svn co $SDK_URL dm368sdk
cd dm368sdk
make config
make