Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

PCIe 6535B on a Linux Machine

Hello,

 

I'm attempting to get a PCIe 6535B working on Ubuntu 22.04. TL;DR it doesn't work for some reason.

 

The system sees the card

 

 

 

gmac@nicfps-test-icc:~/Documents/dev/ni$ lspci
00:00.0 Host bridge: Intel Corporation Device 4630 (rev 05)
00:01.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x16 Controller #1 (rev 05)
00:02.0 VGA compatible controller: Intel Corporation Device 4692 (rev 0c)
00:0a.0 Signal processing controller: Intel Corporation Platform Monitoring Technology (rev 01)
00:0e.0 RAID bus controller: Intel Corporation Volume Management Device NVMe RAID Controller
00:14.0 USB controller: Intel Corporation Device 7ae0 (rev 11)
00:14.2 RAM memory: Intel Corporation Device 7aa7 (rev 11)
00:15.0 Serial bus controller: Intel Corporation Device 7acc (rev 11)
00:16.0 Communication controller: Intel Corporation Device 7ae8 (rev 11)
00:17.0 SATA controller: Intel Corporation Device 7ae2 (rev 11)
00:1c.0 PCI bridge: Intel Corporation Device 7ab8 (rev 11)
00:1c.2 PCI bridge: Intel Corporation Device 7aba (rev 11)
00:1f.0 ISA bridge: Intel Corporation Device 7a87 (rev 11)
00:1f.3 Audio device: Intel Corporation Device 7ad0 (rev 11)
00:1f.4 SMBus: Intel Corporation Device 7aa3 (rev 11)
00:1f.5 Serial bus controller: Intel Corporation Device 7aa4 (rev 11)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (17) I219-V (rev 11)
01:00.0 Signal processing controller: National Instruments PCIe-6535B
03:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 04)

 

 

 

 

I've got DAQmx installed

 

 

 

gmac@nicfps-test-icc:~/Documents/dev/ni$ dpkg -l ni-daqmx*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                          Version             Architecture Description
+++-=============================-===================-============-====================================================================>
ii  ni-daqmx                      24.5.0.49564-0+f412 all          Provides support for NI data acquisition and signal conditioning dev>
ii  ni-daqmx-cdaq-firmware        24.5.0.49563-0+f411 amd64        NI-DAQmx firmware for CompactDAQ devices
ii  ni-daqmx-dsa                  24.5.0.49588-0+f436 all          NI-DAQmx DSA support
ii  ni-daqmx-dsa-libs             24.5.0.49588-0+f436 amd64        NI-DAQmx DSA libraries

 

 

....and many more packages.

 

And DAQmx seems to be seeing the card

 

 

 

gmac@nicfps-test-icc:~/Documents/dev/ni$ lsni -v
Scanning localhost for devices...

System Configuration API Experts found:
NI-DAQmx 24.5 (daqmx)
NI Device Interconnect Manager 24.5.0 (nidim)
NI-CONTROLLER 24.5 (ni-controller)
NI Network Browser 24.5 (network)
NI MX Routing Utility 24.5.0 (nimru)
NI-MXI 24.5 (ni-mxi)
NI PXI Platform Services 24.5 (ni-pxi)
NI-QPXI 24.5 (ni-qpxi)
NI System Configuration 24.5 (nisyscfg)
NI-RTSI 24.5 (rtsi)

System Configuration API resources found:
nicfps-test-icc
--Primary Expert:	NI System Configuration 24.5
--Model Name:		System Product Name

/sys/bus/pci/devices/0000:01:00.0
--Primary Expert:	NI System Configuration 24.5
--Bus/Dev/Func:		1/0/0

Ethernet Adapter eno1
--Primary Expert:	NI System Configuration 24.5

 

 

 

 

I've got a device at `/dev/nipalk` and checking the loaded modules gives

 

 

 

gmac@nicfps-test-icc:~/Documents/dev/ni$ lsmod | grep ni
nimru2k               774144  3
nipxirmk              303104  1
nimxdfk               593920  5 nimru2k
nimdbgk               466944  7 nimru2k,nipxirmk,nimxdfk
nidimk                376832  6 nimru2k,nipxirmk
niorbk                122880  5 nimdbgk,nimru2k,nipxirmk,nimxdfk,nidimk
nipalk               1196032  12 nimdbgk,nimru2k,niorbk,nipxirmk,nimxdfk,nidimk
nikal                 139264  7 nimdbgk,nimru2k,niorbk,nipxirmk,nimxdfk,nidimk,nipalk

 

 

 

 

But `nilsdev` doesn't return any devices, and none of the  C or Python examples return anything.  I get errors like

 

 

 

DAQmx Error: Device identifier is invalid.

Device Specified: Dev1

Task Name: _unnamedTask<0>

Status Code: -200220

 

 

 

 

What am I missing??

0 Kudos
Message 1 of 5
(240 Views)

According to NI Hardware and Software Operating System Compatibility, PCIe-6535B is not supported on Linux Desktop.

ZYOng_0-1726534750659.png

 

-------------------------------------------------------
Control Lead | Intelline Inc
0 Kudos
Message 2 of 5
(215 Views)

Thank you for taking the time to reply. That same documentation says my PCI-DIO-32HS isn't supported for Linux, yet, it is.

 

There seem to be kernel modules for this device that are successfully loaded into the kernel. DAQmx sees the device.

0 Kudos
Message 3 of 5
(190 Views)

@GMacDonald wrote:

Thank you for taking the time to reply. That same documentation says my PCI-DIO-32HS isn't supported for Linux, yet, it is.

 

There seem to be kernel modules for this device that are successfully loaded into the kernel. DAQmx sees the device.


When NI states it is not supported, it typically means it has not been tested and may work but is not guaranteed; in some cases, it doesn't work.

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
Message 4 of 5
(188 Views)

 

/sys/bus/pci/devices/0000:01:00.0
--Primary Expert:	NI System Configuration 24.5
--Bus/Dev/Func:		1/0/0

 

 

While this might be your device, and I do not see any other in the list from lsni, the utility doesn't seem to recognize it as a NI device. Otherwise it would say explicitly the Model Name and not just a generic Bus/Device name. The fact that it is managed by NI System Configuration 24.5 and not NI-DAQmx also hints at that. NI System Configuration 24.5 allows to enumerate all kind of hardware in your system, not just NI hardware but it doesn't let you access that hardware beyond some very basic identification purposes. NI DAQmx obviously hasn't claimed it and that is almost certainly because it has no device specific kernel device driver available for it. NI-PAL is only the Platform Abstraction Layer from NI. It provides services to access the hardware from other NI drivers, but has no idea about the nature of the hardware and if it is a DAQ device, a multimeter, scope or switch device.

Rolf Kalbermatter
My Blog
Message 5 of 5
(163 Views)