Hi I am trying to compile windrvr6 (a driver for USB and Parallel JTAG cable for use with Xilinx FPGA devices) on a x64 Fedora Core 8 with a 2.6.26.3-14 kernel.
I get the following error message
linux_wrappers.c:306: error: unknown field ‘nopage’ specified in initializer linux_wrappers.c:306: warning: initialization from incompatible pointer type
which seems to tbe caused by these lines in linux_wrappers.c
struct vm_operations_struct windriver_vm_ops = {
nopage: windriver_vma_nopage,
};
Below is the output of the compile command.
--Installing windrvr6--------------------------------------------- --Checking version. --File /lib/modules/2.6.26.3-14.fc8/kernel/drivers/misc/windrvr6.ko does not exist. --File LINUX.2.6.26.3-14.fc8.x86_64/windrvr6.ko does not exist. --Setting source version to 900. --File LINUX.2.6.26.3-14.fc8.x86_64/windrvr6.ko is newer than the destination file. loading cache ./config.cache configure: error: You are trying to install WinDriver for i386 on x86_64. rm -f core LINUX.2.6.26.3-14.fc8.x86_64/windrvr6.ko LINUX.2.6.26.3-14.fc8.x86_64/* cc -c -O2 -Wall -DLINUX -D__KERNEL__ -DMODULE -DWINDRIVER_KERNEL -DLINUX_USB_SUPPORT -Wstrict-prototypes -Wno-trigraphs -fno-common -fomit-frame-pointer -pipe -Wdeclaration-after-statement -funit-at-a-time -march=k8 -mno-red-zone -mcmodel=kernel -fno-reorder-blocks -Wno-sign-compare -fno-asynchronous-unwind-tables -O -I/lib/modules/2.6.26.3-14.fc8/source/include -I/lib/modules/2.6.26.3-14.fc8/source/include/asm/mach-default -I/home/gkamendje/install/xilinx/install_drivers/linux_drivers/windriver64/include -I/home/gkamendje/install/xilinx/install_drivers/linux_drivers/windriver64 -fno-strict-aliasing -D"KBUILD_STR(s)=#s" -D"KBUILD_MODNAME=KBUILD_STR(windrvr6)" -D"KBUILD_BASENAME=KBUILD_STR(windrvr6)" -include /lib/modules/2.6.26.3-14.fc8/build/include/linux/autoconf.h -c -o LINUX.2.6.26.3-14.fc8.x86_64/linux_wrappers.o linux_wrappers.c linux_wrappers.c:306: error: unknown field ‘nopage’ specified in initializer linux_wrappers.c:306: warning: initialization from incompatible pointer type make: *** [LINUX.2.6.26.3-14.fc8.x86_64/linux_wrappers.o] Error 1 cc -c -O2 -Wall -DLINUX -D__KERNEL__ -DMODULE -DWINDRIVER_KERNEL -DLINUX_USB_SUPPORT -Wstrict-prototypes -Wno-trigraphs -fno-common -fomit-frame-pointer -pipe -Wdeclaration-after-statement -funit-at-a-time -march=k8 -mno-red-zone -mcmodel=kernel -fno-reorder-blocks -Wno-sign-compare -fno-asynchronous-unwind-tables -O -I/lib/modules/2.6.26.3-14.fc8/source/include -I/lib/modules/2.6.26.3-14.fc8/source/include/asm/mach-default -I/home/gkamendje/install/xilinx/install_drivers/linux_drivers/windriver64/include -I/home/gkamendje/install/xilinx/install_drivers/linux_drivers/windriver64 -fno-strict-aliasing -D"KBUILD_STR(s)=#s" -D"KBUILD_MODNAME=KBUILD_STR(windrvr6)" -D"KBUILD_BASENAME=KBUILD_STR(windrvr6)" -include /lib/modules/2.6.26.3-14.fc8/build/include/linux/autoconf.h -c -o LINUX.2.6.26.3-14.fc8.x86_64/linux_wrappers.o linux_wrappers.c linux_wrappers.c:306: error: unknown field ‘nopage’ specified in initializer linux_wrappers.c:306: warning: initialization from incompatible pointer type make: *** [LINUX.2.6.26.3-14.fc8.x86_64/linux_wrappers.o] Error 1 --make windrvr install rc= 2 --install_windrvr6 rc = 2 --Module windrvr6 is not running. --Module xpc4drvr is not running. --Note: By default, the file permission of /dev/windrvr6 is enabled for the root user only and must be changed to allow access to other users. --Return code = 2
Thanks for any hint.
GA
The ABI changed a year ago.
The ABI changed a year ago. You'll need to revise the driver. Have a look at http://kerneltrap.org/mailarchive/linux-kernel/2008/1/8/547283 for an example.
I do not understand...
Hi
Thanks for the hint. I checked the link you sent me but I do not really understand how to make use of the information contained in that discussion. I am not familiar with kernel concepts.
Thanks for any further hint
Guy
There is no cut-and-paste
There is no cut-and-paste solution. Your driver needs to be refitted to the new interface by somebody familiar with kernel internals.