[ELDK] Kernel selection determined by toolchain?

Wolfgang Denk wd at denx.de
Sun Feb 1 11:43:53 CET 2009

Dear Jerry,

In message <8c09713c0901311951t16e18f8ak7867e0d2f4f43f6d at mail.gmail.com> you wrote:
> > Out or curiousity: what exactly is your reason for using uClibc?
> No special reason, i just know it is relative smaller than  glibc  and  is
> more fit for small embedded  system,Actually, i do all the these by myself
> just for study.

How many really small embedded systems do we have today? Is there
really anybody out there struggeling to fit his code in 8 MB of RAM?

-> size libuClibc-0.9.27.so
   text    data     bss     dec     hex filename
 300498    5772   18092  324362   4f30a libuClibc-0.9.27.so

-> size libc.so.6
   text    data     bss     dec     hex filename
1076362   16560    9916 1102838  10d3f6 libc.so.6

(1102838 - 324362) / 1024 = 760 kB

So you save less than 0.75 MB in your system - and buy a lot of
restrictions, incompatibilities and frustration.

I have to admit that I am not exactly a fan of uClibc, and I don't
recommend using it for most serious commercial projects.

> So i got the procedure  as following:
> 1)Compiling kernel itself  with any toolchain.
> 2)Rebuilding the toolchain with the kernel(made by step 1) header files.

...assuming you really ant to rebuild the toolchain. With  ELDK  this
is normally not necessary - on contrary, one of ideas behind ELDK was
to  provide  a  ready-to-use toolchain which you can just use without
having to rebuild everything from scratch.

> 3)Using the toolchain(made by step 2) to compile application which will work
> on the kernel.

... and most likely other kernel version, at least  as  long  as  you
stick  within  the same major release series (i. e. don;t try using a
2.6 generated toolchain with a 2.4 kernel or  vice  versa  -  it  may
work, or may not).

> I am still reading <<Linux device drivers>> and the <<Understanding the
> Linux Kernel>> and found myself can not finish them in a short time.

This is normal. There is a lot of information to digest, and I don't
know of a quick way to "download" a few years of experience...

> But when i am trying to port linux on my board(arm 9), always concused by
> some basic question like "How does my display driver get its device
> address?"What should i do and what kind of Docs should i read if i want to
> custom kernel for my board further than "make menuconfig".

Apply common sense. Use search engines and mailing list archives -
maybe other people have been asking similar questions before. Read
the source code. Learn to use tools like grep and git to search for
information in the Linux kernel sources. Search the Documentation
directory - it has a lot of information which seems to be ignored by
many people.

> I still have no job on embedded development. They just employ some kind of
> people who has experience in this field¡£I act like a fly with no direction,
> trying its  effort to fly but  can not getting in the right direction.
> Could you give me some suggestion on how to go futher,how to develop myself?

The only efficient way of learning these thing that I know is by
doing. Try to find a project, maybe just a hobby project for yourself,
and do some work in that area. Get experience.

Best regards,

Wolfgang Denk

DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
God made machine language; all the rest is the work of man.

More information about the eldk mailing list