Please note: This project is no longer active. The website is kept online for historic purposes only.
If you´re looking for a Linux driver for your Atheros WLAN device, you should continue here .

Ticket #2383 (new defect)

Opened 12 years ago

Last modified 12 years ago

madwifi trunk r4119 failing build on linux kernel 2.6.33

Reported by: redhead@diku.dk Assigned to:
Priority: critical Milestone:
Component: madwifi: driver Version: trunk
Keywords: Cc:
Patch is attached: 0 Pending: 0

Description

There seems to have been made some changes to the kernel tree in the shift from 2.6.32.8 to 2.6.33, one beeing the configure flag for wireless support, ie flag WIRELESS_EXT has ghanged to CFG80211_WEXT, which makes the configure check fail. A simple fix to this would be:

--- Makefile.orrig      2010-02-25 23:45:02.278719370 +0100
+++ Makefile    2010-02-25 23:45:32.905252610 +0100
@@ -195,7 +195,7 @@
 endif
 
        @# check wireless extensions support is enabled
-       @if [ -z "$(CONFIG_NET_RADIO)$(CONFIG_WIRELESS_EXT)" ]; then \
+       @if [ -z "$(CONFIG_NET_RADIO)$(CONFIG_CFG80211_WEXT)" ]; then \
            echo "FAILED"; \
            echo "Please enable wireless extensions."; \
            exit 1; \

How ever there are a few other changes in the kernel tree, the structure net_device, seems to have changed aswell.

This results in a failing build with the error:

  CC [M]  /usr/src/kernel/madwifi/net80211/ieee80211_wireless.o
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c:5747: error: unknown field 'private' specified in initializer
cc1: warnings being treated as errors
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c:5747: error: initialization from incompatible pointer type
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c:5748: error: unknown field 'num_private' specified in initializer
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c:5748: error: excess elements in struct initializer
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c:5748: error: (near initialization for 'ieee80211_iw_handler_def')
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c:5749: error: unknown field 'private_args' specified in initializer
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c:5749: error: excess elements in struct initializer
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c:5749: error: (near initialization for 'ieee80211_iw_handler_def')
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c:5750: error: unknown field 'num_private_args' specified in initializer
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c:5750: error: excess elements in struct initializer
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c:5750: error: (near initialization for 'ieee80211_iw_handler_def')
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c: In function 'ieee80211_ioctl_vattach':
/usr/src/kernel/madwifi/net80211/ieee80211_wireless.c:5838: error: 'struct net_device' has no member named 'wireless_handlers'
make[3]: *** [/usr/src/kernel/madwifi/net80211/ieee80211_wireless.o] Error 1
make[2]: *** [/usr/src/kernel/madwifi/net80211] Error 2
make[1]: *** [_module_/usr/src/kernel/madwifi] Error 2
make[1]: Leaving directory `/usr/src/kernel/linux-2.6.33'
make: *** [modules] Error 2

From my research I havn't been able to determine what the wireless_handlers has been exchanged with, so I'm afraid I can't be of much help there.

Attachments

patch.makefile.4119 (405 bytes) - added by redhead@diku.dk on 02/26/10 00:22:20.
Patch to fix the Makefile error

Change History

02/26/10 00:22:20 changed by redhead@diku.dk

  • attachment patch.makefile.4119 added.

Patch to fix the Makefile error

(follow-up: ↓ 2 ) 03/10/10 18:16:12 changed by redhead@diku.dk

I Just realized I just needed a flag set in my kernel config, so please disregard this ticket, as it was a misconfiguration from my part.

(in reply to: ↑ 1 ; follow-up: ↓ 4 ) 03/17/10 13:45:35 changed by anonymous

Replying to redhead@diku.dk:

I Just realized I just needed a flag set in my kernel config, so please disregard this ticket, as it was a misconfiguration from my part.

what FLAG, and in what file?

03/20/10 19:01:42 changed by Przemyslaw Bruski

Just compile the drivers for Cisco/Aironet wireless card as a module for a quick fix. Selecting it will select all correct dependencies.

(in reply to: ↑ 2 ; follow-up: ↓ 5 ) 03/21/10 11:48:42 changed by anonymous

Replying to anonymous:

what FLAG, and in what file?

net_device->wireless_handlers is defined in include/linux/netdevice.h on line 785, and is depending on CONFIG_WIRELESS_EXT.

The mentioned "Cisco/Aironet wireless card" sets the CONFIG_WEXT_PRIV, CONFIG_WEXT_SPY, CONFIG_CRYPTO, CONFIG_WIRELESS_EXT flags.

If you have CONFIG_WIRELESS_EXT set, current trunk (r4122) compiles without problems.

(in reply to: ↑ 4 ) 03/21/10 11:54:32 changed by gabor.heja2334@stdio.hu

Replying to anonymous:

Sorry, this comment was mine...

(follow-up: ↓ 7 ) 04/01/10 16:39:44 changed by anonymous

# export KERNELPATH=/usr/src/linux
# make
Checking requirements... ok
Checking  kernel configuration... FAILED
Please enable wieless extension.
make: ***[configcheck]Error 1

Im getting this when im trying to compile madwifi at 2.6.33.1 Any suggestions ?

(in reply to: ↑ 6 ) 04/01/10 19:03:12 changed by gabor.heja2334@stdio.hu

Replying to anonymous:

Im getting this when im trying to compile madwifi at 2.6.33.1 Any suggestions ?

I think your problem is the CONFIG_WIRELESS_EXT as well. Have you tried to enable Cisco/Aironet wireless card as a module? (This should enable the CONFIG_WIRELESS_EXT, as written above.)

04/12/10 23:34:26 changed by proski

MadWifi needs wireless extensions. The kernel won't enable wireless extensions unless any driver in the kernel needs that. Having cfg80211 wireless extension compatibility code (CONFIG_CFG80211_WEXT) is not sufficient. The patch is incorrect.

The right fix would be to use cfg80211 in MadWifi, but I don't see it happening, considering the amount of changes. So we have to live with this inconvenience.