Linux Users

Highlighted

Which driver for PCI-6254 and 3.14 Kernel

Hi,

where can I find a suitable driver for PCI-6254 which works with my kernel?

I am using 3.14.3-rt4-PASU4-v1 #3 SMP PREEMPT RT Tue May 27 08:09:13 CEST 2014 x86_64 x86_64 x86_64 GNU/Linux on OpenSuse 13.1

NI-DAQmx Base 3.7.0-f0 for Linux/x86/x86_64 doesnt work because NIVISA can`t be installed

What am I doing wrong?

Preparing...                      ################################# [100%]
    file /usr/local/natinst conflicts between attempted installs of nispyi-2.8.1-f0.i386 and nipalki-2.9.1-f0.x86_64
    file /usr/local/natinst conflicts between attempted installs of nipalerri-2.9.1-f0.i386 and nispyi-2.8.1-f0.i386
    file /usr/local/natinst conflicts between attempted installs of nipxipfki-1.5.1-f0.x86_64 and nimxdfi-3.0.0-f0.i386
    file /usr/local/natinst/.nicore conflicts between attempted installs of niapalerri-2.2.1-f0.i386 and nimxdfi-3.0.0-f0.i386
    file /usr/local/natinst/.nicore/bin conflicts between attempted installs of niapalerri-2.2.1-f0.i386 and nimxdfi-3.0.0-f0.i386
    file /usr/local/natinst/.nicore/etc conflicts between attempted installs of niapalerri-2.2.1-f0.i386 and nimxdfi-3.0.0-f0.i386
    file /usr/local/natinst/.nicore/etc/errors conflicts between attempted installs of niapalerri-2.2.1-f0.i386 and nimxdfi-3.0.0-f0.i386
    file /usr/local/natinst/.nicore/etc/errors/ChineseS conflicts between attempted installs of niapalerri-2.2.1-f0.i386 and nimxdfi-3.0.0-f0.i386
    file /usr/local/natinst/.nicore/etc/errors/English conflicts between attempted installs of niapalerri-2.2.1-f0.i386 and nimxdfi-3.0.0-f0.i386
    file /usr/local/natinst/.nicore/etc/errors/French conflicts between attempted installs of niapalerri-2.2.1-f0.i386 and nimxdfi-3.0.0-f0.i386
    file /usr/local/natinst/.nicore/etc/errors/German conflicts between attempted installs of niapalerri-2.2.1-f0.i386 and nimxdfi-3.0.0-f0.i386
    file /usr/local/natinst/.nicore/etc/errors/Japanese conflicts between attempted installs of niapalerri-2.2.1-f0.i386 and nimxdfi-3.0.0-f0.i386
    file /usr/local/natinst/.nicore/etc/errors/Korean conflicts between attempted installs of niapalerri-2.2.1-f0.i386 and nimxdfi-3.0.0-f0.i386

Error installing NI-VISA for Linux 5.4.0f0.

0 Kudos
Message 1 of 15
(6,108 Views)
14 REPLIES 14

Re: Which driver for PCI-6254 and 3.14 Kernel

Ok.... I got that one fixed with this hack https://decibel.ni.com/content/message/52494#52494

But it goes on and on ....

Installing NI-KAL:

NI-KAL update failed.

  CC   /usr/local/natinst/nikal/src/nikal/nikal.o

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL200_destroyDeviceProcDirs’:

/usr/local/natinst/nikal/src/nikal/nikal.c:1042:32: error: dereferencing pointer to incomplete type

    remove_proc_entry(d->rootDir->name, nNIKAL200_sProcRootDir);

                                ^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL200_createKALInterfaceProperties’:

/usr/local/natinst/nikal/src/nikal/nikal.c:1116:4: error: implicit declaration of function ‘create_proc_read_entry’ [-Werror=implicit-function-declaration]

    entry = create_proc_read_entry(nNIKAL200_kDeviceInterfacesPathFile,

    ^

/usr/local/natinst/nikal/src/nikal/nikal.c:1116:10: warning: assignment makes pointer from integer without a cast [enabled by default]

    entry = create_proc_read_entry(nNIKAL200_kDeviceInterfacesPathFile,

          ^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL220_registerDeviceInterfaceCommon’:

/usr/local/natinst/nikal/src/nikal/nikal.c:1163:7: warning: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘size_t’ [-Wformat=]

       snprintf(di->dirName, sizeof(di->dirName), "%s\\%d", name, interfaceNum);

       ^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL200_registerProperty’:

/usr/local/natinst/nikal/src/nikal/nikal.c:1346:14: warning: assignment makes pointer from integer without a cast [enabled by default]

    procEntry = create_proc_read_entry(pd->name,

              ^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL100_mmap’:

/usr/local/natinst/nikal/src/nikal/nikal.c:1993:24: error: ‘VM_RESERVED’ undeclared (first use in this function)

       vma->vm_flags |= VM_RESERVED | VM_LOCKED | VM_DONTCOPY | VM_DONTEXPAND;

                        ^

/usr/local/natinst/nikal/src/nikal/nikal.c:1993:24: note: each undeclared identifier is reported only once for each function it appears in

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL190_vmaPageFaultHandler’:

/usr/local/natinst/nikal/src/nikal/nikal.c:2148:11: error: ‘VM_CAN_NONLINEAR’ undeclared (first use in this function)

    return VM_CAN_NONLINEAR;

           ^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL220_vmaPageFaultHandler’:

/usr/local/natinst/nikal/src/nikal/nikal.c:2161:11: error: ‘VM_CAN_NONLINEAR’ undeclared (first use in this function)

    return VM_CAN_NONLINEAR;

           ^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL100_remapPageRange’:

/usr/local/natinst/nikal/src/nikal/nikal.c:2625:22: error: ‘VM_RESERVED’ undeclared (first use in this function)

    vma->vm_flags |= (VM_RESERVED | VM_IO);

                      ^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL100_doMMap’:

/usr/local/natinst/nikal/src/nikal/nikal.c:2658:4: error: implicit declaration of function ‘do_mmap’ [-Werror=implicit-function-declaration]

    mmapAddress = do_mmap((nLinux_fileHandle*)file, address, length, PROT_READ|PROT_WRITE,

    ^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL100_enumeratePCIBuses’:

/usr/local/natinst/nikal/src/nikal/nikal.c:3818:43: error: ‘nLinux_pciBus’ has no member named ‘secondary’

          pciBusInformation.secondary = bus->secondary;

                                           ^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL190_vmaPageFaultHandler’:

/usr/local/natinst/nikal/src/nikal/nikal.c:2149:1: warning: control reaches end of non-void function [-Wreturn-type]

}

^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL220_vmaPageFaultHandler’:

/usr/local/natinst/nikal/src/nikal/nikal.c:2162:1: warning: control reaches end of non-void function [-Wreturn-type]

}

^

cc1: some warnings being treated as errors

make[2]: *** [/usr/local/natinst/nikal/src/nikal/nikal.o] Error 1

make[1]: *** [_module_/usr/local/natinst/nikal/src/nikal] Error 2

make: *** [all] Error 2

0 Kudos
Message 2 of 15
(2,888 Views)

Re: Which driver for PCI-6254 and 3.14 Kernel

Isn`t there a way to get the nirplk working on 64bit with 3.14 kernel?

0 Kudos
Message 3 of 15
(2,888 Views)

Re: Which driver for PCI-6254 and 3.14 Kernel

create_proc_read_entry is a kernel symbol that disappeared around the 3.10 timeframe. You're going to need a newer kal to use such a new kernel (bit-ness matters not here)

0 Kudos
Message 4 of 15
(2,888 Views)

Re: Which driver for PCI-6254 and 3.14 Kernel

The create_proc_read_entry change was addressed in NI-KAL 2.4.  The latest KAL on the web is NI-KAL 2.5.

Having said that, that is not the only change required for 3.14 kernel support.  While I can't talk specifics about future releases, I can say that we are constantly working to update NI-KAL for our supported Linux distributions.

0 Kudos
Message 5 of 15
(2,888 Views)

Re: Which driver for PCI-6254 and 3.14 Kernel

Ok.. I tried installing NI-KAL 2.5

I also downgraded Kernel to 3.10.39-rt40 PREEMPT RT x68_64 because OpenSuse 13.1 (which is supported by 2.5 NIKAL) has 3.11.6* as default.

Looks good so far ... BUT...  when calling updateNIDrivers it sucks again....

What to do in order to get the NI stuff working???

# updateNIDrivers

Configuring for linux kernel version 3.10.39-rt40-PASU4-v2.

********************************* NOTE *********************************

Using kernel headers found in /lib/modules/3.10.39-rt40-PASU4-v2/source.

If this does not correspond to the location of the 3.10.39-rt40-PASU4-v2 headers,

then define KERNELHEADERS in your environment to point to the location

of the kernel headers, define KERNELTARGET as the version of the

kernel for which to compile, and then rerun ./configure.

********************************* NOTE *********************************

Kernel has version.h in include/generated/uapi/: yes

Kernel has reparent_to_init(): no

Number of arguments for do_munmap(): 3

Kernel has vm_mmap(): yes

Kernel has vm_munmap(): yes

Kernel has VM_RESERVED: no

Kernel struct pci_dev has busn_res member: yes

pte_offset function: pte_offset_kernel()

Levels in page table: 4

Kernel has remap_pfn_range: yes

Kernel has kzalloc: yes

Kernel has chained SGL support: yes

USB altsetting name: cur_altsetting

Kernel has usb_get_intf(): yes

Kernel has intf_cache member in usb_host_config: yes

Kernel has ep[] members in usb_device: yes

Kernel exports usb_set_configuration(): no

Units of USB_CTRL_GET_TIMEOUT: msec

Kernel has owner member in usb_driver: no

Kernel has put_page_testzero(): yes

Kernel has mutex method: yes

Kernel has wait_for_completion_interruptible: yes

Kernel has config.h: no

Kernel has ioctl32.h: no

IRQ handlers have pt_regs: no

Kernel has work_struct and delayed_work: yes

Kernel supports fault method in vm_operations_struct: yes

Kernel has ioremap_wc: yes

Kernel has pgprot_writecombine: yes

Kernel has cred.h: yes

Kernel has UMH constants: yes

Kernel has create_proc_read_entry: no

Kernel has namespaced generic netlink API: yes

Kernel has genlmsg_new: yes

Kernel has family genlmsg_put: yes

Kernel has usleep_range(): yes

Kernel has RS-485 serial_core support: no

Storing configuration in Makefile.in

If the values stored are incorrect they can be changed before running make.

Installing NI-KAL:

NI-KAL update failed.

  CC   /usr/local/natinst/nikal/src/nikal/nikal.o

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL230_getCurrentEffectiveUserID’:

/usr/local/natinst/nikal/src/nikal/nikal.c:7309:4: error: incompatible types when returning type ‘kuid_t’ but ‘nNIKAL100_tU32’ was expected

    return current_euid();

    ^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL100_insertCharToSerialRxBuffer’:

/usr/local/natinst/nikal/src/nikal/nikal.c:7564:4: warning: passing argument 1 of ‘tty_insert_flip_char’ from incompatible pointer type [enabled by default]

    if (tty_insert_flip_char(tty, ch, (unsigned int)errorFlag) == 0)

    ^

In file included from /usr/local/natinst/nikal/src/nikal/nikal.c:93:0:

include/linux/tty_flip.h:16:19: note: expected ‘struct tty_port *’ but argument is of type ‘struct nLinux_ttyStruct *’

static inline int tty_insert_flip_char(struct tty_port *port,

                   ^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL100_pushSerialRxBufferToUser’:

/usr/local/natinst/nikal/src/nikal/nikal.c:7582:4: warning: passing argument 1 of ‘tty_flip_buffer_push’ from incompatible pointer type [enabled by default]

    tty_flip_buffer_push(tty);

    ^

In file included from /usr/local/natinst/nikal/src/nikal/nikal.c:93:0:

include/linux/tty_flip.h:13:13: note: expected ‘struct tty_port *’ but argument is of type ‘struct nLinux_ttyStruct *’

extern void tty_flip_buffer_push(struct tty_port *port);

             ^

/usr/local/natinst/nikal/src/nikal/nikal.c: In function ‘nNIKAL230_getCurrentEffectiveUserID’:

/usr/local/natinst/nikal/src/nikal/nikal.c:7313:1: warning: control reaches end of non-void function [-Wreturn-type]

}

^

make[2]: *** [/usr/local/natinst/nikal/src/nikal/nikal.o] Error 1

make[1]: *** [_module_/usr/local/natinst/nikal/src/nikal] Error 2

make: *** [all] Error 2

ERROR: make of nikal kernel module failed, not installing kernel module.

   updateNIDrivers should be called again after fixing the problem.

   Logging failure...

   Include the file /tmp/niSystemReport.out.gz when contacting

   National Instruments for support

0 Kudos
Message 6 of 15
(2,888 Views)

Re: Which driver for PCI-6254 and 3.14 Kernel

Ok seems as this was my fault. I changed some Kernel-configs and now it works.. NI-KAL installed successfully....

Thx!

Message 7 of 15
(2,888 Views)

Re: Which driver for PCI-6254 and 3.14 Kernel

Great news!  Was this originally a default kernel config for OpenSUSE 13.1?  Would you mind sharing the config parameters that you tweaked in order to help out fellow users?  Thanks!

0 Kudos
Message 8 of 15
(2,888 Views)

Re: Which driver for PCI-6254 and 3.14 Kernel

Yeah of course... plain text here or can I upload it anywhere?

BTW: Where can I find some C/C++ sample code?

Message 9 of 15
(2,884 Views)

Re: Which driver for PCI-6254 and 3.14 Kernel

I was hoping you would just summarize in this thread the config params that you had to change and the values you changed them to.

I don't know anything about sample code, but I'm sure someone on these forums can point you in the correct direction.

0 Kudos
Message 10 of 15
(2,884 Views)
Reply
This is an open group. Sign in and click the "Join Group" button to become a group member and start posting.