Hello,
I have a JFFS2 root file system that takes about 20MB on the NAND flash of my ARM9 processor, and it is working fine with Linux 3.2 (Ångström distro).
I want to convert the JFFS2 into a RAM file system, but before that, I must minimize its size so that it won't make the overall kernel too large. The problem is, I don't know how to do that.
This forum thread explains the necessary components of a root file system pretty well. It suggests, for instance, that the /lib directory is needed only if the executables are linked dynamically.
I build my executable with
so I expect it to be statically linked only. When I issue the
command, I get: "not a dynamic executable". However, if I type:
I get:
Code:
ELF 32-bit LSB executable, ARM, EABI5, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 2.6.16, not stripped
So does my program need any shared object in the /lib directory (like pthread, for example)?
I tried removing all shared objects in the /lib directory, which resulted in all programs (including shell commands) malfunctioning, stating that needed shared libraries are missing.
Long story short, how can I know which files in my 20-MB root file system
(not just library files, but files of any kind) are expendable?
Thanks in advance,
OkCalis