从下载的 tar.gz 构建 sigrok-cli 出错

从下载的 tar.gz 构建 sigrok-cli 出错

我在从 .tar.gz 构建 sigrok-cli 时遇到了问题。

昨天我安装了 sigrok 元包,一切顺利。今天我发现 ubuntu 17.04 包与我想要使用的 DMM 不兼容。因此,根据建议,我删除、清除并自动删除了 sigrok 和 pulseview,然后“重新”开始

我下载了 sigrok-cli-0.7.0.tar.gz 并将其解压到我的主文件夹中。
最初,我尝试按照自述文件中的说明进行构建,但最终没有“gitting”,只是计划通过 ./configure & make & sudo make install 进行构建。

但是我遇到了一些依赖问题,我需要:

  1. 库sigrok解码

当然,在构建这些时我遇到了一些其他依赖项。python 3 developer 和 libzip-dev。无论如何,我设法安装了这些并构建了前两个,所以我必须通过以下方式构建 sigrok-cli:

  1. 下载 .tar.gz 文件
  2. 将它们解压到单独的目录中,我的主目录中
  3. 我从这些单独的目录中执行了 ./configured、make 和 sudo make install。但我现在认为这些最终位于错误的位置。

依赖性方面它起作用了,不再存在问题,但是当我现在尝试运行 sigrok-cli 时,我收到以下错误消息:

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

现在我知道这个文件在,~/libsigrok-0.5.0/.libs/所以程序在错误的位置查找(或者更好地说文件在错误的位置)。现在从我昨天了解到的情况来看,我相信正确的位置是:

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

但是当我查看这些 ~/bin 文件夹时,我没有找到其他文件夹。

因此,libsigrok-0.5.0 和 libsigrokdecode-0.5.0 可能应该位于 sigrok-cli-0.7.0 文件夹中。但即使这些文件夹需要位于其他位置。我不确定将它们放到那里的正确方法是什么,只是剪切/粘贴,还是应该卸载并重新安装在正确的目录中?

答案1

看来,要达到你的目标,需要进行大量的构建!以下内容在我自己的 17.04 系统上运行良好,并构建了我认为适合你的必需的包装:

构建要求:

从终端安装这些,以安装构建软件包所需的所有依赖项,如下所示单一命令

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

创建构建区域:

mkdir $HOME/sigrock_build 

然后开始构建:


库串行端口

以下是单个命令

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

以下是单个命令

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

库sigrok解码

以下是单个命令

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

以下是单个命令

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

最后结果:

在我的 17.04 系统上显示:

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

希望你也能得到同样的结果:)

答案2

Andrew.46 的回答非常有帮助(实际上非​​常有用)。

但与此同时,我发现了一些我想添加的额外信息,并且不希望它隐藏在评论中,所以我决定添加这个答案,这只会增加 andrew.46 的广泛答案。

我将根据一路上学到的东西进行更新,希望其他人能够受益。

1) ut71(c) 受 serial-dmm 驱动程序支持。2
) libsigrokdecode 不需要用于 dmm(但怀疑这两者都不会造成损害)
3) Pulseview 尚不支持 dmm,但会在(不久的将来)支持。4 ) 相反,人们可以使用 sigrok-meter,但 据开发人员称
,目前它还不适合日常使用。

可以使用此命令安装 sigrok-meter 及其适当的依赖项。

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

尽管我对“checkinstall”这句话不是 100% 确定,但如果有错的话,请纠正我!

安装后,使用 ut71c 和 ut-do4 usb 电缆,您可以通过以下方式运行该程序:

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

如果您使用的是不同的电缆 ut-do2 plus r232 到 usb,请通过 lsusb 找到有问题的 usb 设备,并将 1a86.e008 替换为正确的地址。使用不同的 dmm 时:将驱动程序替换为正确的驱动程序。您可以使用

./sigrok-cli -L   

不幸的是,在 Linux 下连接 DMM 存在问题,因为 Linux 内核不会像 Windows 内核那样在不使用时让 USB 设备进入睡眠状态。我以前在 Linux 下使用 Freecad 上的 3D 连接空间鼠标时也遇到过类似的问题。

要解决这个问题,有一个变通方法:运行您可以在下面的链接中找到的脚本。每次运行 sigrok-cli 之前运行此脚本。

怎么做呢?
1)创建一个 txt 文件(没有扩展名,ok acn 如果你真的想要的话可​​以使用 .sh)
2)复制过去的这个脚本,注意所有正确的缩进。3)保存
4)通过属性选择以允许作为可执行文件运行。5
)通过以下方式运行:sd /location/of/file && ./filename && ./sigrok-cli......

这应该可以让您使用所有需要的选项来运行该程序。

享受!

但在结束之前,我要特别感谢本论坛的 Andrew.46 以及 eevblog 论坛的 abraxa 和 alm。

相关内容