Api13 wrote: ↑I am afraid that I do not have enough knowledge to determine this. Are you talking about the package dependency on other libraries ?
No, I am referring to what dependencies the (ELF) executable file that you're trying to run requires.
These runtime dependencies could be a linker/loader and libraries.
When one of those dependencies cannot be located in the expected places, the shell responds with the "not found" error message.
"
Package dependency" is an administrative issue.
The typical embedded Linux system is not administered like a desktop PC, and installing packages may not be a capability.
"
Package dependencies" can be resolved when using Buildroot to configure the root filesystem . (The OpenWrt build system is based on Buildroot.)
Before you go off building stuff, shouldn't you determine what the OpenWrt-built executable expects that the Linux4SAM-built rootfs cannot satisfy?
There are utilities that will tell you everything about an ELF executable, but typically they're not available on an embedded system.
If you have `strace` on the target, then you can generate a report that will pinpoint the
open() syscall that failed.
Otherwise the simplest method to extract the dependencies is the piped commands:
Code: Select all
$ strings <executable_file> | less
The first line should identify the linker/loader.
That's followed by sets of lines, each set is a line for a library name, and lines for each entry-point expected from that library.
Since libraries tend to have names like
libxxx
.so.n, they are easy to differentiate from entry-point names.
When the strings turn into nonsense text, you've gone past the list of dependencies.
Gather the list of dependencies, and compare them to what is in the target's rootfs.
Regards