]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
Add compat-wireless, add support of nl80211 wlan drivers
authorArne Fitzenreiter <arne_f@ipfire.org>
Mon, 20 Apr 2009 17:33:34 +0000 (19:33 +0200)
committerArne Fitzenreiter <arne_f@ipfire.org>
Mon, 20 Apr 2009 17:33:34 +0000 (19:33 +0200)
18 files changed:
config/hostapd/config
config/rootfiles/common/iw [new file with mode: 0644]
config/rootfiles/common/libnl [new file with mode: 0644]
config/rootfiles/common/uClibc
config/rootfiles/core/28/filelists/iw [new symlink]
config/rootfiles/core/28/filelists/libnl [new symlink]
config/rootfiles/packages/bluetooth
config/rootfiles/packages/hostapd
config/wpa_supplicant/config
doc/packages-list.txt
lfs/compat-wireless [new file with mode: 0644]
lfs/hostapd
lfs/iw [new file with mode: 0644]
lfs/libnl [new file with mode: 0644]
lfs/wpa_supplicant
make.sh
src/patches/compat-wireless_enable_ath5k_apmode.patch [new file with mode: 0644]
src/patches/compat-wireless_rt2500pci-skb_allignment.patch [new file with mode: 0644]

index 7abc0dcfd6be39e31bf779b8d0c6130b20a17b63..88dca15c64a346ea2a35249c7fc0f2f8e3804161 100644 (file)
@@ -17,27 +17,28 @@ CONFIG_DRIVER_HOSTAP=y
 
 # Driver interface for madwifi driver
 CONFIG_DRIVER_MADWIFI=y
-CFLAGS += -I../../madwifi # change to reflect local setup; directory for madwifi src
+CFLAGS += -I../../madwifi # change to the madwifi source directory
 
 # Driver interface for Prism54 driver
-#CONFIG_DRIVER_PRISM54=y
-
-# Driver interface for drivers using Devicescape IEEE 802.11 stack
-#CONFIG_DRIVER_DEVICESCAPE=y
-# Currently, driver_devicescape.c build requires some additional parameters
-# to be able to include some of the kernel header files. Following lines can
-# be used to set these (WIRELESS_DEV must point to the root directory of the
-# wireless-dev.git tree).
-#WIRELESS_DEV=/usr/src/wireless-dev
-#CFLAGS += -I$(WIRELESS_DEV)/include
-#CFLAGS += -I$(WIRELESS_DEV)/net/d80211
-#CFLAGS += -D_LINUX_TYPES_H
+CONFIG_DRIVER_PRISM54=y
+
+# Driver interface for drivers using the nl80211 kernel interface
+CONFIG_DRIVER_NL80211=y
+# driver_nl80211.c requires a rather new libnl (version 1.1) which may not be
+# shipped with your distribution yet. If that is the case, you need to build
+# newer libnl version and point the hostapd build to use it.
+#LIBNL=/usr/src/libnl
+#CFLAGS += -I$(LIBNL)/include
+#LIBS += -L$(LIBNL)/lib
 
 # Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
 #CONFIG_DRIVER_BSD=y
 #CFLAGS += -I/usr/local/include
 #LIBS += -L/usr/local/lib
 
+# Driver interface for no driver (e.g., RADIUS server only)
+#CONFIG_DRIVER_NONE=y
+
 # IEEE 802.11F/IAPP
 CONFIG_IAPP=y
 
@@ -140,4 +141,4 @@ CONFIG_IEEE80211N=y
 # Remove debugging code that is printing out debug messages to stdout.
 # This can be used to reduce the size of the hostapd considerably if debugging
 # code is not needed.
-CONFIG_NO_STDOUT_DEBUG=y
\ No newline at end of file
+CONFIG_NO_STDOUT_DEBUG=y
diff --git a/config/rootfiles/common/iw b/config/rootfiles/common/iw
new file mode 100644 (file)
index 0000000..d1035d0
--- /dev/null
@@ -0,0 +1,2 @@
+usr/bin/iw
+#usr/share/man/man8/iw.8.gz
diff --git a/config/rootfiles/common/libnl b/config/rootfiles/common/libnl
new file mode 100644 (file)
index 0000000..2beb800
--- /dev/null
@@ -0,0 +1,59 @@
+#usr/include/netlink
+#usr/include/netlink/addr.h
+#usr/include/netlink/attr.h
+#usr/include/netlink/cache-api.h
+#usr/include/netlink/cache.h
+#usr/include/netlink/data.h
+#usr/include/netlink/fib_lookup
+#usr/include/netlink/fib_lookup/lookup.h
+#usr/include/netlink/fib_lookup/request.h
+#usr/include/netlink/genl
+#usr/include/netlink/genl/ctrl.h
+#usr/include/netlink/genl/family.h
+#usr/include/netlink/genl/genl.h
+#usr/include/netlink/genl/mngt.h
+#usr/include/netlink/handlers.h
+#usr/include/netlink/list.h
+#usr/include/netlink/msg.h
+#usr/include/netlink/netlink-compat.h
+#usr/include/netlink/netlink-kernel.h
+#usr/include/netlink/netlink.h
+#usr/include/netlink/object-api.h
+#usr/include/netlink/object.h
+#usr/include/netlink/route
+#usr/include/netlink/route/addr.h
+#usr/include/netlink/route/class-modules.h
+#usr/include/netlink/route/class.h
+#usr/include/netlink/route/classifier-modules.h
+#usr/include/netlink/route/classifier.h
+#usr/include/netlink/route/cls
+#usr/include/netlink/route/cls/fw.h
+#usr/include/netlink/route/cls/police.h
+#usr/include/netlink/route/cls/u32.h
+#usr/include/netlink/route/link.h
+#usr/include/netlink/route/neighbour.h
+#usr/include/netlink/route/neightbl.h
+#usr/include/netlink/route/nexthop.h
+#usr/include/netlink/route/qdisc-modules.h
+#usr/include/netlink/route/qdisc.h
+#usr/include/netlink/route/route.h
+#usr/include/netlink/route/rtnl.h
+#usr/include/netlink/route/rule.h
+#usr/include/netlink/route/sch
+#usr/include/netlink/route/sch/cbq.h
+#usr/include/netlink/route/sch/dsmark.h
+#usr/include/netlink/route/sch/fifo.h
+#usr/include/netlink/route/sch/htb.h
+#usr/include/netlink/route/sch/netem.h
+#usr/include/netlink/route/sch/prio.h
+#usr/include/netlink/route/sch/red.h
+#usr/include/netlink/route/sch/sfq.h
+#usr/include/netlink/route/sch/tbf.h
+#usr/include/netlink/route/tc.h
+#usr/include/netlink/socket.h
+#usr/include/netlink/types.h
+#usr/include/netlink/utils.h
+usr/lib/libnl.so
+usr/lib/libnl.so.1
+usr/lib/libnl.so.1.1
+#usr/lib/pkgconfig/libnl-1.pc
index 49ee62d5cc9c205c8b4b2cfa29ee19471140a216..bf9831b800bb6011e9249de1c3648c4df3c4aec9 100644 (file)
 #opt/i586-uClibc/include/linux/gameport.h
 #opt/i586-uClibc/include/linux/gen_stats.h
 #opt/i586-uClibc/include/linux/generic_serial.h
+#opt/i586-uClibc/include/linux/genetlink.h
 #opt/i586-uClibc/include/linux/genhd.h
 #opt/i586-uClibc/include/linux/gfp.h
 #opt/i586-uClibc/include/linux/hash.h
 #opt/i586-uClibc/include/linux/lockd/xdr4.h
 #opt/i586-uClibc/include/linux/loop.h
 #opt/i586-uClibc/include/linux/lp.h
-#opt/i586-uClibc/include/linux/mISDNif.h
 #opt/i586-uClibc/include/linux/major.h
 #opt/i586-uClibc/include/linux/matroxfb.h
 #opt/i586-uClibc/include/linux/mbcache.h
 #opt/i586-uClibc/include/linux/ncp_no.h
 #opt/i586-uClibc/include/linux/net.h
 #opt/i586-uClibc/include/linux/netdevice.h
+#opt/i586-uClibc/include/linux/netfilter
 #opt/i586-uClibc/include/linux/netfilter.h
+#opt/i586-uClibc/include/linux/netfilter/nf_conntrack_common.h
+#opt/i586-uClibc/include/linux/netfilter/nf_conntrack_tuple.h
+#opt/i586-uClibc/include/linux/netfilter/nf_conntrack_tuple_common.h
+#opt/i586-uClibc/include/linux/netfilter/nf_nat.h
+#opt/i586-uClibc/include/linux/netfilter/nfnetlink.h
+#opt/i586-uClibc/include/linux/netfilter/nfnetlink_compat.h
+#opt/i586-uClibc/include/linux/netfilter/x_tables.h
+#opt/i586-uClibc/include/linux/netfilter/xt_CLASSIFY.h
+#opt/i586-uClibc/include/linux/netfilter/xt_CONNMARK.h
+#opt/i586-uClibc/include/linux/netfilter/xt_CONNSECMARK.h
+#opt/i586-uClibc/include/linux/netfilter/xt_DSCP.h
+#opt/i586-uClibc/include/linux/netfilter/xt_MARK.h
+#opt/i586-uClibc/include/linux/netfilter/xt_NFLOG.h
+#opt/i586-uClibc/include/linux/netfilter/xt_NFQUEUE.h
+#opt/i586-uClibc/include/linux/netfilter/xt_RATEEST.h
+#opt/i586-uClibc/include/linux/netfilter/xt_SECMARK.h
+#opt/i586-uClibc/include/linux/netfilter/xt_TCPMSS.h
+#opt/i586-uClibc/include/linux/netfilter/xt_TCPOPTSTRIP.h
+#opt/i586-uClibc/include/linux/netfilter/xt_comment.h
+#opt/i586-uClibc/include/linux/netfilter/xt_connbytes.h
+#opt/i586-uClibc/include/linux/netfilter/xt_connlimit.h
+#opt/i586-uClibc/include/linux/netfilter/xt_connmark.h
+#opt/i586-uClibc/include/linux/netfilter/xt_conntrack.h
+#opt/i586-uClibc/include/linux/netfilter/xt_dccp.h
+#opt/i586-uClibc/include/linux/netfilter/xt_dscp.h
+#opt/i586-uClibc/include/linux/netfilter/xt_esp.h
+#opt/i586-uClibc/include/linux/netfilter/xt_hashlimit.h
+#opt/i586-uClibc/include/linux/netfilter/xt_helper.h
+#opt/i586-uClibc/include/linux/netfilter/xt_iprange.h
+#opt/i586-uClibc/include/linux/netfilter/xt_length.h
+#opt/i586-uClibc/include/linux/netfilter/xt_limit.h
+#opt/i586-uClibc/include/linux/netfilter/xt_mac.h
+#opt/i586-uClibc/include/linux/netfilter/xt_mark.h
+#opt/i586-uClibc/include/linux/netfilter/xt_multiport.h
+#opt/i586-uClibc/include/linux/netfilter/xt_owner.h
+#opt/i586-uClibc/include/linux/netfilter/xt_physdev.h
+#opt/i586-uClibc/include/linux/netfilter/xt_pkttype.h
+#opt/i586-uClibc/include/linux/netfilter/xt_policy.h
+#opt/i586-uClibc/include/linux/netfilter/xt_quota.h
+#opt/i586-uClibc/include/linux/netfilter/xt_rateest.h
+#opt/i586-uClibc/include/linux/netfilter/xt_realm.h
+#opt/i586-uClibc/include/linux/netfilter/xt_sctp.h
+#opt/i586-uClibc/include/linux/netfilter/xt_state.h
+#opt/i586-uClibc/include/linux/netfilter/xt_statistic.h
+#opt/i586-uClibc/include/linux/netfilter/xt_string.h
+#opt/i586-uClibc/include/linux/netfilter/xt_tcpmss.h
+#opt/i586-uClibc/include/linux/netfilter/xt_tcpudp.h
+#opt/i586-uClibc/include/linux/netfilter/xt_time.h
+#opt/i586-uClibc/include/linux/netfilter/xt_u32.h
 #opt/i586-uClibc/include/linux/netfilter_arp
 #opt/i586-uClibc/include/linux/netfilter_arp.h
 #opt/i586-uClibc/include/linux/netfilter_arp/arp_tables.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ip_nat_protocol.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ip_nat_rule.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ip_queue.h
+#opt/i586-uClibc/include/linux/netfilter_ipv4/ip_set.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ip_tables.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_CLASSIFY.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_FTOS.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_LOG.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_MARK.h
-#opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_NFQUEUE.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_REJECT.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_SAME.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_TCPMSS.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_recent.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_rpc.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_sctp.h
+#opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_set.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_state.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_tcpmss.h
 #opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_tos.h
 #opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_LOG.h
 #opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_MARK.h
 #opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_REJECT.h
+#opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_TCPMSS.h
 #opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_ah.h
 #opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_esp.h
 #opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_frag.h
 #opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_limit.h
 #opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_mac.h
 #opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_mark.h
+#opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_mh.h
 #opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_multiport.h
 #opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_opts.h
 #opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_owner.h
 #opt/i586-uClibc/lib/libutil.so
 #opt/i586-uClibc/lib/libutil.so.0
 #opt/i586-uClibc/lib/libutil_pic.a
-#opt/i586-uClibc/include/linux/netfilter
-#opt/i586-uClibc/include/linux/netfilter/nf_conntrack_common.h
-#opt/i586-uClibc/include/linux/netfilter/nf_conntrack_tuple.h
-#opt/i586-uClibc/include/linux/netfilter/nf_conntrack_tuple_common.h
-#opt/i586-uClibc/include/linux/netfilter/nf_nat.h
-#opt/i586-uClibc/include/linux/netfilter/x_tables.h
-#opt/i586-uClibc/include/linux/netfilter/xt_CLASSIFY.h
-#opt/i586-uClibc/include/linux/netfilter/xt_CONNMARK.h
-#opt/i586-uClibc/include/linux/netfilter/xt_CONNSECMARK.h
-#opt/i586-uClibc/include/linux/netfilter/xt_DSCP.h
-#opt/i586-uClibc/include/linux/netfilter/xt_MARK.h
-#opt/i586-uClibc/include/linux/netfilter/xt_NFLOG.h
-#opt/i586-uClibc/include/linux/netfilter/xt_NFQUEUE.h
-#opt/i586-uClibc/include/linux/netfilter/xt_RATEEST.h
-#opt/i586-uClibc/include/linux/netfilter/xt_SECMARK.h
-#opt/i586-uClibc/include/linux/netfilter/xt_TCPMSS.h
-#opt/i586-uClibc/include/linux/netfilter/xt_TCPOPTSTRIP.h
-#opt/i586-uClibc/include/linux/netfilter/xt_comment.h
-#opt/i586-uClibc/include/linux/netfilter/xt_connbytes.h
-#opt/i586-uClibc/include/linux/netfilter/xt_connlimit.h
-#opt/i586-uClibc/include/linux/netfilter/xt_connmark.h
-#opt/i586-uClibc/include/linux/netfilter/xt_conntrack.h
-#opt/i586-uClibc/include/linux/netfilter/xt_dccp.h
-#opt/i586-uClibc/include/linux/netfilter/xt_dscp.h
-#opt/i586-uClibc/include/linux/netfilter/xt_esp.h
-#opt/i586-uClibc/include/linux/netfilter/xt_hashlimit.h
-#opt/i586-uClibc/include/linux/netfilter/xt_helper.h
-#opt/i586-uClibc/include/linux/netfilter/xt_iprange.h
-#opt/i586-uClibc/include/linux/netfilter/xt_length.h
-#opt/i586-uClibc/include/linux/netfilter/xt_limit.h
-#opt/i586-uClibc/include/linux/netfilter/xt_mac.h
-#opt/i586-uClibc/include/linux/netfilter/xt_mark.h
-#opt/i586-uClibc/include/linux/netfilter/xt_multiport.h
-#opt/i586-uClibc/include/linux/netfilter/xt_owner.h
-#opt/i586-uClibc/include/linux/netfilter/xt_physdev.h
-#opt/i586-uClibc/include/linux/netfilter/xt_pkttype.h
-#opt/i586-uClibc/include/linux/netfilter/xt_policy.h
-#opt/i586-uClibc/include/linux/netfilter/xt_quota.h
-#opt/i586-uClibc/include/linux/netfilter/xt_rateest.h
-#opt/i586-uClibc/include/linux/netfilter/xt_realm.h
-#opt/i586-uClibc/include/linux/netfilter/xt_sctp.h
-#opt/i586-uClibc/include/linux/netfilter/xt_state.h
-#opt/i586-uClibc/include/linux/netfilter/xt_statistic.h
-#opt/i586-uClibc/include/linux/netfilter/xt_string.h
-#opt/i586-uClibc/include/linux/netfilter/xt_tcpmss.h
-#opt/i586-uClibc/include/linux/netfilter/xt_tcpudp.h
-#opt/i586-uClibc/include/linux/netfilter/xt_time.h
-#opt/i586-uClibc/include/linux/netfilter/xt_u32.h
-#opt/i586-uClibc/include/linux/netfilter_ipv4/ip_set.h
-#opt/i586-uClibc/include/linux/netfilter_ipv4/ipt_set.h
-#opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_TCPMSS.h
-#opt/i586-uClibc/include/linux/netfilter_ipv6/ip6t_mh.h
diff --git a/config/rootfiles/core/28/filelists/iw b/config/rootfiles/core/28/filelists/iw
new file mode 120000 (symlink)
index 0000000..7c58a20
--- /dev/null
@@ -0,0 +1 @@
+../../../common/iw
\ No newline at end of file
diff --git a/config/rootfiles/core/28/filelists/libnl b/config/rootfiles/core/28/filelists/libnl
new file mode 120000 (symlink)
index 0000000..7181849
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libnl
\ No newline at end of file
index 823ed05ecbcae608f44afd08c123b94c77879d30..278cbea28771a6713cb3589ddce4f813396dba20 100644 (file)
@@ -1,19 +1,10 @@
-srv/web/ipfire/cgi-bin/bluetooth.cgi
-var/ipfire/menu.d/EX-bluetooth.menu
-#var/ipfire/bluetooth
-var/ipfire/bluetooth/settings
-var/ipfire/backup/addons/includes/bluetooth
-etc/rc.d/init.d/bluetooth
-etc/rc.d/rc3.d/S16bluetooth
-etc/rc.d/rc0.d/K84bluetooth
-etc/rc.d/rc6.d/K84bluetooth
 #etc/bluetooth
-etc/bluetooth/hcid.conf
-etc/bluetooth/rfcomm.conf
 etc/bluetooth/audio.conf
-etc/bluetooth/main.conf
+etc/bluetooth/hcid.conf
 etc/bluetooth/input.conf
+etc/bluetooth/main.conf
 etc/bluetooth/network.conf
+etc/bluetooth/rfcomm.conf
 etc/dbus-1/system.d/bluetooth.conf
 etc/udev/rules.d/24-bluetooth.rules
 lib/firmware/BCM-LEGAL.txt
@@ -58,6 +49,8 @@ usr/lib/alsa-lib/libasound_module_pcm_bluetooth.so
 usr/lib/bluetooth/plugins/audio.so
 #usr/lib/bluetooth/plugins/input.la
 usr/lib/bluetooth/plugins/input.so
+#usr/lib/bluetooth/plugins/netlink.la
+usr/lib/bluetooth/plugins/netlink.so
 #usr/lib/bluetooth/plugins/network.la
 usr/lib/bluetooth/plugins/network.so
 #usr/lib/bluetooth/plugins/serial.la
@@ -93,4 +86,13 @@ usr/sbin/hid2hci
 #usr/share/man/man8/hcid.8
 #usr/share/man/man8/hcidump.8
 #usr/share/man/man8/hid2hci.8
+var/ipfire/backup/addons/includes/bluetooth
+#var/ipfire/bluetooth
+var/ipfire/bluetooth/settings
 var/lib/bluetooth
+srv/web/ipfire/cgi-bin/bluetooth.cgi
+var/ipfire/menu.d/EX-bluetooth.menu
+etc/rc.d/init.d/bluetooth
+etc/rc.d/rc3.d/S16bluetooth
+etc/rc.d/rc0.d/K84bluetooth
+etc/rc.d/rc6.d/K84bluetooth
index 1c04d76116f0ccb0b16c210cd5882c721746bf99..5d091275e4af2f69a916724aa78a2ceffd9913db 100644 (file)
@@ -1,16 +1,18 @@
-srv/web/ipfire/cgi-bin/wlanap.cgi
-var/ipfire/menu.d/EX-wlanap.menu
-etc/init.d/hostapd
 etc/hostapd.accept
 etc/hostapd.conf
 etc/hostapd.deny
-usr/local/bin/wlanapctrl
-etc/hostapd.conf
 usr/bin/hostapd
 usr/bin/hostapd_cli
+#usr/include/linux/genetlink.h
+#usr/include/linux/netfilter/nfnetlink.h
+#usr/include/linux/netfilter/nfnetlink_compat.h
 var/ipfire/backup/addons/includes/hostapd
 #var/ipfire/wlanap
 var/ipfire/wlanap/hostapd.accept
 var/ipfire/wlanap/hostapd.conf
 var/ipfire/wlanap/hostapd.deny
 var/ipfire/wlanap/settings
+srv/web/ipfire/cgi-bin/wlanap.cgi
+var/ipfire/menu.d/EX-wlanap.menu
+etc/init.d/hostapd
+usr/local/bin/wlanapctrl
index c91671404edf78b90794094c4910f882c5b4e6b2..65f8b46f8d92a7e689a1e5ac32975ca4867d8297 100644 (file)
@@ -51,13 +51,13 @@ CONFIG_DRIVER_HOSTAP=y
 
 # Driver interface for madwifi driver
 CONFIG_DRIVER_MADWIFI=y
-# Change include directories to match with the local setup
-CFLAGS += -I/usr/src/madwifi/
+# Set include directory to the madwifi source tree
+CFLAGS += -I/usr/src/madwifi
 
 # Driver interface for Prism54 driver
 # (Note: Prism54 is not yet supported, i.e., this will not work as-is and is
 # for developers only)
-#CONFIG_DRIVER_PRISM54=y
+CONFIG_DRIVER_PRISM54=y
 
 # Driver interface for ndiswrapper
 CONFIG_DRIVER_NDISWRAPPER=y
@@ -65,7 +65,10 @@ CONFIG_DRIVER_NDISWRAPPER=y
 # Driver interface for Atmel driver
 CONFIG_DRIVER_ATMEL=y
 
-# Driver interface for Broadcom driver
+# Driver interface for old Broadcom driver
+# Please note that the newer Broadcom driver ("hybrid Linux driver") supports
+# Linux wireless extensions and does not need (or even work) with the old
+# driver wrapper. Use CONFIG_DRIVER_WEXT=y with that driver.
 #CONFIG_DRIVER_BROADCOM=y
 # Example path for wlioctl.h; change to match your configuration
 #CFLAGS += -I/opt/WRT54GS/release/src/include
@@ -73,9 +76,15 @@ CONFIG_DRIVER_ATMEL=y
 # Driver interface for Intel ipw2100/2200 driver
 CONFIG_DRIVER_IPW=y
 
+# Driver interface for Ralink driver
+CONFIG_DRIVER_RALINK=y
+
 # Driver interface for generic Linux wireless extensions
 CONFIG_DRIVER_WEXT=y
 
+# Driver interface for Linux drivers using the nl80211 kernel interface
+CONFIG_DRIVER_NL80211=y
+
 # Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
 #CONFIG_DRIVER_BSD=y
 #CFLAGS += -I/usr/local/include
@@ -103,6 +112,9 @@ CONFIG_DRIVER_WEXT=y
 # Driver interface for wired Ethernet drivers
 CONFIG_DRIVER_WIRED=y
 
+# Driver interface for the Broadcom RoboSwitch family
+#CONFIG_DRIVER_ROBOSWITCH=y
+
 # Enable IEEE 802.1X Supplicant (automatically included if any EAP method is
 # included)
 CONFIG_IEEE8021X_EAPOL=y
@@ -122,6 +134,13 @@ CONFIG_EAP_PEAP=y
 # EAP-TTLS
 CONFIG_EAP_TTLS=y
 
+# EAP-FAST
+# Note: Default OpenSSL package does not include support for all the
+# functionality needed for EAP-FAST. If EAP-FAST is enabled with OpenSSL,
+# the OpenSSL library must be patched (openssl-0.9.8d-tls-extensions.patch)
+# to add the needed functions.
+#CONFIG_EAP_FAST=y
+
 # EAP-GTC
 CONFIG_EAP_GTC=y
 
@@ -143,6 +162,13 @@ CONFIG_EAP_LEAP=y
 # EAP-AKA (enable CONFIG_PCSC, if EAP-AKA is used)
 #CONFIG_EAP_AKA=y
 
+# EAP-AKA' (enable CONFIG_PCSC, if EAP-AKA' is used).
+# This requires CONFIG_EAP_AKA to be enabled, too.
+#CONFIG_EAP_AKA_PRIME=y
+
+# Enable USIM simulator (Milenage) for EAP-AKA
+#CONFIG_USIM_SIMULATOR=y
+
 # EAP-SAKE
 #CONFIG_EAP_SAKE=y
 
@@ -151,6 +177,15 @@ CONFIG_EAP_LEAP=y
 # Include support for optional SHA256 cipher suite in EAP-GPSK
 #CONFIG_EAP_GPSK_SHA256=y
 
+# EAP-TNC and related Trusted Network Connect support (experimental)
+#CONFIG_EAP_TNC=y
+
+# Wi-Fi Protected Setup (WPS)
+CONFIG_WPS=y
+
+# EAP-IKEv2
+CONFIG_EAP_IKEV2=y
+
 # PKCS#12 (PFX) support (used to read private key and certificate file from
 # a file that usually has extension .p12 or .pfx)
 CONFIG_PKCS12=y
@@ -196,16 +231,39 @@ CONFIG_CTRL_IFACE=y
 # or 6 kB if building for WPA-Enterprise.
 #CONFIG_NO_WPA2=y
 
+# Remove IEEE 802.11i/WPA-Personal ASCII passphrase support
+# This option can be used to reduce code size by removing support for
+# converting ASCII passphrases into PSK. If this functionality is removed, the
+# PSK can only be configured as the 64-octet hexstring (e.g., from
+# wpa_passphrase). This saves about 0.5 kB in code size.
+#CONFIG_NO_WPA_PASSPHRASE=y
+
 # Remove AES extra functions. This can be used to reduce code size by about
 # 1.5 kB by removing extra AES modes that are not needed for commonly used
 # client configurations (they are needed for some EAP types).
 #CONFIG_NO_AES_EXTRAS=y
 
+# Disable scan result processing (ap_mode=1) to save code size by about 1 kB.
+# This can be used if ap_scan=1 mode is never enabled.
+#CONFIG_NO_SCAN_PROCESSING=y
+
 # Select configuration backend:
-# file = text file (e.g., wpa_supplicant.conf)
+# file = text file (e.g., wpa_supplicant.conf; note: the configuration file
+#      path is given on command line, not here; this option is just used to
+#      select the backend that allows configuration files to be used)
 # winreg = Windows registry (see win_example.reg for an example)
 CONFIG_BACKEND=file
 
+# Remove configuration write functionality (i.e., to allow the configuration
+# file to be updated based on runtime configuration changes). The runtime
+# configuration can still be changed, the changes are just not going to be
+# persistent over restarts. This option can be used to reduce code size by
+# about 3.5 kB.
+#CONFIG_NO_CONFIG_WRITE=y
+
+# Remove support for configuration blobs to reduce code size by about 1.5 kB.
+#CONFIG_NO_CONFIG_BLOBS=y
+
 # Select program entry point implementation:
 # main = UNIX/POSIX like main() function (default)
 # main_winsvc = Windows service (read parameters from registry)
@@ -268,6 +326,10 @@ CONFIG_PEERKEY=y
 #LIBS += -L$(LTM_PATH)
 #LIBS_p += -L$(LTM_PATH)
 #endif
+# At the cost of about 4 kB of additional binary size, the internal LibTomMath
+# can be configured to include faster routines for exptmod, sqr, and div to
+# speed up DH and RSA calculation considerably
+#CONFIG_INTERNAL_LIBTOMMATH_FAST=y
 
 # Include NDIS event processing through WMI into wpa_supplicant/wpasvc.
 # This is only for Windows builds and requires WMI-related header files and
@@ -300,14 +362,21 @@ CONFIG_PEERKEY=y
 #CONFIG_DYNAMIC_EAP_METHODS=y
 
 # Include client MLME (management frame processing).
-# This can be used to move MLME processing of Devicescape IEEE 802.11 stack
-# into user space.
+# This can be used to move MLME processing of Linux mac80211 stack into user
+# space. Please note that this is currently only available with
+# driver_nl80211.c and only with a modified version of Linux kernel and
+# wpa_supplicant.
 #CONFIG_CLIENT_MLME=y
-# Currently, driver_devicescape.c build requires some additional parameters
-# to be able to include some of the kernel header files. Following lines can
-# be used to set these (WIRELESS_DEV must point to the root directory of the
-# wireless-dev.git tree).
-#WIRELESS_DEV=/usr/src/wireless-dev
-#CFLAGS += -I$(WIRELESS_DEV)/include
-#CFLAGS += -I$(WIRELESS_DEV)/net/d80211
-#CFLAGS += -D_LINUX_TYPES_H
+
+# IEEE Std 802.11r-2008 (Fast BSS Transition)
+#CONFIG_IEEE80211R=y
+
+# Add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt)
+#CONFIG_DEBUG_FILE=y
+
+# Enable privilege separation (see README 'Privilege separation' for details)
+#CONFIG_PRIVSEP=y
+
+# Enable mitigation against certain attacks against TKIP by delaying Michael
+# MIC error reports by a random amount of time between 0 and 60 seconds
+#CONFIG_DELAYED_MIC_ERROR_REPORT=y
index 037de57da56cccd9d3ef3ff771e6f98c216460af..08c631cc3bccc4c728af8a2d7d180ad72f9b9542 100644 (file)
@@ -67,6 +67,7 @@
 * clamav-0.94.2
 * cmake-2.4.8
 * collectd-4.5.1
+* compat-wireless-2009-03-30-kmod-2.6.27.21
 * coreutils-5.96
 * cpio-2.6
 * cpufrequtils-005
 * iptables-1.4.2
 * iptstate-2.1
 * iputils-ss020927
+* iw-0.9.12
 * java-1.6.0_12-for-ipfire
 * jpegsrc.v6b
 * kbd-1.12
 * libidn-0.6.14
 * libmad-0.15.1b
 * libnet-1.1.2.1
+* libnl-1.1
 * libogg-1.1.3
 * libpcap-1.0.0
 * libpng-1.2.12
 * m4-1.4.4
 * mISDN.git-9bf7deaa4b8829ab8fbccb34529a17aab2ddea93
 * mISDNuser.git-54928dec57bc846f2c2186f3640e69a053cd3641
-* madwifi-trunk-r3994-20090410-kmod-2.6.27.21
+* madwifi-hal-testing-r4003-20090416-kmod-2.6.27.21
 * make-3.81
 * man-db-2.4.3
 * man-pages-2.34
diff --git a/lfs/compat-wireless b/lfs/compat-wireless
new file mode 100644 (file)
index 0000000..bc3dd64
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2008  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2009-03-30
+
+THISAPP    = compat-wireless-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+ifeq "$(SMP)" ""
+  TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)
+else
+  TARGET     = $(DIR_INFO)/$(THISAPP)-smp
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 88ea3e5b42ef5fbcec8b91043dd3aa76
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xjf $(DIR_DL)/$(DL_FILE)
+
+#      Apply some wlan-card patches
+       cd $(DIR_APP) && cat $(DIR_SRC)/src/patches/compat-wireless_*.patch | patch -Np1
+
+       cd $(DIR_APP) && sed -i -e "s|uname -r|echo $(KVER)-ipfire|g" Makefile
+       cd $(DIR_APP) && sed -i -e "s|/sbin/modprobe|echo|g" Makefile
+       cd $(DIR_APP) && sed -i -e "s|install: uninstall modules|install: modules|g" Makefile
+       cd $(DIR_APP) && sed -i -e "s|\t@# All the scripts|\nende:|g" Makefile
+       cd $(DIR_APP) && make KMODDIR=kernel install
+       @$(POSTBUILD)
index 3030ba846113095da2e31c7b5ab805bd20c3a869..be00a8f29639fa89528d5daf43355bcca07643a8 100644 (file)
@@ -77,9 +77,13 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       -cp /usr/src/linux/include/linux/genetlink.h /usr/include/linux/
+       -cp /usr/src/linux/include/linux/netfilter/nfnetlink.h /usr/include/linux/netfilter/
+       -cp /usr/src/linux/include/linux/netfilter/nfnetlink_compat.h /usr/include/linux/netfilter/
        cd $(DIR_APP)/hostapd && cp $(DIR_SRC)/config/hostapd/config ./.config
        cd $(DIR_APP)/hostapd && sed -e "s@/usr/local@/usr@g" -i Makefile
-       cd $(DIR_APP)/hostapd && make $(MAKETUNING) $(EXTRA_MAKE) && make install
+       cd $(DIR_APP)/hostapd && make $(MAKETUNING) $(EXTRA_MAKE)
+       cd $(DIR_APP)/hostapd && make install
        install -v -m 644 $(DIR_SRC)/config/backup/includes/hostapd /var/ipfire/backup/addons/includes/hostapd
        mkdir -p /var/ipfire/wlanap
        touch /var/ipfire/wlanap/settings
diff --git a/lfs/iw b/lfs/iw
new file mode 100644 (file)
index 0000000..dcfa901
--- /dev/null
+++ b/lfs/iw
@@ -0,0 +1,76 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.9.12
+
+THISAPP    = iw-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 2aa919ff927dd9def151a87badfa111a
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && CFLAGS+=-I/usr/src/linux/include make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/libnl b/lfs/libnl
new file mode 100644 (file)
index 0000000..d174775
--- /dev/null
+++ b/lfs/libnl
@@ -0,0 +1,86 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.1
+
+THISAPP    = libnl-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = ae970ccd9144e132b68664f98e7ceeb1
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/if_vlan.h \
+                                             include/linux/if_vlan.h
+       cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/netfilter/nf_conntrack_common.h \
+                                             include/linux/netfilter/nf_conntrack_common.h
+       cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/netfilter/nf_conntrack_tcp.h \
+                                             include/linux/netfilter/nf_conntrack_tcp.h
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 0825608af97a6e77baa1875eeeb250955077da77..22c61da0417dd5e7c7dfd4f2e5d658c4163f3a37 100644 (file)
@@ -77,6 +77,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP)/wpa_supplicant && cp $(DIR_SRC)/config/wpa_supplicant/config ./.config
        cd $(DIR_APP)/wpa_supplicant && sed -e "s/wpa_cli\ dynamic_eap_methods/wpa_cli\ #dynamic_eap_methods/" -i Makefile
        cd $(DIR_APP)/wpa_supplicant && sed -e "s@/usr/local@/usr@g" -i Makefile
-       cd $(DIR_APP)/wpa_supplicant && make && make install
+       cd $(DIR_APP)/wpa_supplicant && CFLAGS+=-I/usr/src/linux/include make && make install
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/make.sh b/make.sh
index d02a1ad035cc0d21a72c2393de473a300271c5d0..30bf69ff31b425d943fc27c1f99a312fce3c28ce 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -345,6 +345,8 @@ buildipfire() {
   ipfiremake alsa                      KMOD=1
   ipfiremake openswan                  KMOD=1
   ipfiremake mISDN
+  ipfiremake which
+  ipfiremake compat-wireless
   ipfiremake pkg-config
   ipfiremake linux-atm
   ipfiremake cpio
@@ -359,6 +361,7 @@ buildipfire() {
   ipfiremake curl
   ipfiremake python
   ipfiremake libnet
+  ipfiremake libnl
   ipfiremake libidn
   ipfiremake libjpeg
   ipfiremake libpng
@@ -529,7 +532,6 @@ buildipfire() {
   ipfiremake tripwire
   ipfiremake sysstat
   ipfiremake vsftpd
-  ipfiremake which
   ipfiremake openswan
   ipfiremake lsof
   ipfiremake centerim
@@ -569,6 +571,7 @@ buildipfire() {
   ipfiremake esniper
   ipfiremake vnstat
   ipfiremake vnstati
+  ipfiremake iw
   ipfiremake wpa_supplicant
   ipfiremake hostapd
   ipfiremake urlgrabber
diff --git a/src/patches/compat-wireless_enable_ath5k_apmode.patch b/src/patches/compat-wireless_enable_ath5k_apmode.patch
new file mode 100644 (file)
index 0000000..db94481
--- /dev/null
@@ -0,0 +1,11 @@
+diff -Naur compat-wireless-2009-04-13.org/drivers/net/wireless/ath5k/base.c compat-wireless-2009-04-13/drivers/net/wireless/ath5k/base.c
+--- compat-wireless-2009-04-13.org/drivers/net/wireless/ath5k/base.c   2009-04-13 06:14:20.000000000 +0200
++++ compat-wireless-2009-04-13/drivers/net/wireless/ath5k/base.c       2009-04-16 19:15:17.000000000 +0200
+@@ -521,6 +521,7 @@
+       hw->wiphy->interface_modes =
+               BIT(NL80211_IFTYPE_STATION) |
++              BIT(NL80211_IFTYPE_AP) |
+               BIT(NL80211_IFTYPE_ADHOC) |
+               BIT(NL80211_IFTYPE_MESH_POINT);
diff --git a/src/patches/compat-wireless_rt2500pci-skb_allignment.patch b/src/patches/compat-wireless_rt2500pci-skb_allignment.patch
new file mode 100644 (file)
index 0000000..ea32c1e
--- /dev/null
@@ -0,0 +1,18 @@
+diff -Nur linux-2.6.29-org/drivers/net/wireless/rt2x00/rt2x00queue.c linux-2.6.29/drivers/net/wireless/rt2x00/rt2x00queue.c
+--- linux-2.6.29-org/drivers/net/wireless/rt2x00/rt2x00queue.c 2009-03-24 00:12:14.000000000 +0100
++++ linux-2.6.29/drivers/net/wireless/rt2x00/rt2x00queue.c     2009-04-16 17:08:39.000000000 +0200
+@@ -105,6 +105,14 @@
+        */
+       skb_push(skb, rt2x00dev->hw->extra_tx_headroom);
++    if( (int)skb->data & 3 ) {
++        int align = (int)skb->data & 3;
++        int len = skb->len;
++        skb_push(skb, align);
++        memmove(skb->data, skb->data+align, len);
++        skb_trim(skb, len);
++    }
++
+       skbdesc->skb_dma =
+           dma_map_single(rt2x00dev->dev, skb->data, skb->len, DMA_TO_DEVICE);