web-dev-qa-db-fra.com

Construire sigrok-cli à partir de tar.gz téléchargé va mal

J'ai un problème avec sigrok-cli build de .tar.gz.

Hier, j'ai installé le méta-paquet sigrok, qui s'est bien passé. Aujourd'hui, j'ai découvert que le paquet ubuntu 17.04 est incompatible avec le multimètre numérique que je souhaite utiliser. Donc, sur le conseil que j'ai enlevé, purgé et auto enlevé sigrok et pulseview et a commencé "à nouveau"

J'ai téléchargé sigrok-cli-0.7.0.tar.gz et l'ai décompressé dans mon dossier personnel.
Au départ, j’ai essayé de suivre les instructions du fichier lisez-moi sur la façon de construire, mais j’ai fini par ne pas "gitter" et je voulais juste le faire par ./configure & make & Sudo make install.

Mais je suis tombé sur quelques problèmes de dépendance, il me fallait:

  1. libsigrok
  2. libsigrokdecode

Bien sûr, en les construisant, je me suis heurté à d'autres dépendances. python 3 développeur et libzip-dev. de toute façon, j’ai réussi à les installer et à construire les deux premiers; j’ai donc pu construire sigrok-cli aussi:

  1. Téléchargement du fichier .tar.gz
  2. En les décompressant dans leur répertoire séparé
  3. À partir de ces répertoires distincts, je ./configuré, fais & Sudo faire les installer. Mais je crois maintenant que ceux-ci se sont retrouvés au mauvais endroit.

La dépendance sage cela a fonctionné, il n'y avait plus de problèmes, mais quand j'essaye maintenant d'exécuter le sigrok-cli j'obtiens le message d'erreur suivant:

sigrok-cli: error while loading shared libraries:
libsigrok.so.4: cannot open shared object file: No such file or directory.

Maintenant, je sais que ce fichier se trouve dans le ~/libsigrok-0.5.0/.libs/ et que le programme cherche au mauvais endroit (ou mieux, dit que le fichier est au mauvais endroit). maintenant, de ce que j’ai appris hier, je crois que le bon emplacement est soit:

  1. ~/usr/bin
  2. ~/usr/local/bin.

mais quand je regarde dans ces dossiers ~/bin, je ne trouve aucun autre dossier.

Alors peut-être que libsigrok-0.5.0 et libsigrokdecode-0.5.0 devraient être dans le dossier sigrok-cli-0.7.0. mais même si ces dossiers doivent être dans un autre emplacement. Je ne suis pas sûr de la manière correcte de les obtenir là-bas, juste couper/coller ou devrais-je désinstaller et réinstaller sur le bon répertoire?

3
Matthieu Kints van

Il semble qu'une quantité considérable de construction est nécessaire pour atteindre votre objectif! Ce qui suit a fonctionné sur mon propre système 17.04 et construit ce que je pense être vos paquets requis :

Exigences de construction:

Installez-les depuis un terminal pour installer toutes les dépendances nécessaires à la construction des packages à l'aide de la commande unique suivante :

Sudo apt-get install git build-essential make \
autoconf automake libtool checkinstall autoconf-archive \
pkg-config libglib2.0-dev libglibmm-2.4-dev libzip-dev \
libusb-1.0-0-dev libftdi-dev check doxygen python-numpy \
python-dev python-gi-dev python-setuptools swig default-jdk \
libglib2.0-dev python3-dev

Faire une zone de construction:

mkdir $HOME/sigrock_build 

Puis commencez à construire:


libserialport

Ce qui suit est une seule commande :

cd $HOME/sigrock_build && \
wget http://sigrok.org/download/source/libserialport/libserialport-0.1.1.tar.gz && \
tar xvf libserialport-0.1.1.tar.gz && \
cd libserialport-0.1.1 && \
./configure && make && \
Sudo checkinstall --pakdir "$HOME/sigrock_build" --backup=no --deldoc=yes \
                  --pkgname libserialport --pkgversion "0.1.1" --fstrans=no \
                  --deldesc=yes --delspec=yes --default && \
Sudo ldconfig

libsigrock

Ce qui suit est une seule commande :

cd $HOME/sigrock_build && \
wget http://sigrok.org/download/source/libsigrok/libsigrok-0.5.0.tar.gz && \
tar xvf libsigrok-0.5.0.tar.gz && cd libsigrok-0.5.0 && \
./configure && make && \
Sudo checkinstall --pakdir "$HOME/sigrock_build" --backup=no --deldoc=yes \
                  --pkgname libsigrock --pkgversion "0.5.0" --fstrans=no \
                  --deldesc=yes --delspec=yes --default && \
Sudo ldconfig

libsigrokdecode

Ce qui suit est une seule commande :

cd $HOME/sigrock_build && \
wget http://sigrok.org/download/source/libsigrokdecode/libsigrokdecode-0.5.0.tar.gz && \
tar xvf libsigrokdecode-0.5.0.tar.gz && cd libsigrokdecode-0.5.0 && \
./configure && make && \
Sudo checkinstall --pakdir "$HOME/sigrock_build" --backup=no --deldoc=yes \
                  --pkgname libsigrockdecode --pkgversion "0.5.0" --fstrans=no \
                  --deldesc=yes --delspec=yes --default && \
Sudo ldconfig

sigrock-cli

Ce qui suit est une seule commande :

cd $HOME/sigrock_build && \
wget http://sigrok.org/download/source/sigrok-cli/sigrok-cli-0.7.0.tar.gz && \
tar xvf sigrok-cli-0.7.0.tar.gz && cd sigrok-cli-0.7.0 && \
./configure && make && \
Sudo checkinstall --pakdir "$HOME/sigrock_build" --backup=no --deldoc=yes \
                  --pkgname sigrok-cli --pkgversion "0.7.0" --fstrans=no \
                  --deldesc=yes --delspec=yes --default && \
Sudo ldconfig

Résultat final:

Sur mon système 17.04, cela montre:

andrew@ilium:~$ sigrok-cli --version
sigrok-cli 0.7.0

Libraries and features:
- libsigrok 0.5.0/4:0:0 (rt: 0.5.0/4:0:0).
 - Libs:
  - glib 2.52.0 (rt: 2.52.0/5200:0)
  - libzip 1.1.2
  - libserialport 0.1.1/1:0:1 (rt: 0.1.1/1:0:1)
  - libusb-1.0 1.0.21.11156
  - libftdi 0.20
  - Host: x86_64-pc-linux-gnu, little-endian.
  - SCPI backends: TCP, RPC, serial, USBTMC.
- libsigrokdecode 0.5.0/4:0:0 (rt: 0.5.0/4:0:0).
 - Libs:
  - glib 2.52.0 (rt: 2.52.0/5200:0)
  - Python 3.5.3 / 0x30503f0 (API 1013, ABI 3)
  - Host: x86_64-pc-linux-gnu, little-endian.
andrew@ilium:~$ 

Et j'espère que vous obtiendrez le même résultat :)

3
andrew.46

La réponse d'Andrew.46 fut extrêmement utile (plus que réelle).

Mais entre-temps, j'ai trouvé quelques informations supplémentaires que je voulais ajouter et que je préférais ne pas cacher dans un commentaire. J'ai donc décidé d'ajouter cette réponse, ce qui ne fait qu'ajouter à la réponse détaillée de andrew.46.

Je mettrai à jour en fonction de ce que j’apprends en cours de route, dans l’espoir que d’autres puissent en bénéficier.

1) le ut71 (c) est supporté par le pilote serial-dmm.
2) libsigrokdecode n’est pas nécessaire pour l’utilisation de dmm (mais doutez que cela puisse nuire non plus)
3) Pulseview n’est pas encore supporté par dmm, mais le sera dans un avenir proche.
4) On peut utiliser sigrok-meter à la place, mais ce n’est pas encore prêt pour un usage quotidien,
selon les développeurs.

sigrok-meter peut être installé avec les dépendances appropriées avec cette commande unique.

cd $HOME/sigrock_build && \  
Sudo -H apt-get install python-qt4 pyqt4-dev-tools python-pip && \  
Sudo -H pip install pyqtgraph && \  
git clone git://sigrok.org/sigrok-meter && \  
cd sigrok-meter && \  
./configure && make && \  
Sudo checkinstall --pakdir "$HOME/sigrock_build" --backup=no --deldoc=yes \  
                  --pkgname sigrok-meter --fstrans=no \  
                  --deldesc=yes --delspec=yes --default && \  
Sudo ldconfig

bien que je ne sois pas à 100% sur les lignes "checkinstall", corrigez-moi si c'est faux!

une fois installé, lorsque vous utilisez un câble USB ut71 et ut-do4, vous pouvez exécuter le programme en:

cd "buildfolder"
./sigrok-meter -d uni-t-ut71c-ser:conn=1a86.e008 --continuous or --frames 5

si vous utilisez un câble différent de ut-do2 plus r232 vers usb, localisez le périphérique usb en question par: lsusb et remplacez 1a86.e008 par la bonne adresse. Aussi, si vous utilisez un autre dmm: remplacez le pilote par le bon. Vous pouvez trouver tous les pilotes supportés avec

./sigrok-cli -L   

malheureusement, la connexion avec dmm sous Linux pose un problème car le noyau Linux n'envoie pas le périphérique USB en veille lorsqu'il n'est pas utilisé comme le noyau Windows. J'ai déjà eu un problème similaire avec la souris d'espace de connexion 3d sur freecad sous linux.

pour résoudre ce problème, il faut contourner le problème: lancez le script que vous trouverez sur le lien ci-dessous. Exécutez ce script à chaque fois avant de lancer sigrok-cli.

comment faire ça?
1) créer un fichier txt (sans extension, ok, utilisez .sh si vous voulez vraiment)
2) copiez au-delà de ce script, tenez compte de toutes les empreintes correctes. 3) sauvegarder
4) sélectionnez via propriétés pour permettre l'exécution en tant qu'exécutable.
5) géré par: sd/location/of/file && ./filename && ./sigrok-cli ......

cela devrait vous permettre d'exécuter le programme avec toutes les options souhaitées.

prendre plaisir!

mais avant de terminer, je tiens à remercier spécialement Andrew.46 de ce forum et abraxa and alm du forum eevblog.

1
Matthieu Kints van