Browse Source

add support for wireless access point with p54usb stick

Waldemar Brodkorb 14 years ago
parent
commit
011eae436e

+ 8 - 0
mk/modules.mk

@@ -66,6 +66,14 @@ $(eval $(call KMOD_template,ATH5K,ath5k,\
 	$(MODULES_DIR)/kernel/drivers/net/wireless/ath/ath5k/ath5k \
 ,20, kmod-led-class))
 
+$(eval $(call KMOD_template,P54_COMMON,p54-common,\
+	$(MODULES_DIR)/kernel/drivers/net/wireless/p54/p54common \
+,68))
+
+$(eval $(call KMOD_template,P54_USB,p54-usb,\
+	$(MODULES_DIR)/kernel/drivers/net/wireless/p54/p54usb \
+,70))
+
 $(eval $(call KMOD_template,RT2X00,rt2x00,\
 	$(MODULES_DIR)/kernel/drivers/net/wireless/rt2x00/rt2x00lib \
 	$(MODULES_DIR)/kernel/drivers/net/wireless/rt2x00/rt2x00pci \

+ 2 - 0
mk/vars.mk

@@ -112,6 +112,8 @@ EXTRACT_CMD=		mkdir -p ${WRKDIR}; \
 				bzip2 -dc $$file | tar -xf - ;; \
 			*.zip) \
 				unzip -qd ${WRKDIR} $$file ;; \
+			*.arm) \
+				cp $$file ${WRKDIR} ;; \
 			*) \
 				echo "Cannot extract '$$file'" >&2; \
 				false ;; \

+ 2 - 1
package/Config.in

@@ -567,8 +567,9 @@ source "package/hostapd/Config.in"
 source "package/iw/Config.in"
 #source "package/kismet/Config.in"
 source "package/olsrd/Config.in"
+source "package/p54-firmware/Config.in"
+source "package/rt61-firmware/Config.in"
 source "package/wifidog/Config.in"
-source "package/wireless-firmware/Config.in"
 source "package/wpa_supplicant/Config.in"
 endmenu
 

+ 0 - 4
package/aufs2-util/Makefile

@@ -20,10 +20,6 @@ $(eval $(call PKG_template,AUFS_UTIL,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},$
 CONFIG_STYLE:=		manual
 MAKE_FLAGS+=		KDIR=${LINUX_DIR}
 
-do-extract:
-	mkdir -p ${WRKBUILD}
-	${CP} ./src/* ${WRKBUILD}/
-
 post-install:
 	$(INSTALL_DIR) $(IDIR_AUFS_UTIL)/sbin
 	$(INSTALL_BIN) ${WRKINST}/sbin/{u,}mount.aufs \

+ 15 - 0
package/base-files/src/etc/network/if-post-down.d/03-wireless

@@ -0,0 +1,15 @@
+#!/bin/sh 
+set -e 
+
+[ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0
+
+case "$IF_WIRELESS_MODE" in
+	ap)
+		logger -t hostap "Killing hostapd"
+		pkill hostapd
+		;;
+	*)
+		exit 0
+		;;
+esac
+exit 0

+ 86 - 0
package/base-files/src/etc/network/if-pre-up.d/04-wireless

@@ -0,0 +1,86 @@
+#!/bin/sh 
+#set -x
+set -e 
+
+[ -x /usr/sbin/iw ] || exit 0
+
+[ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0
+
+[ "$IF_WIRELESS_SSID" ] || exit 1
+[ "$IF_WIRELESS_CHANNEL" ] || exit 1
+[ "$IF_WIRELESS_HWMODE" ] || IF_WIRELESS_HWMODE=g
+
+wpa=0
+wpa1=0
+wpa2=0
+
+case "$IF_WIRELESS_SECURITY" in
+	none)
+		sec=1
+		;;
+	wep)
+		sec=2
+		;;
+	wpa)
+		sec=1
+		wpa1=1
+		;;
+	wpa2)
+		sec=1
+		wpa2=1
+		;;
+	wpa+wpa2)
+		sec=1
+		wpa=1
+		;;
+	*)
+		sec=1
+		;;
+esac
+
+case "$IF_WIRELESS_MODE" in
+	ap)
+		[ -x /usr/sbin/hostapd ] || {
+			logger -t hostap "No hostapd program found"
+			exit 1
+		}
+		logger -t hostap "Creating hostapd configuration"
+		cat /etc/hostapd.conf > /tmp/hostapd.conf
+		chmod 600 /tmp/hostapd.conf
+		echo "interface=${IFACE}" >> /tmp/hostapd.conf
+		echo "ssid=$IF_WIRELESS_SSID" >> /tmp/hostapd.conf
+		echo "channel=$IF_WIRELESS_CHANNEL" >> /tmp/hostapd.conf
+		echo "hw_mode=$IF_WIRELESS_HWMODE" >> /tmp/hostapd.conf
+		echo "auth_algs=$sec" >> /tmp/hostapd.conf
+		[ $wpa1 -eq 1 ] && {
+			logger -t hostap "using WPA for security"
+			echo "wpa=1" >> /tmp/hostapd.conf
+			echo "wpa_key_mgmt=WPA-PSK" >> /tmp/hostapd.conf
+			echo "wpa_pairwise=TKIP" >> /tmp/hostapd.conf
+			echo "wpa_passphrase=$IF_WIRELESS_PASSPHRASE" >> /tmp/hostapd.conf
+		}
+		[ $wpa2 -eq 1 ] && {
+			logger -t hostap "using WPA2 for security"
+			echo "wpa=2" >> /tmp/hostapd.conf
+			echo "wpa_key_mgmt=WPA-PSK" >> /tmp/hostapd.conf
+			echo "rsn_pairwise=CCMP" >> /tmp/hostapd.conf
+			echo "wpa_passphrase=$IF_WIRELESS_PASSPHRASE" >> /tmp/hostapd.conf
+		}
+		[ $wpa -eq 1 ] && {
+			logger -t hostap "using WPA and WPA2 for security"
+			echo "wpa=3" >> /tmp/hostapd.conf
+			echo "wpa_key_mgmt=WPA-PSK" >> /tmp/hostapd.conf
+			echo "wpa_pairwise=TKIP" >> /tmp/hostapd.conf
+			echo "rsn_pairwise=CCMP" >> /tmp/hostapd.conf
+			echo "wpa_passphrase=$IF_WIRELESS_PASSPHRASE" >> /tmp/hostapd.conf
+		}
+		logger -t hostap "Starting hostapd"
+		hostapd -B /tmp/hostapd.conf
+		;;
+	*)
+		echo "Unknown operation mode $IF_WIRELESS_MODE given!"
+		exit 1
+		;;
+esac
+
+exit 0

+ 0 - 15
package/hostapd/files/hostapd.conf

@@ -1,6 +1,4 @@
 ##### hostapd configuration file #####
-interface=wlan0
-#bridge=br0
 driver=nl80211
 logger_syslog=-1
 logger_syslog_level=0
@@ -8,16 +6,3 @@ logger_stdout=-1
 logger_stdout_level=0
 ctrl_interface=/var/run/hostapd
 ctrl_interface_group=0
-# set ssid, channel and mode
-ssid=openadk
-hw_mode=g
-channel=1
-# enable WPA2 (WEP/WPA disabled)
-macaddr_acl=0
-auth_algs=1
-ignore_broadcast_ssid=0
-wpa=2
-wpa_passphrase=secret123
-wpa_key_mgmt=WPA-PSK
-wpa_pairwise=TKIP
-rsn_pairwise=CCMP

+ 2 - 4
package/iw/Makefile

@@ -4,9 +4,9 @@
 include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		iw
-PKG_VERSION:=		0.9.18
+PKG_VERSION:=		0.9.19
 PKG_RELEASE:=		1
-PKG_MD5SUM:=		9734080d8a5c4b768c5e0da665a48950
+PKG_MD5SUM:=		3b88743f9c6ce8a7e2f5fd7d18fdea42
 PKG_DESCR:=		Tools for setting up WiFi cards via netlink (nl80211)
 PKG_SECTION:=		net
 PKG_DEPENDS:=		libnl
@@ -22,8 +22,6 @@ $(eval $(call PKG_template,IW,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DE
 
 CONFIG_STYLE:=		manual
 
-XAKE_FLAGS:=		V=1
-
 post-install:
 	${INSTALL_DIR} ${IDIR_IW}/usr/sbin
 	${INSTALL_BIN} ${WRKINST}/usr/sbin/iw ${IDIR_IW}/usr/sbin

+ 30 - 0
package/p54-firmware/Makefile

@@ -0,0 +1,30 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${TOPDIR}/rules.mk
+
+PKG_NAME:=		p54-firmware
+PKG_VERSION:=		1
+PKG_RELEASE:=		1
+PKG_MD5SUM:=		8e8ab005a4f8f0123bcdc51bc25b47f6
+PKG_DESCR:=		firmware for USB prism54 wireless cards (isl3887)
+PKG_SECTION:=		sys
+PKG_SITES:=		http://daemonizer.de/prism54/prism54-fw/fw-usb/
+
+DISTFILES:=		2.13.24.0.lm87.arm
+WRKDIST=		${WRKDIR}
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,P54_FIRMWARE,p54-firmware,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+CONFIG_STYLE:=          manual
+BUILD_STYLE:=           manual
+INSTALL_STYLE:=         manual
+
+do-install:
+	${INSTALL_DIR} ${IDIR_P54_FIRMWARE}/lib/firmware
+	${CP} ${WRKBUILD}/*.arm \
+		${IDIR_P54_FIRMWARE}/lib/firmware/isl3887usb
+
+include ${TOPDIR}/mk/pkg-bottom.mk

+ 4 - 4
package/wireless-firmware/Makefile → package/rt61-firmware/Makefile

@@ -3,7 +3,7 @@
 
 include ${TOPDIR}/rules.mk
 
-PKG_NAME:=		wireless-firmware
+PKG_NAME:=		rt61-firmware
 PKG_VERSION:=		1
 PKG_RELEASE:=		1
 PKG_MD5SUM:=		d4c690c93b470bc9a681297c2adc6281
@@ -16,15 +16,15 @@ WRKDIST=		${WRKDIR}/RT61_Firmware_V1.2
 
 include ${TOPDIR}/mk/package.mk
 
-$(eval $(call PKG_template,WIRELESS_FIRMWARE_RT61,wireless-firmware-rt61,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,RT61_FIRMWARE,rt61-firmware,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 
 CONFIG_STYLE:=          manual
 BUILD_STYLE:=           manual
 INSTALL_STYLE:=         manual
 
 do-install:
-	${INSTALL_DIR} ${IDIR_WIRELESS_FIRMWARE_RT61}/lib/firmware
+	${INSTALL_DIR} ${IDIR_RT61_FIRMWARE}/lib/firmware
 	${CP} ${WRKBUILD}/rt2*.bin \
-		${IDIR_WIRELESS_FIRMWARE_RT61}/lib/firmware
+		${IDIR_RT61_FIRMWARE}/lib/firmware
 
 include ${TOPDIR}/mk/pkg-bottom.mk

+ 1 - 0
target/Config.in

@@ -490,6 +490,7 @@ config ADK_LINUX_X86_ALIX2D
 	select ADK_TARGET_WITH_USB
 	select ADK_TARGET_WITH_MINIPCI
 	select ADK_TARGET_WITH_LEDS
+	select ADK_TARGET_WITH_WATCHDOG
 	help
 	  Support for ALIX2D boards.
 	  http://www.pcengines.ch/

+ 25 - 11
target/linux/config/Config.in.netdevice

@@ -120,6 +120,10 @@ config ADK_KERNEL_WLAN_80211
 	boolean
 	default n
 
+config ADK_KPACKAGE_KMOD_RT2X00
+	tristate
+	default n
+
 config ADK_KERNEL_RT2X00
 	boolean
 	select ADK_KPACKAGE_KMOD_RT2X00
@@ -139,6 +143,10 @@ config ADK_KERNEL_ATH_COMMON
 	tristate
 	default n
 
+config ADK_KPACKAGE_KMOD_P54_COMMON
+	tristate
+	default n
+
 config ADK_MOD_KERNEL_MAC80211
 	tristate
 	select ADK_MOD_KERNEL_CFG80211
@@ -148,7 +156,6 @@ config ADK_MOD_KERNEL_MAC80211
 	select ADK_KPACKAGE_KMOD_CRYPTO_ARC4
 	select ADK_KERNEL_CRC32
 	select ADK_KERNEL_WIRELESS
-	select ADK_KERNEL_WIRELESS_EXT
 	select ADK_KERNEL_WLAN_80211
 	select ADK_KERNEL_MAC80211_LEDS
 	default n
@@ -157,7 +164,7 @@ menu "Wireless card support"
 depends on ADK_TARGET_WITH_MINIPCI || ADK_TARGET_WITH_PCI
 
 config ADK_KPACKAGE_KMOD_MAC80211
-	prompt "kmod-mac80211................... mac80211 softmac"
+	prompt "kmod-mac80211.................. mac80211 softmac"
 	tristate
 	select ADK_MOD_KERNEL_CFG80211
 	select ADK_MOD_KERNEL_LIB80211
@@ -165,13 +172,12 @@ config ADK_KPACKAGE_KMOD_MAC80211
 	select ADK_KPACKAGE_KMOD_CRYPTO_ECB
 	select ADK_KPACKAGE_KMOD_CRYPTO_ARC4
 	select ADK_KERNEL_WIRELESS
-	select ADK_KERNEL_WIRELESS_EXT
 	select ADK_KERNEL_WLAN_80211
 	select ADK_KERNEL_CRC32
 	default n
 
 config ADK_KPACKAGE_KMOD_ATH5K
-	prompt "kmod-mac80211-ath5k............ Atheros 5xxx wireless cards"
+	prompt "kmod-ath5k................... Atheros 5xxx wireless cards"
 	tristate
 	select ADK_KERNEL_MAC80211_LEDS
 	select ADK_KERNEL_ATH_COMMON
@@ -198,12 +204,20 @@ config ADK_KERNEL_ATH5K_DEBUG
 	  parameter. For example:
 	   insmod ath5k.ko debug=0x00000400
 
-config ADK_KPACKAGE_KMOD_RT2X00
+config ADK_KPACKAGE_KMOD_P54_USB
+	prompt "kmod-p54-usb................. Prism54 USB support"
 	tristate
+	depends on ADK_KPACKAGE_KMOD_MAC80211
+	depends on ADK_PACKAGE_KMOD_USB_CONTROLLER
+	select ADK_KPACKAGE_KMOD_P54_COMMON
+	select ADK_KPACKAGE_KMOD_FW_LOADER
+	select ADK_PACKAGE_P54_FIRMWARE
 	default n
+	help
+	  Driver for Prism54 USB adaptors.
 
 config ADK_KPACKAGE_KMOD_RT2400PCI
-	prompt "kmod-mac80211-rt2400........... Ralink rt2400"
+	prompt "kmod-rt2400pci............... Ralink rt2400"
 	tristate
 	default n
 	select ADK_KERNEL_RT2X00
@@ -214,7 +228,7 @@ config ADK_KPACKAGE_KMOD_RT2400PCI
 	  Supported chips: RT2460.
 
 config ADK_KPACKAGE_KMOD_RT2500PCI
-	prompt "kmod-mac80211-rt2500........... Ralink rt2500"
+	prompt "kmod-rt2500pci............... Ralink rt2500"
 	tristate
 	default n
 	select ADK_KERNEL_RT2X00
@@ -225,13 +239,13 @@ config ADK_KPACKAGE_KMOD_RT2500PCI
 	  Supported chips: RT2560.
 
 config ADK_KPACKAGE_KMOD_RT61PCI
-	prompt "kmod-mac80211-rt2501........... Ralink rt2501/rt61"
+	prompt "kmod-rt61pci................. Ralink rt2501/rt61"
 	tristate
 	default n
 	select ADK_KERNEL_RT2X00
 	select ADK_KERNEL_MAC80211_LEDS
 	select ADK_KPACKAGE_KMOD_CRC_ITU_T
-	select ADK_PACKAGE_WIRELESS_FIRMWARE_RT61
+	select ADK_PACKAGE_RT61_FIRMWARE
 	depends on ADK_KPACKAGE_KMOD_MAC80211
 	help
 	  This adds support for rt2501 wireless chipset family.
@@ -240,7 +254,8 @@ config ADK_KPACKAGE_KMOD_RT61PCI
 config ADK_KERNEL_RT2X00_DEBUG
 	prompt "enable debugging info"
 	depends on ADK_KPACKAGE_KMOD_RT61PCI || \
-		ADK_KPACKAGE_KMOD_RT2500PCI || ADK_KPACKAGE_KMOD_RT2400PCI	
+		ADK_KPACKAGE_KMOD_RT2500PCI || \
+		ADK_KPACKAGE_KMOD_RT2400PCI	
 	default n
 	boolean
 	help
@@ -253,5 +268,4 @@ source package/sangam-atm/Config.in
 source package/sangam-atm/Config.in.fw
 
 endmenu
-
 endmenu