Quick start xubuntu 12.04
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