前言

最近我在用NI USB-6351去收集一些电流电压的物理数据,但是鉴于我现在的工作机只有Linux, 所以打算直接在Linux上面装驱动开搞。

所需要的驱动是NI-DAQ™mx,用DAQ卡来收集电流电压数据。

顺便安装一个LabVIEW

正文

0. NI设备 与 Linux 的兼容性

在所有东西进行之前,请大家一定要去NI Hardware and Software Operating System Compatibility,查一下自己的设备,到底在当前系统支不支持!!!

没错,我就是这个猪,我直到安装完了,开始测试了,才发现为什么我的设备一直被读取不到,直到我发现了下面这张图片... /(ㄒoㄒ)/~~

Screenshot from 2024-03-05 10-34-30

1. NI-DAXmax 安装

1.1 Static v.s. Stream

根据原文Installing NI Drivers and Software on Linux Desktop的介绍

  1. Static: Static repositories are updated only for critical patches. Use a static repository when you need to reproduce a specific software stack.
  2. Stream: Software in this repository is updated regularly with the latest versions of each driver package as it is released. Use a stream repository to keep all NI drivers and software up to date. Run an update command or an upgrade command on systems that have registered a stream repository to get the latest released version of NI packages.

我这里就太懒了,直接ChatGPT翻译了

  1. Static: 静态:静态仓库仅针对关键补丁进行更新。当您需要复现特定的软件堆栈时,请使用静态仓库。
  2. Stream:此仓库中的软件会定期更新,随着每个驱动包的最新版本发布而更新。使用流仓库以保持所有NI驱动程序和软件的最新状态。

因为没有必要对特定软件进行复现,直接Stream就可以,当然了,如果追求稳定性的话,可以考虑Static。我这里选择了Stream。

至于怎么在Ubuntu安装,其实我们主要参考的是这篇文章Installing NI Products (Ubuntu)

如果你是Installing NI Products (Red Hat Enterprise Linux)或者Installing NI Products (openSUSE),点击对应文章即可即可。

1.2 Ubuntu 安装 DAQmx

1. 检查更新

我这里其实并不知道为什么他们要用dist-upgrade,但是既然用了,我们也用吧:

sudo apt update
sudo apt dist-upgrade

2. 重启系统
3. 下载 NI-DAQ™mx

Screenshot from 2024-03-05 10-45-26

检查一下MD5 md5sum <filename> 通过 1efd2e688460e9c39ac1a77e22b54051(MD5)

Screenshot from 2024-03-05 10-48-27

4. 安装NI仓库注册包

上面我们已经下载了.deb文件,我们直接安装即可

sudo apt install ./filename.deb

Screenshot from 2024-03-05 10-50-12

或者也可以通过右键.deb文件的properties,然后勾选Allow executing file as program,然后双击.

Screenshot from 2024-03-05 10-52-21

会弹出下面这个,一样安装即可。

Screenshot from 2024-03-05 10-52-06

5. 刷新Package list

sudo apt update

6. 安装对应驱动

我们首先去NI Driver Support for Linux Distributions看一下我们需要的驱动具体是怎么命名的.

Screenshot from 2024-03-05 10-57-44-1

由于我们想要DAQmx, 根据网站,我们的core package应该是 ni-daqmx;然后就是一些optional的选项 ni-daqmx-labview-20xy-supportni-daqmx-labview-supportlibnidaqmx-devel. Then install all。为了避免以后的麻烦,我这里全都给安装了。

sudo apt install ni-daqmx
sudo apt install ni-daqmx-labview-20xy-support
sudo apt install ni-daqmx-labview-support
sudo apt install libnidaqmx-devel

Screenshot from 2024-03-05 11-09-51

hmm,我是笨猪, 我一开始还在纳闷为什么ni-daqmx-labview-20xy-support安装不了。 然后在输入了apt search ni-daqmx-labview之后,发现 ni-daqmx-labview-20xy-support,这里 20xy 应该是对应的年份... 比如, ni-daqmx-labview-2021-support啥的。(笑

Screenshot from 2024-03-05 11-11-09

8. 安装Hardware Configuration Utility

NI建议安装的,估计是为了测试NI设备用。

sudo apt install ni-hwcfg-utility

9. 构建NI内核驱动程序

sudo dkms autoinstall

10. 重启系统

驱动安装完事儿。(●ˇ∀ˇ●)

2. LabVIEW 安装

2.0 NI-DAQmx 与 LabVIEW 的兼容性

与之前一样,先去NI-DAQmx and LabVIEW Compatibility检查DAWmx与LabVIEW的兼容性。

Screenshot from 2024-03-05 11-17-24

虽然没有列出2024Q1,但是根据规律,我们只要安装>2024Q1版本的LabVIEW即可。

2.1 Ubuntu 安装 LabVIEW

1. 下载 LabVIEW

这取决于我们的 NI-DAXmx版本,我们的是2024Q1,所以我们的LabVIEW版本也应该至少大于2024Q1, 然后挑选对应的LabVIEW下载。

Screenshot from 2024-03-05 11-22-30

跑命令md5sum and sha256sum检查文件完整性:9275c96123a6a968cd79dbcaeb56fdc4(MD5)185828c4e3eab9c5a63bf6170bdb3545da3dad6bd963c46b645ae1c32d4f7dea(SHA256).

Screenshot from 2024-03-05 11-24-17

完整性没啥问题。

2. 安装LabVIEW仓库注册包

sudo apt install ./filename.deb

Screenshot from 2024-03-05 11-27-22

3. 刷新Package list

sudo apt update

4. 安装 LabVIEW
看了一下NI的网站Install LabVIEW on Linux Operating Systems, LabVIEW的命名格式如下: ni-labview-<version>-<edition>

Screenshot from 2024-03-05 11-30-38

搜索一下:

apt search ni-labview-

Screenshot from 2024-03-05 11-32-48

我也不知道选啥,好多乱七八糟的,直接安装默认的肯定是最对的好吧,直接安装默认的ni-labview

sudo apt install ni-labview

发现它自动帮我安装了 ni-labview-2024-coreni-labview-2024-focal-communityni-labview-2024-jammy-community

Screenshot from 2024-03-05 11-37-42

5. 重启系统

LabVIEW安装完事儿!

5.5 瞎搞

Ctrl+Alt+T打开terminal, 输入labview看看。

Screenshot from 2024-03-05 11-40-33

发现么得。找不到我们的labview,这么奇怪,难道是因为path的问题。但是无论如何,先让我们锁定一下我们的labview文件夹到底在哪。一般会安装在 /usr/local这个文件夹下,我们直接find

sudo find /usr/local -type d -name "*[Ll][Aa][Bb][Vv][Ii][Ee][We]*"

Screenshot from 2024-03-05 12-00-23

由结果可猜测,我们的labview文件夹是/usr/local/natinst/LabVIEW-2024-64

sudo find /usr/local -type d -name "*[Bb][Ii][Nn]*"扫了一圈之后,发现可能不是path的问题,因为根本就没找到bin这个文件夹。 他可能就没有提供命令行的功能。

Screenshot from 2024-03-05 11-56-33

所以它可能是什么执行文件啥的,那么我们直接去文件夹看看吧 /usr/local/natinst/LabVIEW-2024-64,在这里我们发现了一个labviewlabviewcommunity

Screenshot from 2024-03-05 12-02-18

看看properties, 什么狗屎东西, owner root, group root,全是root权限,这权限控制也太粗糙了。同时,我们发现labviewlabviewcommunity的快捷方式,这证明我们直接用labview就可以了。

Screenshot from 2024-03-05 12-04-36

直接双击labview,正常打开。

Screenshot from 2024-03-05 12-05-39

Screenshot from 2024-03-05 12-06-28-1

6. 添加.desktop文件给LabVIEW

---如果你没有看我的5.5 瞎搞,那么你可能需要知道如何查询我们的LabVIEW文件所在位置---

查询我们的LabVIEW文件所在位置

sudo find /usr/local -type d -name "*[Ll][Aa][Bb][Vv][Ii][Ee][We]*"

Screenshot from 2024-03-05 12-00-23

我们的位置是/usr/local/natinst/LabVIEW-2024-64

---如果你看完了我的5.5 瞎搞,可以从这里开始看---

为Labview添加.desktop文件,通过vim创建一个名为labview.desktop在文件夹~/.local/share/applications下:

vim ~/.local/share/applications/labview.desktop

VIM中输入:

[Desktop Entry]
Type=Application
Name=LabVIEW 2024
Exec=/usr/local/natinst/LabVIEW-2024-64/labview

保存,:wq。然后给labview.dekstop运行权限:

chmod +x ~/.local/share/applications/labview.dekstop

结束,然后直接能通过桌面打开了。

Screenshot from 2024-03-05 12-10-07

3. 不相关但可能有用

在我头脑发胀,没有检查到兼容性问题之前,我找到了一些其他可能对于NI device编程有用的东西,这里列一下

  1. NI Manual NI Get Started
  2. 命令行工具 DAQmx for Desktop Linux Tools
  3. Python工具
    1. How to use PyDAQmx
    2. nidaqmx-python

总结

记录一下,同时有一个很重要的事情,请一定记住:

在做事情之前,永远检查,兼容性问题!

参考

[1] NI USB-6351
[2] NI-DAQ™mx
[3] LabVIEW
[4] NI Hardware and Software Operating System Compatibility
[5] Installing NI Drivers and Software on Linux Desktop
[6] Installing NI Products (Ubuntu)
[7] Installing NI Products (Red Hat Enterprise Linux)
[8] Installing NI Products (openSUSE)
[9] NI Driver Support for Linux Distributions
[10] NI-DAQmx and LabVIEW Compatibility
[11] Install LabVIEW on Linux Operating Systems
[12] NI Get Started
[13] DAQmx for Desktop Linux Tools
[14] How to use PyDAQmx
[15] nidaqmx-python

Q.E.D.


立志做一个有趣的碳水化合物