ECE497 Notes on Installing Angstrom via Narcissus
Here's another precompiled approach that creates a complete disk image, but gives you some control over what is in the image. The first listed creates the image used for the ICASSP 2011 tutorial/workshop. The second one does an older image.
Contents
FIE 2011 image
The FIE image is pretty much the same as the ICASSP image, but with a couple of things cleaned up.
ICASSP 2011 image
This is the image that Daniel Allred at TI created to support c6run.
Make a beagleboard boot image and SDK image from Narcissus. These steps are more or less in line from those taken here.
- Select beagleboard as the machine
- Select a unique name (or use the random one provided)
- Select advanced for options
- Select stable 2011.03 for base of rootfs
- Select regular base system
- Select udev for /dev manager
- Select sysvinit for init manager
- Select OMAP SD image for image type
- Software manifest is no (really it doesn't matter unless you plan to redistribute this stuff)
- Set SDK type as Full SDK for generated filesystem and select the appropriate 32bit Intel for host (our Ubuntu install is 32-bit)
- Select X11 for the user environment
- For the X11 desktop environment, ok to leave it blank
- For Additional packages:
- Under Development packages select:
- Perl
- Toolchain
- Native (on-target) SDK
- Native (on-target) Qt Embedded SDK
- Native (on-target) Qt X11 SDK Development
- Under Network related packages select:
- Dropbear SSH server
- NTPdate
- Under Platform specific packages:
- Texas Instruments OMAP3x/AM3x family select:
- Matrix GUI for QT/X11
- PowerVR SGX demos for X11
- PowerVR SGX gfxdriver plugin for QT/X11
- TI texture streaming demo for X11
- Texas Instruments OMAP3x/DaVinci/OMAPL family (using DSP) select:
- TI DSPLINK Example Applications
- TI Codec Engine Example Applications
- Texas Instruments Gstreamer plugins
- Various demonstration configs select:
- Beagleboard validation GNOME image
- Texas Instruments OMAP3x/AM3x family select:
- Under Development packages select:
Now click Build Me! This will take some time.
The result of the build will be several files. (MM=month of creation, XXXX=unique name you provided)
- Angstrom-2011.MM-narcissus-beagleboard-i686-XXXX-image-sdk.tar.gz image with the SDK
- XXXX-image-beagleboard.tar.gz image with the file system contents.
- XXXX-image-beagleboard-sd-1GiB.img.gz is a 1GB SD card image.
- XXXX-image-beagleboard-sd-4GiB.img.gz is a 4GB SD card image.
Now we need to install the SDK image
tar -C ~/toolchains -xzf Angstrom-2011.MM-narcissus-beagleboard-i686-XXXX-image-sdk.tar.gz
(again, MM=month of creation)
This will install the toolchain to ~/toolchains/usr/local/angstrom/arm
. This is a little long so let's move it
mv ~/toolchains/usr/local/angstrom/arm ~/toolchains/arm-angstrom rm -Rf ~/toolchains/usr
So now we have the ARM compiler ready to be used. We will use the SD card image later.
Get ready for DSP Development
- Download the latest C6Run release package from here.
- Unzip the C6Run package
$ tar -xzf ~/Downloads/C6Run_X_YY_ZZ_WW.tar.gz
This will create a directory C6Run_X_YY_ZZ_WW in the current directory (I just use my home directory).
- Download the Texas Instruments C6000 Compiler tools (version 7.2.2 or later) from here.
Note that this requires you to have a login with my.ti.com. This is a little annoying.
- Install the DSP compiler to $(HOME)/toolchains
$ mkdir -p ~/toolchains $ chmod +x ~/Downloads/ti_cgt_c6000_7.2.2_setup_linux_x86.bin $ ~/Downloads/ti_cgt_c6000_7.2.2_setup_linux_x86.bin --mode silent --installto ~/toolchains
This takes a minute and installs silently (you are implicitly agreeing to some EULA when you do this). The DSP toolchain will be in ~/toolchains/TI_CGT_C6000_7.2.2
.
Setup c6run
- Let's setup up c6Run so we can build DSP code.
- Edit the Rules.mak to point to the right ARM and DSP toolchains:
CODEGEN_INSTALL_DIR ?= $(HOME)/toolchains/TI_CGT_C6000_7.2.2 ARM_TOOLCHAIN_PATH ?= $(HOME)/toolchains/arm-angstrom ARM_TOOLCHAIN_PREFIX ?= arm-angstrom-linux-gnueabi-
It also appears that we need to make sure that the LINUXUTILS_VERSION is set to 2_25_05_11. Without this, any application built with C6Run won't work on the current 2011.03 build generated by Narcissus since the kernel module inlcuded is based on the older LinuxUtils.
- Now get all dependent components to build back-end libararies. The fetching and install may take some time
$ cd ~/C6Run_X_YY_ZZ_WW $ make get_components
- Edit the file platforms/beagleboard-xM/platform.mak and get rid of the redefines of the ARM_TOOLCHAIN_PATH and ARM_TOOLCHAIN_PREFIX (since we want to use the version we just set above in Rules.mak)
- Select beagleboard-xM config
$ make beagleboard-xM_config
- build the back-end libraries
$ make gpp_libs dsp_libs
- Source the environment for the C6Run tools
$ source environment.sh
- Build all the examples and test cases to make sure things work
$ make examples tests
If that all worked, then C6Run is ready to be used to build DSP code for use with ARM programs
- Now we can get the Beagle up and running. We will use the XXXX-image-beagleboard-sd-4GiB.img.gz file generated by Narcissus.
Older 2010 image
- Go to here
- Under Select the machine you want to build your rootfs image for: select beagleboard
There are many configurations you can try. For starts try
- Scroll to almost the bottom and select Platform specific packages:
- Again scroll to near the bottom and select Linuxtag 2010 beagleboard demo
- Click Build me! and wait
- Once the image is created, follow the instructions to download the image. It's big so it will take a while
Once the image is build you will have two files to download. One is a disk image of the CD card and the other is the root file system.
- Download both of these
- Run
host$ sudo zcat XXX | dd of=/dev/of/your/sd bs=8225280
. This will partition and format the SD card and install the files needed to boot Linux. It took me about 3 minutes. - run
host$ sync</sync> to be sure all the files have been written.
- Next, uncompress the root file system image on the CD card.
host$ cd /media/rootfs
host$ tar -xvf ~/Documents/....
host$ sync
Eject the SD and plug it in your Beagle and power it up.