User:Carlsojs

Joel Carlson

Rose-Hulman Institute of Technology, Class of 2011
 * Bachelor's of Computer Engineering, 2011
 * Master's of Electrical and Computer Engineering, 2011

Development Environment Setup
I am using Ubuntu 10.04 64-bit. You may have to download different tools if using a different environment (e.g. - 32-bit vs 64-bit). Assume most instructions are taking place in the location, unless otherwise indicated.

Some of these steps were taken from BeagleBoard and other locations.

Git
Git is an excellent tool for maintaining version control. It is also needed to download some of the necessary source code. To install git, run the command  .

Cross-Compiler
Download the Angstrom toolchain at http://www.angstrom-distribution.org/toolchains/ Extract the contents to a location: $ cd [download location] $ tar -C /home/user/tools -xjvf angstrom-2011.03-x84_64-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2 Optional: Add the location of this toolchain to your PATH so you don't have to enter it in the future. I am using zsh, so I added the line   to the file  (it is necessary to close and re-open the terminal after modifying .zshrc).
 * My version: angstrom-2011.03-x86_64-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2

Linux Kernel
Obtain and build the Linux kernel. $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-3.0.y.git kernel_3.0.1 $ cd kernel_3.0.1 $ make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- mrproper $ make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- omap2plus_defconfig $ sudo apt-get install uboot-mkimage #Necessary for building a u-boot wrapped image $ make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- uImage This should create a file  in.

X-Loader
Obtain and build the X-Loader source. $ git clone git://gitorious.org/x-loader/x-loader.git x-loader $ cd x-loader $ make distclean $ make omap3530beagle_config $ make CROSS_COMPILE=arm-angstrom-linux-gnueabi- This should create a file  in the main x-loader directory.

U-Boot
Obtain and build the U-Boot source. $ git clone git://git.denx.de/u-boot.git u-boot $ cd u-boot $ git checkout --track -b omap3 origin/master $ make CROSS_COMPILE=arm-angstrom-linux-gnueabi- mrproper $ make CROSS_COMPILE=arm-angstrom-linux-gnueabi- omap3_beagle_config $ make CROSS_COMPILE=arm-angstrom-linux-gnueabi- This should create a file  in the main u-boot directory.

Building the Root File System
This will create a root file system using the Buildroot tool. $ git clone git://git.buildroot.net/buildroot buildroot $ cd buildroot $ make arm_toolchain_defconfig $ sudo apt-get install ncurses-dev #Needed to access menuconfig $ make menuconfig You will now be in the configuration utility. Ensure the following are selected. If some things are already selected but not listed in my list, leave them listed. I did not de-select any options. The below are options I either selected myself or were already selected. Furthermore, I went top to bottom through the menus, so some options I selected later may have selected previous options I didn't list due to dependencies. Target Architecture |-- arm

Target Architecture Variant |-- cortex-A8

Target ABI |-- EABI

Toolchain |-- Toolchain type |-- External toolchain |-- Toolchain |-- Custom toolchain |-- Toolchain path |-- enter /path/to/toolchain/usr - If using the Angstrom toolchain from above, installed to the same location above, this path will be            "/home/user/tools/usr/local/angstrom/arm" |-- Toolchain prefix |-- enter "arm-angstrom-linux-gnueabi" |-- External toolchain C library |-- glibc |-- Enable MMU support |-- Use software floating point by default

System configuration |-- System hostname |-- enter whatever you want the Beagle's hostname to be |-- System banner |-- enter what you want the system banner (/etc/issue) to display at login |-- /dev management |-- Dynamic using udev |-- Port to run a getty (login prompt) on       |-- ttyS0 |--  Baudrate to use |-- 115200 |-- remount root filesystem read-write during boot

Package Selection for the target |-- BusyBox |-- customize |-- Audio and video libraries and applications |-- alsa-lib |-- everything selected |-- alsa-utils |-- alsactl |-- alsamixer |-- amixer |-- aplay/arecord |-- speaker-test |-- flac |-- ffmpeg |-- Enable GPL code |-- Build ffmpeg (the command line application) |-- Build ffplay |-- Build ffserver |-- Build libpostproc |-- Build libswscale |-- Enable input devices |-- Enable output devices |-- gstreamer (and all gst-* except gst-plugins-bad and gst-plugins-ugly) |-- lame |-- libmad |-- libmms |-- libmpeg2 |--  mpeg2 binaries |-- libogg |-- libvorbis |-- madplay |-- mplayer |--  Build and install mplayer |--  Build and install mencoder |-- speex |-- tidsp-binaries |-- tremor (fixed point vorbis decoder) |-- vorbis-tools |-- Compressors and decompressors |-- bzip2 |-- Debugging, profiling and benchmark |-- lsof |-- ltrace |-- memstat |-- strace |-- valgrind |-- Development tools |-- autoconf |-- automake |-- gmp |-- make |-- mpc |-- mpfr |-- Graphic libraries and applications (graphic/text) |-- SDL |-- SDL framebuffer console video driver |-- SDL X11 video driver (available after selecting X.org X Window System) |-- X.org X Window System, X11R7, release 7.5 |-- x11vnc |-- xterm |-- Hardware handling |-- dbus |-- lsuio |-- makedevs |-- setserial |-- statserial |-- sysstat |-- u-boot tools |--  mkimage |--  fw_printenv |-- udev |--  enable all extras |-- usbmount |-- usbutils |-- Interpreter languages and scripting |-- microperl |-- python |-- python module format to install |-- .py sources and .pyc compiled |-- core python modules |-- bzip2 module |-- curses module |-- ssl |-- unicodedata module |-- sqlite module |-- Libraries |-- Crypto |-- gnutls |-- libgcrypt |-- libgpg-error |-- libnss |-- openssl |--  openssl binary |-- Graphics |-- cairo |--  postscript support |--  pdf support |--  png support |--  svg support |-- fontconfig |-- freetype |-- jpeg |-- libart |-- libpng |-- tiff |-- Hardware handling |-- libhid |-- libusb |--  libusb-compat |-- python-serial |-- Networking |-- libcgi |-- libcurl |-- libdnet |--  libdnet python module |-- libpcap |-- libupnp |-- Networking applications |-- bridge-utils |-- cups |-- ifplugd |-- iproute2 |-- ipsec-tools |--  Enable racoonctl(8). |--  Enable statistics logging function |-- iptables |-- netplug |-- netsnmp |-- netstat-nat |-- nfs-utils |-- NFS utilities selection |-- rpcdebug |-- ntp |--  all ntp sub-options selected |-- OpenNTPD |-- openssh |-- openvpn |--  LZO compression |--  OpenSSL support |-- portmap |-- ser2net |-- stunnel |-- tcpdump |-- Package managers |-- ipkg |-- Shell and utilities |-- at       |-- lockfile programs |-- sudo |-- which |-- System tools |-- acl |-- attr |-- util-linux |--  all util-linux sub-options selected |-- dsp-tools |-- Text editors and viewers |-- ed       |-- nano |-- uemacs

Filesystem images |-- tar the root filesystem Now let buildroot do its work. $ sudo apt-get install bison flex gettext texinfo #Needed by buildroot $ make