我在从 .tar.gz 构建 sigrok-cli 时遇到了问题。
昨天我安装了 sigrok 元包,一切顺利。今天我发现 ubuntu 17.04 包与我想要使用的 DMM 不兼容。因此,根据建议,我删除、清除并自动删除了 sigrok 和 pulseview,然后“重新”开始
我下载了 sigrok-cli-0.7.0.tar.gz 并将其解压到我的主文件夹中。
最初,我尝试按照自述文件中的说明进行构建,但最终没有“gitting”,只是计划通过 ./configure & make & sudo make install 进行构建。
但是我遇到了一些依赖问题,我需要:
- 库
- 库sigrok解码
当然,在构建这些时我遇到了一些其他依赖项。python 3 developer 和 libzip-dev。无论如何,我设法安装了这些并构建了前两个,所以我必须通过以下方式构建 sigrok-cli:
- 下载 .tar.gz 文件
- 将它们解压到单独的目录中,我的主目录中
- 我从这些单独的目录中执行了 ./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/
所以程序在错误的位置查找(或者更好地说文件在错误的位置)。现在从我昨天了解到的情况来看,我相信正确的位置是:
- 〜/ usr / bin
- ~/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,但 据开发人员称
,目前它还不适合日常使用。
- https://sigrok.org/wiki/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。