| Next | Previous | Contents |
The following are development steps of Embedded Linux. Seeing these steps, you will know how to construct development environment for embedded linux.
(2) Installing Embedded Linux GUI Toolkit, development kit to host PC (3) Compiling bootloader, kernel image, filesystem for target board (4) Porting images compiled at the preceding step to target board (5) Porting Embedded Linux GUI Toolkit to target board (6) Developing software for target board in host PC (7) Porting the developed software to
target board |
This document is written on the assumption that you install "Red Hat Linux 8.0" by workstation type on your host PC. If you install other distributions on your PC, some problems related to library etc can be happened. So if you want to prevent getting into trouble and spare development time, install ¡°Red Hat Linux 8.0¡± by workstation type on your PC.
If you want to know more detail things about ¡°Red Hat Linux 8.0 Installation¡±, visit the bellowing site.
http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/install-guide/
The following is summary of each chapter.
Chap4 |
In this chapter, we explain hardware and software which are needed to construct development environment. And in case software, how to install it is also explained. |
Chap5 |
In this chapter, we explain how to compile bootloader, kernel image and filesystem for target board. |
Chap6 |
In this chapter, we explain how to port the compiled images to target board by using cables which connect between target board and host PC. |
Chap7 |
In this chapter, we explain how to compile and test application programs of embedded linux by using development environment constructed on host PC. |
MIZI-tool-box uses three cables(JTAG cable, Serial cable, Ethernet cross cable) for communication between target board and host PC. Usually each cable connects two systems when the cable needs to use. Then we introduce each cable at the following.
In here, we don¡¯t deal with the principal or hardware configuration
of JTAG. The following contents are written about the roles of JTAG when developing
embedded system.
When embedded system can¡¯t be bootable due to corruption of bootloader or when
we write bootloader to flash ROM for the first time, we use JTAG cable. In those
cases, we have to download bootloader from host PC to embedded system by using
JTAG cable and then write the downloaded bootloader to flash ROM of embedded
system.
JFlash program is used for writing bootloader (for detail, downloading bootloader
from host PC, then writing bootloader to flash ROM that locates inside embedded
system.)
S/W Vendor |
Embedded system |
Program |
Cable |
MIZI Research |
MIZI-tool-box |
Jflash-s3c2410 |
JTAG parallel cable |
Serial cable primary uses for communicating between host PC user
and embedded system. Serial cable is used when host PC user sends commands to
embedded system and when embedded system displays outputs of commands or states
of itself etc. to host PC.
Its transfer rate is so slow that it is usually used to handshake small size
data. But when high-speed communication devices did not exist, it sometimes
used to transfer bulk data like kernel or filesystem image.
Serial cable has problem to handshake bulk data between
two systems because of low transfer speed. To solve this problem, embedded system
offers Ethernet cable that can transfer data by high-speed rate.
Workstation installation installs software development tools as well as a graphical desktop environment(X-Window System). In this case, almost basic development tools will be installed, so you can install and use MIZI Linux 1.5 SDK without additional works.
Personal desktop installation installs a graphical desktop
environment(X-Window System) and creates a system ideal for desktop use.
But it doesn't install any RPMS related software development tools.
We don't supply the basic development tools that Redhat provides,
so if you use MIZI Linux 1.5 SDK well, you have to find and install
software development tools from Redhat site.
Software development tools include the bellowing programs as basic tools to develop;
Software Development tools
|
Use this version or over |
binutils
|
binutils-2.13.90.0.2-2 |
gcc
div> |
gcc-3.2-7 |
gcc-c++ |
gcc-c++-3.2-7 |
glibc-kernheaders |
glibc-kernheaders-2.4-7.20 |
glibc-common
|
glibc-common-2.3.2-4.80 |
glibc
|
glibc-2.3.2-4.80 |
glibc-devel
|
glibc-devel-2.3.2-4.80 |
patch
|
patch-2.5.4-14 |
make
|
make-3.79.1-14 |
minicom
|
minicom-2.00.0-6 |
Etc.
|
... |
You can get above RPMS at Redhat site.
ftp://ftp.redhat.com:/pub/redhat/linux/8.0/en/os/i386/RedHat/RPMS
Download above RPMS at your local directory and install these by this order.
| # rpm -Uvh RPMS_name |
* Please update your glibc RPM package to 2.3.2 from Red Hat update site.
After securing 1GB disk space in your host PC, make ¡°linuette¡±
directory.
Mount CR-Rom which ¡°MIZI Linux SDK¡± is inserted at /mnt/cdrom.
| # mkdir /linuette # cd /mnt/cdrom/ # tar cf - . | ( cd /linuette ; tar xvf - ) |
Login by root account then, install all RPMs under /mnt/cdrom/RPMS directory by the following command.
| #rpm -Uvh *.rpm |
If all RPMs are installed well, the basic development environment including cross-compiler is constructed in your host PC.
To develop embedded Linux kernel, device driver, application,
etc., you have to construct cross-compile environment.
Cross-compile environment is development environment that is embodied in host
PC to develop linux for embedded system. To create embedded program, we would
have to compile the program directly in target board or compile that in host
PC for target board processor. But because of restricted resources (lack of
memory or storage), compiling in target board is not easy.
So we construct cross-compile environment to compile embedded program sources
in host PC instead of target board.
To construct the environment, install tool chain for target board processor.
Tool chain is collection of various utilities and libraries which are needed
to compile embedded program sources.
Normally, Tool chain offered by GNU is used for developing Linux.
The steps of installing tool chain are as following.
binutils --> header file link --> gcc (c compiler) --> glibc
--> gcc (c++ compiler)
Compiling compiler is not easy because of the problem related to bootstrap.
In Here, we install tool chain easy by using RPMs of "MIZI Linux SDK".
| cross-armv4l-binutils-2.10-3mz.i386.rpm |
| GNU binary utilities(assembler, linker, various object file utilities) are collected in here. |
| cross-armv4l-kernel-headers-2.4.5_rmk7_np2-1mz.i386.rpm |
| It includes C header files for Linux kernel. The header files defines structures and constants that are needed for building most standard programs and are needed for rebuilding the kernel. |
| cross-armv4l-gcc-2.95.2-10mz.i386.rpm |
| It adds C support to the GNU compiler collection. It doesn¡¯t include the standard C library. |
| cross-armv4l-glibc-2.2.1-2mz.i386.rpm |
| It contains the most important sets of shared libraries, the standard C library and the standard math library. |
| cross-armv4l-gcc-c++-2.95.2-10mz.i386.rpm |
| It adds C++ support to the GNU compiler collection. It includes the static standard C++ library and C++ header files. The library for dynamically linking programs is available separately. |
RPMS directory of MIZI Linux SDK includes not only tool chain but also the following RPMS like ¡°minicom¡±, etc. These utilities that ate applied by RPM format are necessary for MIZI-tool-box developing.
| cross-armv4l-libfloat-1.0-3mz.i386.rpm |
| It contains a shared library of functions implementing the software floating points calls emitted by GCC when -msoft-float flag is used. |
| cross-armv4l-zlib-1.1.3-5mz.i386.rpm |
| It provides in-memory compression and decompression functions. |
| cross-armv4l-jpeg-6b-2mz.i386.rpm |
| It contains a library of functions for manipulating JPEG images, as well as simple client programs for accessing the libjpeg functions. |
| cross-armv4l-jpeg-devel-6b-2mz.i386.rpm |
| It includes the header files and static libraries necessary for developing programs which will manipulate JPEG files using the libjpeg library. |
| linuette_sdk_arm-1.5-1mz.noarch.rpm |
| MIZI Linux source development kit for arm |
| linuette_sdk_x86-1.5-3mz.noarch.rpm |
| MIZI Linux source development kit for x86 |
| minicom-1.82.1-8mz.i386.rpm |
| Minicom is a simple text-based modem control and terminal emulation program. |
If Installing ¡°MIZI Linux SDK¡± is finished, the total environment
to develop embedded system is constructed, of course, including GUI toolkit
and development Kit. But owing to ¡°MIZI Linux SDK¡± is composed to MIZI-tool-box
exclusively, if you use different target board, you have to compose toolkit
newly.
Among embedded systems, especially PDA, smart phone, web pad, set-top box etc.
use GUI which applies window system on touch screen for communicating between
user and system. The developer who uses window system has to consider window
manager and requirements of application developing etc.
MIZI Research provides MIZI Linux GUI library to develop applications
which run on embedded linux.
MIZI Linux GUI library is provided by RPMs format that are located in RPMS directory
of MIZI Linux SDK.
RPM |
Installed location |
|
For X86 |
linuette_sdk_x86-1.5-3mz.noarch.rpm |
The files are installed under /opt/host/i386/i386-unknown-linux. |
For ARM |
linuette_sdk_arm-1.5-1mz.noarch.rpm |
The files are installed under /opt/host/armv41/armv41-unknown-linux. |
All files under this directory are already compiled, so you can test and use
binary files directly.
If you know the structure of whole directory, you can understand development process more easily.
Now we explain each directory very simply.
Linuette |
It is the top directory of MIZI Linux SDK and has the following subdirectories. |
Documents |
All documents that are needed to refer are located in this directory. |
RPMS |
RPM packages to construct cross-compile environment are located in here. |
SRPMS |
Source RPMs of RPM packages are located in here. |
host |
Files related to Qt library are located under this directory. |
target
|
This directory includes the whole things to port embedded programs to target board. |
| Next | Previous | Contents |