3
votes

I installed the Linux-ARM-FTDI Drivers 1.1.12 like in the readme-file described: http://www.ftdichip.com/Drivers/D2XX/Linux/ReadMe-linux.txt and also successfully tested the EEPROM/read-example to check the installation and it gives me a correct output of my USB device. I then got some trouble at first installing the ftdi package because ftd2xx.h was not found. I followed this description: https://forum.sparkfun.com/viewtopic.php?p=50378 and after copying ftd2xx.h and WinTypes.h to /usr/loacl/include I could install ftdi via npm without a problem.

Now when I try to require ftdi:

var ftdi = require('ftdi');

I get the following error:

/home/utilite/node/usb_socket/node_modules/ftdi/node_modules/bindings/bindings.js:83
        throw e
              ^
Error: libftd2xx.so: cannot open shared object file: No such file or directory
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at bindings (/home/utilite/node/usb_socket/node_modules/ftdi/node_modules/bindings/bindings.js:76:44)
    at Object.<anonymous> (/home/utilite/node/usb_socket/node_modules/ftdi/index.js:3:31)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)

Here are the dependecies:

ls -l /usr/local/lib/libftd2xx.*
-rw-r--r-- 1 root root 241478 Jun 16 14:17 /usr/local/lib/libftd2xx.a
lrwxrwxrwx 1 root root     34 Jun 16 14:18 /usr/local/lib/libftd2xx.so -> /usr/local/lib/libftd2xx.so.1.1.12
-rwxr-xr-x 1 root root 229597 Jun 16 14:17 /usr/local/lib/libftd2xx.so.1.1.12
utilite@utilite-ubuntu-desktop:~/node/usb_socket$ ldd /usr/local/lib/libftd2xx.so
        libpthread.so.0 => /lib/arm-linux-gnueabi/libpthread.so.0 (0x401ff000)
        libdl.so.2 => /lib/arm-linux-gnueabi/libdl.so.2 (0x400c0000)
        librt.so.1 => /lib/arm-linux-gnueabi/librt.so.1 (0x400ae000)
        libgcc_s.so.1 => /lib/arm-linux-gnueabi/libgcc_s.so.1 (0x40013000)
        libc.so.6 => /lib/arm-linux-gnueabi/libc.so.6 (0x4021a000)
        /lib/ld-linux.so.3 (0x4002d000)

looks ok for me.

The Targt-System:

Linux utilite-ubuntu-desktop 3.0.35-cm-fx6-4 #123 SMP Thu Sep 12 10:41:30 IST 2013 armv7l armv7l armv7l GNU/Linux
node.js version: 0.10.22 (highest 0.10.x version to run on the target)

Any suggestions?

2

2 Answers

2
votes

is /usr/local/lib in your linker path?

I don't think /usr/local/lib is linked in by default in new versions of ubuntu.

ldconfig /usr/local/lib/

to add it to the linker cache and test.

should add it to a .conf file /etc/ld.so.conf.d/ if this solves your problem.

https://unix.stackexchange.com/questions/67781/use-shared-libraries-in-usr-local-lib

0
votes

I'm not experienced with node, but can you run ldd on the executable (not on the library) ? It might show that libftd2xx.so is not found, hence the error.

It might have something to do with the compile flags (and the rpath pointing to /usr/local/lib). Have a look at this related answer