Ubuntu下的LabVIEW开发
1 虚拟机的安装
我用的是Virtua Box 的虚拟机,当然也有其他的类似软件;下载虚拟机的网址:
https://www.virtualbox.org/wiki/Downloads
自行去下载合适的版本,如下我的版本;
安装步骤按提示一步步来安装即可;我在2年前安装的,忘了记录;
可以参考文档:
https://www.jb51.net/article/94065.htm
https://blog.csdn.net/u012732259/article/details/70172704
2 在虚拟机中安装Ubuntu系统
2.1下载Ubuntu的系统镜像:
官网:https://cn.ubuntu.com/download
注意:不建议下载最新的版本,由于我后面要配套LabVIEW的开发,所以采用Ubuntu2204+LabVIEW2022Q3的配置。这就是Linux系统要特别注意安装包的版本兼容问题。
下载得到:https://cn.ubuntu.com/download
2.2 虚拟机新建与安装
按提示一步步进行即可,注意的是新建虚拟硬盘的时候,不要设置太小,内存等也设置合适。否则后面引起不必要的问题。如下我的设置:
3 在Windows和Ubuntu系统间共享文件
3.1首先得保证windows和Ubuntu能互相Ping通:
设置虚拟机网卡是关键,关闭防火墙:
3.2设置共享文件夹:
3.3挂载文件夹:
(1)临时挂载:
Ubuntu系统按下ctrl+Alt+t进入终端,输入指令:
sudo mount -t vboxsf DataSets share
输入你的密码;
前提是你新建了一个在Home下面share文件家哈,且在home界面开启终端,忘了说了;
即可完成挂载,此时就可以看到windows这边共享的文件了。
(2)Ubuntu开机自动挂载:
点击Ubuntu系统:
进入路径,打开文件:Computer/etc/fstab编辑:
这里的- 1 , 2按自己的设置填写,1是Windows共享文件夹 , 2是Ubuntu要挂载的目的地
保存文件,重启就会发现开机自动挂载好了。
4 LabVIEW的安装
4.1去NI官网下载Linux版本的LabVIEW;
我这里下载2022 Q3社区版本,注意下载需要注册NI账号。
下载完成得到:
4.2将iso文件挂载出来
Ubuntu先建立一个空文件夹lv2022,然后终端使用指令,这两部都可以用指令来执行;
打开终端:
输入指令:
sudo mkdir lv2022 //新建一个文件夹
sudo mount -o loop 'iso的路径' '刚新建的那个路径' //这俩路径你可以手动输入,也可以鼠标拖拽。
说明:过程中可能会提示如我下图所示的一些错误提示,主要问题在于权限,这个在Linux系统下特别留意下。 我的解决思路,一般如下:
(1)重新把提示你没权限的文件夹或文件,复制一份到桌面,然后去操作;
(2)操作就是鼠标右键属性,修改:
当然,也可以通过指令设置权限,大家遇到自行去搜索。一个链接给大家参考:https://blog.csdn.net/s13227843385/article/details/80784881
4.3安装LabVIEW
下载下来的默认是.rpm格式文件,这个资料是用在Linux其他几个衍生版本的系统安装文件,比如Redhat,Debian等;现在是Ubuntu系统,毫无疑问,直接安装就会出错。这一章节,我们参考文档:
https://blog.csdn.net/qq_38486824/article/details/121055388
这个讲的比较详细,参考它一步步去安装。
4.4在桌面建立一个LabVIEW快捷方式
4.4.1进入如下路径找到这个LabVIEW的快捷方式文件
4.4.2复制该文件到桌面
4.4.3记事本来打开该文件,修改路径:
为
4.4.4保存(另存为)新的文件
4.4.5右击文件选择“Allow Launching”
图标变成彩色,即OK;
提几个要注意的点:``
(1)所以得rpm文件得全部转换成功,如果有一个出错变不正常。 我在2个不同的版本的Ubuntu系统转换过,有一次永远会有那么几个文件转化不成功。
最后我是从之前转化好的文件拷贝过来的。 当然我想应该这样可以解决:
解决apt-get安装中的E: Sub-process /usr/bin/dpkg returned an error code (1)问题
在用apt-get安装软件包的时候遇到E: Sub-process /usr/bin/dpkg returned an error code (1)问题,解决方法如下:
点击查看代码
cd /var/lib/dpkg/
sudo mv info/ info_bak # 现将info文件夹更名
sudo mkdir info # 再新建一个新的info文件夹
sudo apt-get update # 更新
sudo apt-get -f install # 修复
sudo mv info/* info_bak/ # 执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_bak文件夹下
sudo rm -rf info # 把自己新建的info文件夹删掉
sudo mv info_bak info # 把以前的info文件夹重新改回名
参考:https://www.cnblogs.com/nkh222/p/8126455.html
(2)其实可以不用删除原来的.rpm文件,不影响后续的LabVIEW安装。
5 NI-VISA的安装
5.1下载VISA
这里要注意的是,VISA版本与Ubuntu版本的匹配问题,我的Ubuntu是2204,查阅资料,对应的比较合适的VISA2023Q3;
下载地址:https://www.ni.com/zh-cn/support/downloads/drivers/download.ni-visa.html#487486
5.2NI-VISA 安装与配置:
- 下载设备驱动程序安装包:下载NI Linux设备驱动程序 - NI ,这个安装包支持 Ubuntu 18.04 / 20.04,需要注意的,安装包支持的内核版本与你所使用的 Ubuntu 的内核版本必须相同,否则会安装失败,可以在下载页面上点击 “查看自述文件” 查看安装包支持的内核版本,如果内核版本不一致,可以在下载页面上选择其它版本的安装包;
查看 Ubuntu 内核版本:
uname -r
2. 安装 NI-VISA:解压下载的安装包,在解压后的路径下运行下面的命令:
sudo apt install ./ni-ubuntu1804firstlook-drivers-2021Q4.deb
sudo apt update
sudo apt install ni-visa
3. 如果你使用的操作系统是 Ubuntu 20.04 / 22.04,请执行下面这些命令,这样做的目的是让普通权限用户也能访问 USB 仪器,Ubuntu 18.04 用户请略过此步。
sudo mkdir /etc/udev/agents.d
sudo mkdir /etc/udev/agents.d/usb
sudo ln -s /usr/lib/x86_64-linux-gnu/ni-visa/usb/nivisa_usbraw /etc/udev/agents.d/usb/
sudo ln -s /usr/lib/x86_64-linux-gnu/ni-visa/usb/nivisa_usbtmc /etc/udev/agents.d/usb/
sudo ln -s /usr/lib/x86_64-linux-gnu/ni-visa/usb/nivisa_usbtmc.rules /etc/udev/rules.d/
4. 禁用 Ubuntu 系统原生的 usbtmc 模块,因为这个模块会独占仪器的 USB 资源,导致 NI-VISA 无法访问仪器,使用下面的命令禁止 usbtmc 模块加载:
$ sudo su
echo 'blacklist usbtmc' > /etc/modprobe.d/nousbtmc.conf
- 收藏或标记本文,然后重启 Ubuntu
reboot
上述的指令供参考,具体需要依据实际情况修改文件名,路径等。
5.3安装过程中可能会遇到的问题
某些步骤报错的解决方法:
最后安装成功:
5.4visa测试
这一章节可以参考小草的文档:https://www.sohu.com/a/257854802_712029
其中最后设计到的visa的串口用putty等工具可以通信,而lavbiew依然报错:
这个问题解决方法:参考文档https://blog.csdn.net/c417469898/article/details/117510172
1.问题描述
最近在Linux/ubuntu使用串口设备,发现无法通过串口给Tof相机启动程序,权限不足的问题。
假设串口设备是 /dev/ttyUSB0,那么可以在终端下输入
sudo chmod 666 /dev/ttyUSB0
1
但是每次重新插拔串口设备,或者重新启动电脑都要重新更改权限,很不方便,于是整合了了插入后自动设置权限的方法。
- 解决方法(一)
2.1 其中gedit用vim打开
sudo gedit /etc/udev/rules.d/70-ttyusb.rules
1
2.2 在该文件中添加如下一行(可能不存在此文件而创建一个新文件)
KERNEL==“ttyUSB[0-9]*”, MODE=“0666”
2.3 重启系统即可
这样ttyUSB0-ttyUSB9默认的权限都变成了666,普通用户也可以读写串口了。
- 解决方法(二)
另一种是将该用户添加至dialout用户组,因为tty设备是属于dialout用户组,所以将用户添加到dialout用户组,该用户就具备了访问tty设备的权限;
3.1 查看串口信息
$ ls -l /dev/ttyUSB0
crw-rw---- 1 root dialout 4, 64 Jun 2 18:39 /dev/ttyUSB0
1
2
3.2 查看当前用户名
$ whoami
1
3.3 当前用户加入到dialout用户组
sudo usermod -aG dialout username
1
3.4 最后重启系统即可
6 END
至此,Linux下的LabVIEW开发环境搭建完成;
感谢网上无私分享经验的同学,感谢群里讨论的同学,感谢身边一起讨论的同事。
知识在于传播,技术在于积累,沟通使得二者有无限可能。
与君共勉!