I'm very confused about running a program on the Mini2440. Here are the steps I followed: 1. I created a simple ARM Linux program with arm-linux-gcc called "cloud." 2. I copied it to the Mini2440's /usr/bin directory with ftp. 3. I ran chmod on the file to make it executable. 4. I can find it with "which" but when I try to execute it... [root@FriendlyARM /]# which cloud /usr/bin/cloud [root@FriendlyARM /]# cloud -/bin/sh: cloud: not found [root@FriendlyARM /]# ls -l /usr/bin/cloud -rwxr-xr-x 1 root root 9852 Oct 7 03:56 /usr/bin/cloud [root@FriendlyARM /]# I don't know what to do next ... please help! - Bill
Problems running a simple program...
try echo $PATH if /usr/bin isn't there then you need to run your program /usr/bin/cloud or add /usr/bin to $PATH variable.
If he can find it with which then it's already in PATH... try to type directly /usr/bin/cloud and see what happens. as said above, check the ftp transfer mode.
Thanks for the replies! No, the shell returns the same error whether I try ./cloud or /usr/bin/cloud ... I did notice (when Googling) that there are others who have a similar problem but nobody seems to know why. sigh. :( http://www.google.com/search?hl=en&q=Mini2440+%22-%2Fbin%2Fsh%3A%22+...=
Progress!!! I thought that the problem might be related to libraries that the program wants to dynamically load and now know I was correct. I didn't have an "ldd" for arm programs, but I did use this to see what libraries are expected: $ strings cloud | less ...and then checked to see what libraries are missing. I found two of them that were missing, so I ftp'd them in and now here is what I get on the Mini2440: [root@FriendlyARM /]# cloud Segmentation fault ...now THIS I can deal with. ;) I guess the conclusion is, if an executable is "not found" but "which" tells you that it is - then their are likely missing shared objects (dynamic libraries). Thanks again for the help guys!
You can use the following ldd script to see the required libraries: #!/bin/sh deplist() { echo $@ LD_TRACE_LOADED_OBJECTS=1 $@ } case "$1" in --version | --help) echo "Erik's dependency lister" echo "Invoke as $0 <binary>" exit 0 ;; -*) echo "$0 unrecognized option" ;; *) deplist $1 ;; esac