09-16-2024 04:58 PM - edited 09-16-2024 05:03 PM
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??
09-16-2024 08:00 PM
According to NI Hardware and Software Operating System Compatibility, PCIe-6535B is not supported on Linux Desktop.
09-17-2024 09:46 AM
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.
09-17-2024 09:54 AM
@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.
09-18-2024 04:05 AM - edited 09-18-2024 04:12 AM
/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.