home
overview
developers
Topics of interest:
Cross-compiling
STLPort
Gumstix/Waysmall
|
Gumstix
The Gumstix computers are small embedded Xscale machines that
run Linux.
http://www.gumstix.com
Linux Journal article
To Buy
Initial checkout
Audio
We have an audiostix AC97
How to connect the audio gumstix
Ethernet
- Q: Should either of the LEDs turn on when an Ethernet cable is plugged in?
-
A: The LEDs on the etherstix board will only light when the ethernet cable is plugged in *and* the device is started in linux, by typeing "ifup eth0" at the command prompt.
Bluetooth
# ./init.d/S30bluetooth stop
Stopping Bluetooth subsystem: pand dund rfcomm hidd sdpd hcid /dev/ttyS3.
# ./init.d/S30bluetooth start
Set (GPIO,out,clear) via /proc/gpio/GPIO7
Set (GPIO,out,set) via /proc/gpio/GPIO7
Starting Bluetooth subsystem: /dev/ttyS3 hcid sdpd rfcomm pand.
FlockBots page
Software
Building the environment under cygwin
Colinux
The Cygwin install was not working, I kept getting
make[1]: /cygdrive/c/cxh/src/gumstix/gumstix-buildroot/build_arm_nofpu/staging_dir/bin/arm-linux-uclibc-gcc: Command not found
So, I tried the
Colinux install
- When it says "bridge connections", open the network control panel,
select both the TAP driver and your primary network connection using
Control-click and then right click and select "Bridge connections"
-
I ended up running
apt-get -o APT::Force-LoopBreak=1 install subversion
- I suggest installing ssh and emacs21
- While building gumstix-buildroot, I got:
sed -i -e "3,4s;/usr;/home/gumstix-buildroot/build_arm_nofpu/staging_dir;" /hom\
e/gumstix-buildroot/build_arm_nofpu/staging_dir/bin/openobex-config
sed: invalid option -- i
Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...
-n, --quiet, --silent
suppress automatic printing of pattern space
-e script, --expression=script
add the script to the commands to be executed
-f script-file, --file=script-file
add the contents of script-file to the commands to be executed
--help display this help and exit
-V, --version output version information and exit
If no -e, --expression, -f, or --file option is given, then the first
non-option argument is taken as the sed script to interpret. All
remaining arguments are names of input files; if no input files are
specified, then the standard input is read.
E-mail bug reports to: bug-gnu-utils@gnu.org .
Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.
make: *** [/home/gumstix-buildroot/build_arm_nofpu/root/usr/lib/libopenobex.so]\
Error 4
The version of sed installed in colinux is 3.02
colinux:/home/gumstix-buildroot# /bin/sed --version
GNU sed version 3.02
The gumstix version of sed is 4.0.8:
colinux:/home/gumstix-buildroot#
GNU sed version 4.0.8
The solution is to copy build_arm_nofpu/staging_dir/bin/sed to /bin/sed
I then did:
mv sources/dl .
make distclean
mv dl sources
- Building fails because
bash-3.00$ cd toolchain_build_arm_nofpu/gcc-3.4.2-initial/gcc
bash-3.00$ make
The directory that should contain system headers does not exist:
/cygdrive/c/cxh/src/gumstix-buildroot/toolchain_build_arm_nofpu/uClibc_dev//usr/include
make: *** [stmp-fixinc] Error 1
The solution: Edit
toolchain_build_arm_nofpu/gcc-3.4.2-initial/gcc/Makefile
and change
# Default native SYSTEM_HEADER_DIR, to be overridden by targets.
# CXHFOO
NATIVE_SYSTEM_HEADER_DIR = /usr/include
to
NATIVE_SYSTEM_HEADER_DIR = include
SDL
See also the
Zaurus SDL
page
- Build gumstix-buildroot: See the gumstix programming page at
http://www.gumstix.org/tikiwiki/tiki-index.php?page=programming
- Place
/usr/local/escher/crosscompile/buildroot_xscale/build_arm/staging_dir/bin
in your path so that you have the cross compiler
export PATH=${PATH}:/home/gumstix-buildroot/build_arm_nofpu/staging_dir/bin
I probably would not put this in ~/root/.profile because
that directory might not be mounted.
- Download SDL sources from
http://www.libsdl.org/
- Untar the sources, cd in to the SDL directory
- To configure, use
NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ RANLIB=arm-linux-ranlib AR=arm-linux-ar ./configure --disable-video-dummy --disable-video-fbcon --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-cdrom --disable-video-x11 --disable-nasm --prefix=/home/arm-cross/SDL --host=arm-linux arm-unknown-linux-gnu
-
make
make install
- Compile SDL-1.2.8/test/loopwave.c with
arm-linux-gcc -I/home/arm-cross/SDL/include loopwave.c -L/home/arm-cross/SDL/lib -static -lSDLmain -lSDL -lSDLmain -lpthread
A wave file can be found at
ptII/ptolemy/actor/lib/javasound/voice.wav .
Copy the wave file and a.exe to the
gumstix and run
./a.exe voice.wav
USB
Scratchpad work
>XScale uses a Harvard memory architecture with separate buses for
>instructions and data. PXA255 and PXA26x family members each provide
>separate 32 Kbyte instruction and data caches and have a special 2 Kbyte
>mini data cache intended for “streaming” data. The main data cache is
>32-way set associative and employs a round-robin replacement policy.
Hmm... This probably makes it less suitable for the scratchpad work,
unless there is some way for the code to manipulate this...
MMC
To mount the mmc drive on gumstix2:
mount /mnt/mmc
GDB
See gumstix.org programming notes
for gdb instructions
We run gdbserver on the gumstix and connect from the host machine.
One problem is that gdbserver requires libthread_db.so, which
was not on the gumstix.
- Download from
http://ftp.gnu.org/gnu/gdb/ , I used gdb-6.4
-
tar -zxf gdb-6.5.tar.gz
Compiling locally
Under Windows, create a gdb binary that will run on the gumstix:
cd gdb-6.5
NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ RANLIB=arm-linux-ranlib AR=arm-linux-ar ./configure --host=arm-linux
cd libiberty
NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ RANLIB=arm-linux-ranlib AR=arm-linux-ar ./configure --host=arm-linux
make
cd ../bfd
NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ RANLIB=arm-linux-ranlib AR=arm-linux-ar ./configure --host=arm-linux
cd ../opcodes
NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ RANLIB=arm-linux-ranlib AR=arm-linux-ar ./configure --host=arm-linux
cd ../readline
NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ RANLIB=arm-linux-ranlib AR=arm-linux-ar ./configure --host=arm-linux
cd ../sim
NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ RANLIB=arm-linux-ranlib AR=arm-linux-ar ./configure --host=arm-linux
More memory
http://www.gumstix.org/tikiwiki/tiki-view_faq.php?faqId=12&highlight=audiostix says:
Q: I'm looking for a gumstix system which includes audio, USB, RS232 and storage (MCC or CF) in one system. It seems the 'cfstix audio pack' offers these possibilties but it's not clear to me if all the boards can be together in one system.
A: Yes, the cfstix audio pack is likely the right answer for these requirements. Some things to consider:
The cfstix could work well for your storage requirements with an optional compact flash storage card.
The boards would connect like this:
A-- cfstix
A-- gumstix connex B
B tweener
audiostix B
A = 92-pin bus header
B = 60-pin hirose connector
|