From 999d55de0585b62235a43731a6b942082f96c404 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Mon, 20 Apr 2009 19:33:34 +0200 Subject: [PATCH] Add compat-wireless, add support of nl80211 wlan drivers --- config/hostapd/config | 29 ++--- config/rootfiles/common/iw | 2 + config/rootfiles/common/libnl | 59 ++++++++++ config/rootfiles/common/uClibc | 109 +++++++++--------- config/rootfiles/core/28/filelists/iw | 1 + config/rootfiles/core/28/filelists/libnl | 1 + config/rootfiles/packages/bluetooth | 26 +++-- config/rootfiles/packages/hostapd | 12 +- config/wpa_supplicant/config | 99 +++++++++++++--- doc/packages-list.txt | 5 +- lfs/compat-wireless | 86 ++++++++++++++ lfs/hostapd | 6 +- lfs/iw | 76 ++++++++++++ lfs/libnl | 86 ++++++++++++++ lfs/wpa_supplicant | 2 +- make.sh | 5 +- .../compat-wireless_enable_ath5k_apmode.patch | 11 ++ ...at-wireless_rt2500pci-skb_allignment.patch | 18 +++ 18 files changed, 529 insertions(+), 104 deletions(-) create mode 100644 config/rootfiles/common/iw create mode 100644 config/rootfiles/common/libnl create mode 120000 config/rootfiles/core/28/filelists/iw create mode 120000 config/rootfiles/core/28/filelists/libnl create mode 100644 lfs/compat-wireless create mode 100644 lfs/iw create mode 100644 lfs/libnl create mode 100644 src/patches/compat-wireless_enable_ath5k_apmode.patch create mode 100644 src/patches/compat-wireless_rt2500pci-skb_allignment.patch diff --git a/config/hostapd/config b/config/hostapd/config index 7abc0dcfd6..88dca15c64 100644 --- a/config/hostapd/config +++ b/config/hostapd/config @@ -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 index 0000000000..d1035d013c --- /dev/null +++ b/config/rootfiles/common/iw @@ -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 index 0000000000..2beb80010f --- /dev/null +++ b/config/rootfiles/common/libnl @@ -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 diff --git a/config/rootfiles/common/uClibc b/config/rootfiles/common/uClibc index 49ee62d5cc..bf9831b800 100644 --- a/config/rootfiles/common/uClibc +++ b/config/rootfiles/common/uClibc @@ -466,6 +466,7 @@ #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 @@ -608,7 +609,6 @@ #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 @@ -659,7 +659,57 @@ #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 @@ -703,6 +753,7 @@ #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 @@ -712,7 +763,6 @@ #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 @@ -745,6 +795,7 @@ #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 @@ -758,6 +809,7 @@ #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 @@ -767,6 +819,7 @@ #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 @@ -1272,55 +1325,3 @@ #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 index 0000000000..7c58a2089a --- /dev/null +++ b/config/rootfiles/core/28/filelists/iw @@ -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 index 0000000000..7181849de8 --- /dev/null +++ b/config/rootfiles/core/28/filelists/libnl @@ -0,0 +1 @@ +../../../common/libnl \ No newline at end of file diff --git a/config/rootfiles/packages/bluetooth b/config/rootfiles/packages/bluetooth index 823ed05ecb..278cbea287 100644 --- a/config/rootfiles/packages/bluetooth +++ b/config/rootfiles/packages/bluetooth @@ -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 diff --git a/config/rootfiles/packages/hostapd b/config/rootfiles/packages/hostapd index 1c04d76116..5d091275e4 100644 --- a/config/rootfiles/packages/hostapd +++ b/config/rootfiles/packages/hostapd @@ -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 diff --git a/config/wpa_supplicant/config b/config/wpa_supplicant/config index c91671404e..65f8b46f8d 100644 --- a/config/wpa_supplicant/config +++ b/config/wpa_supplicant/config @@ -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 diff --git a/doc/packages-list.txt b/doc/packages-list.txt index 037de57da5..08c631cc3b 100644 --- a/doc/packages-list.txt +++ b/doc/packages-list.txt @@ -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 @@ -142,6 +143,7 @@ * 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 @@ -161,6 +163,7 @@ * 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 @@ -188,7 +191,7 @@ * 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 index 0000000000..bc3dd64eb7 --- /dev/null +++ b/lfs/compat-wireless @@ -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 . # +# # +############################################################################### + +############################################################################### +# 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) diff --git a/lfs/hostapd b/lfs/hostapd index 3030ba8461..be00a8f296 100644 --- a/lfs/hostapd +++ b/lfs/hostapd @@ -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 index 0000000000..dcfa901bdb --- /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 . # +# # +############################################################################### + +############################################################################### +# 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 index 0000000000..d1747752ee --- /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 . # +# # +############################################################################### + +############################################################################### +# 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) diff --git a/lfs/wpa_supplicant b/lfs/wpa_supplicant index 0825608af9..22c61da041 100644 --- a/lfs/wpa_supplicant +++ b/lfs/wpa_supplicant @@ -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 d02a1ad035..30bf69ff31 100755 --- 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 index 0000000000..db944814d1 --- /dev/null +++ b/src/patches/compat-wireless_enable_ath5k_apmode.patch @@ -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 index 0000000000..ea32c1eaac --- /dev/null +++ b/src/patches/compat-wireless_rt2500pci-skb_allignment.patch @@ -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); + -- 2.39.2