ubuntu - línea de comando - La compilación sigrok-cli desde tar.gz descargado sale mal

CorePress2023-09-17  1

Tengo un problema con la compilación sigrok-cli de .tar.gz.

Ayer instalé el metapaquete sigrok y funcionó bien. Hoy descubrí que el paquete ubuntu 17.04 es incompatible con el DMM que deseo usar. Entonces, siguiendo el consejo, eliminé, purgué y eliminé automáticamente sigrok y pulseview y comencé "de nuevo"

Descargué sigrok-cli-0.7.0.tar.gz y lo descomprimí en mi carpeta de inicio.
Inicialmente intenté seguir las instrucciones en el archivo Léame sobre cómo compilar, pero terminé sin "gitting" y simplemente planeé compilar mediante ./configure & hacer y amp; sudo hacer instalar.

Pero me encontré con algunos problemas de dependencia, necesitaba:

  1. Libsigrok
  2. libsigrokdecode

Por supuesto, al construirlos me encontré con otras dependencias. pitónen 3 desarrollador y libzip-dev. De todos modos, logré instalarlos y compilar los dos primeros, así que también pude compilar sigrok-cli mediante:

  1. Descargando el archivo .tar.gz
  2. Descomprimirlos en un directorio separado de mi directorio de inicio
  3. Desde estos directorios separados que ./configuré, hago & sudo make instalarlos. Pero ahora creo que terminaron en una ubicación equivocada.

En cuanto a la dependencia, funcionó, ya no hubo problemas, pero cuando intento ejecutar sigrok-cli aparece el siguiente mensaje de error:

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

Ahora sé que este archivo está en ~/libsigrok-0.5.0/.libs/ por lo que el programa está buscando en el lugar equivocado (o mejor dicho, el archivo está en el lugar equivocado). Ahora, por lo que aprendí ayer, creo que la ubicación correcta es:

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

pero cuando miro en estas carpetas ~/bin no encuentro otras carpetas.

Entonces tal vez libsigrok-0.5.0 y libsigrokdecode-0.5.0 deberían estar en la carpeta sigrok-cli-0.7.0. pero incluso si estas carpetas necesitan estar en otra ubicación. No estoy seguro de cuál sería la manera correcta de llevarlos allí, simplemente cortarlos o pegarlos, ¿o debería desinstalarlos y reinstalarlos en el directorio correcto?



------------Respuesta------------

¡Parece que se necesita una cantidad considerable de construcción para llegar a tu objetivo! Lo siguiente funcionó en mi propio sistema 17.04 y crea lo que creo que son sus paquetes requeridos:

Requisitos de compilación:

Instálelos desde una Terminal para instalar todas las dependencias necesarias para crear los paquetes con el siguiente comando único:

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

Crea un área de construcción:

mkdir $HOME/sigrock_build 

Entonces empieza a construir:


puertolibserial

El siguiente es un solo comando:

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

El siguiente es un solo comando:

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

El siguiente es un solo comando:

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

El siguiente es un solo comando:

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

Resultado final:

En mi sistema 17.04 esto muestra:

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:~$ 

Y espero que obtengas el mismo resultado :)


  • exactamente lo mismo :D ¡muchas gracias! No me di cuenta de que se podían poner todos esos comandos a la vez... ¡es bueno saberlo! También miro bien el comando para ver si puedo descubrir lo que acabo de copiar/pegar;) Furgoneta de Matthieu Kints 5 de agosto de 2017 a las 9:19
  • adicional, duda que sea de importancia por el resultado final. pero encontré un par de mensajes de error que vi antes: concretamente, copiar archivos de objetos seleccionados para evitar conflictos de nombres base... ar: u' modificador ignorado desde D' es el valor predeterminado (ver `U'). No tengo idea de lo que eso significa, pero pensé en mencionarlo.Furgoneta de Matthieu Kints 5 de agosto de 2017 a las 9:20
  • Es genial saber que todo funcionó :). El && simplemente significa continuar procesando el siguiente comando si el pEl comando anterior ha tenido éxito... Hace la vida más fácil para lo que de otro modo sería una tediosa rutina de copiar y pegar. Las advertencias del compilador no suelen ser un problema importante... - andrew.46 5 de agosto de 2017 a las 9:33
  • en este momento yoEstoy intentando agregar sigrok-meter desde github y hacerlo siguiendo su ejemplo. y usé el siguiente comando: Furgoneta de Matthieu Kints 5 de agosto de 2017 a las 12:02
  • cd $HOME/sigrock_build && \ sudo -H apt-get install python-qt4 python-pip && \ sudo -H pip install pyqtgraph && \ git clone git://sigrok.org/sigrok-meter && \ cd sigrok-metro && \ ./configurar && hacer && \ sudo checkinstall --pakdir "$HOME/sigrock_build" --backup=no --deldoc=yes \ --pkgname sigrok-meter --fstrans=no \ --deldesc=yes --delspec=yes --default && \sudo ldconfig Furgoneta de Matthieu Kints 5 de agosto de 2017 a las 12:03


------------Respuesta------------

La respuesta de Andrew.46 fue extremadamente útil (más que eso en realidad).

Pero mientras tanto encontré información adicional que quería agregar y preferí que no estuviera oculta en un comentario, así que decidí agregar esta respuesta que solo se suma a la extensa respuesta de andrew.46.

Actualizaré según lo que aprenda a lo largo del camino, con la esperanza de que otros puedan beneficiarse.

1) el ut71(c) es compatible con el controlador serial-dmm.
2) libsigrokdecode no es necesario para el uso de dmm (pero dudo que tampoco dañe)
3) Pulseview aún no es compatible con dmm, pero lo será en un futuro próximo.
4) en su lugar se puede utilizar el medidor sigrok, pero por el momento no está listo para el uso diario,
C.ASegún los desarrolladores.

  • https://sigrok.org/wiki/Sigrok-meter. por favor tenga en cuenta las dependencias,

sigrok-meter se puede instalar con las dependencias adecuadas con este único comando.

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

Aunque no estoy al 100% en las líneas "checkinstall", ¡corríjame si está mal!

una vez instalado, cuando utilice un cable USB ut71c y ut-do4, podrá ejecutar el programa de la siguiente manera:

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

Si está utilizando un cable ut-do2 plus r232 diferente a USB, ubique el dispositivo USB en cuestión mediante: lsusb y reemplace 1a86.e008 con la dirección correcta. También cuando utilice un dmm diferente: reemplace el controlador por el correcto. Puede encontrar todos los controladores compatibles con

./sigrok-cli -L   

Desafortunadamente hay un problema con la conexión con el dmm en Linux como núcleo de Linux.No pongo el dispositivo USB en suspensión cuando no se utiliza como lo hace el kernel de Windows. He tenido un problema similar antes con el mouse espacial de conexión 3D en Freecad en Linux.

Para resolver este problema, existe una solución alternativa: ejecute el script que encontrará en el siguiente enlace. ejecute este script cada vez antes de ejecutar sigrok-cli.

  • http://sigrok.org/wiki/Device_cables/Info#UNI-T_UT-D04

¿cómo hacer esto?
1) cree un archivo txt (sin extensión, está bien, use .sh si realmente lo desea)
2) copie este script y tenga en cuenta todas las sangrías correctas. 3) guardar
4) seleccione a través de propiedades para permitir la ejecución como ejecutable.
5) ejecutado por: sd /ubicación/de/archivo && ./nombre de archivo && ./sigrok-cli......

esto debería permitirle ejecutar el programa con todos los tél deseaba la opción.

¡disfruta!

pero antes de terminar con esto quiero agradecer especialmente a Andrew.46 de este foro y a abraxa y alm del foro eevblog.


Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare