Difference between revisions of "Installing Ubuntu 10.04 on Gumstix Overo"

From Gumstix User Wiki
Jump to: navigation, search
(updated kernel/module versions, updated install procedure for newest version of rootstock, added wifi instructions)
 
(15 intermediate revisions by 7 users not shown)
Line 1: Line 1:
I have installed Ubuntu 10.04 on a gumstix overo using a collection of instructions found online. A summary of the instructions is below for convenience. This is my first attempt and there are a few issues that I am going to try to resolve.
+
== Ubuntu on Overo COM ==
 +
Constructing an Ubuntu root file system for the Gumstix Overo COM is surprisingly easy with the rootstock utility.  Since Ubuntu (particularly a version including a graphical desktop) likes lots of RAM, Gumstix recommends using an Overo COM with at least 512MB RAM. You can install Ubuntu on an Overo COM with 256MB RAM and the familiarity of Ubuntu for some users may outweigh occasional sluggishness.
  
I used an ubuntu 10.04 desktop machine as my working environment for these instructions.
+
These instructions were tested on an Ubuntu 10.04 desktop machine; they should work for any recent Debian-based flavour of Linux. These instructions also work for Ubuntu 11.04 Natty Narwhal with a few things to keep in mind.
  
1. Install rootstock: ‘sudo apt-get install rootstock qemu’
+
== Make a MicroSD card ==
 +
The rootstock utility builds a root file system inside a virtual arm machine supplied by qemu.  First, install the required packages.
 +
<code>
 +
$ sudo apt-get install rootstock qemu
 +
</code>
 +
<b>note:</b> To create a rootFS image for Ubuntu 11.04 you need to make sure that the machine creating the image has qemu-arm-static version 14.x or better. Ubuntu 11.04 has this but 10.04 for instance does not and segfaults during rootFS image creation.
  
Rootstock is a utility used to make a rootFS for a port
+
Next, use a command like the one shown below to make a root file system; check out 'man rootstock' for some extra options.  Note: this will take an hour or two.
Qemu is required and for some reason was not installed at the same time
+
<code>
 +
$ sudo rootstock --serial ttyS2 -d lucid -f "gumstix" --seed lxde,gdm,openssh-server,x11vnc,wireless-tools,wpasupplicant,nano
 +
</code>
 +
* the '-d' option specifies the distribution release: in this case, Ubuntu Lucid (10.04). In the case of Ubuntu Natty (11.04) use "natty".
 +
* the '--seed' option specifies the list of packages to install: in this case, we install a lightweight desktop and a standard login manager as well as ssh & VNC servers so we can connect remotely.
 +
* the user name ('-l') and password ('-p') options don't seem to work at the moment; see [Configuring Ubuntu] for more information.
  
2. make rootfs using rootstock. This may take several hours
+
To create a rootFS image for a headless server you can use the following:
 +
<code>
 +
$ sudo rootstock --serial ttyS2 -d lucid -f "gumstix" --seed build-essential,openssh-server
 +
</code>
  
I used the following command but doing ‘man rootstock’ will give you a list of advanced commands
+
You should now have a spiffy root file system tarball so now we just need to create a bootable microSD with a standard bootloader and kernel.
I set my distribution with -d to lucid because I wanted ubuntu 10.04
+
  
the openssh-server will allow you to connect your gumstix to the internet and ssh in
+
Format a microSD card as per [http://www.gumstix.net/Documentation/view/Overo-Setup-and-Programming/Creating-a-bootable-microSD-card/109.html usual]; you should copy a [http://cumulus.gumstix.org/images/angstrom/developer/2012-01-22-1750/ recent] MLO, u-boot, and uImage to the boot partition.  Extract the generated root file system to the second partition of the microSD card.
  
‘sudo rootstock -f “Gumstix” -l “gumstix” -p “overo” -n “Gumstix Overo
+
Next we'll need to add the loadable modules and firmware. If you don't want to build the kernel: Download and extract a wifi enabled image using the same kernel as the uImage you're using (In this case we're using Kernel 3.0.0 so we want the 2012-01-22 developer image):
Ubuntu” -s lxde,gdm,openssh-server,x11vnc -t “America/Vancouver” –serial ttyS2 -d lucid –locale en_US.UTF-8′
+
  
Note 1: the user gumstix and password overo do not work because the user does not get created properly. More on how to deal with that later
+
wget http://cumulus.gumstix.org/images/angstrom/developer/2012-01-22-1750/omap3-console-image-overo.tar.bz2
 +
tar xvjf ./omap3-console-image-overo.tar.bz2
 +
 +
Copy the <code>/lib/firmware</code> and <code>/lib/modules</code> directories to the same location on your SD card:
  
Note 3: the lxde,gdm is good for a minimal install for use on a small device with limited power and storage space. Good for a headless system.
+
sudo cp -rf ./lib/firmware /media/rootfs/lib/
 +
sudo cp -rf ./lib/modules /media/rootfs/lib/
  
Link for more info on making a rootfs
+
== Configuring Ubuntu ==
https://wiki.ubuntu.com/ARM/RootfsFromScratch
+
For Overo expansion boards with an Ethernet interface, it is nice to have Ethernet working right off the bat without having to have Network Manager installed. Open the ''/etc/network/interfaces'' file on the second partition.
 +
<code>
 +
$ sudo gedit /path/to/second/partition/etc/network/interfaces
 +
</code>
 +
Add the following code to the bottom:
 +
<code>
 +
auto eth0
 +
iface eth0 inet dhcp
 +
</code>
 +
You can now unmount the microSD card, place it in the Gumstix and boot to it.
  
3. Get MLO and u-boot from this link
+
Login using serial console using these [http://www.gumstix.net/Documentation/view/Overo-Setup-and-Programming/Getting-started/109.html instructions] or you can jump in via ssh.
http://www.sakoman.com/feeds/omap3/glibc/images/overo/201009091145/
+
  
4. Get your kernel u-image This kernel is based on the 2.6.34 kernel. Newer and older kernels should work but you will have to find modules for that kernel. (see step 8 )
 
http://dl.dropbox.com/u/211887/Ubuntu/uImage-2.6.34-r88-overo.bin
 
  
5. Format your microSD card as per usual
+
First we need to load the firmware modules:
http://www.gumstix.net/Documentation/view/Overo-Setup-and-Programming/Creating-a-bootable-microSD-card/109.html
+
  
6. put MLO, u-boot, u-image on microSD card boot partition
+
cd /lib/modules/3.0.0/
 +
depmod
  
7. extract generated rootfs to second partition
+
Next, if you're using a wireless COM, you'll need to configure the wireless settings. First, create the file wpa.conf in your /etc/ directory.
  
8. Download and extract modules and copy them to second partition (where you extracted the rootfs)
+
cd /etc/
http://dl.dropbox.com/u/211887/Ubuntu/modules-2.6.34-r88-overo.tgz
+
wpa_passphrase <your wireless ssid> <your password> > wpa.conf
  
9. On the second partition open the /etc/shadow file. ‘sudo gedit /path/to/second/partition/etc/shadow’
+
If you're using a hidden wireless network you'll need to append the line <code>scan_ssid=1</code> to <code>wpa.conf</code>. Your <code>wpa.conf</code> should look like this:
Delete the ‘*’ for the root entry. This will allow you to login as root and create a user.
+
  
Note: remember to put the ‘*’ back after you have created a user so someone can’t login as root and screw up your system
+
network={
 +
ssid= "YourNetworkName"
 +
#psk="YourNetworkPass"
 +
psk=some-long-generated-value
 +
# add the following line if you're using a hidden wireless network
 +
scan_ssid=1
 +
}
  
10. open the ‘/etc/network/interfaces’ file. ‘sudo gedit /path/to/second/partition/etc/network/interfaces’
+
Next, edit your <code>/etc/network/interfaces</code> and append the following lines:
add the following code to the bottom
+
auto eth0
+
iface eth0 inet dhcp
+
  
You can now unmount the microSD card, place it in the gumstix and boot to it.
+
auto wlan0
 +
iface wlan0 inet dhcp
 +
wireless_mode managed
 +
wireless_essid any
 +
pre-up wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa.conf
 +
post-down killall -q wpa_supplicant
  
Login using serial console using the gumstix instructions in the link below or you can plug an ethernet card in and ssh in
+
Restart your Overo and wireless should be working.
http://www.gumstix.net/Documentation/view/Overo-Setup-and-Programming/Getting-started/109.html
+
  
11. login as root and then create a user for yourself and give yourself sudo
+
Once you are logged in, you might make some other tweaks:
sudo adduser youruser
+
* login as root and then create a user for yourself and give yourself sudo
sudo adduser youruser sudo
+
<code>
sudo apt-get install nano
+
$ sudo adduser youruser
nano /etc/shadow
+
$ sudo adduser youruser sudo
 +
</code>
  
add the ‘*’ back in that we removed earlier
+
* add some useful package repositories if they're not already present. Edit /etc/apt/sources.list and add these lines:
log out as root
+
<code>
 +
$ deb http://ports.ubuntu.com/ubuntu-ports lucid-updates main
 +
$ deb http://ports.ubuntu.com/ubuntu-ports lucid-security main
 +
</code>
 +
* get up-to-date:
 +
<code>
 +
$ sudo apt-get update && sudo apt-get upgrade
 +
</code>
 +
====Install a window manager====
  
12. log in as your user
+
If you require a graphical user interface you may install a window manager of your choice. These window managers have not been tested so proceed at your own risk:
open the /etc/apt/sources.list file
+
  
add the following lines if they are not present
+
=====Xfce=====
deb http://ports.ubuntu.com/ubuntu-ports lucid-updates main
+
deb http://ports.ubuntu.com/ubuntu-ports lucid-security main
+
then close the file
+
  
sudo apt-get update && sudo apt-get upgrade
+
sudo apt-get install xfwm4
  
13. Have fun
+
=====Matchbox=====
 +
 +
sudo apt-get install matchbox-window-manager
  
[[Category:How to - Ubuntu]]
+
== Related Links ==
 +
Here are some links I found useful when putting this post together:
 +
* https://wiki.ubuntu.com/ARM/RootfsFromScratch
 +
* http://labs.igep.es/index.php/How_to_get_the_Ubuntu_distribution
 +
* https://wiki.ubuntu.com/ARM/RootfsFromScratch
 +
* http://free-electrons.com/blog/ubuntu-1004-igepv2/
 +
* http://omapzoom.org/wiki/Ubuntu_rootfs
 +
 
 +
 
 +
 
 +
[[Category:How_to_-_Ubuntu]]

Latest revision as of 09:02, 9 July 2012

Ubuntu on Overo COM

Constructing an Ubuntu root file system for the Gumstix Overo COM is surprisingly easy with the rootstock utility. Since Ubuntu (particularly a version including a graphical desktop) likes lots of RAM, Gumstix recommends using an Overo COM with at least 512MB RAM. You can install Ubuntu on an Overo COM with 256MB RAM and the familiarity of Ubuntu for some users may outweigh occasional sluggishness.

These instructions were tested on an Ubuntu 10.04 desktop machine; they should work for any recent Debian-based flavour of Linux. These instructions also work for Ubuntu 11.04 Natty Narwhal with a few things to keep in mind.

Make a MicroSD card

The rootstock utility builds a root file system inside a virtual arm machine supplied by qemu. First, install the required packages.

$ sudo apt-get install rootstock qemu

note: To create a rootFS image for Ubuntu 11.04 you need to make sure that the machine creating the image has qemu-arm-static version 14.x or better. Ubuntu 11.04 has this but 10.04 for instance does not and segfaults during rootFS image creation.

Next, use a command like the one shown below to make a root file system; check out 'man rootstock' for some extra options. Note: this will take an hour or two.

$ sudo rootstock --serial ttyS2 -d lucid -f "gumstix" --seed lxde,gdm,openssh-server,x11vnc,wireless-tools,wpasupplicant,nano 

  • the '-d' option specifies the distribution release: in this case, Ubuntu Lucid (10.04). In the case of Ubuntu Natty (11.04) use "natty".
  • the '--seed' option specifies the list of packages to install: in this case, we install a lightweight desktop and a standard login manager as well as ssh & VNC servers so we can connect remotely.
  • the user name ('-l') and password ('-p') options don't seem to work at the moment; see [Configuring Ubuntu] for more information.

To create a rootFS image for a headless server you can use the following:

$ sudo rootstock --serial ttyS2 -d lucid -f "gumstix" --seed build-essential,openssh-server 

You should now have a spiffy root file system tarball so now we just need to create a bootable microSD with a standard bootloader and kernel.

Format a microSD card as per usual; you should copy a recent MLO, u-boot, and uImage to the boot partition. Extract the generated root file system to the second partition of the microSD card.

Next we'll need to add the loadable modules and firmware. If you don't want to build the kernel: Download and extract a wifi enabled image using the same kernel as the uImage you're using (In this case we're using Kernel 3.0.0 so we want the 2012-01-22 developer image):

wget http://cumulus.gumstix.org/images/angstrom/developer/2012-01-22-1750/omap3-console-image-overo.tar.bz2
tar xvjf ./omap3-console-image-overo.tar.bz2

Copy the /lib/firmware and /lib/modules directories to the same location on your SD card:

sudo cp -rf ./lib/firmware /media/rootfs/lib/
sudo cp -rf ./lib/modules /media/rootfs/lib/ 

Configuring Ubuntu

For Overo expansion boards with an Ethernet interface, it is nice to have Ethernet working right off the bat without having to have Network Manager installed. Open the /etc/network/interfaces file on the second partition.

$ sudo gedit /path/to/second/partition/etc/network/interfaces

Add the following code to the bottom:

auto eth0
iface eth0 inet dhcp

You can now unmount the microSD card, place it in the Gumstix and boot to it.

Login using serial console using these instructions or you can jump in via ssh.


First we need to load the firmware modules:

cd /lib/modules/3.0.0/
depmod

Next, if you're using a wireless COM, you'll need to configure the wireless settings. First, create the file wpa.conf in your /etc/ directory.

cd /etc/
wpa_passphrase <your wireless ssid> <your password> > wpa.conf

If you're using a hidden wireless network you'll need to append the line scan_ssid=1 to wpa.conf. Your wpa.conf should look like this:

network={
ssid= "YourNetworkName"
#psk="YourNetworkPass"
psk=some-long-generated-value
# add the following line if you're using a hidden wireless network
scan_ssid=1
}

Next, edit your /etc/network/interfaces and append the following lines:

auto wlan0
iface wlan0 inet dhcp
wireless_mode managed
wireless_essid any
pre-up wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa.conf
post-down killall -q wpa_supplicant

Restart your Overo and wireless should be working.

Once you are logged in, you might make some other tweaks:

  • login as root and then create a user for yourself and give yourself sudo

$ sudo adduser youruser
$ sudo adduser youruser sudo

  • add some useful package repositories if they're not already present. Edit /etc/apt/sources.list and add these lines:

$ deb http://ports.ubuntu.com/ubuntu-ports lucid-updates main
$ deb http://ports.ubuntu.com/ubuntu-ports lucid-security main

  • get up-to-date:

$ sudo apt-get update && sudo apt-get upgrade

Install a window manager

If you require a graphical user interface you may install a window manager of your choice. These window managers have not been tested so proceed at your own risk:

Xfce
sudo apt-get install xfwm4
Matchbox
sudo apt-get install matchbox-window-manager

Related Links

Here are some links I found useful when putting this post together: