world leader in high performance signal processing
Trace: » basic_compilation

Basic Compilation

The latest version of Linux for the Blackfin processor can be obtained from the Blackfin Linux website. For a list of processors which the latest release supports, check out the uClinux Features page.

Click on the Files tab to obtain the latest release of our uClinux distribution.

The Blackfin toolchain must be installed before the uClinux distribution can be compiled. For more information, see Installing the Blackfin Toolchain.

If already running a Linux host, check out the configure section of Install & Configure Linux in order e.g. to avoid error messages in different make processes.

Depending on the version of uClinux there may be a variety of file types available. These file types are summarized below:

  • files with no extension - These files can be anything. Use the unix file command to determine what file type it is.
    user@host:~/uClinux-dist> file linux-2.6.x/linux
    linux-2.6.x/linux: ELF 32-bit LSB executable, version 1 (SYSV), statically linked, not stripped
    user@host:~/uClinux-dist> file linux-2.6.x/Makefile
    linux-2.6.x/Makefile: ASCII English text
    user@host:~/uClinux-dist> file config.arch
    config.arch: symbolic link to `vendors/AnalogDevices/BF537-EZKIT/config.arch'

ELF files are pre‑compiled memory images ready for download to the target system. They provide a good starting point because no other steps are needed before running on the target board.

  • .tar.bz2 files - These files are compressed archives of files. They must be decompressed with bunzip2 and extracted with tar. The source can then be compiled into an ELF, or compressed binary file which can be loaded onto the target system. Compiling the uClinux distribution from source allows for customization of the kernel as well as a choice of helper applications.
  • .tar.gz files - The same as *.tar.bz2 files except that they must be decompressed with gzip.
  • Patch files - These files apply changes and bug fixes to the Linux kernel. Instructions on applying a particular patch can be found in the release description.

Instructions on compiling the uClinux distribution from source are given below.

First decompress and extract the source files by enter the following commands:

bash$ bunzip2 -d <filename>  **(for *.bz2 files) 
bash$ gzip -d <filename>**  (for *.gz files) 
bash$ tar -xvf <filename of unzipped file>

Apply any patches as per instructions given in the release description. Generally only the latest patch will need to be applied. Next change directory (cd) to the uClinux-dist directory that was created and type the following command:

bash$ make menuconfig

If you would like to change a platform, e.g, from BF533 STAMP to BF537 STAMP, please do a “make clean” before compile. Otherwise, there may be unexpected errors. Also if you met unexpected errors while compiling kernel, you may try to do a “make clean”.

Some users may be wish to use make xconfig which is a graphical user interface. To use this newer versions of the kernel may require the QT GUI development libraries to be installed. If these libraries are not installed xconfig may not work. If xconfig does not work use the make menuconfig instead. make xconfig presents a graphical interface while make menuconfig presents a text based interface.

After a few commands are executed the Embedded Linux Configuration window should be displayed:

Vendor/Product Selection  --->
Kernel/Library/Defaults Selection  --->
Load an Alternate Configuration File
Save an Alternate Configuration File

Click on Vendor/Product Selection.

The Vendor/Product Selection window should now appear:

--- Select the Vendor you wish to target
Vendor (AnalogDevices)  --->
--- Select the Product you wish to target
AnalogDevices Products (BF537-STAMP)  --->

Ensure Analog Devices is selected under Vendor.

Ensure BF533 is selected under ADI Products when compiling for the STAMP board.

Click Main Menu to return.

Back at the Embedded Linux Configuration window click on Kernel/Library/Defaults Selection.

The Kernel/Library/Defaults Selection window should now appear:

--- Kernel is linux-2.6.x
--- Libc is    None
[ ] Default all settings (lose changes)
[ ] Customize Kernel Settings
[ ] Customize Application/Library Settings
[ ] Update Default Vendor Settings

Select 'y' for Customize Kernel Setting and Customize Vendor/User Settings

Click Main Menu then click Save and Exit.

After a few more commands are executed the Kernel Configuration window should be displayed:

    General setup  --->
[*] Enable loadable module support  --->
[*] Enable the block layer  --->
    Preemption Model (Voluntary Kernel Preemption (Desktop))  --->
    Blackfin Processor Options  --->
    Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
    Executable file formats  --->
    Power management options  --->
    CPU Frequency scaling  --->
    Networking  --->
    Device Drivers  --->
    File systems  --->
[*] Instrumentation Support  --->
    Kernel hacking  --->
    Security options  --->
[ ] Cryptographic API  --->
    Library routines  --->
    Load an Alternate Configuration File
    Save Configuration to an Alternate File

The kernel configuration window allows you to configure various kernel options and device drivers. If this is the first time compiling the kernel it is recommenced that you keep the default options by choosing File-Save followed by File-Exit. Later you can try recompiling the kernel with different options enabled.

Some options are experimental and may not compile or produce stable results.

After a few more commands are executed the User Application Configuration window should be displayed:

Library Configuration  --->
Core Applications  --->
Flash Tools  --->
Filesystem Applications  --->
Network Applications  --->
Miscellaneous Applications  --->
BusyBox  --->
Tinylogin  --->
MicroWindows  --->
Games  --->
Miscellaneous Configuration  --->
Debug Builds  --->
Blackfin test programs  --->
Blackfin app programs  --->
Blackfin canned demos  --->
Blackfin device drivers (Experimental)  --->
Blackfin build options  --->
Load an Alternate Configuration File
Save an Alternate Configuration File

This window allows you to select various helper applications to include. If this is the first time compiling the kernel it is recommenced that you keep the default options by simply clicking Save and Exit. Later you can try recompile uClinux with different helper applications added.

Some programs are experimental and may not compile or produce stable results.

Configuration is now complete. Next the kernel and root file system must be updated. To do this enter the command:

bash$ make

Compiling the kernel may take several minutes.

After the kernel has compiled successfully, a bunch of image files will be produced in the images subdir that can be loaded onto the target system via U-Boot. For information on these image files, see the images page. For information on U-Boot, see the U-Boot section of this document.

Standard input and output in Linux are handled through a serial connection. To communicate with the target system a terminal program and a serial link are required. For more information on setting up a terminal program to communicate with Linux see Terminal Programs on page .

The default username for the Blackfin login is root and the password is uClinux.

Complete Table of Contents/Topics