Mini6410/Linux-2.6.38 Hangs on bootup

Steve Montgomery
I have installed the tool chain provided on my cd and verified the correct
version number and paths. I unzipped the linux-2.6.38-20111205.tgz archive
to a project directory.  I then copied the config_mini6410_a70.config to
.config per the instructions.  I then used "make zImage" to build the
kernel.  The build finished fine and generated a kernel that was 3,785KB.

I have prepared an SD card with the default image and filesystems provided
on the second CD and tested them.  By setting the .ini file to Run and
setting the boot mode switch to SD Card, I can boot Linux and the QT GUI
comes up.  I have a terminal emulator connected to the serial port (COM0:)
of the development board and I can see all of the start up messages.

So, by using the provided image files, it all works.

However, when I copy my zImage file to the /images/linux directory on the
SD Card, set the .ini file to boot zImage instead of zImage_a70, and power
up the system, it hangs after the message in the terminal "done, booting
the kernel."

My compiled zImage file should be identical to the zImage_a70 file on the
CD because I compiled the same source code with the same tool chain.  Yet,
the zImage_a70 file has a different size (3676KB).  That tells me that mine
is not a binary equivalent of the reference I was provided.

In short, the zImage_a70 file provided on cd from FriendlyARM works and the
zImage I compiled with the config_mini6410_a70 does not.  The only
differences between my development system and the instructions are:

1. I put the kernel source in a different directory
2. I am running the latest version of Ubuntu.  I tried to get Fedora 9 like
the instructions call for, but it is not available that I can find.

This is for a commercial project.  I am in the process of evaluating the
board for a new product we are developing and I need to be able to compile
the kernel as we will definitely be making changes to it in future.

PLEASE HELP!!

Steve Montgomery
Well, after that long winded explanation, I actually found the fix on my
own.

I found a 2.6.36 archive and compiled that.  When I tried to boot the
resultant zImage, it was still broke but it got a lot further.  One of the
things I noticed in the terminal was the the toolchain version was 4.6.1
not 4.5.1.

So that got me digging.  I have the latest CodeSourcery tools installed on
my dev machine as well, but I took them out of the path... or so I thought.
 In fact, they were still in the path.  Even though make will use
arm-linux-gcc, it still points to full binary which has the same name.

So, I removed the the CodeSourcery chain from the path and recompiled. Once
I did, I found that the new zImage I just created and the one that comes on
the cd are exactly the same size and, whats more, it boots when I put it on
the SD card.

I took the time to write all of this because I hope it helps someone out in
the future.  I wasted the better part of 2 days chasing this.  Not being a
Linux expert, the PATH thing didn't occur to me.

Anyways... hope it helps.

TheRegnirps
Thanks Steve for the valuable heads up. These kinds of time gobblers can
really wreck a schedule.