command not found?

I’m sure I’m doing something stupid but I can’t seem to install (run?) an application. I’m running Debian on a BBB and connecting through putty. It’s a remote USB system from Eltima. These are the instructions I got:

  1. Please try this build:

http://www.eltima.com/temp/usb/arm/eveusb_3.6.0.armv5te.tgz

It is compatible with all ARM platforms.

Unpack the archive to the root directory and execute postinst script

from /opt/Eltima/eveusb/bin/ Sub-folders will be determined by the

archive automatically.

I also asked this and got a response:

OK I have a Beaglebone black (4GB Debian) attached to my PC and I’ve

unpacked eveusb_3.6.0.armv5te.tgz to root.

I’m looking at the /opt/Eltima/eveusb/bin/ directoy and there are two

files “eveusbc” and eveusbd".

Which one do I need to call?

Will it be installed permanently or will I need to call it each time

we re-boot?

Response:

USB Network Gate is designed to run as a system daemon. This ensures that all USB ports are re-shared and connections re-established automatically on system boot (before user login).

eveusbd is the UNG daemon (starts with the system and is constantly running in the background), eveusbc is a command-line utility for controlling it. So you are probably looking for the latter.

I did the unpacking OK and there are two files in the sub-directory. Using bash from a remote terminal I try to execute each of the files (from the sub-directories) but all I get is:

root@beaglebone:~/opt/Eltima/eveusb/bin# eveusbc
-bash: eveusbc: command not found

I assume to execute I only need to type their names? Also I assume they are executable?

Any ideas please? Thanks.

Try ./eveusbc
From the prompt it seems you are logged in as root and usually root does not have the current directory in it's path for executing commands.

Best regards,

     Peter

Hi Peter,

Yes I’m logged on as root but I’m in the directory where the file is.
Does this not work the same as DOS?
I tried typing ./eveusbc but I just get “No such fie or directory”
I must say I’m lost.

Any ideas?

Thanks

Ian

Hi Ian,

Thanks for your email. Yes, it works more or less like in DOS, but there are some differences:

  • most Linux systems are configured such that root (as opposed to most other users) does not by default execute files in the current directory. This is for security reasons if I’m not mistaken. This can be bypassed by typing the relative or full path to the command, such as ./eveusbc . Since that doesn’t work, it is worth looking into another important difference with DOS:
  • Linux systems have more extensive file permissions than the original DOS system. It could be that the eveusbc file does not have “execute” permission. You can check by ‘ls -l’, which shows the permissions in a format such as rwxrw-r–. There are three groups, identifying permissions for owner, group and world (from left to right). Each group can have r(ead), w(rite) and execute permissions. To excluse any problems in this area, you can give all permissions to everybody by ‘chmod 777 eveusbc’ and then try again ‘./eveusbc’ .

By the way, ‘chmod 777’ is not necessarily the best way to keep a computer secure :wink: but it should help determine whether the problem is related to permissions.

Peter

have you changed the file to be executable ?

chmod +x filename

Hi Peter,

Thanks so much for you help.

Here is what I’m getting with permissions. It looks like it has execute permissions?

root@beaglebone:~/usr# dir
bin share src
root@beaglebone:~/usr# cd bin
root@beaglebone:~/usr/bin# dir
eveusbc eveusbd
root@beaglebone:~/usr/bin# ls -l
total 0
lrwxrwxrwx 1 root root 30 Dec 5 2014 eveusbc → /opt/Eltima/eveusb/bin/eveusbc
lrwxrwxrwx 1 root root 30 Dec 5 2014 eveusbd → /opt/Eltima/eveusb/bin/eveusbd
root@beaglebone:~/usr/bin# .eveusbc
-bash: .eveusbc: command not found
root@beaglebone:~/usr/bin# chmod 777 eveusbc
chmod: cannot operate on dangling symlink `eveusbc’
root@beaglebone:~/usr/bin#

cant change mode on a symlink
whats in this file ?
is it a shell script ?
a compiled executable ?

Have you tried using the full pathname? Just type the following on the command line.
/opt/Eltima/eveusb/bin/eveusbc

Chad

Hi Chad,

Yep this is what I got? Thanks Ian

root@beaglebone:~# dir
etc eveusb_3.6.0.armv5te.tgz lib opt usr
root@beaglebone:~# /opt/Eltima/eveusb/bin/eveusbc
-bash: /opt/Eltima/eveusb/bin/eveusbc: No such file or directory

Hi Wulf Man,

I don’t know, is there a way to tell? Looking at what’s inside there is no text script but the is ELF at the beginning so I assume its and exe?

The suppliers told me “eveusbd is the UNG daemon (starts with the system and is constantly running in the background), eveusbc is a command-line utility for controlling it. So you are probably looking for the latter.” so again I would have assumed an exe?

I uploaded and unpacked the .tgz file. I assume that only unpacks and doesn’t install anything. I couldn’t find any related processes running or anything in /systemd for startup but without an exact name I’m not sure.

One this that seem clear from what they told me is: “eveusbc is a command-line utility for controlling it”.

Thanks Ian

‘armv5’ binary means install the ‘armel’ multi arch, as it wasn’t built for the ‘armhf’ abi…

Too bad readelf does not exist for armhf systems( where it makes the most sense ). This could confirm that the file is indeed armel or armhf ABI. But the file name pretty much says it all as Robert pointed out.

armv5 == armel, and the ABI used on the beaglebone black - Stock is armhf.

Too bad also that file -s only reports “ARM” as well . . .

Hi Wulfman

No readme but I found these:

USB Network Gate “eveusb” rules

Copyright © 2013-2014 Eltima Software

This file should be copied to /lib/udev/rules.d.

In any conflict, the last rule wins.

‘libusb’ device nodes, see 50-udev-default.rules

SUBSYSTEM==“usb”, ENV{DEVTYPE}==“usb_device”, OWNER=“eveusb”

eveusb.ko module

KERNEL==“eveusb”, OWNER=“eveusb”

They actually ship their own linker:

voodoo@b2-omap5-uevm-2gb:/tmp/test/opt/Eltima/eveusb/lib$ ls -lh
total 2.1M
lrwxrwxrwx 1 voodoo voodoo 25 Dec 5 2014 ld-linux.so.3 ->
../libc/lib/ld-linux.so.3
-rw-r--r-- 1 voodoo voodoo 512K Dec 5 2014 libboost_program_options.so
-rw-r--r-- 1 voodoo voodoo 512K Dec 5 2014 libboost_program_options.so.1.57.0
-rw-r--r-- 1 voodoo voodoo 16K Dec 5 2014 libboost_system.so
-rw-r--r-- 1 voodoo voodoo 16K Dec 5 2014 libboost_system.so.1.57.0
-rw-r--r-- 1 voodoo voodoo 204K Dec 5 2014 libboost_thread.so
-rw-r--r-- 1 voodoo voodoo 204K Dec 5 2014 libboost_thread.so.1.57.0
lrwxrwxrwx 1 voodoo voodoo 18 Dec 5 2014 libeveusb.so -> libeveusb.so.3.0.0
lrwxrwxrwx 1 voodoo voodoo 18 Dec 5 2014 libeveusb.so.3 ->
libeveusb.so.3.0.0
-rw-r--r-- 1 voodoo voodoo 221K Dec 5 2014 libeveusb.so.3.0.0
-rw-r--r-- 1 voodoo voodoo 138K Dec 5 2014 libz.so
-rw-r--r-- 1 voodoo voodoo 138K Dec 5 2014 libz.so.1
-rw-r--r-- 1 voodoo voodoo 138K Dec 5 2014 libz.so.1.2.7

ld-linux.so.3 = armel..

see: https://wiki.debian.org/Multiarch/HOWTO

add "armel"...

Regards,

see: https://wiki.debian.org/Multiarch/HOWTO

add “armel”…

Regards,


Robert Nelson
https://rcn-ee.com/

Yeah I saw that too hehe, first hit on google for “debian multiarch”, but . . .the OP seems to be off exploring some other unrelated tangent ? shrug

Just a word to the wise. For future reference. If the file exists, and the executable bit is set. Chances are nearly if not 100% that the executable is for the wrong ABI.

There's your problem. eveusbc in the /usr/bin directory (which is the
file you are trying to execute) is a symlink to nowhere, i.e. the file
it's pointing at doesn't exist.