06-19-2019
12:31 PM
- last edited on
11-18-2024
07:06 PM
by
Content Cleaner
It doesn't look like the PXI-8433/4 card is supported by NI-Serial in CentOS 7.6 (or maybe any Linux OS) with the latest NI provided drivers. Is this true?
Is there a list of supported hardware on PXI for Desktop Linux similar to the Windows supported HW charts that can be found on NI.com such as this one? http://www.ni.com/product-documentation/54690/en/
Solved! Go to Solution.
06-19-2019 05:29 PM
I checked the NI Linux Driver Readme file...
Looks like the 8433/4 should be supported in CentOS 7.6 with NI Serial 18.1 - so I need to do some checking to see why I can't get the ports to show in LabVIEW 2018 64-bit.
-------------------
System Requirements
-------------------
NI-Serial for Linux software for the Linux/x86 64-bit architecture has been
tested on the following distributions:
openSUSE Leap 42.3
Red Hat Enterprise Linux Desktop + Workstation 6.x
Red Hat Enterprise Linux Desktop + Workstation 7.x
CentOS 7.x
For more information about supported Linux versions and distributions supported
by NI, refer to ni.com/linux.
--------------------
Supported Hardware
--------------------
--------------------------------------------------------------------------------------------------------
PXI Interfaces Standard # Ports Isolated Max Baud (kbaud)
--------------------------------------------------------------------------------------------------------
PXI-8431/2 RS-485/RS-422 2 No 3000.0
PXI-8431/4 RS-485/RS-422 4 No 3000.0
PXI-8431/8 RS-485/RS-422 8 No 3000.0
PXI-8433/2 RS-485/RS-422 2 Yes 3000.0
PXI-8433/4 RS-485/RS-422 4 Yes 3000.0
--------------------------------------------------------------------------------------------------------
PXI Express Interfaces Standard # Ports Isolated Max Baud
(kbaud)
--------------------------------------------------------------------------------------------------------
PXIe-8430/8 RS-232 8 No 1000.0
PXIe-8430/16 RS-232 16 No 1000.0
PXIe-8431/8 RS-485/RS-422 8 No 3000.0
PXIe-8431/16 RS-485/RS-422 16 No 3000.0
06-21-2019 02:22 PM
Can you tell if the kernel module built correctly? What do dkms status and dkms autoinstall report? It doesn't look like the ni-serial package lists a dependency on the kernel-devel package. If dkms autoinstall fails with something like "Your headers for kernel <version> cannot be found at <path>," you'll need to install them separately with something like yum install kernel-devel-`uname -r`.
06-21-2019 06:06 PM
dmks autoinstall didn't return anything.
dkms status results (I added the bold):
ni1045tr, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
ni408x_driver, 18.2.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
ni488k, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
ni5110k, 18.7.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
ni5164k, 18.4.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
ni5170k, 18.4.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nibds, 18.2.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nica4_driver, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nicdcck, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nicdrk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nicmmk, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nicmrk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nicntdrk, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nicondrk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nidimk, 18.2.2f0, 3.10.0-957.el7.x86_64, x86_64: installed
nidmxfk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nidsark, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
niesrk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
niflexrio6seriesk, 18.1.1f2, 3.10.0-957.el7.x86_64, x86_64: installed
niflexrio7seriesk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
niflexriomitek, 18.1.1f2, 3.10.0-957.el7.x86_64, x86_64: installed
nifslk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nihorbrk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nihsdrk, 18.7.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nikal, 18.2.0f0, 3.10.0-957.el7.x86_64, x86_64: installed
nilmsk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nimdbgk, 18.2.3f0, 3.10.0-957.el7.x86_64, x86_64: installed
nimru2k, 18.2.2f0, 3.10.0-957.el7.x86_64, x86_64: installed
nimsdrk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nimxdfk, 18.2.3f0, 3.10.0-957.el7.x86_64, x86_64: installed
nimxik, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
niorbk, 18.2.3f0, 3.10.0-957.el7.x86_64, x86_64: installed
nipalk, 18.2.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nipxicidk, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nipxifpk, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nipxigpk, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nipxim2, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nipxiocp, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nipxirmk, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
niraptrk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
niriochinchk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
niriomtk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
NiRioSrv, 18.1.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
niscdk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nisdigk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
niserial, 18.1.0f0, 3.10.0-957.el7.x86_64, x86_64: installed
nisldk, 18.2.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nismbus, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nismbusw, 18.0.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
nissrk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nistc2k, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nistc3rk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nistcrk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nistreamk, 18.2.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
niswdk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nisync6674, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nitiork, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
NiViPciK, 18.2.1f0, 3.10.0-957.el7.x86_64, x86_64: installed
niwfrk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
nixsrk, 18.1.1f1, 3.10.0-957.el7.x86_64, x86_64: installed
06-24-2019 08:09 AM
Does lsmod show the niserial module loaded? Does modprobe niserial load it?
06-24-2019 11:18 AM
lsmod did NOT originally show niserial as loaded.
modprobe niserial did load the module, no errors reported.
lsmod shows 0 callers for niserial
Restarted and lsmod still showed the module as loaded - running LabVIEW again - still no 8433/4 Com ports showing. Makes sense since no instances of niserial are running - just not sure what should be loading it.
06-25-2019
10:29 AM
- last edited on
11-18-2024
07:27 PM
by
Content Cleaner
After NI driver software has been installed, you may install driver support for NI LabVIEW if you plan to use it. Refer to the 'Application Development Environment' table in the Description section of the NI Linux Device Drivers download page for the names of packages which can be installed to provide driver support for LabVIEW. Please see Figure 3 below for an example.
Figure 3 shows an example of
[root user]# yum install ni-daqmx-labview-2018-support
The chart mentioned on the above page that is found on the NI Linux Device Drivers (July 2018) page does not mention installing the niserial package for LabVIEW support.
https://www.ni.com/en/support/downloads/drivers/download.ni-linux-device-drivers.html#349660
Driver | Application Development Environment | Package Name |
NI-DAQmx 18.1 | LabVIEW 2016 | ni-daqmx-labview-2016-support |
NI-DAQmx 18.1 | LabVIEW 2017 | ni-daqmx-labview-2017-support |
NI-DAQmx 18.1 | LabVIEW 2018 | ni-daqmx-labview-2018-support |
NI-DMM 18.2 | LabVIEW 2015 | ni-dmm-labview-2015-support |
NI-DMM 18.2 | LabVIEW 2016 | ni-dmm-labview-2016-support |
NI-DMM 18.2 | LabVIEW 2017 | ni-dmm-labview-2017-support |
NI-DMM 18.2 | LabVIEW 2018 | ni-dmm-labview-2018-support |
NI-SCOPE 18.7 | LabVIEW 2015 | ni-scope-labview-2015-support |
NI-SCOPE 18.7 | LabVIEW 2016 | ni-scope-labview-2016-support |
NI-SCOPE 18.7 | LabVIEW 2017 | ni-scope-labview-2017-support |
NI-SCOPE 18.7 | LabVIEW 2018 | ni-scope-labview-2018-support |
NI-SWITCH 18.1 | LabVIEW 2015 | ni-switch-labview-2015-support |
NI-SWITCH 18.1 | LabVIEW 2016 | ni-switch-labview-2016-support |
NI-SWITCH 18.1 | LabVIEW 2017 | ni-switch-labview-2017-support |
NI-SWITCH 18.1 | LabVIEW 2018 | ni-switch-labview-2018-support |
NI-Sync 18.2 | LabVIEW 2016 | ni-sync-labview-2016-support |
NI-Sync 18.2 | LabVIEW 2017 | ni-sync-labview-2017-support |
NI-Sync 18.2 | LabVIEW 2018 | ni-sync-labview-2018-support |
NI System Configuration 18.1 | LabVIEW 2016 | ni-syscfg-labview-2016-support |
NI System Configuration 18.1 | LabVIEW 2017 | ni-syscfg-labview-2017-support |
NI System Configuration 18.1 | LabVIEW 2018 | ni-syscfg-labview-2018-support |
NI-VISA 18.2 | LabVIEW 2015 | ni-visa-labview-2015-support |
NI-VISA 18.2 | LabVIEW 2016 | ni-visa-labview-2016-support |
NI-VISA 18.2 | LabVIEW 2017 | ni-visa-labview-2017-support |
NI-VISA 18.2 | LabVIEW 2018 | ni-visa-labview-2018-support |
Is there some other setup required that I am missing?
06-26-2019 05:14 PM - edited 06-26-2019 05:20 PM
I think progress was made after performing modprobe to install ni-serial module.
I have to log in as ROOT (using SU) in Linux to get any Serial ports to show up with permissions.
I ran NIvisaic (NI VISA interactive control) in Linux Terminal and also visaconf (NI VISA Config) in Linux as ROOT, with and without the 8433/4 cards installed and did notice that the ASRL list changed, but not by the number of cards/ports expected. I have 4 of the 8433/4 cards. They are in slots 4, 5, 6, and 7. Each PXI-8433/4 has 4 ports, so I would expect 16 ports to show up as available in NIvisaic or visaconf
Do I need to manually configure them in visaconf?
If I don't run as ROOT I don't get the same access to the cards in NIvisaic, do I need to maybe run LabVIEW as root somehow?
Attached are the pictures with all of the 8433/4 installed or removed from the system, and running NIvisaic and visaconf.
In LabVIEW 2018 I am only able to get to ASRL1::INSTR to ASRL4::INSTR, which again I would expect to see more ports. ASRL1 always appears in the list, and I think this is the RS232 COM port built into the controller.NIvisaic Without cards installed
NIvisaic with cards installed
visaconf cards removed
visaconf cards installed
07-18-2019 06:10 PM - edited 07-18-2019 06:11 PM
NI Support finally found reference in their issues Db that covers this problem. There is a default CentOS kernel limit to the number of ports that the system will configure, this default limit is 4!
Symptoms
Only 4 serial ports are available in the Desktop Linux after install the niserial Linux Desktop driver. This happens across RHEL6, RHEL7 and CentOS7.
Cause
This is cause by CONFIG_SERIAL_8250_NR_UARTS parameter in the configuration kernel file of the kernel. This defines the maximum number of serial ports the kernel will handle. NI-Serial leverage the 8250 driver for serial ports in Linux System. The default limit for the kernel is 4 port, which is why when a PXI8433/4 card is added to the PXIe chassis, only 4-port are discovered, even with 1 built-in RS-232 port on the controller, when one would expect 5 ports to be discovered.
config SERIAL_8250_NR_UARTS
int "Maximum number of 8250/16550 serial ports"
depends on SERIAL_8250
default "4"
help
Set this to the number of serial ports you want the driver
to support. This includes any ports discovered via ACPI or
PCI enumeration and any ports that may be added at run-time
via hot-plug, or any ISA multi-port serial cards.
config SERIAL_8250_RUNTIME_UARTS
int "Number of 8250/16550 serial ports to register at runtime"
depends on SERIAL_8250
range 0 SERIAL_8250_NR_UARTS
default "4"
help
Set this to the maximum number of serial ports you want
the kernel to register at boot time. This can be overridden
with the module parameter "nr_uarts", or boot-time parameter
8250.nr_uarts
Resolution (Ryan: I edited out the first line of editing the grub.conf file manually)
Edit the kernel line in /boot/grug/grub.conf and pass the parameter 8250.nr_uarts=32, After reboot 32 serial ports will be accessible and will be verified with below command.
On BIOS-based machines, issue the following command as root:
# grub2-mkconfig -o /boot/grub2/grub.cfg
On UEFI-based machines, issue the following command as root:
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
On CentOS, issue the following command as root:
# grub2-mkconfig -o /boot/grub2/grub.cfg
On RHEL7
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
I also verified this by searching on the Net and found this on the CentOS board:
https://www.centos.org/forums/viewtopic.php?t=56094
The resolution turns out to be pretty simple (at least for this board, most likely others too). Simply set the number of ports to initialise to be enough for all the hardware: for this board, set 8250.nr_uarts=7 on the boot command line. After which the kernels sets up the ports exactly as expected and furthermore, they work as expected also.
For those that don't regularly change the grub configuration, the mechanics are:
Example GRUB_CMDLINE_LINUX=”crashkernel=auto rd.lvm.lv=centos_fsp4/root rd.lvm.lv=centos_fsp4/swap rhgb quiet"
6. Reboot
07-19-2019 12:54 PM - edited 07-19-2019 12:55 PM
The issue after this is that LabVIEW doesn't have sufficient privileges to access the resource by default.
Need to change the access level required in the instrument file.