User Feedback :: Wireless Support ipw2200 ipw2915



Here's the tail end of the errors I get trying to replicate Tempestuous' build of the ipw2200 driver for 2.4.31.  It might make sense to replicate that build first.

As I recall I got similar errors with 2.4.26, but I can't recall  if these were the same.

(Here I'm assuming Tempestous did actually compile this on a livecd boot of dsl-2.1b, and not on eg Woody or Slackware or RH9 with the same kernel or something).

This is using ipw2200-1.0.1 with the backport to 2.4.xx patch applied:
ipw2200-1.0.1-3.patch

which was the llast version of this patch provided for 1.0.1 ipw2200.

It looks like some headers are missing.  But which?

Code Sample

<snip>
rdirq.h:6
                from /mnt/sda1/SOURCES/KERNEL2.4.31/linux-2.4.31/include/linux/                                                                                                                                interrupt.h:11,
                from /mnt/sda1/SOURCES/KERNEL2.4.31/linux-2.4.31/include/linux/                                                                                                                                netdevice.h:489,
                from ipw2200.h:41,
                from ipw2200.c:33:
/mnt/sda1/SOURCES/KERNEL2.4.31/linux-2.4.31/include/asm/hw_irq.h:28: `NR_IRQS' u                                                                                                                                ndeclared here (not in a function)
/mnt/sda1/SOURCES/KERNEL2.4.31/linux-2.4.31/include/asm/hw_irq.h:31: `NR_IRQS' u                                                                                                                                ndeclared here (not in a function)
ipw2200.c: In function `proc_set_debug_level':
ipw2200.c:685: parse error before `char'
ipw2200.c:688: `p' undeclared (first use in this function)
ipw2200.c:688: (Each undeclared identifier is reported only once
ipw2200.c:688: for each function it appears in.)
ipw2200.c:692: `val' undeclared (first use in this function)
ipw2200.c: In function `proc_get_nic_type':
ipw2200.c:764: parse error before `type'
ipw2200.c:766: `type' undeclared (first use in this function)
ipw2200.c:768: warning: unreachable code at beginning of switch statement
ipw2200.c:757: warning: unused variable `p'
ipw2200.c: In function `dump_error_log':
ipw2200.c:804: parse error before `char'
ipw2200.c:806: `p' undeclared (first use in this function)
ipw2200.c: In function `dump_event_log':
ipw2200.c:840: parse error before `char'
ipw2200.c:842: `p' undeclared (first use in this function)
ipw2200.c: In function `proc_get_rf_kill':
ipw2200.c:1273: parse error before `int'
ipw2200.c:1275: `val' undeclared (first use in this function)
ipw2200.c:1262: warning: unused variable `priv'
ipw2200.c: In function `ipw_radio_kill_sw':
ipw2200.c:1296: warning: implicit declaration of function `schedule_task'
ipw2200.c: In function `ipw_get_fw':
ipw2200.c:2759: warning: passing arg 3 of `request_firmware' from incompatible p                                                                                                                                ointer type
ipw2200.c: In function `ipw_gather_stats':
ipw2200.c:3644: warning: duplicate `const'
ipw2200.c:3644: warning: duplicate `const'
ipw2200.c:3644: warning: duplicate `const'
ipw2200.c:3644: warning: duplicate `const'
ipw2200.c:3644: warning: duplicate `const'
ipw2200.c:3644: warning: duplicate `const'
ipw2200.c:3644: warning: duplicate `const'
ipw2200.c: In function `ipw_wpa_set_encryption':
ipw2200.c:5564: warning: implicit declaration of function `__MOD_INC_USE_COUNT'
ipw2200.c: In function `ipw_pci_probe':
ipw2200.c:8442: warning: implicit declaration of function `flush_scheduled_tasks                                                                                                                                '
make[2]: *** [ipw2200.o] Error 1
make[2]: Leaving directory `/mnt/hda3/IPW2200_SOURCES/ipw2200-1.0.1'
make[1]: *** [_mod_/mnt/hda3/IPW2200_SOURCES/ipw2200-1.0.1] Error 2
make[1]: Leaving directory `/mnt/sda1/SOURCES/KERNEL2.4.31/linux-2.4.31'
make: *** [modules] Error 2

The errors begin with:

Code Sample
/mnt/sda1/SOURCES/KERNEL2.4.31/linux-2.4.31/include/asm/mpspec.h:6: mach_mpspec.
h: No such file or directory


and continue with the general theme of being unable to find headers contained in linux-2.4.31/include/asm-i386/mach-default

as if that directory were not included, before hitting all the undeclared errors.

I tried symlinking those files into linux-2.4.31/include/asm-i386, and synlinking /usr/include/asm to this dir,  but it makes no difference.


Before anyone suggests it, these sources do no have a ./configure script so I suspect the makefile would need to be hacked to pass the equivalent of CPPFLAGS to gcc to make sure these headers are found, if that indeed is actually the problem.

Anyone up to this?

OK, I've applied two alleged fixes for similar errors in other builds found via google, viz.

Quote
Chnge the following:

/usr/src/linux/include/asm/mpspec.h
In line 6 change: <mach_mpspec.h> to: <asm/mach-default/mach_mpspec.h>

/usr/src/linux/include/asm/smp.h
In line 71 change: <mach_apicdef.h> to: <asm/mach-default/mach_apicdef.h>

(from http://forum.paragon-software.com/customer/viewtopic.php?=&p=902 )


and I've inserted an explicit includes line in the Makefile to make sure it is pointing at the kernel sources includes:


Quote

<snip>
EXTRA_CFLAGS := -I$(KSRC)/include/linux

ifneq ($(CONFIG_IPW_DEBUG),)
EXTRA_CFLAGS += -g -Wa,-adhlms=$@.lst
endif
<snip>


Then use make KSRC=/path/to/mysources


But still get exactly the same error. It just doesn't see all the headers.

EDIT:  I think there's soemthing wrong with the Makefile, but I don't know what.

I just visited this forum for the first time since November last year, and I see that my ipw2100/2200 driver compiles from almost 2 years ago are still being used!
From http://damnsmalllinux.org/cgi-bin....02;st=0
Quote
Changed kernel from 2.4.34.1 to 2.4.31 to gain user contributed modules, e.g., ipw2* and nvidia.

and Robert is even going to revert to the 2.4.31 kernel to be compatible!  Wow.

Quote
Here I'm assuming Tempestous did actually compile this on a livecd boot of dsl-2.1b, and not on eg Woody or Slackware or RH9 with the same kernel or something.

I think I used Knoppix 3.4 as the build environment, with the DSL2.0-compatible kernel (k2.4.31) FULLY compiled.
I can say that compiling 3rd-party drivers usually requires a full kernel build in place.  By "full" I don't just mean having the kernel source present, but you need to do the complete make bzImage / make modules process.

The ipw2100/ipw2200 drivers failed to compile under the old 2.4.26 kernel, but since they compile OK under 2.4.31, I would speculate that 2.4.34 should be OK.  But I won't be doing it, my time is tied up with other projects/distributions.

Generally, though, modules for modern devices are being developed only for 2.6 kernels.  And there is little evidence of these being backported to 2.4.

Yes, it does compile fine (however actual use is untested)
For those who were interested in a 2.4.34.1 kernel build, see http://damnsmalllinux.org/cgi-bin....t=18910

Next Page...
original here.