Re: driverloader won't build under new Linux kernel 2.6.18
"Linuxant support (Jonathan)" <[email protected]> Tue, 03 Oct 2006 13:25:11 -0400
| Newsgroups | gmane.linux.kernel.driver-loader |
|---|---|
| Message-ID | <[email protected]> |
Hi, the build error you have reported is a known issue on newer RHEL 4.x kernels, this have nothing to do with the 2.6.18 kernel. I have attached a patch to this post that should solve the issue. It can be installed with the 'dldrconfig --patch <file.patch>' command in a root shell. For the new issue with: --- Unable to determine version of kernel source directory /lib/modules/2.6.9-42.0.2.EL/build --- it is a possible regression of the utsrelease patch that we will have to take a look at. Try without the utsrelease patch to see if there is a difference. Regards, Jonathan Technical specialist / Linuxant www.linuxant.com [email protected] Anne Racel wrote: > I ran into a similar problem with the 2.6.9 kernel. I tried, initially, > to run 'dldrinstall.run' and received the following errors: > > (cd /lib/modules/2.6.9-42.0.2.EL/build && make > "DLDR_KERNELSRC=/lib/modules/2.6.9-42.0.2.EL/build" > "M=/usr/lib/driverloader/modules" "CC=gcc" modules) > make[1]: Entering directory `/usr/src/kernels/2.6.9-42.0.2.EL-i686' > CC [M] /usr/lib/driverloader/modules/dldrmod.o > CC [M] /usr/lib/driverloader/modules/dldrpci.o > CC [M] /usr/lib/driverloader/modules/dldrusb.o > CC [M] /usr/lib/driverloader/modules/osusb.o > CC [M] /usr/lib/driverloader/modules/GPL/netndis.o > /usr/lib/driverloader/modules/GPL/netndis.c:4791: error: unknown field > `get_wireless_stats' specified in initializer > /usr/lib/driverloader/modules/GPL/netndis.c:4791: warning: > initialization makes > integer from pointer without a cast > /usr/lib/driverloader/modules/GPL/netndis.c:4791: error: initializer > element is > not computable at load time > /usr/lib/driverloader/modules/GPL/netndis.c:4791: error: (near > initialization for `netndis_handler_def.num_standard') > /usr/lib/driverloader/modules/GPL/netndis.c: In function > `alloc_netndisdev': > /usr/lib/driverloader/modules/GPL/netndis.c:4821: warning: assignment > discards qualifiers from pointer target type > make[2]: *** [/usr/lib/driverloader/modules/GPL/netndis.o] Error 1 > make[1]: *** [_module_/usr/lib/driverloader/modules] Error 2 > make[1]: Leaving directory `/usr/src/kernels/2.6.9-42.0.2.EL-i686' > make: *** [all] Error 2 > > > === > > So I manually downloaded the non-rpm version, applied the patches you > included, and received the following error: > > Unable to determine version of kernel source > directory /lib/modules/2.6.9-42.0.2.EL/build > > > > On Tue, 2006-10-03 at 10:46 -0400, Linuxant support (Jonathan) wrote: >> Hi, >> >> DriverLoader 2.34 does not support the 2.6.18 kernel and a new version >> of DriverLoader will be released in the near future to add support for >> this kernel. >> >> In the meantime, you can patch DriverLoader 2.34 with the patches I have >> attached to this post. These patches should fix all the known problems >> of DriverLoader 2.34 for the 2.6.18 kernel, including the build problem >> described in your post. Each patch can be installed with the 'dldrconfig >> --patch <file.patch>' command in a root shell. >> >> Regards, >> >> >> Jonathan >> Technical specialist / Linuxant >> www.linuxant.com >> [email protected] >> >> >> >> Marty Huntzberry wrote: >>> Hi! I've been using the driverloader software (2.34) for my Belkin wireless G card for about 6 months now with no problems. I have it installed in >>> a PCI slot on a Pentium PC using Slackware Linux 10.2. I have re-built the kernel several times on that pc and then built driverloader and gotten it >>> configured without a problem...till now. Every other 2.6.x kernel was in the format 2.6.x.x and now it's 2.6.x. I'm not sure if that's why it won't >>> build a module now. Here's what I did and the error: >>> >>> Re-booted into kernel 2.6.18 and then entered my newly extracted driverloader-2.34 directory and typed make install. All went fine and then this: >>> >>> To complete the installation and configuration of your device, >>> please run "dldrconfig" (or "/usr/sbin/dldrconfig") >>> root@LinuxHippy:/home/huntz/linuxant/driverloader-2.34-kernel-2.6.18# dldrconfig >>> Linuxant DriverLoader for Wireless LAN devices, version 2.34 >>> >>> No pre-built modules for: Slackware-Slackware linux-2.6.18 i586 >>> >>> Trying to automatically build the driver modules... >>> (this requires a C compiler and proper kernel sources to be installed) >>> >>> Where is the linux source build directory that matches your running kernel? >>> [/lib/modules/2.6.18/build] >>> >>> WARNING: the kernel version () defined in >>> /lib/modules/2.6.18/build/include/linux/version.h >>> does not match the currently running kernel (2.6.18) >>> The cause of this problem is an incorrect kernel source path. >>> Please check that /lib/modules/2.6.18/build points to the right tree. >>> The cause of this is usually a missing or unconfigured >>> kernel source tree (and sometimes an incorrect directory or symbolic link). >>> >>> However, proper /boot/config-2.6.18 was found. >>> Would you like to try using it (in a temporary kernel tree)? [yes] >>> >>> Building modules for kernel , using source directory >>> /usr/src/linux-2.6.18-dldrtmp2463. Please wait... >>> >>> ERROR: Module build failed! >>> Please examine the log file "/var/run/dldrconfig-buildlog.txt" to determine why. >>> >>> That txt file shows this: >>> >>> (cd /usr/src/linux-2.6.18-dldrtmp2463 && make "DLDR_KERNELSRC=/usr/src/linux-2.6.18-dldrtmp2463" "M=/usr/lib/driverloader/modules" "CC=gcc" clean) >>> make[1]: Entering directory `/usr/src/linux-2.6.18-dldrtmp2463' >>> make[1]: Leaving directory `/usr/src/linux-2.6.18-dldrtmp2463' >>> rm -rf *.o GPL/*.o *.ko GPL/*.ko *.mod.c GPL/*.mod.c .*.cmd >>> GPL/.*.cmd .tmp_versions .tmp_versions /usr/src/linux-2.6.18-dldrtmp2463/.tmp_versions/driverloader.mod Unable to determine version of kernel source >>> directory /usr/src/linux-2.6.18-dldrtmp2463 make: *** [check_kernelver] Error 1 >>> >>> >>> Any ideas? >>> >>> Marty >>> _______________________________________________ >>> driverloader mailing list >>> [email protected] >>> https://www.linuxant.com/mailman/listinfo/driverloader >> _______________________________________________ >> driverloader mailing list >> [email protected] >> https://www.linuxant.com/mailman/listinfo/driverloader > > _______________________________________________ > driverloader mailing list > [email protected] > https://www.linuxant.com/mailman/listinfo/driverloader _______________________________________________ driverloader mailing list [email protected] https://www.linuxant.com/mailman/listinfo/driverloader
dldr-2.34-get_wireless_stats.patch
(text/x-patch, 1.8 KB)
diff -urN driverloader-2.34/modules/GPL/netndis.c driverloader-2.34-get_wireless_stats/modules/GPL/netndis.c
--- driverloader-2.34/modules/GPL/netndis.c 2006-05-18 19:12:37.000000000 -0400
+++ driverloader-2.34-get_wireless_stats/modules/GPL/netndis.c 2006-09-01 20:50:38.000000000 -0400
@@ -4788,7 +4788,9 @@
static const struct iw_handler_def netndis_handler_def =
{
+#if FOUND_IW_HANDLER_WIRELESS_STATS
.get_wireless_stats = netndis_get_wireless_stats,
+#endif
.num_standard = sizeof(netndis_handler) / sizeof(netndis_handler[0]),
.standard = (iw_handler *)netndis_handler,
@@ -4819,9 +4821,8 @@
dev->get_stats = netndis_get_stats;
#if IW_HANDLER_VERSION >= 6
dev->wireless_handlers = &netndis_handler_def;
-#else
- dev->get_wireless_stats = netndis_get_wireless_stats;
#endif
+ dev->get_wireless_stats = netndis_get_wireless_stats;
dev->do_ioctl = netndis_ioctl;
dev->change_mtu = netndis_change_mtu;
dev->set_multicast_list = netndis_set_multicast_list;
diff -urN driverloader-2.34/modules/Makefile driverloader-2.34-get_wireless_stats/modules/Makefile
--- driverloader-2.34/modules/Makefile 2006-04-19 15:09:07.000000000 -0400
+++ driverloader-2.34-get_wireless_stats/modules/Makefile 2006-09-01 20:30:20.000000000 -0400
@@ -101,6 +101,9 @@
FOUND_MODULE_PARAM := $(shell grep -q 'module_param' ${REAL_KERNELSRC}/include/linux/moduleparam.h 2>/dev/null && echo -DFOUND_MODULE_PARAM)
CFLAGS+= $(FOUND_MODULE_PARAM)
+FOUND_IW_HANDLER_WIRELESS_STATS := $(shell gcc -E ${REAL_KERNELSRC}/include/net/iw_handler.h | grep -q 'get_wireless_stats' 2>/dev/null && echo -DFOUND_IW_HANDLER_WIRELESS_STATS)
+CFLAGS+= $(FOUND_IW_HANDLER_WIRELESS_STATS)
+
CFLAGS+= $(if $(filter 2.6.15-1.2054_FC5%, $(KERNELVER)), -DFOUND_EXPORT_GPL_PRINT_TAINTED,)
KBUILD_SUPPORTED := $(shell test -e ${DLDR_KERNELSRC}/scripts/kconfig && echo yes || echo no)