Did you know - Google aren't very nice.  Apparently we're all evil pirates here on OpenIPCam, and they cancelled my adsense account due to that.  Sigh.

Author Topic: Setting up a build environment for the N745 BSP  (Read 5615 times)

  • No avatar
  • *****
February 03, 2011, 10:47:11 am
Note that this differs from our instructions on building a dev environment for uClinux.
See here for instructions on that [ ]

If you've followed our previous examples, you'll note that we should already have a compiler chain and uClinux installed.

We'll be installing another compiler chain for the older 2.4.20 based N745 BSP, so we can compile.

We need both the current uClinux, and the older 2.4.20 version, as we'll need to borrow files from the newer version in order to install certain drivers.

Lets start.

First off, we'll need to download the BSP (Board Support Package) for the CPU.
I've placed a copy of that here:
Open up a terminal window, and enter the following:

Code: [Select]
sudo su
mkdir -p /home/downloads
cd /home/downloads
apt-get install axel

That will download the BSP into /home/downloads.
Lets decompress it now

Code: [Select]
tar -xzvf W90N745BSP05262008.tar.gz
cd W90N745BSP/BSP
tar -xzvf W90N745.tar.gz
cd W90N745_PR

This will decompress the BSP, and start the installer.
We'll need to tell the installer where to put our files (I recommend /home/N745)

Code: [Select]
successfully finished installing arm_tools.tar.gz
now begin to install build.tar.gz,TestApps.tar.gz and uClinux-dist.tar.gz
Please enter your absolute path for installing build.tar.gz, TestApps.tar.gz and uClinux-dist.tar.gz:

If you see warnings about usleep not found during the install process, feel free to ignore them.

Assuming you followed my recommendations, we should have a copy of the BSP installed at


In order to make sure that we start from a clean slate, we'll need to clean the BSP build folder (which imho should have been done by Winbond prior to compressing the BSP.)

We'll also need to add the build-tools to our PATH.  The BSP has put them into /usr/local/arm_tools

Lets test to see if they work

Code: [Select]

If you see this -
 arm-elf-gcc: No input files
It means we're good to go.

If, however you get an error saying something like
bash arm-elf-gcc no such file or directory
You're probably running on a 64bit OS, and haven't installed a 32bit dynamic loader.

If thats the case, install libc6-i386

Code: [Select]
apt-get install libc6-i386

Lets continue.

Code: [Select]
cd /home/N745/W90N745-uClinux/uClinux-dist
make clean

In the above, we change to the BSP folder, add the compile tools to our path, and then clean out the old .depend, .o files from our BSP folder, so we have a nice clean slate to start from.
This does not however remove the vendor configuration for the board, so don't worry about that!

For test purposes lets make sure that it compiles (as a just in case test).
Linux 2.4.x requires a make dep prior to compiling, so we need to run that first.

Code: [Select]
make dep

You should see a few hundred pages scroll by rather quickly (depending on the speed of your computer!), and if all goes well,we should see a new linux.bin generated in ../image

Code: [Select]
ls -al ../image/
total 2480
drwxr-xr-x 2 root root    4096 May 26  2008 .
drwxr-xr-x 6 root root    4096 Feb  3 17:25 ..
-rwxr-xr-x 1 root root 1065308 Feb  3 17:37 linux.bin
-rw-r--r-- 1 root root  514896 May 26  2008
-rw-r--r-- 1 root root  618496 May 26  2008 romfs.img
-rw-r--r-- 1 root root  326900 May 26  2008

If you look closely, the compile time for our linux.bin above is newer than the rest of the files, which means its fresh from our make compile..

At this point, we have 2 compiler environments running; one for our BSP, and one for the latest uClinux.

[I've added these instructions to the wiki also]

« Last Edit: June 04, 2011, 07:15:24 pm by admin »

  • *****
April 05, 2011, 08:56:03 am
Thank you. I got it working. My only issue was that I needed to change ownership of N745/ to my uid.

March 12, 2012, 11:45:19 pm
Im not clear on something; whats the purpose of having the two separate build environments, and having the two separate uClinux folders? if the uClinux folder from the BSP has all of the platform-specific stuff needed for our code, then why did we even download the uClinux version from sourceforge? Even though its a more recent version uClinux than the BSP's version, its still missing the necessary platform support files... whats the goal here? please clarify...

So can the BSP's vendor-specific stuff be merged into the uClinux folder that was downloaded from sourceforge? how would this be accomplished?

  • No avatar
  • *****
March 21, 2012, 08:09:14 pm
We need both the current uClinux, and the older 2.4.20 version, as we'll need to borrow files from the newer version in order to install certain drivers.

Mostly due to that.

Anyway, the 2.4 series is a bit outdated, now that we can use 2.6 or 3.0 for development which is much better driver wise, as we can use v4l2..

April 03, 2012, 08:21:51 am
Thanks for the information, learned a lot. Have you ever tried running the N745 on QEMU?