Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Installer la librairie D2XX (Linux) pour émetteur DMX sur eeepc

  • 5 réponses
  • 2 participants
  • 1 306 vues
  • 2 followers
Sujet de la discussion Installer la librairie D2XX (Linux) pour émetteur DMX sur eeepc
Bonjour,

Je cherche à installer cet émetteur DMX sur ma distribution Tango studio (ubuntu 10.04 noyau 2.6.32-38-lowlatency) sur un asus eeepc. Je dois installer le driver de la puce FTDI (librairie D2XX). J'ai donc suivi cette procédure indiquée pour le produit.

Citation :
Installing the D2XX shared library and static library.
------------------------------------------------------

1. tar xfvz libftd2xx1.1.12.tar.gz

This unpacks the archive, creating the following directory structure:

build
arm926
i386
x86_64
examples
libusb
ftd2xx.h
WinTypes.h

2. cd build/arm926

3. sudo -s
or, if sudo is not available on your system:
su

Promotes you to super-user, with installation privileges. If you're
already root, then step 3 (and step 7) is not necessary.

4. cp lib* /usr/local/lib

Copies the libraries to a central location.

5. chmod 0755 /usr/local/lib/libftd2xx.so.1.1.12

Allows non-root access to the shared object.

6. ln -sf /usr/local/lib/libftd2xx.so.1.1.12 /usr/local/lib/libftd2xx.so

Creates a symbolic link to the 1.1.12 version of the shared object.

7. exit

Ends your super-user session.



Building the shared-object examples.
------------------------------------

1. cd examples

2. make -B

This builds all the shared-object examples in subdirectories.

With an FTDI device connected to a USB port, try one of the
examples, e.g. reading EEPROM.

3. cd EEPROM/read

4. sudo ./read

If the message "FT_Open failed" appears:
Perhaps the kernel automatically loaded another driver for the
FTDI USB device.

sudo lsmod

If "ftdi_sio" is listed:
Unload it (and its helper module, usbserial), as follows.

sudo rmmod ftdi_sio
sudo rmmod usbserial

Otherwise, it's possible that libftd2xx does not recognise your
device's Vendor and Product Identifiers. Call FT_SetVIDPID before
calling FT_Open/FT_OpenEx/FT_ListDevices.



Building the static-library example.
------------------------------------

1. cd examples/static

2. rm lib*

Cleans out any existing libraries built for another target.

3. cp /usr/local/lib/libftd2xx.a .

4. make -B

5. sudo ./static_link


mais je n'arrive pas à finaliser l'installation, Je bloque ici au n°2.:

Citation :
Building the shared-object examples.
------------------------------------

1. cd examples

2. make -B


à cette commande voila ce qui sort:

Citation :
absolut@absolut-laptop3:~/release/examples$ make -B
for n in BitMode EEPROM/erase EEPROM/read EEPROM/write EEPROM/user/read EEPROM/user/size EEPROM/user/write Events LargeRead MultiThread SetVIDPID Simple Timeouts ; do make -C $n || exit 1; done
make[1]: entrant dans le répertoire « /home/absolut/release/examples/BitMode »
gcc main.c -o bitmode -Wall -Wextra -L. -lftd2xx -Wl,-rpath /usr/local/lib
/usr/local/lib/libftd2xx.a(ftd2xx.o): In function `InitCheckDevice':
ftd2xx.c:(.text+0x315): undefined reference to `dlopen'
ftd2xx.c:(.text+0x33b): undefined reference to `dlopen'
ftd2xx.c:(.text+0x378): undefined reference to `dlsym'
ftd2xx.c:(.text+0x383): undefined reference to `dlerror'
/usr/local/lib/libftd2xx.a(ftd2xx.o): In function `my_init':
ftd2xx.c:(.text+0x44c): undefined reference to `dlclose'
ftd2xx.c:(.text+0x488): undefined reference to `pthread_create'
/usr/local/lib/libftd2xx.a(ftd2xx.o): In function `my_fini':
ftd2xx.c:(.text+0x4cd): undefined reference to `pthread_join'
/usr/local/lib/libftd2xx.a(ftd2xx.o): In function `DeviceMatch':
ftd2xx.c:(.text+0x537): undefined reference to `dlclose'
/usr/local/lib/libftd2xx.a(ftd2xx.o): In function `FTCommonOpen':
ftd2xx.c:(.text+0x229c): undefined reference to `pthread_create'
ftd2xx.c:(.text+0x22dd): undefined reference to `pthread_create'
ftd2xx.c:(.text+0x232b): undefined reference to `pthread_create'
/usr/local/lib/libftd2xx.a(ftd2xx.o): In function `FT_Close':
ftd2xx.c:(.text+0x2630): undefined reference to `pthread_join'
ftd2xx.c:(.text+0x2670): undefined reference to `pthread_join'
ftd2xx.c:(.text+0x26dd): undefined reference to `pthread_join'
/usr/local/lib/libftd2xx.a(io.o): In function `libusb_try_lock_events':
io.c:(.text+0x8d5): undefined reference to `pthread_mutex_trylock'
/usr/local/lib/libftd2xx.a(linux_usbfs.o): In function `find_monotonic_clock':
linux_usbfs.c:(.text+0x180): undefined reference to `clock_gettime'
/usr/local/lib/libftd2xx.a(linux_usbfs.o): In function `op_clock_gettime':
linux_usbfs.c:(.text+0x323b): undefined reference to `clock_gettime'
linux_usbfs.c:(.text+0x3250): undefined reference to `clock_gettime'
collect2: ld returned 1 exit status
make[1]: *** [bitmode] Erreur 1
make[1]: quittant le répertoire « /home/absolut/release/examples/BitMode »
make: *** [subdirs] Erreur 1

Il me semble qu'il y a des messages d'erreur et si je poursuis jusqu'à la commande "sudo ./read", voila où j'arrive
Citation :
absolut@absolut-laptop3:~/release/examples/EEPROM/read$ sudo ./read
sudo: ./read: command not found

S'il y a un utilisteur de linux peut m'éclairer. Au moins me dire la nature du problème et dans quelle direction je dois chercher, ce serait déjà super. Si quelqu'un connaît une commande qui me permettrait de vérifier que le materiel est bien installé, je suis égalment preneur.
Merci
2
C'est un problème de compilation, il semble qu'il te manque une librairie ou que le compilateur ne la trouve pas.
Est-tu sûr d'avoir bien créé le lien symbolique au 6) de la première "phase" (installation de la librairie)
Pour t'en assurer, fais un petit
Citation :
ls -l /usr/local/lib/libftd2xx.so

et copie-colle ici la sortie de la commande

x
Hors sujet :
PS : c'est de l'informatique en fait, tu auras plus de chance de trouver de l'aide sur un forum de linuxiens qu'ici.
3
Voici le resultat
Citation :
absolut@absolut-laptop3:~/release/examples$ ls -l /usr/local/lib/libftd2xx.so
lrwxrwxrwx 1 root root 34 2013-10-08 22:48 /usr/local/lib/libftd2xx.so -> /usr/local/lib/libftd2xx.so.1.1.12
absolut@absolut-laptop3:~/release/examples$

J'ai refait la procédure.
à la phase 4 j'ai ceci:
Citation :
root@absolut-laptop3:~/release/build/arm926# cp lib* /usr/local/lib
cp: omission du répertoire «libusb»

à la 6:
Citation :
root@absolut-laptop3:~/release/build/arm926# ls -l /usr/local/lib/libftd2xx.so
lrwxrwxrwx 1 root root 34 2013-10-08 22:48 /usr/local/lib/libftd2xx.so -> /usr/local/lib/libftd2xx.so.1.1.12

et sur la commande make -B de la seconde partie, il y a l'air d'un message d'erreur qui m'echappe.
Citation :
absolut@absolut-laptop3:~/release/examples$ make -B
for n in BitMode EEPROM/erase EEPROM/read EEPROM/write EEPROM/user/read EEPROM/user/size EEPROM/user/write Events LargeRead MultiThread SetVIDPID Simple Timeouts ; do make -C $n || exit 1; done
make[1]: entrant dans le répertoire « /home/absolut/release/examples/BitMode »
gcc main.c -o bitmode -Wall -Wextra -L. -lftd2xx -Wl,-rpath /usr/local/lib
/usr/bin/ld: skipping incompatible /usr/local/lib/libftd2xx.so when searching for -lftd2xx
/usr/bin/ld: skipping incompatible /usr/local/lib/libftd2xx.a when searching for -lftd2xx
/usr/bin/ld: cannot find -lftd2xx
collect2: ld returned 1 exit status
make[1]: *** [bitmode] Erreur 1
make[1]: quittant le répertoire « /home/absolut/release/examples/BitMode »
make: *** [subdirs] Erreur 1

x
Hors sujet :
Merci de ton aide, j'ai mis également ce message sur ubuntu.org sans réponse pour le moment.



4
OK
Je suis un peu intrigué par ce message :
Citation :
skipping incompatible /usr/local/lib/libftd2xx.so when searching for -lftd2xx

Il semble vouloir dire qu'il trouve en fait bien (au temps pour moi) une librairie "libftd2xx.so" mais qu'il la jusge "incompatible".
Du coup, je me demande si ça pourrait pas venir de l'étape 2:
Citation :
2. cd build/arm926

Cela semble vouloir dire que pour la suite on va compiler des sources prévues pour processeur de type arm.
Tu es sûr qu'il y a bien un processeur arm sur ton eeepc ? c'est possible mais ça m'étonne un peu parce que si c'est un "PC" (après tout dans eeepc il y a "PC") la logique voudrait que ce soit un processeur i386, voir éventuellement x86_64 s'il est en 64bits.
Si tu ne sais pas, essaie de renseigner sur le type de processeur que tu as (tu peux chercher sur Google d'après la référence exacte du modèle que tu as).
Et dans le doute, j'essaierais de recommencer la même procédure mais en faisant à la place au 2) :
Citation :
cd build/i386

[ Dernière édition du message le 08/10/2013 à 23:50:38 ]

5
C'est très bien vu! J'ai recommencé la procédure à partir du dossier i386 et tout à fonctionné. Voici la derniere console de la procédure
Citation :
absolut@absolut-laptop3:~/release/examples/static$ make -B
gcc main.c -o static_link libftd2xx.a -ldl -lrt -lpthread -Wall -Wextra
absolut@absolut-laptop3:~/release/examples/static$ sudo ./static_link
[sudo] password for absolut:
Device 0 Serial Number - AD022D9B
Opened device AD022D9B

à priori c'est bon.
Grandement merci pour cette clairvoyance:D:
je me permets encore deux questions:
J'ai redemarré mais je n'ai pas vu apparaître mon emetteur dans les sorties proposées par le soft QLC.
Y at'il une commande qui permet de vérifier que l'emetteur est bien reconnu par le pc?
Connais-tu QLC?
Encore merci
6
Cool, content que ça ait marché. J'ai eu un peu de bol aussi, j'étais pas sûr du tout que ça vienne de là, c'était plus une intuition ;)
Pour le reste je ne sais pas, je ne connais pas ce soft ni ce type de montage avec des périphs DMX, désolé.
Conseil : créée un nouveau thread, tu as déjà un peu plus de chances de trouver quelqu'un qui connait ce soft vu que c'est déjà plus dans le domaine de ce site ;) (alors que la complilation de librairie sous linux c'était pas gagné d'avance de trouver ici)