Linux Users

cancel
Showing results for 
Search instead for 
Did you mean: 

Error compiling NI-KAL 2.3.2 with kernel 3.10

Using CentOS 7:

[root@measure NI4882_Linux_3_2_0]# uname -r

3.10.0-327.36.1.el7.x86_64

NI-488.2 version 3.2.0f0

is about to be installed using rpm at /usr/local/natinst

Would you like to continue? [Yn] y

Installing NI-488.2 version 3.2.0f0...

Pre Installation .

Post Installation .

Pre Installation .................

Preparing...                          ################################# [100%]

Updating / installing...

   1:labview-2012-rte-12.0.1-6        ################################# [  8%]

   2:nipalerri-3.0.0-f0               ################################# [ 17%]

   3:nimdnsresponder-2.2.0-f0         ################################# [ 25%]

   4:nikali-2.5.1-f0                  ################################# [ 33%]

   5:nipalki-3.0.0-f0                 ################################# [ 42%]

   6:nipali-3.0.0-f0                  ################################# [ 50%]

   7:ni4882ki-3.2.0-f0                ################################# [ 58%]

   8:nispyi-2.8.1-f0                  ################################# [ 67%]

   9:niiotracei-3.1.0-f0              ################################# [ 75%]

  10:ni4882i-3.2.0-f0                 ################################# [ 83%]

  11:ni4882i-3.2.0-f0                 ################################# [ 92%]

  12:nipali-3.0.0-f0                  ################################# [100%]

Post Installation .

Warning: nikali post installation failed! /tmp/nikaliPostInstall.log follows:

Configuring for linux kernel version 3.10.0-327.36.1.el7.x86_64.

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

Using kernel headers found in /lib/modules/3.10.0-327.36.1.el7.x86_64/source.

If this does not correspond to the location of the 3.10.0-327.36.1.el7.x86_64 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

Kernel uses tty_port instead of tty_struct for tty helper functions: yes

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 ‘nNIKAL100_initDriver’:

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

    if ((status = genl_register_ops(&nikal_netlink_family, &nikal_netlink_ops))) return status;

    ^

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

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.

................

Updating modversions database to include newly installed drivers...

FOR PATENTS COVERING NATIONAL INSTRUMENTS PRODUCTS, REFER TO

THE PATENTS.txt FILE ON /run/media/labmeasure/NI4882_Linux_3_2_0 AND/OR

www.ni.com/patents

******************************************************************************

* A reboot is required before attempting to use the

* NI-488.2 software.

******************************************************************************

Would you like to reboot now? [yes|no] ^C

Installer is aborted.

--------------------------------------------------

Any ideas?

Thanks.

0 Kudos
Message 1 of 2
(4,439 Views)

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

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

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

    if ((status = genl_register_ops(&nikal_netlink_family, &nikal_netlink_ops))) return status;

    ^

This function is gone aeons ago. That's the price to pay with OOT kernel modules, that aren't properly maintained. Note: oot-modules are just a workaround for exotic usecases (usually just for kernel hackers). Production drivers should be patched directly into / maintained inside the kernel tree. The kernel's internals heavily change over time - there never have been any fixed APIs (not even to speak of ABI), and most likely never be. Even worse w/ proprietary blobs - that's just Russian Roulette. Maybe usable for some childs toy that's going to be thrown away after a year anyways, but absolutely not for industrial devices w/ longer lifetimes.
Linux Embedded / Kernel Hacker / BSP / Driver development / Systems engineering
0 Kudos
Message 2 of 2
(4,127 Views)