[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RE: Compile errors building Etrax 82 tools



Mark,
Oh yes, I remember when I was in your shoes. The online docs leave out a
lot of tidbits, and in some cases have information that is from older
releases, and no longer are fully correct. Anyway, the doc you may be
looking for is linked from the Documentation page...
http://developer.axis.com/doc/software/apps/apps-howto.html
That document takes you through information about how to 'install' a
hello world application. There are a couple things that come to my mind
that might help you. In spite of all the web docs, doing a "make help"
in the devboard_82 directory will tell you about all the "make
<options>" available. 

One make of interest is "make images". In
/devboard/target/cris-axis-linux-gnu/  there is a mirror of what is put
onto your axis device. Make images (when run from devboard/) as far as I
can tell, simply puts those things into a couple of image files, kimage
and fimage. 

So what puts stuff into the target/cris-axis-linux-gnu directory to be
made into images? Whenever you do "make install" in devboard/ it runs
the make installs in probably all of the directories in devboard/apps/
and puts the binaries into devboard/target/cris-axis-linux-gnu/. "make
kernel" is for the kernel (obviously) and "make files" is for anything
else I guess. Anytime you do one of those 3 makes, you will need to
remake the images.

One thing the docs have been bad for are for how to get the new images
onto the axis device. I usually like to run sermon in tools/build/sermon
 because it lets me know when the device reboots itself (indicating a
finished image write). You'll need a null modem cable for sermon. Now,
there seem to be 4 ways to write images (in order of 'permanence'):
ktest (writes to RAM)
kflash (writes to flash)
boot_linux -f (permantently written)
boot_linux -F (writes like -f but also overwrites the 'rescue' partition)
I fail to see the difference between ktest and kflash, I think they both
 lose their changes when the unit is rebooted. boot_linux is permanent,
and one should never use -F, AFAIK. You do not need any arguments for
ktest of kflash. Once the image is written, sermon will show the device
rebooting, and then u can login and try uname -a and see if ur kernel is
 updated.

I'm just a summer student here, so I have time to play around with this
thing. I've successfully re-compiled the kernel for the ability to mount
a usb stick, although I've only tested it on 2 sticks, a sony (worked)
and a pny attache (didn't work). You don't happen to be using the axis
for data logging do you? I'd like to hear if you can successfully
interface with another comp through serial.

Good luck getting the tools running,
-Nathan


----- Original Message -----
From: "Mark Richards" <mark.richards@xxxxxxx.com>
Date: Friday, July 2, 2004 12:15 pm
Subject: RE: Compile errors building Etrax 82 tools

> Nathan,
> 
> Thanks for offering your assistance.
> 
> You had it right.  I ended up re-building the box (redhat 7.3 with 
> the stock
> kernel and tools) and the process is now underway.  I didn't like 
> some of
> the errors I've seen during the compilation process, but with such 
> a complex
> system and different levels of tools, it's understandable.
> 
> Following this I need to figure out how to get the kernel and then 
> the rest
> of the O/S to the 82 board.  I'm at a loss, so if you have any 
> ideas???Unless the ./install process takes care of this, too?  
> (It's still running,
> so I don't know :) )
> 
> I might be missing something in the documentation that AXIS provides.
> There's a gap between setting up the tools and building your first
> application.  Seems to me a step is missing as to how to re-flash 
> the 82.
> 
> The board boots and has a 2.4.20 kernel on it, but I want to start out
> clean.
> 
> Mark Richards
> 
> 
> 
> -----Original Message-----
> From: owner-dev-etrax@xxxxxxx.com">mailto:owner-dev-etrax@xxxxxxx.com] On 
> BehalfOf Nathan.Smith@xxxxxxx.gov
> Sent: Friday, July 02, 2004 10:14
> To: Mark Richards
> Cc: dev-etrax@xxxxxxx.com
> Subject: Re: Compile errors building Etrax 82 tools
> 
> 
> 
> I have some tips, take them at your own risk, I have limited 
> experience
> and these are just based on my observations. First tip, create an
> 
> axis.sh file the same as init_env and add it to /etc/profile.d/ and
> 
> change profile.d to run the axis.sh script. That way you can be sure
> 
> each new bash you start has those variable set, whether it be root 
> or a
> 
> normal user.
> 
> 
> 
> My second tip is: upgrade. When your kernel is older than the one your
> 
> trying to cross-compile, to me that seems a little odd. So your gcc,
> 
> rpm, and other things are probably all old.
> 
> 
> 
> Third: try not to be root when you do this stuff. Unless you have too
> 
> (when install rpm). And then, you might want to chown user:user -R 
> dir/ .
> 
> 
> 
> Details about my own experience getting the SDK going: You seem to 
> have
> a better grip on things than I do, but I did have a little bit of
> 
> trouble when I was using the devboard_82_R1-92 package. I did the 
> kernel
> patch like you did, etc. The patch seemed to upload to the box just 
> fine
> as well. I had issues when I was doing make install and make files 
> after
> doing the demo "Hello World" program. Sometimes it seemed to randomly
> 
> crap out after I don't remember having made any changes. After that
> 
> happened and I re-followed the SDK install, I began to make tar 
> backups
> of my axis directory.
> 
> 
> 
> ----- Original Message -----
> 
> From: "Mark Richards" <mark.richards@xxxxxxx.com>
> 
> Date: Thursday, July 1, 2004 8:15 pm
> 
> Subject: Compile errors building Etrax 82 tools
> 
> 
> 
> > I am evaluating an AXIS 82 board as a platform for our application.
> 
> > Actually, a new board will be developed using the ETRAX.
> 
> >
> 
> > I have the CRIS tools installed and see that init_env takes care of
> 
> > settingup the path for it, etc.
> 
> >
> 
> > I also untar'd the 2.4.26 kernel. I have a fresh copy from
> 
> > kernel.org that
> 
> > is on CD and that I use whenever building.
> 
> >
> 
> > The RPM put CRIS wherever it is supposed to go with no errors. I
> 
> > put the
> 
> > devboard_82-R1_92.tar.gz in my /home/dev/ directory and unzipped it
> 
> > there.
> 
> > I did . ./init_env without a problem and checked the SET list to 
> make
> > certain
> 
> >
> 
> > I ran ./install and pointed to the os/linux-2.4.26.
> 
> >
> 
> > The patches seemed to go off fine...
> 
> >
> 
> > I then told it to go ahead and build. Here's where things went
> 
> > bad... Some
> 
> > of the errors seem fundamentally wrong...
> 
> >
> 
> > Do you want to build the software now (default y)? y
> 
> > *** Building software
> 
> > make tools
> 
> > make[1]: Entering directory `/home/dev/axis/devboard_82'
> 
> > make -C tools/build install
> 
> > make[2]: Entering directory `/home/dev/axis/devboard_82/tools/build'
> 
> > make -C ccdv install
> 
> > BINDIR="/home/dev/axis/devboard_82/tools/build/bin"make[3]:
> 
> > Entering directory `/home/dev/axis/devboard_82/tools/build/ccdv'
> 
> > gcc -Wall -Wshadow -I/home/dev/axis/devboard_82/target/host/include
> 
> > -O0 -g
> 
> > -fno-omit-frame-pointer -
> 
> > L/home/dev/axis/devboard_82/target/host/lib ccdv.c
> 
> > -o ccdv
> 
> > install -p -d /home/dev/axis/devboard_82/tools/build/bin
> 
> > install -p -m 0755 ccdv @ccdv
> 
> > /home/dev/axis/devboard_82/tools/build/binmake[3]: Leaving
> 
> > directory `/home/dev/axis/devboard_82/tools/build/ccdv'
> 
> > make -C scripts install
> 
> > BINDIR="/home/dev/axis/devboard_82/tools/build/bin"make[3]:
> 
> > Entering directory `/home/dev/axis/devboard_82/tools/build/scripts'
> 
> >
> 
> > install -p -d /home/dev/axis/devboard_82/tools/build/bin
> 
> > install -p -m 0755 arpping axls.pl axrequires boot_argus boot_elinux
> 
> > boot_linux buildsrc compiler-version convertcomments.pl cris-sym-tab
> 
> > cvs_diff cvs2cl.pl diff_prodspec find-needed-shlibs.pl fix_cvsroot
> 
> > gcc_crisgenindex init_env_elinux.pl install_elinux ksymoops-cris
> 
> > meta_name2nbrmke2fs_elinux mkfdscript mknod_elinux mkprod mkptable
> 
> > mkswinfo multiflash
> 
> > optlibs padflashimage prodspec.pm prodspec2configure remotecmd
> 
> > strrpl.pl/home/dev/axis/devboard_82/tools/build/bin
> 
> > ln -sfn gcc_cris
> 
> > /home/dev/axis/devboard_82/tools/build/bin/arm_linux_gccmake[3]:
> 
> > Leaving directory `/home/dev/axis/devboard_82/tools/build/scripts'
> 
> > make -C axis_internal_scripts install
> 
> > BINDIR="/home/dev/axis/devboard_82/tools/build/bin"
> 
> > make[3]: Entering directory
> 
> > `/home/dev/axis/devboard_82/tools/build/axis_internal_scripts'
> 
> > install_elinux -p -d /home/dev/axis/devboard_82/tools/build/bin
> 
> > install_elinux -p -m 0755 axis2sf cvsget.cgi jasm juliette_regs.pl
> 
> > sf2axisTGasm.pl /home/dev/axis/devboard_82/tools/build/bin
> 
> > make[3]: Leaving directory
> 
> > `/home/dev/axis/devboard_82/tools/build/axis_internal_scripts'
> 
> > make -C genromfs install
> 
> > BINDIR="/home/dev/axis/devboard_82/tools/build/bin"
> 
> > make[3]: Entering directory
> 
> > `/home/dev/axis/devboard_82/tools/build/genromfs'
> 
> > gcc -Wall -Wshadow -I/home/dev/axis/devboard_82/target/host/include
> 
> > -O0 -g
> 
> > -fno-omit-frame-pointer -c -o genromfs.o genromfs.c
> 
> > genromfs.c: In function `processdir':
> 
> > genromfs.c:690: warning: declaration of `dirfd' shadows global
> 
> > declarationgenromfs.c:692: warning: declaration of `link' shadows
> 
> > global declaration
> 
> > genromfs.c: In function `main':
> 
> > genromfs.c:839: warning: implicit declaration of function `time'
> 
> > genromfs.c:839: warning: long unsigned int format, unsigned int arg
> 
> > (arg 3)
> 
> > gcc -L/home/dev/axis/devboard_82/target/host/lib genromfs.o -o
> 
> > genromfs_elinux install_elinux -p -d
> 
> > /home/dev/axis/devboard_82/tools/build/bin
> 
> > install_elinux -p -m 0755 genromfs_elinux
> 
> > /home/dev/axis/devboard_82/tools/build/bin
> 
> > make[3]: Leaving directory
> 
> > `/home/dev/axis/devboard_82/tools/build/genromfs'
> 
> > make -C imgsum install
> 
> > BINDIR="/home/dev/axis/devboard_82/tools/build/bin"make[3]:
> 
> > Entering directory `/home/dev/axis/devboard_82/tools/build/imgsum'
> 
> > gcc -Wall -Wshadow -I/home/dev/axis/devboard_82/target/host/include
> 
> > -O0 -g
> 
> > -fno-omit-frame-pointer -L/home/dev/axis/devboard_82/target/host/lib
> 
> > imgsum.c -o imgsum
> 
> > install_elinux -p -d /home/dev/axis/devboard_82/tools/build/bin
> 
> > install_elinux -p -m 0755 imgsum
> 
> > /home/dev/axis/devboard_82/tools/build/binmake[3]: Leaving
> 
> > directory `/home/dev/axis/devboard_82/tools/build/imgsum'
> 
> > make -C mkcramfs install
> 
> > BINDIR="/home/dev/axis/devboard_82/tools/build/bin"
> 
> > make[3]: Entering directory
> 
> > `/home/dev/axis/devboard_82/tools/build/mkcramfs'
> 
> > gcc -Wall -Wshadow -I/home/dev/axis/devboard_82/target/host/include
> 
> > -O0 -g
> 
> > -fno-omit-frame-pointer -I. -
> 
> > L/home/dev/axis/devboard_82/target/host/libmkcramfs.c -lz -o
> 
> > mkcramfs gcc -Wall -Wshadow
> 
> > -I/home/dev/axis/devboard_82/target/host/include -O0 -g
> 
> > -fno-omit-frame-pointer -I. -
> 
> > L/home/dev/axis/devboard_82/target/host/libcramfsck.c -lz -o
> 
> > cramfsck In file included from /usr/include/linux/fs.h:12,
> 
> >
> 
> > from cramfsck.c:56:
> 
> > /usr/include/linux/wait.h:4: warning: `WNOHANG' redefined
> 
> > /usr/include/bits/waitflags.h:26: warning: this is the location 
> of the
> 
> > previous definition
> 
> > /usr/include/linux/wait.h:5: warning: `WUNTRACED' redefined
> 
> > /usr/include/bits/waitflags.h:27: warning: this is the location 
> of the
> 
> > previous definition
> 
> > cramfsck.c: In function `usage':
> 
> > cramfsck.c:110: warning: declaration of `stream' shadows global
> 
> > declarationcramfsck.c: At top level:
> 
> > cramfsck.c:376: warning: declaration of `fd' shadows global
> 
> > declarationcramfsck.c: In function `do_uncompress':
> 
> > cramfsck.c:377: warning: declaration of `fd' shadows global
> 
> > declarationcramfsck.c: In function `do_file':
> 
> > cramfsck.c:510: warning: declaration of `fd' shadows global
> 
> > declarationinstall_elinux -p -d
> 
> > /home/dev/axis/devboard_82/tools/build/bininstall_elinux -p -m 0755
> 
> > mkcramfs cramfsck
> 
> > /home/dev/axis/devboard_82/tools/build/bin
> 
> > make[3]: Leaving directory
> 
> > `/home/dev/axis/devboard_82/tools/build/mkcramfs'
> 
> > make -C mkfs.jffs install
> 
> > BINDIR="/home/dev/axis/devboard_82/tools/build/bin"
> 
> > make[3]: Entering directory
> 
> > `/home/dev/axis/devboard_82/tools/build/mkfs.jffs'
> 
> > gcc -Wall -Wshadow -I/home/dev/axis/devboard_82/target/host/include
> 
> > -O0 -g
> 
> > -fno-omit-frame-pointer -L/home/dev/axis/devboard_82/target/host/lib
> 
> > mkfs.jffs.c -o mkfs.jffs
> 
> > mkfs.jffs.c: In function `write_file':
> 
> > mkfs.jffs.c:230: warning: unused variable `size'
> 
> > install_elinux -p -d /home/dev/axis/devboard_82/tools/build/bin
> 
> > install_elinux -p -m 0755 mkfs.jffs
> 
> > /home/dev/axis/devboard_82/tools/build/bin
> 
> > make[3]: Leaving directory
> 
> > `/home/dev/axis/devboard_82/tools/build/mkfs.jffs'
> 
> > make -C mkfs.jffs2 install
> 
> > BINDIR="/home/dev/axis/devboard_82/tools/build/bin"
> 
> > make[3]: Entering directory
> 
> > `/home/dev/axis/devboard_82/tools/build/mkfs.jffs2'
> 
> > cc -I. -O2 -Wall -c -o crc32.o crc32.c
> 
> > gcc: No input files
> 
> > make[3]: *** [crc32.o] Error 1
> 
> > make[3]: Leaving directory
> 
> > `/home/dev/axis/devboard_82/tools/build/mkfs.jffs2'
> 
> > make[2]: *** [mkfs.jffs2] Error 2
> 
> > make[2]: Leaving directory `/home/dev/axis/devboard_82/tools/build'
> 
> > make[1]: *** [tools] Error 2
> 
> > make[1]: Leaving directory `/home/dev/axis/devboard_82'
> 
> > make: *** [everything] Error 2
> 
> >
> 
> >
> 
> > What seems strange is that the stock GCC is invoked as the
> 
> > compiler.  Maybe
> 
> > there's something wrong with the environment.  Shouldn't the CRIS-
> 
> > GCC be
> 
> > invoked?
> 
> >
> 
> > I checked everything I could think of. The only issue I found was
> 
> > that in
> 
> > the Makefile, the statement:
> 
> >
> 
> > PATH := $(PATH):/usr/local/cris/r56
> 
> >
> 
> > is set. However the r56 directory does not exist under cris. The ls
> 
> > of cris
> 
> > is:
> 
> >
> 
> > The path is:
> 
> >
> 
>
PATH=/home/dev/axis/devboard_82/tools/build/bin:/home/dev/axis/devboard_82/t
> 
> > ools
> 
> >
> 
>
/build/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr
> 
> > /X11
> 
> > R6/bin:/root/bin:/usr/local/cris:/usr/local/cris
> 
> >
> 
> > which puts the /usr/local/cris at the end of the parsed path.  Even
> 
> > thisdoesn't point to bin, which is another level down.  Also
> 
> > there's no link
> 
> > file to gcc in the cris directory (or bin) to replace the cris
> 
> > compiler with
> 
> > gcc.
> 
> >
> 
> > I'm building on a Linux 7.2 box with a 2.4.7-10 kernel.
> 
> >
> 
> > Maybe the RPM install of CRIS didn't work (although it indicated
> 
> > success) or
> 
> > perhaps I should do a binary build?  I'm beginning to suspect this
> 
> > is at
> 
> > least part of the problem.
> 
> >
> 
> > Anyone have any suggestions?
> 
> >
> 
> >
> 
> >
> 
> 
> 
>