PandaBoard Ubuntu How-tos
From OMAPpedia
Contents |
[edit] How to: set up a console
Create the file /etc/init/ttyO2.conf, with the following content:
# ttyO2 - getty # # This service maintains a getty on ttyO2 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -8 115200 ttyO2
[edit] How To: Increase Performance under Ubuntu
[edit] Disable swap
Edit out the swap file line found in /etc/fstab
i.e. put a '#' infront of the line which creates a swapfile
[edit] Use tmpfs
This is another speed enhancement that is achieved by editing /etc/fstab, this time by adding the lines:
tmpfs /tmp tmpfs nodev,nosuid 0 0 tmpfs /var/log tmpfs nodev,nosuid 0 0
Richard Watts posted the following on the Pandaboard google mailing list:
Nigel H-S wrote: > I'm focussing on using Ubuntu with my Pandaboard and am wondering if > anyone has had success in speeding up Ubuntu by using a Ramdisk? > Reports around the Internet appear to point to Ubuntu not using the SD > card as fast as it could. > Any hints or tips on setting up a Ramdisk? I shall write this up properly in a bit, but I found that: * Disable swap (really!) - edit it out of /etc/fstab and reboot. * tmpfs /tmp tmpfs nodev,nosuid 0 0 tmpfs /var/log tmpfs nodev,nosuid 0 0 in /etc/fstab Helped greatly - in particular the periodic pauses which seemed to be the result of swapping went away. Of course, you do lose some RAM to tmpfs, which isn't ideal. The underlying problem remains - SD access is just too slow - and I still get quite long hangs when I try to shell autocomplete at the wrong moment - but those two measures made life much more pleasant for me. Sadly, in my case I can't blame the card (much) - the same card in my USB card reader or a ZMS-08 dev board works fine. Time to get an SD protocol analyser, I suspect, Good luck! Richard.
[edit] Use noatime and discard (aka TRIM)
You can further improve disk performance by using the noatime fstab mount option to stop Linux writing to the disk every time a file is read no matter what type of drive you have and SSD users who use ext4 partitions will benefit from using the discard option if their drive supports TRIM. Hence, an fstab entry for an ext4 root partition on an SSD that supports TRIM would look something like:
UUID=LONG-EXAMPLE-UUID-STRING / ext4 discard,noatime,errors=remount-ro 0 1
[edit] Install Xubuntu Desktop
Xubuntu replaces the normal Gnome Desktop with xfce and using applications which are lighter on resources. To install the complete xubuntu-desktop with all applications open a terminal and type:
sudo apt-get install xubuntu-desktop
If you only want a minimal xubuntu based on xfce (other packages can be added later if required) open a terminal and type:
sudo apt-get install xfce4 gdm xubuntu-gdm-theme xubuntu-artwork
It will take a while to install this replacement desktop. Once installed you will be able to select the xubuntu-desktop from the login screen once you've click a user but before you've typed a password.
A video walkthrough of Xubuntu running on the PandaBoard can be found here:
[edit] How To: Start Programming with Hardware Accelerated 3D Graphics
Pandaboard implements OpenGL ES 2.0 in hardware.
If you register at the Imagination Technologies website, you can download the SDK from here:
http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp
Included in the SDK are a series of well commented Tutorial programs as well as fully fledge demonstrations.
For a step by step guide on how to build the SDK examples programs on a PandaBoard running Ubuntu, see this post
[edit] How To: Run Irrlicht 3D engine
To compile the Irrlicht engine you need the "build-essential" package. Also required are "libxxf86vm-dev" and "libxext-dev".
All needed dependencies can be installed with the following command:
sudo apt-get install build-essential libxxf86vm-dev libxext-dev
Go to: Irrlicht 3D Engine
Download the latest version (1.7.2 at time of writing this) and extract the ZIP archive.
Open a terminal and chdir into "irrlicht-
make
Irrlicht will then be built for the OMAP4.
You can then go into /examples/ and start making each example.
You can make them all in one step by chdir'ing into the examples directory and running:
make
[edit] How to: read output from PandaBoard over a serial port
This page describes how to connect between a Host PC and the OMAP Platform device.
[edit] Serial Terminal Setup
For a Linux machine, a serial terminal such as Minicom, screen, or Kermit can be used. Ubuntu users wanting a graphical terminal program can install gtkterm. On a Windows PC, you could use HyperTerminal, TeraTerm or PuTTY.
[edit] Install and Setup Minicom
Open a terminal.
Install minicom if it isn't installed on your system yet.
sudo apt-get install minicom
Search for USB device on Ubuntu:
dmesg | grep -e tty
A search on USB drivers from system log can also be helpful.
dmesg | grep usb
Select the right device:
...USB Serial Device converter now attached to ttyXXX < --- select the appropriate tty connection
note: The device name may vary from system to system and board to board. If connected using a USB2serial adapter then look for ttyUSBX. If you connect using a serial cable it might look like ttySX.
Open minicom and setup the serial connections as follows:
sudo minicom -s
+-----[configuration]------+ | Filenames and paths | | File transfer protocols | | Serial port setup | | Modem and dialing | | Screen and keyboard | | Save setup as dfl | | Save setup as.. | | Exit | | Exit from Minicom | +--------------------------+ //Select Serial port setup //Select A and use the right USB device listed from the previous command previously //Example: Blaze = /dev/ttyUSB2 | PandaBoard = /dev/ttyUSB0 //Select F to turn off Flow Control +-----------------------------------------------------------------------+ | A - Serial Device : /dev/ttyUSB2 | | B - Lockfile Location : /var/lock | | C - Callin Program : | | D - Callout Program : | | E - Bps/Par/Bits : 115200 8N1 | | F - Hardware Flow Control : No | | G - Software Flow Control : No | | | | Change which setting? | +-----------------------------------------------------------------------+ //Press enter, save as default, exit //Once the Modem is Initialized, press Ctrl A-Z-M //This lists the main menu +-------------------------------------------------------------------+ | Minicom Command Summary | | | | Commands can be called by CTRL-A| | | | Main Functions Other Functions | | | | Dialing directory..D run script (Go)....G | Clear Screen.......C | | Send files.........S Receive files......R | cOnfigure Minicom..O | | comm Parameters....P Add linefeed.......A | Suspend minicom....J | | Capture on/off.....L Hangup.............H | eXit and reset.....X | | send break.........F initialize Modem...M | Quit with no reset.Q | | Terminal settings..T run Kermit.........K | Cursor key mode....I | | lineWrap on/off....W local Echo on/off..E | Help screen........Z | | Paste file.........Y | scroll Back........B | | | | Select function or press Enter for none. | | | | Written by Miquel van Smoorenburg 1991-1995 | | Some additions by Jukka Lahtinen 1997-2000 | | i18n by Arnaldo Carvalho de Melo 1998 | +-------------------------------------------------------------------+ //Once this starts up, the following will be output on terminal
Alternatively, you can edit the .minirc.dfl in the home directory. Change the port number pointing to the right device before starting minicom. Our .minirc.dfl looks like this:
pu port /dev/ttyUSB2 pu rtscts No
At this point, the bootloader starts the kernel. Some binaries autoboot while others may require bootargs to boot up. In case the platform autoboots, you may see a sample output as shown below. Else refer to the next step/boot-args section on the guide.
Sample output:
Texas Instruments X-Loader 1.41 (Jul 26 2010 - 19:26:00) mmc read: Invalid size Starting OS Bootloader from MMC/SD1 ... U-Boot 1.1.4-L24.6-dirty (Jul 27 2010 - 12:02:16) Load address: 0x80e80000 DRAM: 512 MB Flash: 0 kB In: serial Out: serial Err: serial Net: KS8851SNL Hit any key to stop autoboot: 0 mmc read: Invalid size 3351176 bytes read ## Booting image at 80500000 ... Image Name: Ubuntu Kernel Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3351112 Bytes = 3.2 MB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK OK Starting kernel ...
A video walkthrough of the above process can be found below:
[edit] Alternative to minicom: Using screen
screen is installed by default of many Linux distributions.
First, find the tty for the serial port:
dmesg | grep tty
In the example below, ttyUSB0 is the USB-attached serial port:
[24542.443352] usb 2-1.2: Keyspan 1 port adapter converter now attached to ttyUSB0
Then simply start screen, passing in the serial port address and the speed:
screen /dev/ttyUSB0 115200
[edit] How to: build a custom rootfs
http://people.canonical.com/~rsalveti/lamont/panda/cookbook.txt
[edit] How to: install a kernel
To find kernel images run/type:
apt-cache search linux-image
prior to that you can add a ppa-repository to your server-list
e.g. adding linaro kernels:
add-apt-repository ppa:linaro-maintainers/kernel
and run/type:
apt-get update
choose the kernel-image of your desire. e.g.:
linux-image-2.6.38-1003-linaro-omap
run/type:
apt-get install linux-image-2.6.38-1003-linaro-omap
to activate the kernel do a:
flash-kernel linux-image-2.6.38-1003-linaro-omap
If you run into problems with flash-kernel, check out this link