Linux Users

cancel
Showing results for 
Search instead for 
Did you mean: 

GPIB-USB-HS, ni-4882.-2.9.0f0

Hi,

Help me

I want to use GPIB-USB-HS, ni488.2-2.9.0f0, on Linux.

but, gpibexplorer cannot find,  GPIB-USB-HS Device.

  ScientificLinux 5.6 - OK(found), GPIB Communitaion Ok.

  ScientificLinux 6.1 - NG, cannot find.

  openSuse11.3      - NG, cannot find.

What's different? ScientificLinux5.6 vs ScientificLinux6.1 and openSuse11.3 .

Kernel Version?

ScientificLinux5.6 Kernel version is 2.6.18

ScientificLinux6.1 Kernel version is 2.6.32

openSuse Kernel version is 2.6.34

refer, README.

> -------------------------

> Supported GPIB Interfaces

> -------------------------

> PCI-GPIB

> PCI-GPIB/LP

> NI PCIe-GPIB

> PCI-8212

> PCI-8232

> PXI-GPIB

> PXI-8212

> PXI-8232

> GPIB-USB-B (Up to kernel version 2.6.24)

> GPIB-USB-HS (Up to kernel version 2.6.24)  <----- Down to ?

> GPIB-ENET/100

> GPIB-ENET/1000 (new)

0 Kudos
Message 1 of 7
(11,018 Views)

The GPIB-USB-HS won't work newer kernels

> GPIB-USB-HS (Up to kernel version 2.6.24)  <----- Down to ?

No, up to. With kerneles newer than that version it won't work.

0 Kudos
Message 2 of 7
(7,469 Views)

Why not?

0 Kudos
Message 3 of 7
(7,469 Views)

USB kernel API was marked as EXPORT_SYMBOL_GPL sometime back, and since our modules are not GPL, we can't link to them

This has come up again and again in other threads, for example: https://decibel.ni.com/content/message/24682#24682

Sorry, we can't do anything about that.

0 Kudos
Message 4 of 7
(7,469 Views)

I managed to get it working on CentOS 6.4 using a "license hack". That should be ok as long as you don't distribute it. Also you need to change around line 4085 in nikal.c:

-   snprintf(device->nameString, sizeof(device->nameString), "%s", usb_dev->dev.bus_id);

+   snprintf(device->nameString, sizeof(device->nameString), "%s", usb_dev->dev.bus->name);

That's all.

I wonder why NI cannot use libusb...

0 Kudos
Message 5 of 7
(7,469 Views)

We can use libusb, but changing the device access from kernel mode up to user mode while not breaking our software requirements is non-trivial and has lots of challenges (architecture-wise, performance-wise, multi-process-wise, etc).. Sorry .. We are looking into it, but no promises if/when it will happen.

0 Kudos
Message 6 of 7
(7,469 Views)

Just publish the kernel driver source under GPL, and you can use the usb framework again.

Proprietary kernel modules are insane anyways. 

Linux Embedded / Kernel Hacker / BSP / Driver development / Systems engineering
0 Kudos
Message 7 of 7
(7,203 Views)