mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-24 02:48:26 +02:00
Merge branch 'master' of projects.qi-hardware.com:openwrt-xburst
This commit is contained in:
commit
099ec978ba
@ -126,6 +126,10 @@ menu "Global build settings"
|
|||||||
|
|
||||||
comment "General build options"
|
comment "General build options"
|
||||||
|
|
||||||
|
config DISPLAY_SUPPORT
|
||||||
|
bool "Show packages that require graphics support (local or remote)"
|
||||||
|
default n
|
||||||
|
|
||||||
config BUILD_PATENTED
|
config BUILD_PATENTED
|
||||||
default y
|
default y
|
||||||
bool "Compile with support for patented functionality"
|
bool "Compile with support for patented functionality"
|
||||||
|
@ -23,6 +23,11 @@ define Package/Default
|
|||||||
else
|
else
|
||||||
VERSION:=$(PKG_RELEASE)
|
VERSION:=$(PKG_RELEASE)
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(PKG_FLAGS),)
|
||||||
|
PKGFLAGS:=$(PKG_FLAGS)
|
||||||
|
else
|
||||||
|
PKGFLAGS:=
|
||||||
|
endif
|
||||||
ifneq ($(ARCH_PACKAGES),)
|
ifneq ($(ARCH_PACKAGES),)
|
||||||
PKGARCH:=$(ARCH_PACKAGES)
|
PKGARCH:=$(ARCH_PACKAGES)
|
||||||
else
|
else
|
||||||
|
@ -49,6 +49,7 @@ ifeq ($(DUMP),)
|
|||||||
IPKG_$(1):=$(PACKAGE_DIR)/$(1)_$(VERSION)_$(PKGARCH).ipk
|
IPKG_$(1):=$(PACKAGE_DIR)/$(1)_$(VERSION)_$(PKGARCH).ipk
|
||||||
IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg-$(PKGARCH)/$(1)
|
IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg-$(PKGARCH)/$(1)
|
||||||
INFO_$(1):=$(IPKG_STATE_DIR)/info/$(1).list
|
INFO_$(1):=$(IPKG_STATE_DIR)/info/$(1).list
|
||||||
|
KEEP_$(1):=$(strip $(call Package/$(1)/conffiles))
|
||||||
|
|
||||||
ifeq ($(if $(VARIANT),$(BUILD_VARIANT)),$(VARIANT))
|
ifeq ($(if $(VARIANT),$(BUILD_VARIANT)),$(VARIANT))
|
||||||
ifdef Package/$(1)/install
|
ifdef Package/$(1)/install
|
||||||
@ -98,6 +99,8 @@ ifeq ($(DUMP),)
|
|||||||
echo "Provides: $(PROVIDES)"; \
|
echo "Provides: $(PROVIDES)"; \
|
||||||
echo "Source: $(SOURCE)"; \
|
echo "Source: $(SOURCE)"; \
|
||||||
echo "Section: $(SECTION)"; \
|
echo "Section: $(SECTION)"; \
|
||||||
|
echo "Status: unknown $(if $(filter hold,$(PKG_FLAGS)),hold,ok) not-installed"; \
|
||||||
|
echo "Essential: $(if $(filter essential,$(PKG_FLAGS)),yes,no)"; \
|
||||||
echo "Priority: $(PRIORITY)"; \
|
echo "Priority: $(PRIORITY)"; \
|
||||||
echo "Maintainer: $(MAINTAINER)"; \
|
echo "Maintainer: $(MAINTAINER)"; \
|
||||||
echo "Architecture: $(PKGARCH)"; \
|
echo "Architecture: $(PKGARCH)"; \
|
||||||
@ -114,12 +117,27 @@ ifeq ($(DUMP),)
|
|||||||
$(RSTRIP) $$(IDIR_$(1))
|
$(RSTRIP) $$(IDIR_$(1))
|
||||||
SIZE=`cd $$(IDIR_$(1)); du -bs --exclude=./CONTROL . 2>/dev/null | cut -f1`; \
|
SIZE=`cd $$(IDIR_$(1)); du -bs --exclude=./CONTROL . 2>/dev/null | cut -f1`; \
|
||||||
$(SED) "s|^\(Installed-Size:\).*|\1 $$$$SIZE|g" $$(IDIR_$(1))/CONTROL/control
|
$(SED) "s|^\(Installed-Size:\).*|\1 $$$$SIZE|g" $$(IDIR_$(1))/CONTROL/control
|
||||||
|
|
||||||
|
ifneq ($$(KEEP_$(1)),)
|
||||||
|
@( \
|
||||||
|
keepfiles=""; \
|
||||||
|
for x in $$(KEEP_$(1)); do \
|
||||||
|
[ -f "$$(IDIR_$(1))/$$$$x" ] || keepfiles="$$$${keepfiles:+$$$$keepfiles }$$$$x"; \
|
||||||
|
done; \
|
||||||
|
[ -z "$keepfiles" ] || { \
|
||||||
|
mkdir -p $$(IDIR_$(1))/lib/upgrade/keep.d; \
|
||||||
|
for x in $$$$keepfiles; do echo $$$$x >> $$(IDIR_$(1))/lib/upgrade/keep.d/$(1); done; \
|
||||||
|
}; \
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
|
||||||
$(IPKG_BUILD) $$(IDIR_$(1)) $(PACKAGE_DIR)
|
$(IPKG_BUILD) $$(IDIR_$(1)) $(PACKAGE_DIR)
|
||||||
@[ -f $$(IPKG_$(1)) ] || false
|
@[ -f $$(IPKG_$(1)) ] || false
|
||||||
|
|
||||||
$$(INFO_$(1)): $$(IPKG_$(1))
|
$$(INFO_$(1)): $$(IPKG_$(1))
|
||||||
@[ -d $(TARGET_DIR)/tmp ] || mkdir -p $(TARGET_DIR)/tmp
|
@[ -d $(TARGET_DIR)/tmp ] || mkdir -p $(TARGET_DIR)/tmp
|
||||||
$(OPKG) install $$(IPKG_$(1))
|
$(OPKG) install $$(IPKG_$(1))
|
||||||
|
$(if $(filter-out essential,$(PKG_FLAGS)),for flag in $(filter-out essential,$(PKG_FLAGS)); do $(OPKG) flag $$$$flag $(1); done)
|
||||||
|
|
||||||
$(1)-clean:
|
$(1)-clean:
|
||||||
rm -f $(PACKAGE_DIR)/$(1)_*
|
rm -f $(PACKAGE_DIR)/$(1)_*
|
||||||
|
@ -21,6 +21,8 @@ STAMP_CONFIGURED:=$(PKG_BUILD_DIR)/.configured$(if $(DUMP),,_$(call confvar,$(PK
|
|||||||
STAMP_BUILT:=$(PKG_BUILD_DIR)/.built
|
STAMP_BUILT:=$(PKG_BUILD_DIR)/.built
|
||||||
STAMP_INSTALLED:=$(STAGING_DIR)/stamp/.$(PKG_NAME)_installed
|
STAMP_INSTALLED:=$(STAGING_DIR)/stamp/.$(PKG_NAME)_installed
|
||||||
|
|
||||||
|
STAGING_FILES_LIST:=$(PKG_NAME)$(if $(BUILD_VARIANT),.$(BUILD_VARIANT),).list
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/download.mk
|
include $(INCLUDE_DIR)/download.mk
|
||||||
include $(INCLUDE_DIR)/quilt.mk
|
include $(INCLUDE_DIR)/quilt.mk
|
||||||
include $(INCLUDE_DIR)/package-defaults.mk
|
include $(INCLUDE_DIR)/package-defaults.mk
|
||||||
@ -125,7 +127,7 @@ define Build/DefaultTargets
|
|||||||
$(call $(hook),$(TMP_DIR)/stage-$(PKG_NAME),$(TMP_DIR)/stage-$(PKG_NAME)/host)$(sep)\
|
$(call $(hook),$(TMP_DIR)/stage-$(PKG_NAME),$(TMP_DIR)/stage-$(PKG_NAME)/host)$(sep)\
|
||||||
)
|
)
|
||||||
if [ -d $(TMP_DIR)/stage-$(PKG_NAME) ]; then \
|
if [ -d $(TMP_DIR)/stage-$(PKG_NAME) ]; then \
|
||||||
(cd $(TMP_DIR)/stage-$(PKG_NAME); find ./ > $(STAGING_DIR)/packages/$(PKG_NAME).list); \
|
(cd $(TMP_DIR)/stage-$(PKG_NAME); find ./ > $(STAGING_DIR)/packages/$(STAGING_FILES_LIST)); \
|
||||||
$(CP) $(TMP_DIR)/stage-$(PKG_NAME)/* $(STAGING_DIR)/; \
|
$(CP) $(TMP_DIR)/stage-$(PKG_NAME)/* $(STAGING_DIR)/; \
|
||||||
fi
|
fi
|
||||||
rm -rf $(TMP_DIR)/stage-$(PKG_NAME)
|
rm -rf $(TMP_DIR)/stage-$(PKG_NAME)
|
||||||
@ -213,15 +215,15 @@ clean-staging: FORCE
|
|||||||
rm -f $(STAMP_INSTALLED)
|
rm -f $(STAMP_INSTALLED)
|
||||||
@-(\
|
@-(\
|
||||||
cd "$(STAGING_DIR)"; \
|
cd "$(STAGING_DIR)"; \
|
||||||
if [ -f packages/$(PKG_NAME).list ]; then \
|
if [ -f packages/$(STAGING_FILES_LIST) ]; then \
|
||||||
cat packages/$(PKG_NAME).list | xargs -r rm -f 2>/dev/null; \
|
cat packages/$(STAGING_FILES_LIST) | xargs -r rm -f 2>/dev/null; \
|
||||||
fi; \
|
fi; \
|
||||||
)
|
)
|
||||||
|
|
||||||
clean: clean-staging FORCE
|
clean: clean-staging FORCE
|
||||||
$(call Build/UninstallDev,$(STAGING_DIR),$(STAGING_DIR_HOST))
|
$(call Build/UninstallDev,$(STAGING_DIR),$(STAGING_DIR_HOST))
|
||||||
$(Build/Clean)
|
$(Build/Clean)
|
||||||
rm -f $(STAGING_DIR)/packages/$(PKG_NAME).list $(STAGING_DIR_HOST)/packages/$(PKG_NAME).list
|
rm -f $(STAGING_DIR)/packages/$(STAGING_FILES_LIST) $(STAGING_DIR_HOST)/packages/$(STAGING_FILES_LIST)
|
||||||
rm -rf $(PKG_BUILD_DIR)
|
rm -rf $(PKG_BUILD_DIR)
|
||||||
|
|
||||||
dist:
|
dist:
|
||||||
|
@ -42,6 +42,8 @@ endif
|
|||||||
SCAN_COOKIE?=$(shell echo $$$$)
|
SCAN_COOKIE?=$(shell echo $$$$)
|
||||||
export SCAN_COOKIE
|
export SCAN_COOKIE
|
||||||
|
|
||||||
|
SUBMAKE:=umask 022; $(SUBMAKE)
|
||||||
|
|
||||||
prepare-mk: FORCE ;
|
prepare-mk: FORCE ;
|
||||||
|
|
||||||
prepare-tmpinfo: FORCE
|
prepare-tmpinfo: FORCE
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=6in4
|
PKG_NAME:=6in4
|
||||||
PKG_VERSION:=6
|
PKG_VERSION:=7
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
@ -17,11 +17,9 @@ if [ "$ACTION" = ifup ]; then
|
|||||||
config_get wandev "$cfg" wan_device "$(find_6in4_wanif)"
|
config_get wandev "$cfg" wan_device "$(find_6in4_wanif)"
|
||||||
[ "$wandev" = "$DEVICE" ] || return 0
|
[ "$wandev" = "$DEVICE" ] || return 0
|
||||||
|
|
||||||
local oldip
|
|
||||||
local wanip=$(find_6in4_wanip "$wandev")
|
local wanip=$(find_6in4_wanip "$wandev")
|
||||||
config_get oldip "$cfg" ipaddr
|
|
||||||
|
|
||||||
[ -n "$wanip" ] && [ "$oldip" != "$wanip" ] && {
|
[ -n "$wanip" ] && {
|
||||||
local tunnelid
|
local tunnelid
|
||||||
config_get tunnelid "$cfg" tunnelid
|
config_get tunnelid "$cfg" tunnelid
|
||||||
|
|
||||||
@ -37,7 +35,22 @@ if [ "$ACTION" = ifup ]; then
|
|||||||
}
|
}
|
||||||
uci_set_state network "$cfg" ipaddr "$wanip"
|
uci_set_state network "$cfg" ipaddr "$wanip"
|
||||||
|
|
||||||
( wget -qO/dev/null "http://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=AUTO&user_id=$username&pass=$password&tunnel_id=$tunnelid" && ifup "$cfg" )&
|
(
|
||||||
|
local url="http://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=AUTO&user_id=$username&pass=$password&tunnel_id=$tunnelid"
|
||||||
|
local try=0
|
||||||
|
local max=3
|
||||||
|
|
||||||
|
while [ $((++try)) -le $max ]; do
|
||||||
|
wget -qO/dev/null "$url" 2>/dev/null && {
|
||||||
|
logger -t 6in4-update "Updated tunnel #$tunnelid endpoint to $wanip"
|
||||||
|
ifup "$cfg"
|
||||||
|
break
|
||||||
|
} || {
|
||||||
|
logger -t 6in4-update "Try $try/$max failed, retrying"
|
||||||
|
sleep 1
|
||||||
|
}
|
||||||
|
done
|
||||||
|
)&
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ else
|
|||||||
$(curdir)/builddirs-install:=. $(sort $(package-y))
|
$(curdir)/builddirs-install:=. $(sort $(package-y))
|
||||||
endif
|
endif
|
||||||
ifneq ($(IGNORE_ERRORS),)
|
ifneq ($(IGNORE_ERRORS),)
|
||||||
$(curdir)/builddirs-ignore-compile:= $(if $(filter m y, $(IGNORE_ERRORS)),$(foreach m,$(IGNORE_ERRORS),$(package-$(m))),$(package-m))
|
$(curdir)/builddirs-ignore-compile:= $(if $(filter n m y, $(IGNORE_ERRORS)),$(foreach m,$(IGNORE_ERRORS),$(package-$(subst n,,$(m)))),$(package-m) $(package-))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(curdir)/install:=$(curdir)/install-cleanup
|
$(curdir)/install:=$(curdir)/install-cleanup
|
||||||
|
@ -185,7 +185,7 @@ detect_acx() {
|
|||||||
cat <<EOF
|
cat <<EOF
|
||||||
config wifi-device $dev
|
config wifi-device $dev
|
||||||
option type acx
|
option type acx
|
||||||
option channel 5
|
option channel 11
|
||||||
|
|
||||||
# REMOVE THIS LINE TO ENABLE WIFI:
|
# REMOVE THIS LINE TO ENABLE WIFI:
|
||||||
option disabled 1
|
option disabled 1
|
||||||
|
@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
include $(INCLUDE_DIR)/kernel.mk
|
include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=base-files
|
PKG_NAME:=base-files
|
||||||
PKG_RELEASE:=43.3
|
PKG_RELEASE:=43.8
|
||||||
|
|
||||||
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
|
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
|
||||||
PKG_BUILD_DEPENDS:=opkg/host
|
PKG_BUILD_DEPENDS:=opkg/host
|
||||||
@ -50,9 +50,14 @@ define Package/base-files/conffiles
|
|||||||
/etc/inittab
|
/etc/inittab
|
||||||
/etc/group
|
/etc/group
|
||||||
/etc/passwd
|
/etc/passwd
|
||||||
|
/etc/shadow
|
||||||
/etc/profile
|
/etc/profile
|
||||||
/etc/shells
|
/etc/shells
|
||||||
/etc/sysctl.conf
|
/etc/sysctl.conf
|
||||||
|
/etc/rc.local
|
||||||
|
/etc/sysupgrade.conf
|
||||||
|
/etc/config/
|
||||||
|
/etc/dropbear/
|
||||||
$(call $(TARGET)/conffiles)
|
$(call $(TARGET)/conffiles)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -159,6 +164,7 @@ ifneq ($(TARGET_avr32)$(TARGET_coldfire),)
|
|||||||
DEPENDS:=+libgcc
|
DEPENDS:=+libgcc
|
||||||
endif
|
endif
|
||||||
URL:=$(LIBC_URL)
|
URL:=$(LIBC_URL)
|
||||||
|
PKG_FLAGS:=hold essential
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,18 +1,16 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Copyright (C) 2006 OpenWrt.org
|
# Copyright (C) 2006-2010 OpenWrt.org
|
||||||
|
|
||||||
grep '^root:[^!]' /etc/passwd >&- 2>&-
|
if grep -qs '^root:[^!]' /etc/passwd /etc/shadow && [ -z "$FAILSAFE" ]; then
|
||||||
[ "$?" = "0" -a -z "$FAILSAFE" ] &&
|
echo "Login failed."
|
||||||
{
|
exit 0
|
||||||
echo "Login failed."
|
else
|
||||||
exit 0
|
|
||||||
} || {
|
|
||||||
cat << EOF
|
cat << EOF
|
||||||
=== IMPORTANT ============================
|
=== IMPORTANT ============================
|
||||||
Use 'passwd' to set your login password
|
Use 'passwd' to set your login password
|
||||||
this will disable telnet and enable SSH
|
this will disable telnet and enable SSH
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
EOF
|
EOF
|
||||||
}
|
fi
|
||||||
|
|
||||||
exec /bin/ash --login
|
exec /bin/ash --login
|
||||||
|
@ -274,4 +274,42 @@ uci_apply_defaults() {
|
|||||||
uci commit
|
uci commit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
service_kill() {
|
||||||
|
local name="${1}"
|
||||||
|
local pid="${2:-$(pidof "$name")}"
|
||||||
|
local grace="${3:-5}"
|
||||||
|
|
||||||
|
[ -f "$pid" ] && pid="$(head -n1 "$pid" 2>/dev/null)"
|
||||||
|
|
||||||
|
for pid in $pid; do
|
||||||
|
[ -d "/proc/$pid" ] || continue
|
||||||
|
local try=0
|
||||||
|
kill -TERM $pid 2>/dev/null && \
|
||||||
|
while grep -qs "$name" "/proc/$pid/cmdline" && [ $((try++)) -lt $grace ]; do sleep 1; done
|
||||||
|
kill -KILL $pid 2>/dev/null && \
|
||||||
|
while grep -qs "$name" "/proc/$pid/cmdline"; do sleep 1; done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pi_include() {
|
||||||
|
if [ -f "/tmp/overlay/$1" ]; then
|
||||||
|
. "/tmp/overlay/$1"
|
||||||
|
elif [ -f "$1" ]; then
|
||||||
|
. "$1"
|
||||||
|
elif [ -d "/tmp/overlay/$1" ]; then
|
||||||
|
for src_script in /tmp/overlay/$1/*.sh; do
|
||||||
|
. "$src_script"
|
||||||
|
done
|
||||||
|
elif [ -d "$1" ]; then
|
||||||
|
for src_script in $1/*.sh; do
|
||||||
|
. "$src_script"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "WARNING: $1 not found"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
[ -z "$IPKG_INSTROOT" -a -f /lib/config/uci.sh ] && . /lib/config/uci.sh
|
[ -z "$IPKG_INSTROOT" -a -f /lib/config/uci.sh ] && . /lib/config/uci.sh
|
||||||
|
@ -5,12 +5,6 @@
|
|||||||
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
||||||
. /etc/diag.sh
|
. /etc/diag.sh
|
||||||
|
|
||||||
preinit_essential_hook=
|
|
||||||
preinit_main_hook=
|
|
||||||
failsafe_hook=
|
|
||||||
initramfs_hook=
|
|
||||||
preinit_mount_root_hook=
|
|
||||||
|
|
||||||
pi_ifname=
|
pi_ifname=
|
||||||
pi_ip=192.168.1.1
|
pi_ip=192.168.1.1
|
||||||
pi_broadcast=192.168.1.255
|
pi_broadcast=192.168.1.255
|
||||||
@ -28,8 +22,14 @@ pi_init_suppress_stderr="y"
|
|||||||
pi_init_path="/bin:/sbin:/usr/bin:/usr/sbin"
|
pi_init_path="/bin:/sbin:/usr/bin:/usr/sbin"
|
||||||
pi_init_cmd="/sbin/init"
|
pi_init_cmd="/sbin/init"
|
||||||
|
|
||||||
|
. /etc/functions.sh
|
||||||
. /lib/functions/boot.sh
|
. /lib/functions/boot.sh
|
||||||
|
|
||||||
|
boot_hook_init preinit_essential
|
||||||
|
boot_hook_init preinit_main
|
||||||
|
boot_hook_init failsafe
|
||||||
|
boot_hook_init initramfs
|
||||||
|
boot_hook_init preinit_mount_root
|
||||||
|
|
||||||
for pi_source_file in /lib/preinit/*; do
|
for pi_source_file in /lib/preinit/*; do
|
||||||
. $pi_source_file
|
. $pi_source_file
|
||||||
|
5
package/base-files/files/etc/sysupgrade.conf
Normal file
5
package/base-files/files/etc/sysupgrade.conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
## This file contains files and directories that should
|
||||||
|
## be preserved during an upgrade.
|
||||||
|
|
||||||
|
# /etc/example.conf
|
||||||
|
# /etc/openvpn/
|
@ -6,19 +6,66 @@ mount() {
|
|||||||
/bin/busybox mount "$@"
|
/bin/busybox mount "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boot_hook_splice_start() {
|
||||||
|
export -n PI_HOOK_SPLICE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
boot_hook_splice_finish() {
|
||||||
|
local hook
|
||||||
|
for hook in $PI_STACK_LIST; do
|
||||||
|
local v; eval "v=\${${hook}_splice:+\$${hook}_splice }$hook"
|
||||||
|
export -n "${hook}=${v% }"
|
||||||
|
export -n "${hook}_splice="
|
||||||
|
done
|
||||||
|
export -n PI_HOOK_SPLICE=
|
||||||
|
}
|
||||||
|
|
||||||
|
boot_hook_init() {
|
||||||
|
local hook="${1}_hook"
|
||||||
|
export -n "PI_STACK_LIST=${PI_STACK_LIST:+$PI_STACK_LIST }$hook"
|
||||||
|
export -n "$hook="
|
||||||
|
}
|
||||||
|
|
||||||
boot_hook_add() {
|
boot_hook_add() {
|
||||||
local hook="${1}_hook"
|
local hook="${1}_hook${PI_HOOK_SPLICE:+_splice}"
|
||||||
local value="$2"
|
local func="${2}"
|
||||||
local sep=" "
|
|
||||||
|
[ -n "$func" ] && {
|
||||||
eval "$hook=\"\${$hook:+\${$hook}\${value:+\$sep}}\$value\""
|
local v; eval "v=\$$hook"
|
||||||
|
export -n "$hook=${v:+$v }$func"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
boot_hook_shift() {
|
||||||
|
local hook="${1}_hook"
|
||||||
|
local rvar="${2}"
|
||||||
|
|
||||||
|
local v; eval "v=\$$hook"
|
||||||
|
[ -n "$v" ] && {
|
||||||
|
local first="${v%% *}"
|
||||||
|
|
||||||
|
[ "$v" != "${v#* }" ] && \
|
||||||
|
export -n "$hook=${v#* }" || \
|
||||||
|
export -n "$hook="
|
||||||
|
|
||||||
|
export -n "$rvar=$first"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
boot_run_hook() {
|
boot_run_hook() {
|
||||||
local boot_func
|
local hook="$1"
|
||||||
for boot_func in $(eval "echo \"\$${1}_hook\""); do
|
local func
|
||||||
$boot_func "$1" "$2"
|
|
||||||
done
|
while boot_hook_shift "$hook" func; do
|
||||||
|
local ran; eval "ran=\$PI_RAN_$func"
|
||||||
|
[ -n "$ran" ] || {
|
||||||
|
export -n "PI_RAN_$func=1"
|
||||||
|
$func "$1" "$2"
|
||||||
|
}
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
find_mtd_part() {
|
find_mtd_part() {
|
||||||
@ -95,6 +142,7 @@ fopivot() { # <rw_root> <ro_root> <dupe?>
|
|||||||
|
|
||||||
ramoverlay() {
|
ramoverlay() {
|
||||||
mkdir -p /tmp/root
|
mkdir -p /tmp/root
|
||||||
mount -t tmpfs root /tmp/root
|
mount -t tmpfs -o mode=0755 root /tmp/root
|
||||||
fopivot /tmp/root /rom 1
|
fopivot /tmp/root /rom 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -339,40 +339,34 @@ setup_interface() {
|
|||||||
setup_interface_static "$iface" "$config"
|
setup_interface_static "$iface" "$config"
|
||||||
;;
|
;;
|
||||||
dhcp)
|
dhcp)
|
||||||
local lockfile="/var/lock/dhcp-$iface"
|
# kill running udhcpc instance
|
||||||
lock "$lockfile"
|
|
||||||
|
|
||||||
# prevent udhcpc from starting more than once
|
|
||||||
local pidfile="/var/run/dhcp-${iface}.pid"
|
local pidfile="/var/run/dhcp-${iface}.pid"
|
||||||
local pid="$(cat "$pidfile" 2>/dev/null)"
|
service_kill udhcpc "$pidfile"
|
||||||
if [ -d "/proc/$pid" ] && grep -qs udhcpc "/proc/${pid}/cmdline"; then
|
|
||||||
lock -u "$lockfile"
|
|
||||||
else
|
|
||||||
local ipaddr netmask hostname proto1 clientid broadcast
|
|
||||||
config_get ipaddr "$config" ipaddr
|
|
||||||
config_get netmask "$config" netmask
|
|
||||||
config_get hostname "$config" hostname
|
|
||||||
config_get proto1 "$config" proto
|
|
||||||
config_get clientid "$config" clientid
|
|
||||||
config_get_bool broadcast "$config" broadcast 0
|
|
||||||
|
|
||||||
[ -z "$ipaddr" ] || \
|
local ipaddr netmask hostname proto1 clientid vendorid broadcast
|
||||||
$DEBUG ifconfig "$iface" "$ipaddr" ${netmask:+netmask "$netmask"}
|
config_get ipaddr "$config" ipaddr
|
||||||
|
config_get netmask "$config" netmask
|
||||||
|
config_get hostname "$config" hostname
|
||||||
|
config_get proto1 "$config" proto
|
||||||
|
config_get clientid "$config" clientid
|
||||||
|
config_get vendorid "$config" vendorid
|
||||||
|
config_get_bool broadcast "$config" broadcast 0
|
||||||
|
|
||||||
# don't stay running in background if dhcp is not the main proto on the interface (e.g. when using pptp)
|
[ -z "$ipaddr" ] || \
|
||||||
local dhcpopts
|
$DEBUG ifconfig "$iface" "$ipaddr" ${netmask:+netmask "$netmask"}
|
||||||
[ ."$proto1" != ."$proto" ] && dhcpopts="-n -q"
|
|
||||||
[ "$broadcast" = 1 ] && broadcast="-O broadcast" || broadcast=
|
|
||||||
|
|
||||||
$DEBUG eval udhcpc -t 0 -i "$iface" \
|
# don't stay running in background if dhcp is not the main proto on the interface (e.g. when using pptp)
|
||||||
${ipaddr:+-r $ipaddr} \
|
local dhcpopts
|
||||||
${hostname:+-H $hostname} \
|
[ ."$proto1" != ."$proto" ] && dhcpopts="-n -q"
|
||||||
${clientid:+-c $clientid} \
|
[ "$broadcast" = 1 ] && broadcast="-O broadcast" || broadcast=
|
||||||
-b -p "$pidfile" $broadcast \
|
|
||||||
${dhcpopts:- -O rootpath -R &}
|
|
||||||
|
|
||||||
lock -u "$lockfile"
|
$DEBUG eval udhcpc -t 0 -i "$iface" \
|
||||||
fi
|
${ipaddr:+-r $ipaddr} \
|
||||||
|
${hostname:+-H $hostname} \
|
||||||
|
${clientid:+-c $clientid} \
|
||||||
|
${vendorid:+-V $vendorid} \
|
||||||
|
-b -p "$pidfile" $broadcast \
|
||||||
|
${dhcpopts:- -O rootpath -R &}
|
||||||
;;
|
;;
|
||||||
none)
|
none)
|
||||||
setup_interface_none "$iface" "$config"
|
setup_interface_none "$iface" "$config"
|
||||||
@ -400,12 +394,7 @@ stop_interface_dhcp() {
|
|||||||
remove_dns "$config"
|
remove_dns "$config"
|
||||||
|
|
||||||
local pidfile="/var/run/dhcp-${ifname}.pid"
|
local pidfile="/var/run/dhcp-${ifname}.pid"
|
||||||
local pid="$(cat "$pidfile" 2>/dev/null)"
|
service_kill udhcpc "$pidfile"
|
||||||
[ -d "/proc/$pid" ] && {
|
|
||||||
grep -qs udhcpc "/proc/$pid/cmdline" && kill -TERM $pid && \
|
|
||||||
while grep -qs udhcpc "/proc/$pid/cmdline"; do sleep 1; done
|
|
||||||
rm -f "$pidfile"
|
|
||||||
}
|
|
||||||
|
|
||||||
uci -P /var/state revert "network.$config"
|
uci -P /var/state revert "network.$config"
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ do_mount_devfs() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
do_mount_hotplug() {
|
do_mount_hotplug() {
|
||||||
mount -t tmpfs tmpfs /dev -o size=512K
|
mount -t tmpfs tmpfs /dev -o mode=0755,size=512K
|
||||||
}
|
}
|
||||||
|
|
||||||
do_mount_udev() {
|
do_mount_udev() {
|
||||||
|
24
package/base-files/files/lib/preinit/41_merge_overlay_hooks
Normal file
24
package/base-files/files/lib/preinit/41_merge_overlay_hooks
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Copyright (C) 2010 OpenWrt.org
|
||||||
|
|
||||||
|
merge_overlay_hooks() {
|
||||||
|
jffs2_not_mounted || [ ! -d /tmp/overlay/lib/preinit ] || {
|
||||||
|
echo "- merge overlay components -"
|
||||||
|
|
||||||
|
mkdir -p /tmp/preinit-hook-merge
|
||||||
|
ln -sf /lib/preinit/* /tmp/overlay/lib/preinit/[0-9][0-9]_* /tmp/preinit-hook-merge/
|
||||||
|
|
||||||
|
boot_hook_splice_start
|
||||||
|
|
||||||
|
local pipart
|
||||||
|
for pipart in /tmp/preinit-hook-merge/*; do
|
||||||
|
. $pipart
|
||||||
|
done
|
||||||
|
|
||||||
|
boot_hook_splice_finish
|
||||||
|
|
||||||
|
rm -rf /tmp/preinit-hook-merge
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
boot_hook_add preinit_mount_root merge_overlay_hooks
|
@ -0,0 +1,10 @@
|
|||||||
|
# Essential files that will be always kept
|
||||||
|
/etc/banner
|
||||||
|
/etc/hosts
|
||||||
|
/etc/inittab
|
||||||
|
/etc/group
|
||||||
|
/etc/passwd
|
||||||
|
/etc/profile
|
||||||
|
/etc/shells
|
||||||
|
/etc/sysctl.conf
|
||||||
|
/etc/rc.local
|
@ -51,8 +51,10 @@ EOF
|
|||||||
|
|
||||||
add_uci_conffiles() {
|
add_uci_conffiles() {
|
||||||
local file="$1"
|
local file="$1"
|
||||||
find /etc/config /etc/passwd /etc/group /etc/dropbear \
|
( find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' \
|
||||||
/etc/firewall.user /etc/rc.local -type f > "$file"
|
/etc/sysupgrade.conf /lib/upgrade/keep.d/* 2>/dev/null) \
|
||||||
|
-type f 2>/dev/null;
|
||||||
|
opkg list-changed-conffiles ) | sort -u > "$file"
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,9 +21,9 @@ setup_interface () {
|
|||||||
local user_router
|
local user_router
|
||||||
|
|
||||||
[ -n "$ifc" ] && {
|
[ -n "$ifc" ] && {
|
||||||
config_get old_ip "$ifc" ipaddr
|
old_ip="$(uci_get_state network "$ifc" ipaddr)"
|
||||||
config_get old_broadcast "$ifc" broadcast
|
old_broadcast="$(uci_get_state network "$ifc" broadcast)"
|
||||||
config_get old_subnet "$ifc" netmask
|
old_subnet="$(uci_get_state network "$ifc" netmask)"
|
||||||
}
|
}
|
||||||
|
|
||||||
[ "$ip" != "$old_ip" ] \
|
[ "$ip" != "$old_ip" ] \
|
||||||
@ -41,8 +41,8 @@ setup_interface () {
|
|||||||
# Default Route
|
# Default Route
|
||||||
[ -n "$ifc" ] && {
|
[ -n "$ifc" ] && {
|
||||||
change_state network "$ifc" lease_gateway "$router"
|
change_state network "$ifc" lease_gateway "$router"
|
||||||
config_get old_router "$ifc" gateway
|
old_router="$(uci_get_state network "$ifc" gateway)"
|
||||||
user_router=$(uci_get "network.$ifc.gateway")
|
user_router="$(uci_get network "$ifc" gateway)"
|
||||||
[ -n "$user_router" ] && router="$user_router"
|
[ -n "$user_router" ] && router="$user_router"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,10 +17,9 @@ PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
|
|||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Package/block-extroot/Default
|
define Package/block-extroot/Default
|
||||||
SECTION:=utils
|
SECTION:=base
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Base system
|
||||||
TITLE:=root filesystem on secondary storage
|
TITLE:=root filesystem on secondary storage
|
||||||
SUBMENU:=disc
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/block-extroot
|
define Package/block-extroot
|
||||||
|
@ -4,11 +4,10 @@
|
|||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
|
|
||||||
|
|
||||||
. /etc/functions.sh
|
|
||||||
. /lib/functions/extmount.sh
|
|
||||||
. /lib/functions/mount.sh
|
|
||||||
|
|
||||||
determine_external_root() {
|
determine_external_root() {
|
||||||
|
pi_include /lib/functions/extmount.sh
|
||||||
|
pi_include /lib/functions/mount.sh
|
||||||
|
|
||||||
local OLD_UCI_CONFIG_DIR="$UCI_CONFIG_DIR"
|
local OLD_UCI_CONFIG_DIR="$UCI_CONFIG_DIR"
|
||||||
set_jffs_mp
|
set_jffs_mp
|
||||||
determine_root_device
|
determine_root_device
|
||||||
|
@ -13,12 +13,14 @@ set_jffs_mp() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
er_load_modules() {
|
er_load_modules() {
|
||||||
[ -d $ER_ROOT/etc/modules.d ] && {
|
mkdir -p /tmp/extroot_modules/modules.d
|
||||||
cd $ER_ROOT/etc/modules.d && {
|
mkdir -p /tmp/extroot_modules/modules
|
||||||
local modules="$(grep -l '# May be required for rootfs' *)"
|
ln -sf /etc/modules.d/* /tmp/overlay/etc/modules.d/* /tmp/extroot_modules/modules.d
|
||||||
cat $modules | sed 's/^\([^#]\)/insmod \1/' | sh 2>&- || :
|
ln -sf /lib/modules/*/* /tmp/overlay/lib/modules/*/* /tmp/extroot_modules/modules
|
||||||
}
|
local modules="$(grep -l '# May be required for rootfs' /tmp/extroot_modules/modules.d/*)"
|
||||||
|
cd /tmp/extroot_modules/modules && {
|
||||||
|
cat $modules | sed -e 's/^\([^#].*\)/insmod \.\/\1.ko/'| sh 2>&- || :
|
||||||
}
|
}
|
||||||
|
rm -rf /tmp/extroot_modules
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -118,15 +118,18 @@ config_create_swap_fstab_entry() {
|
|||||||
|
|
||||||
[ -n "$device" ] || return 0
|
[ -n "$device" ] || return 0
|
||||||
|
|
||||||
local fstabnew="$(mktemp -t '.fstab.XXXXXXXX')"
|
local fstabnew
|
||||||
|
|
||||||
mkdir -p /var/lock
|
mkdir -p /var/lock
|
||||||
lock /var/lock/fstab.lck
|
lock -w /var/lock/fstab.lck && {
|
||||||
cat /tmp/fstab | grep -E -v "^$device[[:blank:]]" >>"$fstabnew"
|
lock /var/lock/fstab.lck
|
||||||
[ "$enabled" -eq 1 ] && echo "$device none swap sw 0 0" >> "$fstabnew"
|
fstabnew="$(mktemp -t '.fstab.XXXXXXXX')"
|
||||||
cat "$fstabnew" >/tmp/fstab
|
cat /tmp/fstab | grep -E -v "^$device[[:blank:]]" >>"$fstabnew"
|
||||||
lock -u /var/lock/fstab.lck
|
[ "$enabled" -eq 1 ] && echo "$device none swap sw 0 0" >> "$fstabnew"
|
||||||
rm -f $fstabnew
|
cat "$fstabnew" >/tmp/fstab
|
||||||
|
rm -f $fstabnew
|
||||||
|
lock -u /var/lock/fstab.lck
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
config_create_mount_fstab_entry() {
|
config_create_mount_fstab_entry() {
|
||||||
@ -140,15 +143,18 @@ config_create_mount_fstab_entry() {
|
|||||||
[ -n "$target" ] || return 0
|
[ -n "$target" ] || return 0
|
||||||
[ -n "$device" ] || return 0
|
[ -n "$device" ] || return 0
|
||||||
|
|
||||||
local fstabnew="$(mktemp -t '.fstab.XXXXXXXX')"
|
local fstabnew
|
||||||
|
|
||||||
mkdir -p /var/lock
|
mkdir -p /var/lock
|
||||||
lock /var/lock/fstab.lck
|
lock -w /var/lock/fstab.lck && {
|
||||||
cat /tmp/fstab | grep -E -v "^$device[[:blank:]]" | grep -v "$target" >>"$fstabnew"
|
lock /var/lock/fstab.lck
|
||||||
echo "$device $target $fstype $options 0 0" >>"$fstabnew"
|
fstabnew="$(mktemp -t '.fstab.XXXXXXXX')"
|
||||||
cat "$fstabnew" >/tmp/fstab
|
cat /tmp/fstab | grep -E -v "^$device[[:blank:]]" | grep -v "$target" >>"$fstabnew"
|
||||||
lock -u /var/lock/fstab.lck
|
echo "$device $target $fstype $options 0 0" >>"$fstabnew"
|
||||||
rm -f $fstabnew
|
cat "$fstabnew" >/tmp/fstab
|
||||||
|
rm -f $fstabnew
|
||||||
|
lock -u /var/lock/fstab.lck
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
libmount_find_token() {
|
libmount_find_token() {
|
||||||
|
@ -12,25 +12,23 @@ libmount_fsck() {
|
|||||||
local found_fsck=0
|
local found_fsck=0
|
||||||
|
|
||||||
|
|
||||||
[ -n "$fsck_type" ] && [ "$fsck_type" != "swap" ] && {
|
grep -q "$device" /proc/swaps || grep -q "$device" /proc/mounts || {
|
||||||
grep -q "$device" /proc/swaps || grep -q "$device" /proc/mounts || {
|
[ -e "$device" ] && [ "$fsck_enabled" -eq 1 ] && {
|
||||||
[ -e "$device" ] && [ "$fsck_enabled" -eq 1 ] && {
|
for known_type in $libmount_known_fsck; do
|
||||||
for known_type in $libmount_known_fsck; do
|
if [ "$known_type" = "$fsck_fstype" ]; then
|
||||||
if [ "$known_type" = "$fsck_fstype" ]; then
|
fsck_${known_type} "$device"
|
||||||
fsck_${known_type} "$device"
|
found_fsck=1
|
||||||
found_fsck=1
|
break
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [ "$found_fsck" -ne 1 ]; then
|
|
||||||
logger -t 'fstab' "Unable to check/repair $device; no known fsck for filesystem type $fstype"
|
|
||||||
fi
|
fi
|
||||||
}
|
done
|
||||||
|
if [ "$found_fsck" -ne 1 ]; then
|
||||||
|
logger -t 'fstab' "Unable to check/repair $device; no known fsck for filesystem type $fstype"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
libmount_known_fsck=""
|
libmount_known_fsck=""
|
||||||
|
|
||||||
include /lib/functions/fsck
|
pi_include /lib/functions/fsck
|
||||||
|
|
||||||
|
@ -8,8 +8,6 @@
|
|||||||
|
|
||||||
START=20
|
START=20
|
||||||
|
|
||||||
. /lib/functions/mount.sh
|
|
||||||
|
|
||||||
do_mount() {
|
do_mount() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
config_mount_by_section "$cfg"
|
config_mount_by_section "$cfg"
|
||||||
@ -39,19 +37,29 @@ do_swapoff() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
|
. /lib/functions/mount.sh
|
||||||
|
|
||||||
config_load fstab
|
config_load fstab
|
||||||
mkdir -p /var/lock
|
mkdir -p /var/lock
|
||||||
lock /var/lock/fstab.lck
|
lock -w /var/lock/fstab.lck && {
|
||||||
echo '# WARNING: this is an auto generated file, please use uci to set defined filesystems' > /etc/fstab
|
lock /var/lock/fstab.lck
|
||||||
lock -u /var/lock/fstab.lck
|
[ -e /tmp/fstab ] || {
|
||||||
config_foreach do_mount mount
|
echo '# WARNING: this is an auto generated file, please use uci to set defined filesystems' > /tmp/fstab
|
||||||
|
}
|
||||||
|
lock -u /var/lock/fstab.lck
|
||||||
|
}
|
||||||
config_foreach do_swapon swap
|
config_foreach do_swapon swap
|
||||||
|
config_foreach do_mount mount
|
||||||
|
config_foreach do_swapon swap # do swap a second time so that swap on filesystems is enabled
|
||||||
}
|
}
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
|
. /lib/functions/mount.sh
|
||||||
|
|
||||||
config_load fstab
|
config_load fstab
|
||||||
config_foreach do_unmount mount
|
config_foreach do_unmount mount
|
||||||
config_foreach do_swapoff swap
|
config_foreach do_swapoff swap
|
||||||
swapoff -a
|
swapoff -a
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
. /lib/functions/block.sh
|
pi_include /lib/functions/block.sh
|
||||||
. /lib/functions/fsck.sh
|
pi_include /lib/functions/fsck.sh
|
||||||
|
|
||||||
config_mount_by_section() {
|
config_mount_by_section() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
@ -28,14 +28,13 @@ config_mount_by_section() {
|
|||||||
local is_rootfs="$9"
|
local is_rootfs="$9"
|
||||||
shift
|
shift
|
||||||
local found_device=""
|
local found_device=""
|
||||||
local fsck_type=""
|
|
||||||
|
|
||||||
found_device="$(libmount_find_device_by_id "$uuid" "$label" "$device" "$cfgdevice")"
|
found_device="$(libmount_find_device_by_id "$uuid" "$label" "$device" "$cfgdevice")"
|
||||||
if [ -n "$found_device" ]; then
|
if [ -n "$found_device" ]; then
|
||||||
if [ -z "$find_rootfs" ] || [ "$find_rootfs" -eq 0 ] || [ "$is_rootfs" -eq 1 ]; then
|
if [ -z "$find_rootfs" ] || [ "$find_rootfs" -eq 0 ] || [ "$is_rootfs" -eq 1 ]; then
|
||||||
[ "$enabled_fsck" -eq 1 ] && {
|
[ "$enabled_fsck" -eq 1 ] && {
|
||||||
grep -q "$found_device" /proc/swaps || grep -q "$found_device" /proc/mounts || {
|
grep -q "$found_device" /proc/swaps || grep -q "$found_device" /proc/mounts || {
|
||||||
libmount_fsck "$found_device" "$fsck_type" "$enabled_fsck"
|
libmount_fsck "$found_device" "$fstype" "$enabled_fsck"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,7 +71,6 @@ config_swapon_by_section() {
|
|||||||
local label
|
local label
|
||||||
|
|
||||||
local found_device=""
|
local found_device=""
|
||||||
local fsck_type=""
|
|
||||||
|
|
||||||
found_device="$(libmount_find_device_by_id "$uuid" "$label" "$device" "$cfgdevice")"
|
found_device="$(libmount_find_device_by_id "$uuid" "$label" "$device" "$cfgdevice")"
|
||||||
|
|
||||||
|
@ -354,7 +354,7 @@ detect_broadcom() {
|
|||||||
cat <<EOF
|
cat <<EOF
|
||||||
config wifi-device wl${i}
|
config wifi-device wl${i}
|
||||||
option type broadcom
|
option type broadcom
|
||||||
option channel 5
|
option channel 11
|
||||||
|
|
||||||
# REMOVE THIS LINE TO ENABLE WIFI:
|
# REMOVE THIS LINE TO ENABLE WIFI:
|
||||||
option disabled 1
|
option disabled 1
|
||||||
|
@ -10,6 +10,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
PKG_NAME:=busybox
|
PKG_NAME:=busybox
|
||||||
PKG_VERSION:=1.15.3
|
PKG_VERSION:=1.15.3
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=2
|
||||||
|
PKG_FLAGS:=essential
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||||
PKG_SOURCE_URL:=http://www.busybox.net/downloads \
|
PKG_SOURCE_URL:=http://www.busybox.net/downloads \
|
||||||
|
@ -1,16 +1,24 @@
|
|||||||
#!/bin/sh /etc/rc.common
|
#!/bin/sh /etc/rc.common
|
||||||
# Copyright (C) 2006 OpenWrt.org
|
# Copyright (C) 2006-2010 OpenWrt.org
|
||||||
START=50
|
START=50
|
||||||
|
|
||||||
|
has_root_pwd() {
|
||||||
|
local pwd=$([ -f "$1" ] && cat "$1")
|
||||||
|
pwd="${pwd#*root:}"
|
||||||
|
pwd="${pwd%%:*}"
|
||||||
|
|
||||||
|
test -n "${pwd#!}"
|
||||||
|
}
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
if [ \! -f /etc/passwd ] || \
|
if ( ! has_root_pwd /etc/passwd && ! has_root_pwd /etc/shadow ) || \
|
||||||
awk -F: '/^root:/ && ($2 != "") && ($2 !~ /\!/) {exit 1}' /etc/passwd 2>/dev/null || \
|
( [ ! -x /usr/sbin/dropbear ] && [ ! -x /usr/sbin/sshd ] );
|
||||||
( [ \! -x /usr/sbin/dropbear ] && [ \! -x /usr/sbin/sshd ] )
|
then
|
||||||
then \
|
|
||||||
telnetd -l /bin/login.sh
|
telnetd -l /bin/login.sh
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
killall telnetd
|
killall telnetd 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,90 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (C) 2010 OpenWrt.org
|
|
||||||
#
|
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
|
||||||
# See /LICENSE for more information.
|
|
||||||
#
|
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
|
||||||
include $(INCLUDE_DIR)/kernel.mk
|
|
||||||
|
|
||||||
PKG_NAME:=carl9170
|
|
||||||
PKG_VERSION:=1.0.5.3
|
|
||||||
PKG_RELEASE:=1
|
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
|
||||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/chr/carl9170/$(PKG_VERSION) \
|
|
||||||
@KERNEL/linux/kernel/people/chr/carl9170/old/$(PKG_VERSION)
|
|
||||||
PKG_MD5SUM:=91d714d1e5c5c62da1191ac5afd8bcb0
|
|
||||||
|
|
||||||
PKG_CONFIG_DEPENDS:= \
|
|
||||||
CONFIG_PACKAGE_CARL9170_DEBUGFS \
|
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
|
||||||
|
|
||||||
DRV_PATH:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170
|
|
||||||
|
|
||||||
define KernelPackage/carl9170
|
|
||||||
SUBMENU:=Wireless Drivers
|
|
||||||
TITLE:=Driver for Atheros AR9170 USB sticks
|
|
||||||
DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core
|
|
||||||
URL:=http://www.kernel.org/pub/linux/kernel/people/chr/carl9170
|
|
||||||
FILES:=$(DRV_PATH)/carl9170usb.$(LINUX_KMOD_SUFFIX)
|
|
||||||
AUTOLOAD:=$(call AutoLoad,60,carl9170usb)
|
|
||||||
MENU:=1
|
|
||||||
endef
|
|
||||||
|
|
||||||
define KernelPackage/carl9170/config
|
|
||||||
menu "Configuration"
|
|
||||||
depends PACKAGE_kmod-carl9170
|
|
||||||
|
|
||||||
config PACKAGE_CARL9170_DEBUGFS
|
|
||||||
bool "Enable Debugging (DebugFS) Support"
|
|
||||||
depends PACKAGE_MAC80211_DEBUGFS
|
|
||||||
help
|
|
||||||
Say Y if you need access to carl9170usb's statistics for QoS queue
|
|
||||||
status, rate control, etc...
|
|
||||||
|
|
||||||
endmenu
|
|
||||||
endef
|
|
||||||
|
|
||||||
define KernelPackage/carl9170/description
|
|
||||||
This package contains a driver for Atheros AR9170 USB sticks using the free firmware
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Build/Prepare
|
|
||||||
rm -rf $(PKG_BUILD_DIR)
|
|
||||||
mkdir -p $(PKG_BUILD_DIR)
|
|
||||||
$(HOST_TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(PKG_SOURCE)
|
|
||||||
$(HOST_TAR) -C $(PKG_BUILD_DIR) -xf $(PKG_BUILD_DIR)/$(PKG_VERSION)/driver/carl9170-driver-$(PKG_VERSION).tar
|
|
||||||
ln -s $(STAGING_DIR)/usr/include/mac80211/ath/*.h $(PKG_BUILD_DIR)/drivers/net/wireless/ath/
|
|
||||||
$(Build/Patch)
|
|
||||||
endef
|
|
||||||
|
|
||||||
BUILDFLAGS = \
|
|
||||||
CONFIG_CARL9170_USB=m \
|
|
||||||
CONFIG_CARL9170_LEDS=$(if $(CONFIG_LEDS_TRIGGERS),y) \
|
|
||||||
CONFIG_CARL9170_DEBUGFS=$(if $(CONFIG_PACKAGE_CARL9170_DEBUGFS),y) \
|
|
||||||
CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
|
|
||||||
|
|
||||||
EXTRA_CFLAGS = \
|
|
||||||
$(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD) \
|
|
||||||
$(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_CARL9170_LEDS) \
|
|
||||||
$(if $(CONFIG_PACKAGE_CARL9170_DEBUGFS),-DCONFIG_CARL9170_DEBUGFS) \
|
|
||||||
$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),-DCONFIG_MAC80211_DEBUGFS) \
|
|
||||||
|
|
||||||
define Build/Compile
|
|
||||||
$(MAKE) -C $(LINUX_DIR) \
|
|
||||||
SUBDIRS="$(DRV_PATH)" \
|
|
||||||
ARCH="$(LINUX_KARCH)" \
|
|
||||||
CROSS_COMPILE="$(KERNEL_CROSS)" \
|
|
||||||
CC="$(TARGET_CC) -I$(STAGING_DIR)/usr/include/mac80211 $(EXTRA_CFLAGS)" \
|
|
||||||
$(BUILDFLAGS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define KernelPackage/carl9170/install
|
|
||||||
$(INSTALL_DIR) $(1)/lib/firmware
|
|
||||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_VERSION)/firmware_build/carl9170-1.fw $(1)/lib/firmware/
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(eval $(call KernelPackage,carl9170))
|
|
@ -1,31 +0,0 @@
|
|||||||
--- a/drivers/net/wireless/ath/carl9170/usb.c
|
|
||||||
+++ b/drivers/net/wireless/ath/carl9170/usb.c
|
|
||||||
@@ -1000,11 +1000,28 @@ err_failed:
|
|
||||||
ar9170_usb_firmware_failed(aru);
|
|
||||||
}
|
|
||||||
|
|
||||||
+
|
|
||||||
+
|
|
||||||
static int ar9170_usb_request_firmware(struct ar9170_usb *aru)
|
|
||||||
{
|
|
||||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
|
|
||||||
+ const struct firmware *fw;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ ret = request_firmware(&fw,
|
|
||||||
+ ar9170_fws[aru->fw_load].files[aru->fw_files].name,
|
|
||||||
+ &aru->udev->dev);
|
|
||||||
+
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ ar9170_usb_firmware_step2(fw, aru);
|
|
||||||
+ return 0;
|
|
||||||
+#else
|
|
||||||
return request_firmware_nowait(THIS_MODULE, 1,
|
|
||||||
ar9170_fws[aru->fw_load].files[aru->fw_files].name,
|
|
||||||
&aru->udev->dev, GFP_KERNEL, aru, ar9170_usb_firmware_step2);
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ar9170_usb_disconnect(struct usb_interface *intf)
|
|
@ -1,11 +0,0 @@
|
|||||||
--- a/drivers/net/wireless/ath/carl9170/main.c
|
|
||||||
+++ b/drivers/net/wireless/ath/carl9170/main.c
|
|
||||||
@@ -51,7 +51,7 @@ static int modparam_nohwcrypt;
|
|
||||||
module_param_named(nohwcrypt, modparam_nohwcrypt, bool, S_IRUGO);
|
|
||||||
MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption.");
|
|
||||||
|
|
||||||
-int modparam_ht;
|
|
||||||
+int modparam_ht = 1;
|
|
||||||
module_param_named(ht, modparam_ht, bool, S_IRUGO);
|
|
||||||
MODULE_PARM_DESC(ht, "enable MPDU aggregation.");
|
|
||||||
|
|
@ -28,7 +28,7 @@ define Package/crda
|
|||||||
SECTION:=net
|
SECTION:=net
|
||||||
CATEGORY:=Network
|
CATEGORY:=Network
|
||||||
TITLE:=Central Regulatory Domain Agent (CRDA)
|
TITLE:=Central Regulatory Domain Agent (CRDA)
|
||||||
DEPENDS:=@LINUX_2_6 +hotplug2 +kmod-mac80211 +libnl-tiny
|
DEPENDS:=@LINUX_2_6 +hotplug2 +libnl-tiny
|
||||||
URL:=http://wireless.kernel.org/en/developers/Regulatory/CRDA
|
URL:=http://wireless.kernel.org/en/developers/Regulatory/CRDA
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
|
|
||||||
PKG_NAME:=dnsmasq
|
PKG_NAME:=dnsmasq
|
||||||
PKG_VERSION:=2.55
|
PKG_VERSION:=2.55
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=5
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
|
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
|
||||||
|
@ -4,7 +4,7 @@ config dnsmasq
|
|||||||
option filterwin2k 0 # enable for dial on demand
|
option filterwin2k 0 # enable for dial on demand
|
||||||
option localise_queries 1
|
option localise_queries 1
|
||||||
option rebind_protection 1 # disable if upstream must serve RFC1918 addresses
|
option rebind_protection 1 # disable if upstream must serve RFC1918 addresses
|
||||||
option rebind_localhost 0 # enable for RBL checking and similar services
|
option rebind_localhost 1 # enable for RBL checking and similar services
|
||||||
#list rebind_domain example.lan # whitelist RFC1918 responses for domains
|
#list rebind_domain example.lan # whitelist RFC1918 responses for domains
|
||||||
option local '/lan/'
|
option local '/lan/'
|
||||||
option domain 'lan'
|
option domain 'lan'
|
||||||
@ -18,6 +18,7 @@ config dnsmasq
|
|||||||
#option nonwildcard 1
|
#option nonwildcard 1
|
||||||
#list interface br-lan
|
#list interface br-lan
|
||||||
#list notinterface lo
|
#list notinterface lo
|
||||||
|
#list bogusnxdomain '64.94.110.11'
|
||||||
|
|
||||||
config dhcp lan
|
config dhcp lan
|
||||||
option interface lan
|
option interface lan
|
||||||
|
@ -42,17 +42,23 @@ append_server() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
append_interface() {
|
append_interface() {
|
||||||
append args "-i $1"
|
local ifname=$(uci_get_state network "$1" ifname "$1")
|
||||||
|
append args "-i $ifname"
|
||||||
}
|
}
|
||||||
|
|
||||||
append_notinterface() {
|
append_notinterface() {
|
||||||
append args "-I $1"
|
local ifname=$(uci_get_state network "$1" ifname "$1")
|
||||||
|
append args "-I $ifname"
|
||||||
}
|
}
|
||||||
|
|
||||||
append_addnhosts() {
|
append_addnhosts() {
|
||||||
append args "-H $1"
|
append args "-H $1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
append_bogusnxdomain() {
|
||||||
|
append args "-B $1"
|
||||||
|
}
|
||||||
|
|
||||||
dnsmasq() {
|
dnsmasq() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
append_bool "$cfg" authoritative "-K"
|
append_bool "$cfg" authoritative "-K"
|
||||||
@ -72,6 +78,7 @@ dnsmasq() {
|
|||||||
append_bool "$cfg" enable_tftp "--enable-tftp"
|
append_bool "$cfg" enable_tftp "--enable-tftp"
|
||||||
append_bool "$cfg" nonwildcard "-z"
|
append_bool "$cfg" nonwildcard "-z"
|
||||||
|
|
||||||
|
append_parm "$cfg" cachesize "-c"
|
||||||
append_parm "$cfg" dnsforwardmax "-0"
|
append_parm "$cfg" dnsforwardmax "-0"
|
||||||
append_parm "$cfg" port "-p"
|
append_parm "$cfg" port "-p"
|
||||||
append_parm "$cfg" ednspacket_max "-P"
|
append_parm "$cfg" ednspacket_max "-P"
|
||||||
@ -83,6 +90,7 @@ dnsmasq() {
|
|||||||
config_list_foreach "$cfg" "interface" append_interface
|
config_list_foreach "$cfg" "interface" append_interface
|
||||||
config_list_foreach "$cfg" "notinterface" append_notinterface
|
config_list_foreach "$cfg" "notinterface" append_notinterface
|
||||||
config_list_foreach "$cfg" "addnhosts" append_addnhosts
|
config_list_foreach "$cfg" "addnhosts" append_addnhosts
|
||||||
|
config_list_foreach "$cfg" "bogusnxdomain" append_bogusnxdomain
|
||||||
append_parm "$cfg" "leasefile" "-l"
|
append_parm "$cfg" "leasefile" "-l"
|
||||||
append_parm "$cfg" "resolvfile" "-r"
|
append_parm "$cfg" "resolvfile" "-r"
|
||||||
append_parm "$cfg" "tftp_root" "--tftp-root"
|
append_parm "$cfg" "tftp_root" "--tftp-root"
|
||||||
@ -94,7 +102,7 @@ dnsmasq() {
|
|||||||
[ "$readethers" = "1" ] && [ -e "/etc/ethers" ] || touch /etc/ethers
|
[ "$readethers" = "1" ] && [ -e "/etc/ethers" ] || touch /etc/ethers
|
||||||
|
|
||||||
config_get leasefile $cfg leasefile
|
config_get leasefile $cfg leasefile
|
||||||
[ -e "$leasefile" ] || touch "$leasefile"
|
[ -n "$leasefile" ] && [ -e "$leasefile" ] || touch "$leasefile"
|
||||||
config_get_bool cachelocal "$cfg" cachelocal 1
|
config_get_bool cachelocal "$cfg" cachelocal 1
|
||||||
|
|
||||||
config_get hostsfile "$cfg" dhcphostsfile
|
config_get hostsfile "$cfg" dhcphostsfile
|
||||||
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
PKG_NAME:=firewall
|
PKG_NAME:=firewall
|
||||||
|
|
||||||
PKG_VERSION:=1
|
PKG_VERSION:=1
|
||||||
PKG_RELEASE:=16
|
PKG_RELEASE:=20
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
@ -32,6 +32,7 @@ endef
|
|||||||
|
|
||||||
define Package/firewall/conffiles
|
define Package/firewall/conffiles
|
||||||
/etc/config/firewall
|
/etc/config/firewall
|
||||||
|
/etc/firewall.user
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/firewall/install
|
define Package/firewall/install
|
||||||
|
@ -15,6 +15,11 @@ if [ "$ACTION" = "add" ] && [ "$INTERFACE" = "wan" ]; then
|
|||||||
iptables -t nat -A postrouting_rule -j nat_reflection_out
|
iptables -t nat -A postrouting_rule -j nat_reflection_out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
iptables -t filter -F nat_reflection_fwd 2>/dev/null || {
|
||||||
|
iptables -t filter -N nat_reflection_fwd
|
||||||
|
iptables -t filter -A forwarding_rule -j nat_reflection_fwd
|
||||||
|
}
|
||||||
|
|
||||||
find_networks() {
|
find_networks() {
|
||||||
find_networks_cb() {
|
find_networks_cb() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
@ -34,10 +39,14 @@ if [ "$ACTION" = "add" ] && [ "$INTERFACE" = "wan" ]; then
|
|||||||
|
|
||||||
config_foreach find_networks_cb zone "$1"
|
config_foreach find_networks_cb zone "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_fwd() {
|
setup_fwd() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
|
|
||||||
|
local reflection
|
||||||
|
config_get_bool reflection "$cfg" reflection 1
|
||||||
|
[ "$reflection" == 1 ] || return
|
||||||
|
|
||||||
local src
|
local src
|
||||||
config_get src "$cfg" src
|
config_get src "$cfg" src
|
||||||
|
|
||||||
@ -56,10 +65,6 @@ if [ "$ACTION" = "add" ] && [ "$INTERFACE" = "wan" ]; then
|
|||||||
local proto
|
local proto
|
||||||
config_get proto "$cfg" proto
|
config_get proto "$cfg" proto
|
||||||
|
|
||||||
local reflection
|
|
||||||
config_get_bool reflection "$cfg" reflection 1
|
|
||||||
[ "$reflection" == 1 ] || return
|
|
||||||
|
|
||||||
local epmin epmax extport
|
local epmin epmax extport
|
||||||
config_get extport "$cfg" src_dport
|
config_get extport "$cfg" src_dport
|
||||||
[ -n "$extport" ] || return
|
[ -n "$extport" ] || return
|
||||||
@ -82,6 +87,9 @@ if [ "$ACTION" = "add" ] && [ "$INTERFACE" = "wan" ]; then
|
|||||||
|
|
||||||
[ "$proto" = tcpudp ] && proto="tcp udp"
|
[ "$proto" = tcpudp ] && proto="tcp udp"
|
||||||
|
|
||||||
|
[ "${inthost#!}" = "$inthost" ] || return 0
|
||||||
|
[ "${exthost#!}" = "$exthost" ] || return 0
|
||||||
|
|
||||||
local p
|
local p
|
||||||
for p in ${proto:-tcp udp}; do
|
for p in ${proto:-tcp udp}; do
|
||||||
case "$p" in
|
case "$p" in
|
||||||
@ -95,6 +103,11 @@ if [ "$ACTION" = "add" ] && [ "$INTERFACE" = "wan" ]; then
|
|||||||
-s $lanip/$lanmk -d $inthost \
|
-s $lanip/$lanmk -d $inthost \
|
||||||
-p $p --dport $ipmin${ipmax:+:$ipmax} \
|
-p $p --dport $ipmin${ipmax:+:$ipmax} \
|
||||||
-j SNAT --to-source $lanip
|
-j SNAT --to-source $lanip
|
||||||
|
|
||||||
|
iptables -t filter -A nat_reflection_fwd \
|
||||||
|
-s $lanip/$lanmk -d $inthost \
|
||||||
|
-p $p --dport $ipmin${ipmax:+:$ipmax} \
|
||||||
|
-j ACCEPT
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
@ -105,4 +118,3 @@ if [ "$ACTION" = "add" ] && [ "$INTERFACE" = "wan" ]; then
|
|||||||
config_load firewall
|
config_load firewall
|
||||||
config_foreach setup_fwd redirect
|
config_foreach setup_fwd redirect
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ config_load firewall
|
|||||||
|
|
||||||
config fw_zones
|
config fw_zones
|
||||||
ZONE_LIST=$CONFIG_SECTION
|
ZONE_LIST=$CONFIG_SECTION
|
||||||
|
ZONE_NAMES=
|
||||||
|
|
||||||
CUSTOM_CHAINS=1
|
CUSTOM_CHAINS=1
|
||||||
DEF_INPUT=DROP
|
DEF_INPUT=DROP
|
||||||
@ -23,6 +24,25 @@ DEF_FORWARD=DROP
|
|||||||
CONNTRACK_ZONES=
|
CONNTRACK_ZONES=
|
||||||
NOTRACK_DISABLED=
|
NOTRACK_DISABLED=
|
||||||
|
|
||||||
|
add_state() {
|
||||||
|
local var="$1"
|
||||||
|
local item="$2"
|
||||||
|
|
||||||
|
local val="$(uci_get_state firewall core $var)"
|
||||||
|
uci_set_state firewall core $var "${val:+$val }$item"
|
||||||
|
}
|
||||||
|
|
||||||
|
del_state() {
|
||||||
|
local var="$1"
|
||||||
|
local item="$2"
|
||||||
|
|
||||||
|
local val=" $(uci_get_state firewall core $var) "
|
||||||
|
val="${val// $item / }"
|
||||||
|
val="${val# }"
|
||||||
|
val="${val% }"
|
||||||
|
uci_set_state firewall core $var "$val"
|
||||||
|
}
|
||||||
|
|
||||||
find_item() {
|
find_item() {
|
||||||
local item="$1"; shift
|
local item="$1"; shift
|
||||||
for i in "$@"; do
|
for i in "$@"; do
|
||||||
@ -44,6 +64,16 @@ get_portrange() {
|
|||||||
export -n -- "$_var=${_min:-$_max}"
|
export -n -- "$_var=${_min:-$_max}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_negation() {
|
||||||
|
local _var="$1"
|
||||||
|
local _flag="$2"
|
||||||
|
local _ipaddr="$3"
|
||||||
|
|
||||||
|
[ "${_ipaddr#!}" != "$_ipaddr" ] && \
|
||||||
|
export -n -- "$_var=! $_flag ${_ipaddr#!}" || \
|
||||||
|
export -n -- "$_var=${_ipaddr:+$_flag $_ipaddr}"
|
||||||
|
}
|
||||||
|
|
||||||
load_policy() {
|
load_policy() {
|
||||||
config_get input $1 input
|
config_get input $1 input
|
||||||
config_get output $1 output
|
config_get output $1 output
|
||||||
@ -88,13 +118,15 @@ create_zone() {
|
|||||||
if [ "$masq" == "1" ]; then
|
if [ "$masq" == "1" ]; then
|
||||||
local msrc mdst
|
local msrc mdst
|
||||||
for msrc in ${masq_src:-0.0.0.0/0}; do
|
for msrc in ${masq_src:-0.0.0.0/0}; do
|
||||||
[ "${msrc#!}" != "$msrc" ] && msrc="! -s ${msrc#!}" || msrc="-s $msrc"
|
get_negation msrc '-s' "$msrc"
|
||||||
for mdst in ${masq_dest:-0.0.0.0/0}; do
|
for mdst in ${masq_dest:-0.0.0.0/0}; do
|
||||||
[ "${mdst#!}" != "$mdst" ] && mdst="! -d ${mdst#!}" || mdst="-d $mdst"
|
get_negation mdst '-d' "$mdst"
|
||||||
$IPTABLES -A zone_${name}_nat -t nat $msrc $mdst -j MASQUERADE
|
$IPTABLES -A zone_${name}_nat -t nat $msrc $mdst -j MASQUERADE
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
append ZONE_NAMES "$name"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -132,6 +164,8 @@ addif() {
|
|||||||
uci_set_state firewall core "${network}_ifname" "$ifname"
|
uci_set_state firewall core "${network}_ifname" "$ifname"
|
||||||
uci_set_state firewall core "${network}_zone" "$zone"
|
uci_set_state firewall core "${network}_zone" "$zone"
|
||||||
|
|
||||||
|
add_state "${zone}_networks" "$network"
|
||||||
|
|
||||||
ACTION=add ZONE="$zone" INTERFACE="$network" DEVICE="$ifname" /sbin/hotplug-call firewall
|
ACTION=add ZONE="$zone" INTERFACE="$network" DEVICE="$ifname" /sbin/hotplug-call firewall
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,6 +192,8 @@ delif() {
|
|||||||
uci_revert_state firewall core "${network}_ifname"
|
uci_revert_state firewall core "${network}_ifname"
|
||||||
uci_revert_state firewall core "${network}_zone"
|
uci_revert_state firewall core "${network}_zone"
|
||||||
|
|
||||||
|
del_state "${zone}_networks" "$network"
|
||||||
|
|
||||||
ACTION=remove ZONE="$zone" INTERFACE="$network" DEVICE="$ifname" /sbin/hotplug-call firewall
|
ACTION=remove ZONE="$zone" INTERFACE="$network" DEVICE="$ifname" /sbin/hotplug-call firewall
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -327,27 +363,41 @@ fw_rule() {
|
|||||||
config_get target $1 target
|
config_get target $1 target
|
||||||
config_get ruleset $1 ruleset
|
config_get ruleset $1 ruleset
|
||||||
|
|
||||||
|
[ "$target" != "NOTRACK" ] || [ -n "$src" ] || {
|
||||||
|
echo "NOTRACK rule needs src"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
local srcaddr destaddr
|
||||||
|
get_negation srcaddr '-s' "$src_ip"
|
||||||
|
get_negation destaddr '-d' "$dest_ip"
|
||||||
|
|
||||||
local srcports destports
|
local srcports destports
|
||||||
get_portrange srcports "$src_port" ":"
|
get_portrange srcports "$src_port" ":"
|
||||||
get_portrange destports "$dest_port" ":"
|
get_portrange destports "$dest_port" ":"
|
||||||
|
|
||||||
ZONE=input
|
ZONE=input
|
||||||
TARGET=$target
|
TABLE=filter
|
||||||
[ -z "$target" ] && target=DROP
|
TARGET="${target:-DROP}"
|
||||||
[ -n "$src" -a -z "$dest" ] && ZONE=zone_$src
|
|
||||||
[ -n "$src" -a -n "$dest" ] && ZONE=zone_${src}_forward
|
|
||||||
[ -n "$dest" ] && TARGET=zone_${dest}_$target
|
|
||||||
|
|
||||||
eval 'RULE_COUNT=$((++RULE_COUNT_'$ZONE'))'
|
if [ "$TARGET" = "NOTRACK" ]; then
|
||||||
|
TABLE=raw
|
||||||
|
ZONE="zone_${src}_notrack"
|
||||||
|
else
|
||||||
|
[ -n "$src" ] && ZONE="zone_${src}${dest:+_forward}"
|
||||||
|
[ -n "$dest" ] && TARGET="zone_${dest}_${TARGET}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local pos
|
||||||
|
eval 'pos=$((++FW__RULE_COUNT_'$ZONE'))'
|
||||||
|
|
||||||
add_rule() {
|
add_rule() {
|
||||||
$IPTABLES -I $ZONE $RULE_COUNT \
|
$IPTABLES -t $TABLE -I $ZONE $pos \
|
||||||
|
$srcaddr $destaddr \
|
||||||
${proto:+-p $proto} \
|
${proto:+-p $proto} \
|
||||||
${icmp_type:+--icmp-type $icmp_type} \
|
${icmp_type:+--icmp-type $icmp_type} \
|
||||||
${src_ip:+-s $src_ip} \
|
|
||||||
${srcports:+--sport $srcports} \
|
${srcports:+--sport $srcports} \
|
||||||
${src_mac:+-m mac --mac-source $src_mac} \
|
${src_mac:+-m mac --mac-source $src_mac} \
|
||||||
${dest_ip:+-d $dest_ip} \
|
|
||||||
${destports:+--dport $destports} \
|
${destports:+--dport $destports} \
|
||||||
-j $TARGET
|
-j $TARGET
|
||||||
}
|
}
|
||||||
@ -413,7 +463,7 @@ fw_redirect() {
|
|||||||
nataddr="$dest_ip"
|
nataddr="$dest_ip"
|
||||||
get_portrange natports "$dest_port" "-"
|
get_portrange natports "$dest_port" "-"
|
||||||
|
|
||||||
srcdaddr="$src_dip"
|
get_negation srcdaddr '-d' "$src_dip"
|
||||||
get_portrange srcdports "$src_dport" ":"
|
get_portrange srcdports "$src_dport" ":"
|
||||||
|
|
||||||
find_item "$src" $CONNTRACK_ZONES || \
|
find_item "$src" $CONNTRACK_ZONES || \
|
||||||
@ -432,7 +482,7 @@ fw_redirect() {
|
|||||||
nataddr="$src_dip"
|
nataddr="$src_dip"
|
||||||
get_portrange natports "$src_dport" "-"
|
get_portrange natports "$src_dport" "-"
|
||||||
|
|
||||||
srcdaddr="$dest_ip"
|
get_negation srcdaddr '-d' "$dest_ip"
|
||||||
get_portrange srcdports "$dest_port" ":"
|
get_portrange srcdports "$dest_port" ":"
|
||||||
|
|
||||||
find_item "$dest" $CONNTRACK_ZONES || \
|
find_item "$dest" $CONNTRACK_ZONES || \
|
||||||
@ -443,26 +493,31 @@ fw_redirect() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local srcaddr destaddr
|
||||||
|
get_negation srcaddr '-s' "$src_ip"
|
||||||
|
get_negation destaddr '-d' "$dest_ip"
|
||||||
|
|
||||||
local srcports destports
|
local srcports destports
|
||||||
get_portrange srcports "$src_port" ":"
|
get_portrange srcports "$src_port" ":"
|
||||||
get_portrange destports "${dest_port-$src_dport}" ":"
|
get_portrange destports "${dest_port-$src_dport}" ":"
|
||||||
|
|
||||||
add_rule() {
|
add_rule() {
|
||||||
$IPTABLES -I $natchain 1 -t nat \
|
local pos
|
||||||
|
eval 'pos=$((++FW__REDIR_COUNT_'$natchain'))'
|
||||||
|
|
||||||
|
$IPTABLES -I $natchain $pos -t nat \
|
||||||
|
$srcaddr $srcdaddr \
|
||||||
${proto:+-p $proto} \
|
${proto:+-p $proto} \
|
||||||
${src_ip:+-s $src_ip} \
|
|
||||||
${srcports:+--sport $srcports} \
|
${srcports:+--sport $srcports} \
|
||||||
${srcdaddr:+-d $srcdaddr} \
|
|
||||||
${srcdports:+--dport $srcdports} \
|
${srcdports:+--dport $srcdports} \
|
||||||
${src_mac:+-m mac --mac-source $src_mac} \
|
${src_mac:+-m mac --mac-source $src_mac} \
|
||||||
-j ${target:-DNAT} $natopt $nataddr${natports:+:$natports}
|
-j ${target:-DNAT} $natopt $nataddr${natports:+:$natports}
|
||||||
|
|
||||||
[ -n "$dest_ip" ] && \
|
[ -n "$dest_ip" ] && \
|
||||||
$IPTABLES -I ${fwdchain:-forward} 1 \
|
$IPTABLES -I ${fwdchain:-forward} 1 \
|
||||||
|
$srcaddr $destaddr \
|
||||||
${proto:+-p $proto} \
|
${proto:+-p $proto} \
|
||||||
${src_ip:+-s $src_ip} \
|
|
||||||
${srcports:+--sport $srcports} \
|
${srcports:+--sport $srcports} \
|
||||||
${dest_ip:+-d $dest_ip} \
|
|
||||||
${destports:+--dport $destports} \
|
${destports:+--dport $destports} \
|
||||||
${src_mac:+-m mac --mac-source $src_mac} \
|
${src_mac:+-m mac --mac-source $src_mac} \
|
||||||
-j ACCEPT
|
-j ACCEPT
|
||||||
@ -605,9 +660,22 @@ fw_init() {
|
|||||||
for interface in $INTERFACES; do
|
for interface in $INTERFACES; do
|
||||||
fw_event ifup "$interface"
|
fw_event ifup "$interface"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
uci_set_state firewall core zones "$ZONE_NAMES"
|
||||||
}
|
}
|
||||||
|
|
||||||
fw_stop() {
|
fw_stop() {
|
||||||
|
local z n i
|
||||||
|
config_get z core zones
|
||||||
|
for z in $z; do
|
||||||
|
config_get n core "${z}_networks"
|
||||||
|
for n in $n; do
|
||||||
|
config_get i core "${n}_ifname"
|
||||||
|
[ -n "$i" ] && env -i ACTION=remove ZONE="$z" INTERFACE="$n" DEVICE="$i" \
|
||||||
|
/sbin/hotplug-call firewall
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
fw_clear
|
fw_clear
|
||||||
$IPTABLES -P INPUT ACCEPT
|
$IPTABLES -P INPUT ACCEPT
|
||||||
$IPTABLES -P OUTPUT ACCEPT
|
$IPTABLES -P OUTPUT ACCEPT
|
||||||
|
@ -20,3 +20,8 @@ config WPA_SUPPLICANT_OPENSSL
|
|||||||
select PACKAGE_libopenssl
|
select PACKAGE_libopenssl
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
config WPA_RFKILL_SUPPORT
|
||||||
|
bool "Add rfkill support"
|
||||||
|
depends PACKAGE_wpa-supplicant || PACKAGE_wpa-supplicant-mini || PACKAGE_wpad || PACKAGE_wpad-mini
|
||||||
|
default n
|
||||||
|
@ -8,9 +8,9 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=hostapd
|
PKG_NAME:=hostapd
|
||||||
PKG_VERSION:=20100418
|
PKG_VERSION:=20100705
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=1
|
||||||
PKG_REV:=0b86f67a2970403d1b1b6d34ce49f5485ef5dbb3
|
PKG_REV:=2f1ce78bf78cecd7021385b04a4f55f22e76ab97
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||||
PKG_SOURCE_URL:=git://w1.fi/srv/git/hostap.git
|
PKG_SOURCE_URL:=git://w1.fi/srv/git/hostap.git
|
||||||
@ -30,7 +30,8 @@ PKG_CONFIG_DEPENDS:= \
|
|||||||
CONFIG_PACKAGE_kmod-madwifi \
|
CONFIG_PACKAGE_kmod-madwifi \
|
||||||
CONFIG_PACKAGE_hostapd \
|
CONFIG_PACKAGE_hostapd \
|
||||||
CONFIG_PACKAGE_hostapd-mini \
|
CONFIG_PACKAGE_hostapd-mini \
|
||||||
CONFIG_PACKAGE_kmod-hostap
|
CONFIG_PACKAGE_kmod-hostap \
|
||||||
|
CONFIG_WPA_RFKILL_SUPPORT
|
||||||
|
|
||||||
LOCAL_TYPE=$(strip \
|
LOCAL_TYPE=$(strip \
|
||||||
$(if $(findstring wpad,$(BUILD_VARIANT)),wpad, \
|
$(if $(findstring wpad,$(BUILD_VARIANT)),wpad, \
|
||||||
@ -64,7 +65,8 @@ DRIVER_MAKEOPTS= \
|
|||||||
CONFIG_DRIVER_MADWIFI=$(CONFIG_PACKAGE_kmod-madwifi) \
|
CONFIG_DRIVER_MADWIFI=$(CONFIG_PACKAGE_kmod-madwifi) \
|
||||||
CONFIG_DRIVER_HOSTAP=$(CONFIG_PACKAGE_kmod-hostap) \
|
CONFIG_DRIVER_HOSTAP=$(CONFIG_PACKAGE_kmod-hostap) \
|
||||||
CONFIG_IEEE80211N=$(HOSTAPD_IEEE80211N) \
|
CONFIG_IEEE80211N=$(HOSTAPD_IEEE80211N) \
|
||||||
CONFIG_IEEE80211W=$(CONFIG_PACKAGE_kmod-ath9k)
|
CONFIG_IEEE80211W=$(CONFIG_PACKAGE_kmod-ath9k) \
|
||||||
|
$(if $(CONFIG_WPA_RFKILL_SUPPORT),NEED_RFKILL=y)
|
||||||
|
|
||||||
ifneq ($(LOCAL_TYPE),hostapd)
|
ifneq ($(LOCAL_TYPE),hostapd)
|
||||||
ifdef CONFIG_WPA_SUPPLICANT_OPENSSL
|
ifdef CONFIG_WPA_SUPPLICANT_OPENSSL
|
||||||
@ -80,7 +82,7 @@ ifneq ($(LOCAL_TYPE),hostapd)
|
|||||||
CONFIG_DRIVER_ROBOSWITCH=$(CONFIG_PACKAGE_kmod-switch)
|
CONFIG_DRIVER_ROBOSWITCH=$(CONFIG_PACKAGE_kmod-switch)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
DRV_DEPENDS:=+PACKAGE_kmod-mac80211:libnl-tiny +PACKAGE_kmod-mac80211:crda @(!(TARGET_avr32||TARGET_etrax)||BROKEN)
|
DRV_DEPENDS:=+PACKAGE_kmod-mac80211:libnl-tiny @(!(TARGET_avr32||TARGET_etrax)||BROKEN)
|
||||||
|
|
||||||
define Package/hostapd/Default
|
define Package/hostapd/Default
|
||||||
SECTION:=net
|
SECTION:=net
|
||||||
@ -115,7 +117,7 @@ endef
|
|||||||
define Package/hostapd-utils
|
define Package/hostapd-utils
|
||||||
$(call Package/hostapd/Default)
|
$(call Package/hostapd/Default)
|
||||||
TITLE+= (utils)
|
TITLE+= (utils)
|
||||||
DEPENDS:=@PACKAGE_hostapd||PACKAGE_hostapd-mini
|
DEPENDS:=@PACKAGE_hostapd||PACKAGE_hostapd-mini||PACKAGE_wpad||PACKAGE_wpad-mini
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/hostapd-utils/description
|
define Package/hostapd-utils/description
|
||||||
@ -186,7 +188,7 @@ endef
|
|||||||
define Package/wpa-cli
|
define Package/wpa-cli
|
||||||
SECTION:=net
|
SECTION:=net
|
||||||
CATEGORY:=Network
|
CATEGORY:=Network
|
||||||
DEPENDS:=wpa-supplicant
|
DEPENDS:=@PACKAGE_wpa-supplicant||PACKAGE_wpad-mini||PACKAGE_wpad
|
||||||
TITLE:=WPA Supplicant command line interface
|
TITLE:=WPA Supplicant command line interface
|
||||||
MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
|
MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
|
||||||
endef
|
endef
|
||||||
@ -237,7 +239,7 @@ endef
|
|||||||
define Build/Compile/wpad
|
define Build/Compile/wpad
|
||||||
echo ` \
|
echo ` \
|
||||||
$(call Build/RunMake,hostapd,-s MULTICALL=1 dump_cflags); \
|
$(call Build/RunMake,hostapd,-s MULTICALL=1 dump_cflags); \
|
||||||
$(call Build/RunMake,wpa_supplicant,-s dump_cflags) | \
|
$(call Build/RunMake,wpa_supplicant,-s MULTICALL=1 dump_cflags) | \
|
||||||
sed -e 's,-n ,,g' -e 's,$(TARGET_CFLAGS),,' \
|
sed -e 's,-n ,,g' -e 's,$(TARGET_CFLAGS),,' \
|
||||||
` > $(PKG_BUILD_DIR)/.cflags
|
` > $(PKG_BUILD_DIR)/.cflags
|
||||||
$(call Build/RunMake,hostapd, \
|
$(call Build/RunMake,hostapd, \
|
||||||
@ -294,8 +296,9 @@ Package/hostapd-mini/install = $(Package/hostapd/install)
|
|||||||
|
|
||||||
ifneq ($(LOCAL_TYPE),supplicant)
|
ifneq ($(LOCAL_TYPE),supplicant)
|
||||||
define Package/hostapd-utils/install
|
define Package/hostapd-utils/install
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/hotplug.d/button
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/hostapd/hostapd_cli $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/hostapd/hostapd_cli $(1)/usr/sbin/
|
||||||
|
$(INSTALL_DATA) ./files/wps-hotplug.sh $(1)/etc/hotplug.d/button/50-wps
|
||||||
endef
|
endef
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -156,3 +156,5 @@ CONFIG_TLS=internal
|
|||||||
CONFIG_INTERNAL_LIBTOMMATH=y
|
CONFIG_INTERNAL_LIBTOMMATH=y
|
||||||
CONFIG_INTERNAL_AES=y
|
CONFIG_INTERNAL_AES=y
|
||||||
NEED_AES_DEC=y
|
NEED_AES_DEC=y
|
||||||
|
|
||||||
|
CONFIG_WPS=y
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
hostapd_set_bss_options() {
|
hostapd_set_bss_options() {
|
||||||
local var="$1"
|
local var="$1"
|
||||||
local vif="$2"
|
local vif="$2"
|
||||||
local enc wpa_group_rekey
|
local enc wpa_group_rekey wps_possible
|
||||||
|
|
||||||
config_get enc "$vif" encryption
|
config_get enc "$vif" encryption
|
||||||
config_get wpa_group_rekey "$vif" wpa_group_rekey
|
config_get wpa_group_rekey "$vif" wpa_group_rekey
|
||||||
@ -60,6 +60,7 @@ hostapd_set_bss_options() {
|
|||||||
else
|
else
|
||||||
append "$var" "wpa_passphrase=$psk" "$N"
|
append "$var" "wpa_passphrase=$psk" "$N"
|
||||||
fi
|
fi
|
||||||
|
wps_possible=1
|
||||||
;;
|
;;
|
||||||
*wpa*)
|
*wpa*)
|
||||||
# required fields? formats?
|
# required fields? formats?
|
||||||
@ -76,7 +77,6 @@ hostapd_set_bss_options() {
|
|||||||
append "$var" "eapol_key_index_workaround=1" "$N"
|
append "$var" "eapol_key_index_workaround=1" "$N"
|
||||||
append "$var" "radius_acct_interim_interval=300" "$N"
|
append "$var" "radius_acct_interim_interval=300" "$N"
|
||||||
append "$var" "ieee8021x=1" "$N"
|
append "$var" "ieee8021x=1" "$N"
|
||||||
append "$var" "auth_algs=1" "$N"
|
|
||||||
append "$var" "wpa_key_mgmt=WPA-EAP" "$N"
|
append "$var" "wpa_key_mgmt=WPA-EAP" "$N"
|
||||||
append "$var" "wpa_group_rekey=300" "$N"
|
append "$var" "wpa_group_rekey=300" "$N"
|
||||||
append "$var" "wpa_gmk_rekey=640" "$N"
|
append "$var" "wpa_gmk_rekey=640" "$N"
|
||||||
@ -100,6 +100,14 @@ hostapd_set_bss_options() {
|
|||||||
append "$var" "wep_default_key=0" "$N"
|
append "$var" "wep_default_key=0" "$N"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
case "$enc" in
|
||||||
|
*shared*)
|
||||||
|
auth_algs=2
|
||||||
|
;;
|
||||||
|
*mixed*)
|
||||||
|
auth_algs=3
|
||||||
|
;;
|
||||||
|
esac
|
||||||
wpa=0
|
wpa=0
|
||||||
crypto=
|
crypto=
|
||||||
;;
|
;;
|
||||||
@ -108,6 +116,7 @@ hostapd_set_bss_options() {
|
|||||||
crypto=
|
crypto=
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
append "$var" "auth_algs=${auth_algs:-1}" "$N"
|
||||||
append "$var" "wpa=$wpa" "$N"
|
append "$var" "wpa=$wpa" "$N"
|
||||||
[ -n "$crypto" ] && append "$var" "wpa_pairwise=$crypto" "$N"
|
[ -n "$crypto" ] && append "$var" "wpa_pairwise=$crypto" "$N"
|
||||||
[ -n "$wpa_group_rekey" ] && append "$var" "wpa_group_rekey=$wpa_group_rekey" "$N"
|
[ -n "$wpa_group_rekey" ] && append "$var" "wpa_group_rekey=$wpa_group_rekey" "$N"
|
||||||
@ -115,10 +124,20 @@ hostapd_set_bss_options() {
|
|||||||
config_get ssid "$vif" ssid
|
config_get ssid "$vif" ssid
|
||||||
config_get bridge "$vif" bridge
|
config_get bridge "$vif" bridge
|
||||||
config_get ieee80211d "$vif" ieee80211d
|
config_get ieee80211d "$vif" ieee80211d
|
||||||
|
config_get iapp_interface "$vif" iapp_interface
|
||||||
|
|
||||||
|
config_get_bool wps_pbc "$vif" wps_pushbutton 0
|
||||||
|
[ -n "$wps_possible" -a "$wps_pbc" -gt 0 ] && {
|
||||||
|
append "$var" "eap_server=1" "$N"
|
||||||
|
append "$var" "wps_state=2" "$N"
|
||||||
|
append "$var" "ap_setup_locked=1" "$N"
|
||||||
|
append "$var" "config_methods=push_button" "$N"
|
||||||
|
}
|
||||||
|
|
||||||
append "$var" "ssid=$ssid" "$N"
|
append "$var" "ssid=$ssid" "$N"
|
||||||
[ -n "$bridge" ] && append "$var" "bridge=$bridge" "$N"
|
[ -n "$bridge" ] && append "$var" "bridge=$bridge" "$N"
|
||||||
[ -n "$ieee80211d" ] && append "$var" "ieee80211d=$ieee80211d" "$N"
|
[ -n "$ieee80211d" ] && append "$var" "ieee80211d=$ieee80211d" "$N"
|
||||||
|
[ -n "$iapp_interface" ] && append "$var" $(uci_get_state network "$iapp_interface" ifname "$iapp_interface") "$N"
|
||||||
|
|
||||||
[ "$wpa" -ge "2" ] && config_get ieee80211w "$vif" ieee80211w
|
[ "$wpa" -ge "2" ] && config_get ieee80211w "$vif" ieee80211w
|
||||||
case "$ieee80211w" in
|
case "$ieee80211w" in
|
||||||
|
@ -189,7 +189,7 @@ CONFIG_EAP_LEAP=y
|
|||||||
#CONFIG_EAP_TNC=y
|
#CONFIG_EAP_TNC=y
|
||||||
|
|
||||||
# Wi-Fi Protected Setup (WPS)
|
# Wi-Fi Protected Setup (WPS)
|
||||||
#CONFIG_WPS=y
|
CONFIG_WPS=y
|
||||||
|
|
||||||
# EAP-IKEv2
|
# EAP-IKEv2
|
||||||
#CONFIG_EAP_IKEV2=y
|
#CONFIG_EAP_IKEV2=y
|
||||||
|
@ -2,6 +2,7 @@ wpa_supplicant_setup_vif() {
|
|||||||
local vif="$1"
|
local vif="$1"
|
||||||
local driver="$2"
|
local driver="$2"
|
||||||
local key="$key"
|
local key="$key"
|
||||||
|
local options="$3"
|
||||||
|
|
||||||
# wpa_supplicant should use wext for mac80211 cards
|
# wpa_supplicant should use wext for mac80211 cards
|
||||||
[ "$driver" = "mac80211" ] && driver='wext'
|
[ "$driver" = "mac80211" ] && driver='wext'
|
||||||
@ -133,5 +134,5 @@ network={
|
|||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
[ -z "$proto" -a "$key_mgmt" != "NONE" ] || \
|
[ -z "$proto" -a "$key_mgmt" != "NONE" ] || \
|
||||||
wpa_supplicant ${bridge:+ -b $bridge} -B -P "/var/run/wifi-${ifname}.pid" -D ${driver:-wext} -i "$ifname" -c /var/run/wpa_supplicant-$ifname.conf
|
wpa_supplicant ${bridge:+ -b $bridge} -B -P "/var/run/wifi-${ifname}.pid" -D ${driver:-wext} -i "$ifname" -c /var/run/wpa_supplicant-$ifname.conf $options
|
||||||
}
|
}
|
||||||
|
6
package/hostapd/files/wps-hotplug.sh
Normal file
6
package/hostapd/files/wps-hotplug.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
if [ "$ACTION" = "pressed" -a "$BUTTON" = "wps" ]; then
|
||||||
|
for dir in /var/run/hostapd-*; do
|
||||||
|
[ -d "$dir" ] || continue
|
||||||
|
hostapd_cli -p "$dir" wps_pbc
|
||||||
|
done
|
||||||
|
fi
|
@ -1,6 +1,6 @@
|
|||||||
--- a/src/ap/hostapd.c
|
--- a/src/ap/hostapd.c
|
||||||
+++ b/src/ap/hostapd.c
|
+++ b/src/ap/hostapd.c
|
||||||
@@ -659,7 +659,6 @@ static int setup_interface(struct hostap
|
@@ -660,7 +660,6 @@ static int setup_interface(struct hostap
|
||||||
country[3] = '\0';
|
country[3] = '\0';
|
||||||
if (hostapd_set_country(hapd, country) < 0) {
|
if (hostapd_set_country(hapd, country) < 0) {
|
||||||
wpa_printf(MSG_ERROR, "Failed to set country code");
|
wpa_printf(MSG_ERROR, "Failed to set country code");
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
/* hostapd.c */
|
/* hostapd.c */
|
||||||
--- a/src/ap/hostapd.c
|
--- a/src/ap/hostapd.c
|
||||||
+++ b/src/ap/hostapd.c
|
+++ b/src/ap/hostapd.c
|
||||||
@@ -754,6 +754,9 @@ int hostapd_setup_interface_complete(str
|
@@ -755,6 +755,9 @@ int hostapd_setup_interface_complete(str
|
||||||
wpa_printf(MSG_DEBUG, "%s: Setup of interface done.",
|
wpa_printf(MSG_DEBUG, "%s: Setup of interface done.",
|
||||||
iface->bss[0]->conf->iface);
|
iface->bss[0]->conf->iface);
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
|
|
||||||
ifndef CONFIG_OS
|
ifndef CONFIG_OS
|
||||||
ifdef CONFIG_NATIVE_WINDOWS
|
ifdef CONFIG_NATIVE_WINDOWS
|
||||||
@@ -579,6 +580,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS
|
@@ -581,6 +582,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS
|
||||||
CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
|
CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
|
||||||
LIBS += -ldl -rdynamic
|
LIBS += -ldl -rdynamic
|
||||||
endif
|
endif
|
||||||
@ -73,7 +73,7 @@
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_AP
|
ifdef CONFIG_AP
|
||||||
@@ -631,6 +636,12 @@ CFLAGS += -DEAP_SERVER_WSC
|
@@ -635,6 +640,12 @@ CFLAGS += -DEAP_SERVER_WSC
|
||||||
OBJS += ../src/ap/wps_hostapd.o
|
OBJS += ../src/ap/wps_hostapd.o
|
||||||
OBJS += ../src/eap_server/eap_server_wsc.o
|
OBJS += ../src/eap_server/eap_server_wsc.o
|
||||||
endif
|
endif
|
||||||
@ -86,7 +86,7 @@
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef NEED_RSN_AUTHENTICATOR
|
ifdef NEED_RSN_AUTHENTICATOR
|
||||||
@@ -1262,6 +1273,12 @@ BCHECK=../src/drivers/build.wpa_supplica
|
@@ -1270,6 +1281,12 @@ BCHECK=../src/drivers/build.wpa_supplica
|
||||||
wpa_priv: $(BCHECK) $(OBJS_priv)
|
wpa_priv: $(BCHECK) $(OBJS_priv)
|
||||||
$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
|
$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
|
||||||
|
|
||||||
@ -99,7 +99,7 @@
|
|||||||
wpa_supplicant: .config $(BCHECK) $(OBJS) $(EXTRA_progs)
|
wpa_supplicant: .config $(BCHECK) $(OBJS) $(EXTRA_progs)
|
||||||
$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
|
$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
|
||||||
|
|
||||||
@@ -1321,6 +1338,12 @@ endif
|
@@ -1329,6 +1346,12 @@ endif
|
||||||
$(Q)$(CC) -c -o $@ $(CFLAGS) $<
|
$(Q)$(CC) -c -o $@ $(CFLAGS) $<
|
||||||
@$(E) " CC " $<
|
@$(E) " CC " $<
|
||||||
|
|
||||||
@ -114,7 +114,7 @@
|
|||||||
wpa_cli.exe: wpa_cli
|
wpa_cli.exe: wpa_cli
|
||||||
--- a/src/drivers/driver.h
|
--- a/src/drivers/driver.h
|
||||||
+++ b/src/drivers/driver.h
|
+++ b/src/drivers/driver.h
|
||||||
@@ -2449,8 +2449,8 @@ union wpa_event_data {
|
@@ -2465,8 +2465,8 @@ union wpa_event_data {
|
||||||
* Driver wrapper code should call this function whenever an event is received
|
* Driver wrapper code should call this function whenever an event is received
|
||||||
* from the driver.
|
* from the driver.
|
||||||
*/
|
*/
|
||||||
@ -169,7 +169,7 @@
|
|||||||
for (;;) {
|
for (;;) {
|
||||||
--- a/wpa_supplicant/events.c
|
--- a/wpa_supplicant/events.c
|
||||||
+++ b/wpa_supplicant/events.c
|
+++ b/wpa_supplicant/events.c
|
||||||
@@ -1577,8 +1577,8 @@ static void ft_rx_action(struct wpa_supp
|
@@ -1582,8 +1582,8 @@ static void ft_rx_action(struct wpa_supp
|
||||||
#endif /* CONFIG_IEEE80211R */
|
#endif /* CONFIG_IEEE80211R */
|
||||||
|
|
||||||
|
|
||||||
@ -182,7 +182,7 @@
|
|||||||
u16 reason_code = 0;
|
u16 reason_code = 0;
|
||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
@@ -2223,6 +2223,9 @@ struct wpa_supplicant * wpa_supplicant_g
|
@@ -2228,6 +2228,9 @@ struct wpa_supplicant * wpa_supplicant_g
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,7 +192,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* wpa_supplicant_init - Initialize %wpa_supplicant
|
* wpa_supplicant_init - Initialize %wpa_supplicant
|
||||||
@@ -2241,6 +2244,7 @@ struct wpa_global * wpa_supplicant_init(
|
@@ -2246,6 +2249,7 @@ struct wpa_global * wpa_supplicant_init(
|
||||||
if (params == NULL)
|
if (params == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/src/tls/x509v3.c
|
--- a/src/tls/x509v3.c
|
||||||
+++ b/src/tls/x509v3.c
|
+++ b/src/tls/x509v3.c
|
||||||
@@ -1832,8 +1832,11 @@ int x509_certificate_chain_validate(stru
|
@@ -1854,8 +1854,11 @@ int x509_certificate_chain_validate(stru
|
||||||
if (chain_trusted)
|
if (chain_trusted)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
size_t max_ssids;
|
size_t max_ssids;
|
||||||
enum wpa_states prev_state;
|
enum wpa_states prev_state;
|
||||||
|
|
||||||
@@ -311,6 +312,16 @@ static void wpa_supplicant_scan(void *el
|
@@ -316,6 +317,16 @@ static void wpa_supplicant_scan(void *el
|
||||||
wpa_s->wpa_state == WPA_INACTIVE)
|
wpa_s->wpa_state == WPA_INACTIVE)
|
||||||
wpa_supplicant_set_state(wpa_s, WPA_SCANNING);
|
wpa_supplicant_set_state(wpa_s, WPA_SCANNING);
|
||||||
|
|
||||||
@ -25,7 +25,7 @@
|
|||||||
/* Find the starting point from which to continue scanning */
|
/* Find the starting point from which to continue scanning */
|
||||||
ssid = wpa_s->conf->ssid;
|
ssid = wpa_s->conf->ssid;
|
||||||
if (wpa_s->prev_scan_ssid != WILDCARD_SSID_SCAN) {
|
if (wpa_s->prev_scan_ssid != WILDCARD_SSID_SCAN) {
|
||||||
@@ -374,6 +385,9 @@ static void wpa_supplicant_scan(void *el
|
@@ -379,6 +390,9 @@ static void wpa_supplicant_scan(void *el
|
||||||
int_array_sort_unique(params.freqs);
|
int_array_sort_unique(params.freqs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/wpa_supplicant/events.c
|
--- a/wpa_supplicant/events.c
|
||||||
+++ b/wpa_supplicant/events.c
|
+++ b/wpa_supplicant/events.c
|
||||||
@@ -958,7 +958,7 @@ static void wpa_supplicant_event_scan_re
|
@@ -963,7 +963,7 @@ static void wpa_supplicant_event_scan_re
|
||||||
wpa_printf(MSG_DEBUG, "Setup a new network");
|
wpa_printf(MSG_DEBUG, "Setup a new network");
|
||||||
wpa_supplicant_associate(wpa_s, NULL, ssid);
|
wpa_supplicant_associate(wpa_s, NULL, ssid);
|
||||||
} else {
|
} else {
|
||||||
|
@ -336,7 +336,7 @@
|
|||||||
- return 0;
|
- return 0;
|
||||||
-}
|
-}
|
||||||
-
|
-
|
||||||
static int
|
-static int
|
||||||
-set80211param(struct wpa_driver_madwifi_data *drv, int op, int arg,
|
-set80211param(struct wpa_driver_madwifi_data *drv, int op, int arg,
|
||||||
- int show_err)
|
- int show_err)
|
||||||
-{
|
-{
|
||||||
@ -355,7 +355,7 @@
|
|||||||
- return 0;
|
- return 0;
|
||||||
-}
|
-}
|
||||||
-
|
-
|
||||||
-static int
|
static int
|
||||||
-wpa_driver_madwifi_set_wpa_ie(struct wpa_driver_madwifi_data *drv,
|
-wpa_driver_madwifi_set_wpa_ie(struct wpa_driver_madwifi_data *drv,
|
||||||
+wpa_driver_madwifi_set_wpa_ie(struct madwifi_driver_data *drv,
|
+wpa_driver_madwifi_set_wpa_ie(struct madwifi_driver_data *drv,
|
||||||
const u8 *wpa_ie, size_t wpa_ie_len)
|
const u8 *wpa_ie, size_t wpa_ie_len)
|
||||||
@ -627,7 +627,7 @@
|
|||||||
return wpa_driver_wext_get_ssid(drv->wext, ssid);
|
return wpa_driver_wext_get_ssid(drv->wext, ssid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1705,14 +1481,14 @@ static int wpa_driver_madwifi_get_ssid(v
|
@@ -1705,14 +1481,16 @@ static int wpa_driver_madwifi_get_ssid(v
|
||||||
static struct wpa_scan_results *
|
static struct wpa_scan_results *
|
||||||
wpa_driver_madwifi_get_scan_results(void *priv)
|
wpa_driver_madwifi_get_scan_results(void *priv)
|
||||||
{
|
{
|
||||||
@ -641,10 +641,12 @@
|
|||||||
{
|
{
|
||||||
- struct wpa_driver_madwifi_data *drv = priv;
|
- struct wpa_driver_madwifi_data *drv = priv;
|
||||||
+ struct madwifi_driver_data *drv = priv;
|
+ struct madwifi_driver_data *drv = priv;
|
||||||
|
+ if (!drv->wext)
|
||||||
|
+ return 0;
|
||||||
return wpa_driver_wext_set_operstate(drv->wext, state);
|
return wpa_driver_wext_set_operstate(drv->wext, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1733,7 +1509,7 @@ static int wpa_driver_madwifi_set_probe_
|
@@ -1733,7 +1511,7 @@ static int wpa_driver_madwifi_set_probe_
|
||||||
|
|
||||||
ret = set80211priv(priv, IEEE80211_IOCTL_SET_APPIEBUF, probe_req_ie,
|
ret = set80211priv(priv, IEEE80211_IOCTL_SET_APPIEBUF, probe_req_ie,
|
||||||
sizeof(struct ieee80211req_getset_appiebuf) +
|
sizeof(struct ieee80211req_getset_appiebuf) +
|
||||||
@ -653,7 +655,7 @@
|
|||||||
|
|
||||||
os_free(probe_req_ie);
|
os_free(probe_req_ie);
|
||||||
|
|
||||||
@@ -1743,7 +1519,7 @@ static int wpa_driver_madwifi_set_probe_
|
@@ -1743,7 +1521,7 @@ static int wpa_driver_madwifi_set_probe_
|
||||||
|
|
||||||
static void * wpa_driver_madwifi_init(void *ctx, const char *ifname)
|
static void * wpa_driver_madwifi_init(void *ctx, const char *ifname)
|
||||||
{
|
{
|
||||||
@ -662,7 +664,7 @@
|
|||||||
|
|
||||||
drv = os_zalloc(sizeof(*drv));
|
drv = os_zalloc(sizeof(*drv));
|
||||||
if (drv == NULL)
|
if (drv == NULL)
|
||||||
@@ -1754,17 +1530,17 @@ static void * wpa_driver_madwifi_init(vo
|
@@ -1754,17 +1532,17 @@ static void * wpa_driver_madwifi_init(vo
|
||||||
|
|
||||||
drv->ctx = ctx;
|
drv->ctx = ctx;
|
||||||
os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname));
|
os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname));
|
||||||
@ -684,7 +686,7 @@
|
|||||||
wpa_printf(MSG_DEBUG, "%s: failed to enable WPA support",
|
wpa_printf(MSG_DEBUG, "%s: failed to enable WPA support",
|
||||||
__FUNCTION__);
|
__FUNCTION__);
|
||||||
goto fail3;
|
goto fail3;
|
||||||
@@ -1773,7 +1549,7 @@ static void * wpa_driver_madwifi_init(vo
|
@@ -1773,7 +1551,7 @@ static void * wpa_driver_madwifi_init(vo
|
||||||
return drv;
|
return drv;
|
||||||
|
|
||||||
fail3:
|
fail3:
|
||||||
@ -693,7 +695,7 @@
|
|||||||
fail2:
|
fail2:
|
||||||
wpa_driver_wext_deinit(drv->wext);
|
wpa_driver_wext_deinit(drv->wext);
|
||||||
fail:
|
fail:
|
||||||
@@ -1784,38 +1560,37 @@ fail:
|
@@ -1784,38 +1562,37 @@ fail:
|
||||||
|
|
||||||
static void wpa_driver_madwifi_deinit(void *priv)
|
static void wpa_driver_madwifi_deinit(void *priv)
|
||||||
{
|
{
|
||||||
@ -739,7 +741,7 @@
|
|||||||
#ifdef HOSTAPD
|
#ifdef HOSTAPD
|
||||||
.hapd_init = madwifi_init,
|
.hapd_init = madwifi_init,
|
||||||
.hapd_deinit = madwifi_deinit,
|
.hapd_deinit = madwifi_deinit,
|
||||||
@@ -1835,7 +1610,8 @@ const struct wpa_driver_ops wpa_driver_m
|
@@ -1835,7 +1612,8 @@ const struct wpa_driver_ops wpa_driver_m
|
||||||
.sta_clear_stats = madwifi_sta_clear_stats,
|
.sta_clear_stats = madwifi_sta_clear_stats,
|
||||||
.commit = madwifi_commit,
|
.commit = madwifi_commit,
|
||||||
.set_ap_wps_ie = madwifi_set_ap_wps_ie,
|
.set_ap_wps_ie = madwifi_set_ap_wps_ie,
|
||||||
@ -749,7 +751,7 @@
|
|||||||
.get_bssid = wpa_driver_madwifi_get_bssid,
|
.get_bssid = wpa_driver_madwifi_get_bssid,
|
||||||
.get_ssid = wpa_driver_madwifi_get_ssid,
|
.get_ssid = wpa_driver_madwifi_get_ssid,
|
||||||
.init = wpa_driver_madwifi_init,
|
.init = wpa_driver_madwifi_init,
|
||||||
@@ -1847,5 +1623,5 @@ const struct wpa_driver_ops wpa_driver_m
|
@@ -1847,5 +1625,5 @@ const struct wpa_driver_ops wpa_driver_m
|
||||||
.disassociate = wpa_driver_madwifi_disassociate,
|
.disassociate = wpa_driver_madwifi_disassociate,
|
||||||
.associate = wpa_driver_madwifi_associate,
|
.associate = wpa_driver_madwifi_associate,
|
||||||
.set_operstate = wpa_driver_madwifi_set_operstate,
|
.set_operstate = wpa_driver_madwifi_set_operstate,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/src/drivers/driver_nl80211.c
|
--- a/src/drivers/driver_nl80211.c
|
||||||
+++ b/src/drivers/driver_nl80211.c
|
+++ b/src/drivers/driver_nl80211.c
|
||||||
@@ -4576,9 +4576,11 @@ static int i802_set_wds_sta(void *priv,
|
@@ -4652,9 +4652,11 @@ static int i802_set_wds_sta(void *priv,
|
||||||
wpa_printf(MSG_DEBUG, "nl80211: Set WDS STA addr=" MACSTR
|
wpa_printf(MSG_DEBUG, "nl80211: Set WDS STA addr=" MACSTR
|
||||||
" aid=%d val=%d name=%s", MAC2STR(addr), aid, val, name);
|
" aid=%d val=%d name=%s", MAC2STR(addr), aid, val, name);
|
||||||
if (val) {
|
if (val) {
|
||||||
@ -16,7 +16,7 @@
|
|||||||
} else {
|
} else {
|
||||||
--- a/src/ap/ieee802_11.c
|
--- a/src/ap/ieee802_11.c
|
||||||
+++ b/src/ap/ieee802_11.c
|
+++ b/src/ap/ieee802_11.c
|
||||||
@@ -1614,6 +1614,9 @@ static void handle_assoc_cb(struct hosta
|
@@ -1627,6 +1627,9 @@ static void handle_assoc_cb(struct hosta
|
||||||
"Could not add STA to kernel driver");
|
"Could not add STA to kernel driver");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
/* clear to get error below if setting is invalid */
|
/* clear to get error below if setting is invalid */
|
||||||
--- a/src/drivers/driver_nl80211.c
|
--- a/src/drivers/driver_nl80211.c
|
||||||
+++ b/src/drivers/driver_nl80211.c
|
+++ b/src/drivers/driver_nl80211.c
|
||||||
@@ -4566,7 +4566,8 @@ static int i802_set_sta_vlan(void *priv,
|
@@ -4642,7 +4642,8 @@ static int i802_set_sta_vlan(void *priv,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -31,7 +31,7 @@
|
|||||||
{
|
{
|
||||||
struct i802_bss *bss = priv;
|
struct i802_bss *bss = priv;
|
||||||
struct wpa_driver_nl80211_data *drv = bss->drv;
|
struct wpa_driver_nl80211_data *drv = bss->drv;
|
||||||
@@ -4580,6 +4581,10 @@ static int i802_set_wds_sta(void *priv,
|
@@ -4656,6 +4657,10 @@ static int i802_set_wds_sta(void *priv,
|
||||||
if (nl80211_create_iface(drv, name, NL80211_IFTYPE_AP_VLAN,
|
if (nl80211_create_iface(drv, name, NL80211_IFTYPE_AP_VLAN,
|
||||||
NULL, 1) < 0)
|
NULL, 1) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/src/ap/hostapd.c
|
--- a/src/ap/hostapd.c
|
||||||
+++ b/src/ap/hostapd.c
|
+++ b/src/ap/hostapd.c
|
||||||
@@ -715,6 +715,16 @@ int hostapd_setup_interface_complete(str
|
@@ -716,6 +716,16 @@ int hostapd_setup_interface_complete(str
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
* @freq: Frequency (in MHz) of the channel
|
* @freq: Frequency (in MHz) of the channel
|
||||||
--- a/src/drivers/driver_nl80211.c
|
--- a/src/drivers/driver_nl80211.c
|
||||||
+++ b/src/drivers/driver_nl80211.c
|
+++ b/src/drivers/driver_nl80211.c
|
||||||
@@ -4263,6 +4263,29 @@ static int i802_set_rate_sets(void *priv
|
@@ -4339,6 +4339,29 @@ static int i802_set_rate_sets(void *priv
|
||||||
return -ENOBUFS;
|
return -ENOBUFS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,7 +68,7 @@
|
|||||||
#endif /* HOSTAPD */
|
#endif /* HOSTAPD */
|
||||||
|
|
||||||
|
|
||||||
@@ -5372,6 +5395,7 @@ const struct wpa_driver_ops wpa_driver_n
|
@@ -5448,6 +5471,7 @@ const struct wpa_driver_ops wpa_driver_n
|
||||||
.set_tx_queue_params = i802_set_tx_queue_params,
|
.set_tx_queue_params = i802_set_tx_queue_params,
|
||||||
.set_sta_vlan = i802_set_sta_vlan,
|
.set_sta_vlan = i802_set_sta_vlan,
|
||||||
.set_wds_sta = i802_set_wds_sta,
|
.set_wds_sta = i802_set_wds_sta,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/src/drivers/driver_nl80211.c
|
--- a/src/drivers/driver_nl80211.c
|
||||||
+++ b/src/drivers/driver_nl80211.c
|
+++ b/src/drivers/driver_nl80211.c
|
||||||
@@ -1119,7 +1119,6 @@ nla_put_failure:
|
@@ -1135,7 +1135,6 @@ nla_put_failure:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -8,7 +8,7 @@
|
|||||||
struct wiphy_info_data {
|
struct wiphy_info_data {
|
||||||
int max_scan_ssids;
|
int max_scan_ssids;
|
||||||
int ap_supported;
|
int ap_supported;
|
||||||
@@ -1231,7 +1230,6 @@ static int wpa_driver_nl80211_capa(struc
|
@@ -1247,7 +1246,6 @@ static int wpa_driver_nl80211_capa(struc
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
|
|
||||||
static int wpa_driver_nl80211_init_nl(struct wpa_driver_nl80211_data *drv,
|
static int wpa_driver_nl80211_init_nl(struct wpa_driver_nl80211_data *drv,
|
||||||
@@ -1371,6 +1369,7 @@ static void * wpa_driver_nl80211_init(vo
|
@@ -1411,6 +1409,7 @@ static void * wpa_driver_nl80211_init(vo
|
||||||
drv->monitor_ifidx = -1;
|
drv->monitor_ifidx = -1;
|
||||||
drv->monitor_sock = -1;
|
drv->monitor_sock = -1;
|
||||||
drv->ioctl_sock = -1;
|
drv->ioctl_sock = -1;
|
||||||
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
if (wpa_driver_nl80211_init_nl(drv, ctx)) {
|
if (wpa_driver_nl80211_init_nl(drv, ctx)) {
|
||||||
os_free(drv);
|
os_free(drv);
|
||||||
@@ -1468,24 +1467,23 @@ wpa_driver_nl80211_finish_drv_init(struc
|
@@ -1530,32 +1529,32 @@ wpa_driver_nl80211_finish_drv_init(struc
|
||||||
drv->ifindex = if_nametoindex(bss->ifname);
|
drv->ifindex = if_nametoindex(bss->ifname);
|
||||||
drv->first_bss.ifindex = drv->ifindex;
|
drv->first_bss.ifindex = drv->ifindex;
|
||||||
|
|
||||||
@ -33,23 +33,38 @@
|
|||||||
- wpa_printf(MSG_DEBUG, "nl80211: Could not configure driver to "
|
- wpa_printf(MSG_DEBUG, "nl80211: Could not configure driver to "
|
||||||
- "use managed mode");
|
- "use managed mode");
|
||||||
- }
|
- }
|
||||||
-
|
|
||||||
- if (linux_set_iface_flags(drv->ioctl_sock, bss->ifname, 1)) {
|
|
||||||
- wpa_printf(MSG_ERROR, "Could not set interface '%s' UP",
|
|
||||||
- bss->ifname);
|
|
||||||
- return -1;
|
|
||||||
- }
|
|
||||||
+ if (drv->nlmode == NL80211_IFTYPE_STATION) {
|
+ if (drv->nlmode == NL80211_IFTYPE_STATION) {
|
||||||
+ if (wpa_driver_nl80211_set_mode(bss, IEEE80211_MODE_INFRA) < 0)
|
+ if (wpa_driver_nl80211_set_mode(bss, IEEE80211_MODE_INFRA) < 0) {
|
||||||
+ wpa_printf(MSG_DEBUG, "nl80211: Could not configure "
|
+ wpa_printf(MSG_DEBUG, "nl80211: Could not configure driver to "
|
||||||
+ "driver to use managed mode");
|
+ "use managed mode");
|
||||||
+
|
|
||||||
+ if (linux_set_iface_flags(drv->ioctl_sock, bss->ifname, 1)) {
|
|
||||||
+ wpa_printf(MSG_ERROR, "Could not set interface '%s' UP",
|
|
||||||
+ bss->ifname);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
+ }
|
||||||
|
|
||||||
|
- if (linux_set_iface_flags(drv->ioctl_sock, bss->ifname, 1)) {
|
||||||
|
- if (rfkill_is_blocked(drv->rfkill)) {
|
||||||
|
- wpa_printf(MSG_DEBUG, "nl80211: Could not yet enable "
|
||||||
|
- "interface '%s' due to rfkill",
|
||||||
|
- bss->ifname);
|
||||||
|
- drv->if_disabled = 1;
|
||||||
|
- send_rfkill_event = 1;
|
||||||
|
- } else {
|
||||||
|
- wpa_printf(MSG_ERROR, "nl80211: Could not set "
|
||||||
|
- "interface '%s' UP", bss->ifname);
|
||||||
|
- return -1;
|
||||||
|
+ if (linux_set_iface_flags(drv->ioctl_sock, bss->ifname, 1)) {
|
||||||
|
+ if (rfkill_is_blocked(drv->rfkill)) {
|
||||||
|
+ wpa_printf(MSG_DEBUG, "nl80211: Could not yet enable "
|
||||||
|
+ "interface '%s' due to rfkill",
|
||||||
|
+ bss->ifname);
|
||||||
|
+ drv->if_disabled = 1;
|
||||||
|
+ send_rfkill_event = 1;
|
||||||
|
+ } else {
|
||||||
|
+ wpa_printf(MSG_ERROR, "nl80211: Could not set "
|
||||||
|
+ "interface '%s' UP", bss->ifname);
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
- }
|
||||||
|
|
||||||
- if (wpa_driver_nl80211_capa(drv))
|
- if (wpa_driver_nl80211_capa(drv))
|
||||||
- return -1;
|
- return -1;
|
||||||
+ if (wpa_driver_nl80211_capa(drv))
|
+ if (wpa_driver_nl80211_capa(drv))
|
||||||
@ -64,7 +79,7 @@
|
|||||||
|
|
||||||
if (nl80211_register_action_frames(drv) < 0) {
|
if (nl80211_register_action_frames(drv) < 0) {
|
||||||
wpa_printf(MSG_DEBUG, "nl80211: Failed to register Action "
|
wpa_printf(MSG_DEBUG, "nl80211: Failed to register Action "
|
||||||
@@ -2143,13 +2141,9 @@ static int wpa_driver_nl80211_set_key(co
|
@@ -2219,13 +2218,9 @@ static int wpa_driver_nl80211_set_key(co
|
||||||
*/
|
*/
|
||||||
if (ret || !set_tx || alg == WPA_ALG_NONE)
|
if (ret || !set_tx || alg == WPA_ALG_NONE)
|
||||||
return ret;
|
return ret;
|
||||||
@ -79,7 +94,7 @@
|
|||||||
|
|
||||||
msg = nlmsg_alloc();
|
msg = nlmsg_alloc();
|
||||||
if (!msg)
|
if (!msg)
|
||||||
@@ -2990,7 +2984,8 @@ static void nl80211_remove_iface(struct
|
@@ -3066,7 +3061,8 @@ static void nl80211_remove_iface(struct
|
||||||
|
|
||||||
#ifdef HOSTAPD
|
#ifdef HOSTAPD
|
||||||
/* stop listening for EAPOL on this interface */
|
/* stop listening for EAPOL on this interface */
|
||||||
@ -89,7 +104,7 @@
|
|||||||
#endif /* HOSTAPD */
|
#endif /* HOSTAPD */
|
||||||
|
|
||||||
msg = nlmsg_alloc();
|
msg = nlmsg_alloc();
|
||||||
@@ -3063,7 +3058,8 @@ static int nl80211_create_iface_once(str
|
@@ -3139,7 +3135,8 @@ static int nl80211_create_iface_once(str
|
||||||
|
|
||||||
#ifdef HOSTAPD
|
#ifdef HOSTAPD
|
||||||
/* start listening for EAPOL on this interface */
|
/* start listening for EAPOL on this interface */
|
||||||
@ -99,7 +114,7 @@
|
|||||||
#endif /* HOSTAPD */
|
#endif /* HOSTAPD */
|
||||||
|
|
||||||
if (addr && iftype != NL80211_IFTYPE_MONITOR &&
|
if (addr && iftype != NL80211_IFTYPE_MONITOR &&
|
||||||
@@ -4766,6 +4762,7 @@ static void *i802_init(struct hostapd_da
|
@@ -4842,6 +4839,7 @@ static void *i802_init(struct hostapd_da
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
drv = bss->drv;
|
drv = bss->drv;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/wpa_supplicant/wpa_supplicant.c
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
@@ -543,10 +543,16 @@ void wpa_supplicant_set_state(struct wpa
|
@@ -545,10 +545,16 @@ void wpa_supplicant_set_state(struct wpa
|
||||||
wpa_s->reassociated_connection = 1;
|
wpa_s->reassociated_connection = 1;
|
||||||
wpa_drv_set_operstate(wpa_s, 1);
|
wpa_drv_set_operstate(wpa_s, 1);
|
||||||
wpa_s->after_wps = 0;
|
wpa_s->after_wps = 0;
|
||||||
|
263
package/hostapd/patches/410-no_rfkill.patch
Normal file
263
package/hostapd/patches/410-no_rfkill.patch
Normal file
@ -0,0 +1,263 @@
|
|||||||
|
--- a/src/drivers/driver_nl80211.c
|
||||||
|
+++ b/src/drivers/driver_nl80211.c
|
||||||
|
@@ -75,7 +75,9 @@ struct wpa_driver_nl80211_data {
|
||||||
|
int ifindex;
|
||||||
|
int if_removed;
|
||||||
|
int if_disabled;
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
struct rfkill_data *rfkill;
|
||||||
|
+#endif
|
||||||
|
struct wpa_driver_capa capa;
|
||||||
|
int has_capability;
|
||||||
|
|
||||||
|
@@ -1361,7 +1363,7 @@ err1:
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
-
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
static void wpa_driver_nl80211_rfkill_blocked(void *ctx)
|
||||||
|
{
|
||||||
|
wpa_printf(MSG_DEBUG, "nl80211: RFKILL blocked");
|
||||||
|
@@ -1383,6 +1385,7 @@ static void wpa_driver_nl80211_rfkill_un
|
||||||
|
}
|
||||||
|
/* rtnetlink ifup handler will report interface as enabled */
|
||||||
|
}
|
||||||
|
+#endif /* CONFIG_RFKILL */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -1396,7 +1399,9 @@ static void * wpa_driver_nl80211_init(vo
|
||||||
|
{
|
||||||
|
struct wpa_driver_nl80211_data *drv;
|
||||||
|
struct netlink_config *cfg;
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
struct rfkill_config *rcfg;
|
||||||
|
+#endif
|
||||||
|
struct i802_bss *bss;
|
||||||
|
|
||||||
|
drv = os_zalloc(sizeof(*drv));
|
||||||
|
@@ -1434,6 +1439,7 @@ static void * wpa_driver_nl80211_init(vo
|
||||||
|
goto failed;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
rcfg = os_zalloc(sizeof(*rcfg));
|
||||||
|
if (rcfg == NULL)
|
||||||
|
goto failed;
|
||||||
|
@@ -1446,6 +1452,7 @@ static void * wpa_driver_nl80211_init(vo
|
||||||
|
wpa_printf(MSG_DEBUG, "nl80211: RFKILL status not available");
|
||||||
|
os_free(rcfg);
|
||||||
|
}
|
||||||
|
+#endif /* CONFIG_RFKILL */
|
||||||
|
|
||||||
|
if (wpa_driver_nl80211_finish_drv_init(drv))
|
||||||
|
goto failed;
|
||||||
|
@@ -1453,7 +1460,9 @@ static void * wpa_driver_nl80211_init(vo
|
||||||
|
return bss;
|
||||||
|
|
||||||
|
failed:
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
rfkill_deinit(drv->rfkill);
|
||||||
|
+#endif
|
||||||
|
netlink_deinit(drv->netlink);
|
||||||
|
if (drv->ioctl_sock >= 0)
|
||||||
|
close(drv->ioctl_sock);
|
||||||
|
@@ -1514,10 +1523,12 @@ static int nl80211_register_action_frame
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
static void wpa_driver_nl80211_send_rfkill(void *eloop_ctx, void *timeout_ctx)
|
||||||
|
{
|
||||||
|
wpa_supplicant_event(timeout_ctx, EVENT_INTERFACE_DISABLED, NULL);
|
||||||
|
}
|
||||||
|
+#endif /* CONFIG_RFKILL */
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
@@ -1536,13 +1547,16 @@ wpa_driver_nl80211_finish_drv_init(struc
|
||||||
|
}
|
||||||
|
|
||||||
|
if (linux_set_iface_flags(drv->ioctl_sock, bss->ifname, 1)) {
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
if (rfkill_is_blocked(drv->rfkill)) {
|
||||||
|
wpa_printf(MSG_DEBUG, "nl80211: Could not yet enable "
|
||||||
|
"interface '%s' due to rfkill",
|
||||||
|
bss->ifname);
|
||||||
|
drv->if_disabled = 1;
|
||||||
|
send_rfkill_event = 1;
|
||||||
|
- } else {
|
||||||
|
+ } else
|
||||||
|
+#endif
|
||||||
|
+ {
|
||||||
|
wpa_printf(MSG_ERROR, "nl80211: Could not set "
|
||||||
|
"interface '%s' UP", bss->ifname);
|
||||||
|
return -1;
|
||||||
|
@@ -1567,8 +1581,10 @@ wpa_driver_nl80211_finish_drv_init(struc
|
||||||
|
}
|
||||||
|
|
||||||
|
if (send_rfkill_event) {
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
eloop_register_timeout(0, 0, wpa_driver_nl80211_send_rfkill,
|
||||||
|
drv, drv->ctx);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
@@ -1647,7 +1663,9 @@ static void wpa_driver_nl80211_deinit(vo
|
||||||
|
|
||||||
|
netlink_send_oper_ifla(drv->netlink, drv->ifindex, 0, IF_OPER_UP);
|
||||||
|
netlink_deinit(drv->netlink);
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
rfkill_deinit(drv->rfkill);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
eloop_cancel_timeout(wpa_driver_nl80211_scan_timeout, drv, drv->ctx);
|
||||||
|
|
||||||
|
--- a/src/drivers/driver_wext.c
|
||||||
|
+++ b/src/drivers/driver_wext.c
|
||||||
|
@@ -700,7 +700,7 @@ static void wpa_driver_wext_event_rtm_de
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
static void wpa_driver_wext_rfkill_blocked(void *ctx)
|
||||||
|
{
|
||||||
|
wpa_printf(MSG_DEBUG, "WEXT: RFKILL blocked");
|
||||||
|
@@ -722,7 +722,7 @@ static void wpa_driver_wext_rfkill_unblo
|
||||||
|
}
|
||||||
|
/* rtnetlink ifup handler will report interface as enabled */
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+#endif /* CONFIG_RFKILL */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wpa_driver_wext_init - Initialize WE driver interface
|
||||||
|
@@ -735,7 +735,9 @@ void * wpa_driver_wext_init(void *ctx, c
|
||||||
|
{
|
||||||
|
struct wpa_driver_wext_data *drv;
|
||||||
|
struct netlink_config *cfg;
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
struct rfkill_config *rcfg;
|
||||||
|
+#endif
|
||||||
|
char path[128];
|
||||||
|
struct stat buf;
|
||||||
|
|
||||||
|
@@ -769,6 +771,7 @@ void * wpa_driver_wext_init(void *ctx, c
|
||||||
|
goto err2;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
rcfg = os_zalloc(sizeof(*rcfg));
|
||||||
|
if (rcfg == NULL)
|
||||||
|
goto err3;
|
||||||
|
@@ -781,6 +784,7 @@ void * wpa_driver_wext_init(void *ctx, c
|
||||||
|
wpa_printf(MSG_DEBUG, "WEXT: RFKILL status not available");
|
||||||
|
os_free(rcfg);
|
||||||
|
}
|
||||||
|
+#endif /* CONFIG_RFKILL */
|
||||||
|
|
||||||
|
drv->mlme_sock = -1;
|
||||||
|
|
||||||
|
@@ -792,7 +796,9 @@ void * wpa_driver_wext_init(void *ctx, c
|
||||||
|
return drv;
|
||||||
|
|
||||||
|
err3:
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
rfkill_deinit(drv->rfkill);
|
||||||
|
+#endif
|
||||||
|
netlink_deinit(drv->netlink);
|
||||||
|
err2:
|
||||||
|
close(drv->ioctl_sock);
|
||||||
|
@@ -802,10 +808,12 @@ err1:
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
static void wpa_driver_wext_send_rfkill(void *eloop_ctx, void *timeout_ctx)
|
||||||
|
{
|
||||||
|
wpa_supplicant_event(timeout_ctx, EVENT_INTERFACE_DISABLED, NULL);
|
||||||
|
}
|
||||||
|
+#endif /* CONFIG_RFKILL */
|
||||||
|
|
||||||
|
|
||||||
|
static int wpa_driver_wext_finish_drv_init(struct wpa_driver_wext_data *drv)
|
||||||
|
@@ -813,13 +821,16 @@ static int wpa_driver_wext_finish_drv_in
|
||||||
|
int send_rfkill_event = 0;
|
||||||
|
|
||||||
|
if (linux_set_iface_flags(drv->ioctl_sock, drv->ifname, 1) < 0) {
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
if (rfkill_is_blocked(drv->rfkill)) {
|
||||||
|
wpa_printf(MSG_DEBUG, "WEXT: Could not yet enable "
|
||||||
|
"interface '%s' due to rfkill",
|
||||||
|
drv->ifname);
|
||||||
|
drv->if_disabled = 1;
|
||||||
|
send_rfkill_event = 1;
|
||||||
|
- } else {
|
||||||
|
+ } else
|
||||||
|
+#endif
|
||||||
|
+ {
|
||||||
|
wpa_printf(MSG_ERROR, "WEXT: Could not set "
|
||||||
|
"interface '%s' UP", drv->ifname);
|
||||||
|
return -1;
|
||||||
|
@@ -867,8 +878,10 @@ static int wpa_driver_wext_finish_drv_in
|
||||||
|
1, IF_OPER_DORMANT);
|
||||||
|
|
||||||
|
if (send_rfkill_event) {
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
eloop_register_timeout(0, 0, wpa_driver_wext_send_rfkill,
|
||||||
|
drv, drv->ctx);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
@@ -898,7 +911,9 @@ void wpa_driver_wext_deinit(void *priv)
|
||||||
|
|
||||||
|
netlink_send_oper_ifla(drv->netlink, drv->ifindex, 0, IF_OPER_UP);
|
||||||
|
netlink_deinit(drv->netlink);
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
rfkill_deinit(drv->rfkill);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
if (drv->mlme_sock >= 0)
|
||||||
|
eloop_unregister_read_sock(drv->mlme_sock);
|
||||||
|
--- a/src/drivers/drivers.mak
|
||||||
|
+++ b/src/drivers/drivers.mak
|
||||||
|
@@ -31,7 +31,6 @@ NEED_SME=y
|
||||||
|
NEED_AP_MLME=y
|
||||||
|
NEED_NETLINK=y
|
||||||
|
NEED_LINUX_IOCTL=y
|
||||||
|
-NEED_RFKILL=y
|
||||||
|
DRV_LIBS += -lnl
|
||||||
|
|
||||||
|
ifdef CONFIG_LIBNL20
|
||||||
|
@@ -78,7 +77,6 @@ DRV_WPA_CFLAGS += -DCONFIG_DRIVER_WEXT
|
||||||
|
CONFIG_WIRELESS_EXTENSION=y
|
||||||
|
NEED_NETLINK=y
|
||||||
|
NEED_LINUX_IOCTL=y
|
||||||
|
-NEED_RFKILL=y
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef CONFIG_DRIVER_HERMES
|
||||||
|
@@ -166,6 +164,7 @@ endif
|
||||||
|
|
||||||
|
ifdef NEED_RFKILL
|
||||||
|
DRV_OBJS += ../src/drivers/rfkill.o
|
||||||
|
+DRV_WPA_CFLAGS += -DCONFIG_RFKILL
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
--- a/src/drivers/driver_wext.h
|
||||||
|
+++ b/src/drivers/driver_wext.h
|
||||||
|
@@ -27,7 +27,9 @@ struct wpa_driver_wext_data {
|
||||||
|
int ifindex2;
|
||||||
|
int if_removed;
|
||||||
|
int if_disabled;
|
||||||
|
+#ifdef CONFIG_RFKILL
|
||||||
|
struct rfkill_data *rfkill;
|
||||||
|
+#endif
|
||||||
|
u8 *assoc_req_ies;
|
||||||
|
size_t assoc_req_ies_len;
|
||||||
|
u8 *assoc_resp_ies;
|
45
package/hostapd/patches/430-supplicant_bridge_fix.patch
Normal file
45
package/hostapd/patches/430-supplicant_bridge_fix.patch
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
--- a/src/drivers/driver_nl80211.c
|
||||||
|
+++ b/src/drivers/driver_nl80211.c
|
||||||
|
@@ -410,6 +410,10 @@ static void wpa_driver_nl80211_event_rtm
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (ifi->ifi_family == AF_BRIDGE &&
|
||||||
|
+ drv->nlmode != NL80211_IFTYPE_AP)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
wpa_printf(MSG_DEBUG, "RTM_NEWLINK: operstate=%d ifi_flags=0x%x "
|
||||||
|
"(%s%s%s%s)",
|
||||||
|
drv->operstate, ifi->ifi_flags,
|
||||||
|
@@ -481,6 +485,10 @@ static void wpa_driver_nl80211_event_rtm
|
||||||
|
attrlen = len;
|
||||||
|
attr = (struct rtattr *) buf;
|
||||||
|
|
||||||
|
+ if (ifi->ifi_family == AF_BRIDGE &&
|
||||||
|
+ drv->nlmode != NL80211_IFTYPE_AP)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
rta_len = RTA_ALIGN(sizeof(struct rtattr));
|
||||||
|
while (RTA_OK(attr, attrlen)) {
|
||||||
|
if (attr->rta_type == IFLA_IFNAME) {
|
||||||
|
@@ -1347,6 +1355,11 @@ static int wpa_driver_nl80211_init_nl(st
|
||||||
|
eloop_register_read_sock(nl_socket_get_fd(drv->nl_handle_event),
|
||||||
|
wpa_driver_nl80211_event_receive, drv, ctx);
|
||||||
|
|
||||||
|
+#ifdef HOSTAPD
|
||||||
|
+ drv->num_if_indices = sizeof(drv->default_if_indices) / sizeof(int);
|
||||||
|
+ drv->if_indices = drv->default_if_indices;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
err4:
|
||||||
|
@@ -4867,8 +4880,6 @@ static void *i802_init(struct hostapd_da
|
||||||
|
br_ifindex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- drv->num_if_indices = sizeof(drv->default_if_indices) / sizeof(int);
|
||||||
|
- drv->if_indices = drv->default_if_indices;
|
||||||
|
for (i = 0; i < params->num_bridge; i++) {
|
||||||
|
if (params->bridge[i]) {
|
||||||
|
ifindex = if_nametoindex(params->bridge[i]);
|
89
package/hostapd/patches/440-mbss_reload_fix.patch
Normal file
89
package/hostapd/patches/440-mbss_reload_fix.patch
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
--- a/src/ap/hostapd.c
|
||||||
|
+++ b/src/ap/hostapd.c
|
||||||
|
@@ -42,37 +42,8 @@ static int hostapd_setup_encryption(char
|
||||||
|
|
||||||
|
extern int wpa_debug_level;
|
||||||
|
|
||||||
|
-
|
||||||
|
-int hostapd_reload_config(struct hostapd_iface *iface)
|
||||||
|
+static int hostapd_reload_bss(struct hostapd_data *hapd)
|
||||||
|
{
|
||||||
|
- struct hostapd_data *hapd = iface->bss[0];
|
||||||
|
- struct hostapd_config *newconf, *oldconf;
|
||||||
|
- size_t j;
|
||||||
|
-
|
||||||
|
- if (iface->config_read_cb == NULL)
|
||||||
|
- return -1;
|
||||||
|
- newconf = iface->config_read_cb(iface->config_fname);
|
||||||
|
- if (newconf == NULL)
|
||||||
|
- return -1;
|
||||||
|
-
|
||||||
|
- /*
|
||||||
|
- * Deauthenticate all stations since the new configuration may not
|
||||||
|
- * allow them to use the BSS anymore.
|
||||||
|
- */
|
||||||
|
- for (j = 0; j < iface->num_bss; j++)
|
||||||
|
- hostapd_flush_old_stations(iface->bss[j]);
|
||||||
|
-
|
||||||
|
-#ifndef CONFIG_NO_RADIUS
|
||||||
|
- /* TODO: update dynamic data based on changed configuration
|
||||||
|
- * items (e.g., open/close sockets, etc.) */
|
||||||
|
- radius_client_flush(hapd->radius, 0);
|
||||||
|
-#endif /* CONFIG_NO_RADIUS */
|
||||||
|
-
|
||||||
|
- oldconf = hapd->iconf;
|
||||||
|
- hapd->iconf = newconf;
|
||||||
|
- hapd->conf = &newconf->bss[0];
|
||||||
|
- iface->conf = newconf;
|
||||||
|
-
|
||||||
|
if (hostapd_setup_wpa_psk(hapd->conf)) {
|
||||||
|
wpa_printf(MSG_ERROR, "Failed to re-configure WPA PSK "
|
||||||
|
"after reloading configuration");
|
||||||
|
@@ -110,10 +81,46 @@ int hostapd_reload_config(struct hostapd
|
||||||
|
wpa_printf(MSG_ERROR, "Could not set SSID for kernel driver");
|
||||||
|
/* try to continue */
|
||||||
|
}
|
||||||
|
+ wpa_printf(MSG_DEBUG, "Reconfigured interface %s", hapd->conf->iface);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int hostapd_reload_config(struct hostapd_iface *iface)
|
||||||
|
+{
|
||||||
|
+ struct hostapd_data *hapd = iface->bss[0];
|
||||||
|
+ struct hostapd_config *newconf, *oldconf;
|
||||||
|
+ size_t j;
|
||||||
|
+
|
||||||
|
+ if (iface->config_read_cb == NULL)
|
||||||
|
+ return -1;
|
||||||
|
+ newconf = iface->config_read_cb(iface->config_fname);
|
||||||
|
+ if (newconf == NULL)
|
||||||
|
+ return -1;
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * Deauthenticate all stations since the new configuration may not
|
||||||
|
+ * allow them to use the BSS anymore.
|
||||||
|
+ */
|
||||||
|
+ for (j = 0; j < iface->num_bss; j++)
|
||||||
|
+ hostapd_flush_old_stations(iface->bss[j]);
|
||||||
|
+
|
||||||
|
+#ifndef CONFIG_NO_RADIUS
|
||||||
|
+ /* TODO: update dynamic data based on changed configuration
|
||||||
|
+ * items (e.g., open/close sockets, etc.) */
|
||||||
|
+ radius_client_flush(hapd->radius, 0);
|
||||||
|
+#endif /* CONFIG_NO_RADIUS */
|
||||||
|
+
|
||||||
|
+ oldconf = hapd->iconf;
|
||||||
|
+ iface->conf = newconf;
|
||||||
|
+
|
||||||
|
+ for (j = 0; j < iface->num_bss; j++) {
|
||||||
|
+ hapd = iface->bss[j];
|
||||||
|
+ hapd->iconf = newconf;
|
||||||
|
+ hapd->conf = &newconf->bss[j];
|
||||||
|
+ hostapd_reload_bss(hapd);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
hostapd_config_free(oldconf);
|
||||||
|
|
||||||
|
- wpa_printf(MSG_DEBUG, "Reconfigured interface %s", hapd->conf->iface);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
13
package/hostapd/patches/450-reload_settings.patch
Normal file
13
package/hostapd/patches/450-reload_settings.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
--- a/src/ap/hostapd.c
|
||||||
|
+++ b/src/ap/hostapd.c
|
||||||
|
@@ -112,6 +112,10 @@ int hostapd_reload_config(struct hostapd
|
||||||
|
oldconf = hapd->iconf;
|
||||||
|
iface->conf = newconf;
|
||||||
|
|
||||||
|
+ iface->freq = hostapd_hw_get_freq(hapd, hapd->iconf->channel);
|
||||||
|
+ if (iface->current_mode)
|
||||||
|
+ hostapd_prepare_rates(hapd, iface->current_mode);
|
||||||
|
+
|
||||||
|
for (j = 0; j < iface->num_bss; j++) {
|
||||||
|
hapd = iface->bss[j];
|
||||||
|
hapd->iconf = newconf;
|
63
package/hostapd/patches/451-nl80211_del_beacon_bss.patch
Normal file
63
package/hostapd/patches/451-nl80211_del_beacon_bss.patch
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
--- a/src/drivers/driver_nl80211.c
|
||||||
|
+++ b/src/drivers/driver_nl80211.c
|
||||||
|
@@ -1604,23 +1604,41 @@ wpa_driver_nl80211_finish_drv_init(struc
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-static int wpa_driver_nl80211_del_beacon(struct wpa_driver_nl80211_data *drv)
|
||||||
|
+static int wpa_driver_nl80211_del_bss_beacon(struct i802_bss *bss)
|
||||||
|
{
|
||||||
|
+ struct wpa_driver_nl80211_data *drv = bss->drv;
|
||||||
|
struct nl_msg *msg;
|
||||||
|
|
||||||
|
+ bss->beacon_set = 0;
|
||||||
|
+
|
||||||
|
msg = nlmsg_alloc();
|
||||||
|
if (!msg)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
genlmsg_put(msg, 0, 0, genl_family_get_id(drv->nl80211), 0,
|
||||||
|
0, NL80211_CMD_DEL_BEACON, 0);
|
||||||
|
- NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, drv->ifindex);
|
||||||
|
+ NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, bss->ifindex);
|
||||||
|
|
||||||
|
return send_and_recv_msgs(drv, msg, NULL, NULL);
|
||||||
|
nla_put_failure:
|
||||||
|
+ nlmsg_free(msg);
|
||||||
|
return -ENOBUFS;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int wpa_driver_nl80211_del_beacon(struct wpa_driver_nl80211_data *drv)
|
||||||
|
+{
|
||||||
|
+ struct i802_bss *bss;
|
||||||
|
+
|
||||||
|
+ for (bss = &drv->first_bss; bss; bss = bss->next)
|
||||||
|
+ wpa_driver_nl80211_del_bss_beacon(bss);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int wpa_driver_nl80211_stop_ap(void *priv)
|
||||||
|
+{
|
||||||
|
+ struct i802_bss *bss = priv;
|
||||||
|
+
|
||||||
|
+ wpa_driver_nl80211_del_beacon(bss->drv);
|
||||||
|
+}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wpa_driver_nl80211_deinit - Deinitialize nl80211 driver interface
|
||||||
|
@@ -5512,4 +5530,5 @@ const struct wpa_driver_ops wpa_driver_n
|
||||||
|
.send_ft_action = nl80211_send_ft_action,
|
||||||
|
.signal_monitor = nl80211_signal_monitor,
|
||||||
|
.send_frame = nl80211_send_frame,
|
||||||
|
+ .stop_ap = wpa_driver_nl80211_stop_ap,
|
||||||
|
};
|
||||||
|
--- a/src/drivers/driver.h
|
||||||
|
+++ b/src/drivers/driver.h
|
||||||
|
@@ -1774,6 +1774,8 @@ struct wpa_driver_ops {
|
||||||
|
*/
|
||||||
|
int (*send_frame)(void *priv, const u8 *data, size_t data_len,
|
||||||
|
int encrypt);
|
||||||
|
+
|
||||||
|
+ int (*stop_ap)(void *priv);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
96
package/hostapd/patches/452-ctrl_iface_reload.patch
Normal file
96
package/hostapd/patches/452-ctrl_iface_reload.patch
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
--- a/hostapd/ctrl_iface.c
|
||||||
|
+++ b/hostapd/ctrl_iface.c
|
||||||
|
@@ -35,6 +35,7 @@
|
||||||
|
#include "ap/wps_hostapd.h"
|
||||||
|
#include "ap/ctrl_iface_ap.h"
|
||||||
|
#include "ctrl_iface.h"
|
||||||
|
+#include "config_file.h"
|
||||||
|
|
||||||
|
|
||||||
|
struct wpa_ctrl_dst {
|
||||||
|
@@ -45,6 +46,7 @@ struct wpa_ctrl_dst {
|
||||||
|
int errors;
|
||||||
|
};
|
||||||
|
|
||||||
|
+static char *reload_opts = NULL;
|
||||||
|
|
||||||
|
static void hostapd_ctrl_iface_send(struct hostapd_data *hapd, int level,
|
||||||
|
const char *buf, size_t len);
|
||||||
|
@@ -315,6 +317,66 @@ static int hostapd_ctrl_iface_wps_oob(st
|
||||||
|
#endif /* CONFIG_WPS_OOB */
|
||||||
|
#endif /* CONFIG_WPS */
|
||||||
|
|
||||||
|
+static int hostapd_ctrl_iface_set_down(struct hostapd_data *hapd)
|
||||||
|
+{
|
||||||
|
+ if (hapd->driver->stop_ap)
|
||||||
|
+ hapd->driver->stop_ap(hapd->drv_priv);
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static char *get_option(char *opt, char *str)
|
||||||
|
+{
|
||||||
|
+ int len = strlen(str);
|
||||||
|
+
|
||||||
|
+ if (!strncmp(opt, str, len))
|
||||||
|
+ return opt + len;
|
||||||
|
+ else
|
||||||
|
+ return NULL;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static struct hostapd_config *hostapd_ctrl_iface_config_read(const char *fname)
|
||||||
|
+{
|
||||||
|
+ struct hostapd_config *conf;
|
||||||
|
+ char *opt, *val;
|
||||||
|
+
|
||||||
|
+ conf = hostapd_config_read(fname);
|
||||||
|
+ if (!conf)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
+ for (opt = strtok(reload_opts, " ");
|
||||||
|
+ opt;
|
||||||
|
+ opt = strtok(NULL, " ")) {
|
||||||
|
+
|
||||||
|
+ if ((val = get_option(opt, "channel=")))
|
||||||
|
+ conf->channel = atoi(val);
|
||||||
|
+ else if ((val = get_option(opt, "ht_capab=")))
|
||||||
|
+ conf->ht_capab = atoi(val);
|
||||||
|
+ else if ((val = get_option(opt, "ht_capab_mask=")))
|
||||||
|
+ conf->ht_capab &= atoi(val);
|
||||||
|
+ else if ((val = get_option(opt, "sec_chan=")))
|
||||||
|
+ conf->secondary_channel = atoi(val);
|
||||||
|
+ else if ((val = get_option(opt, "hwmode=")))
|
||||||
|
+ conf->hw_mode = atoi(val);
|
||||||
|
+ else if ((val = get_option(opt, "ieee80211n=")))
|
||||||
|
+ conf->ieee80211n = atoi(val);
|
||||||
|
+ else
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return conf;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int hostapd_ctrl_iface_reload(struct hostapd_data *hapd, char *txt)
|
||||||
|
+{
|
||||||
|
+ struct hostapd_iface *iface = hapd->iface;
|
||||||
|
+
|
||||||
|
+ iface->config_read_cb = hostapd_ctrl_iface_config_read;
|
||||||
|
+ reload_opts = txt;
|
||||||
|
+
|
||||||
|
+ hostapd_reload_config(iface);
|
||||||
|
+
|
||||||
|
+ iface->config_read_cb = hostapd_config_read;
|
||||||
|
+}
|
||||||
|
|
||||||
|
static void hostapd_ctrl_iface_receive(int sock, void *eloop_ctx,
|
||||||
|
void *sock_ctx)
|
||||||
|
@@ -379,6 +441,10 @@ static void hostapd_ctrl_iface_receive(i
|
||||||
|
reply_len += res;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_NO_RADIUS */
|
||||||
|
+ } else if (os_strcmp(buf, "DOWN") == 0) {
|
||||||
|
+ hostapd_ctrl_iface_set_down(hapd);
|
||||||
|
+ } else if (os_strncmp(buf, "RELOAD ", 7) == 0) {
|
||||||
|
+ hostapd_ctrl_iface_reload(hapd, buf + 7);
|
||||||
|
} else if (os_strcmp(buf, "STA-FIRST") == 0) {
|
||||||
|
reply_len = hostapd_ctrl_iface_sta_first(hapd, reply,
|
||||||
|
reply_size);
|
211
package/hostapd/patches/453-ap_sta_support.patch
Normal file
211
package/hostapd/patches/453-ap_sta_support.patch
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
--- a/wpa_supplicant/wpa_supplicant_i.h
|
||||||
|
+++ b/wpa_supplicant/wpa_supplicant_i.h
|
||||||
|
@@ -98,6 +98,8 @@ struct wpa_interface {
|
||||||
|
* receiving of EAPOL frames from an additional interface.
|
||||||
|
*/
|
||||||
|
const char *bridge_ifname;
|
||||||
|
+
|
||||||
|
+ const char *hostapd_ctrl;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -316,6 +318,8 @@ struct wpa_supplicant {
|
||||||
|
#endif /* CONFIG_CTRL_IFACE_DBUS_NEW */
|
||||||
|
char bridge_ifname[16];
|
||||||
|
|
||||||
|
+ struct wpa_ctrl *hostapd;
|
||||||
|
+
|
||||||
|
char *confname;
|
||||||
|
struct wpa_config *conf;
|
||||||
|
int countermeasures;
|
||||||
|
--- a/wpa_supplicant/Makefile
|
||||||
|
+++ b/wpa_supplicant/Makefile
|
||||||
|
@@ -51,6 +51,11 @@ OBJS_p += ../src/utils/wpa_debug.o
|
||||||
|
OBJS_p += ../src/utils/wpabuf.o
|
||||||
|
OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
|
||||||
|
|
||||||
|
+ifdef MULTICALL
|
||||||
|
+OBJS += ../src/common/wpa_ctrl.o
|
||||||
|
+CFLAGS += -DMULTICALL
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
-include .config
|
||||||
|
-include $(if $(MULTICALL),../hostapd/.config)
|
||||||
|
|
||||||
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
|
@@ -120,6 +120,55 @@ extern int wpa_debug_show_keys;
|
||||||
|
extern int wpa_debug_timestamp;
|
||||||
|
extern struct wpa_driver_ops *wpa_drivers[];
|
||||||
|
|
||||||
|
+#ifdef MULTICALL
|
||||||
|
+static int hostapd_stop(struct wpa_supplicant *wpa_s)
|
||||||
|
+{
|
||||||
|
+ const char *cmd = "DOWN";
|
||||||
|
+ char buf[256];
|
||||||
|
+ int len = sizeof(buf);
|
||||||
|
+
|
||||||
|
+ if (wpa_ctrl_request(wpa_s->hostapd, cmd, os_strlen(cmd), buf, &len, NULL) < 0) {
|
||||||
|
+ wpa_printf(MSG_ERROR, "\nFailed to stop hostapd AP interfaces\n");
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int hostapd_reload(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
|
||||||
|
+{
|
||||||
|
+ char *cmd = NULL;
|
||||||
|
+ char buf[256];
|
||||||
|
+ int len = sizeof(buf);
|
||||||
|
+ int channel, hw_mode;
|
||||||
|
+ int ret;
|
||||||
|
+
|
||||||
|
+ if (!bss)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ if (bss->freq < 4000) {
|
||||||
|
+ hw_mode = HOSTAPD_MODE_IEEE80211G;
|
||||||
|
+ channel = (bss->freq - 2407) / 5;
|
||||||
|
+ } else {
|
||||||
|
+ hw_mode = HOSTAPD_MODE_IEEE80211A;
|
||||||
|
+ channel = (bss->freq - 5000) / 5;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (asprintf(&cmd, "RELOAD channel=%d sec_chan=0 hw_mode=%d ieee80211n=%d",
|
||||||
|
+ channel, hw_mode, !!bss->ht_capab) < 0) {
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ ret = wpa_ctrl_request(wpa_s->hostapd, cmd, os_strlen(cmd), buf, &len, NULL);
|
||||||
|
+ free(cmd);
|
||||||
|
+
|
||||||
|
+ if (ret < 0) {
|
||||||
|
+ wpa_printf(MSG_ERROR, "\nFailed to reload hostapd AP interfaces\n");
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* Configure default/group WEP keys for static WEP */
|
||||||
|
int wpa_set_wep_keys(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
|
||||||
|
{
|
||||||
|
@@ -548,8 +597,16 @@ void wpa_supplicant_set_state(struct wpa
|
||||||
|
#ifndef IEEE8021X_EAPOL
|
||||||
|
wpa_drv_set_supp_port(wpa_s, 1);
|
||||||
|
#endif
|
||||||
|
+#ifdef MULTICALL
|
||||||
|
+ if (wpa_s->hostapd)
|
||||||
|
+ hostapd_reload(wpa_s, wpa_s->current_bss);
|
||||||
|
+#endif
|
||||||
|
} else if (state == WPA_DISCONNECTED || state == WPA_ASSOCIATING ||
|
||||||
|
state == WPA_ASSOCIATED) {
|
||||||
|
+#ifdef MULTICALL
|
||||||
|
+ if (wpa_s->hostapd)
|
||||||
|
+ hostapd_stop(wpa_s);
|
||||||
|
+#endif
|
||||||
|
wpa_s->new_connection = 1;
|
||||||
|
wpa_drv_set_operstate(wpa_s, 0);
|
||||||
|
#ifndef IEEE8021X_EAPOL
|
||||||
|
@@ -1957,6 +2014,21 @@ static int wpa_supplicant_init_iface(str
|
||||||
|
os_strlcpy(wpa_s->bridge_ifname, iface->bridge_ifname,
|
||||||
|
sizeof(wpa_s->bridge_ifname));
|
||||||
|
}
|
||||||
|
+#ifdef MULTICALL
|
||||||
|
+ if (iface->hostapd_ctrl) {
|
||||||
|
+ char *cmd = "DOWN";
|
||||||
|
+ char buf[256];
|
||||||
|
+ int len = sizeof(buf);
|
||||||
|
+
|
||||||
|
+ wpa_s->hostapd = wpa_ctrl_open(iface->hostapd_ctrl);
|
||||||
|
+ if (!wpa_s->hostapd) {
|
||||||
|
+ wpa_printf(MSG_ERROR, "\nFailed to connect to hostapd\n");
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+ if (hostapd_stop(wpa_s) < 0)
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/* RSNA Supplicant Key Management - INITIALIZE */
|
||||||
|
eapol_sm_notify_portEnabled(wpa_s->eapol, FALSE);
|
||||||
|
--- a/wpa_supplicant/bss.c
|
||||||
|
+++ b/wpa_supplicant/bss.c
|
||||||
|
@@ -17,6 +17,7 @@
|
||||||
|
#include "utils/common.h"
|
||||||
|
#include "utils/eloop.h"
|
||||||
|
#include "common/ieee802_11_defs.h"
|
||||||
|
+#include "common/ieee802_11_common.h"
|
||||||
|
#include "drivers/driver.h"
|
||||||
|
#include "wpa_supplicant_i.h"
|
||||||
|
#include "config.h"
|
||||||
|
@@ -89,6 +90,8 @@ struct wpa_bss * wpa_bss_get(struct wpa_
|
||||||
|
|
||||||
|
static void wpa_bss_copy_res(struct wpa_bss *dst, struct wpa_scan_res *src)
|
||||||
|
{
|
||||||
|
+ struct ieee80211_ht_capabilities *capab;
|
||||||
|
+ struct ieee802_11_elems elems;
|
||||||
|
os_time_t usec;
|
||||||
|
|
||||||
|
dst->flags = src->flags;
|
||||||
|
@@ -101,6 +104,12 @@ static void wpa_bss_copy_res(struct wpa_
|
||||||
|
dst->level = src->level;
|
||||||
|
dst->tsf = src->tsf;
|
||||||
|
|
||||||
|
+ memset(&elems, 0, sizeof(elems));
|
||||||
|
+ ieee802_11_parse_elems((u8 *) (src + 1), src->ie_len, &elems, 0);
|
||||||
|
+ capab = (struct ieee80211_ht_capabilities *) elems.ht_capabilities;
|
||||||
|
+ if (capab)
|
||||||
|
+ dst->ht_capab = le_to_host16(capab->ht_capabilities_info);
|
||||||
|
+
|
||||||
|
os_get_time(&dst->last_update);
|
||||||
|
dst->last_update.sec -= src->age / 1000;
|
||||||
|
usec = (src->age % 1000) * 1000;
|
||||||
|
--- a/wpa_supplicant/bss.h
|
||||||
|
+++ b/wpa_supplicant/bss.h
|
||||||
|
@@ -56,6 +56,7 @@ struct wpa_bss {
|
||||||
|
unsigned int flags;
|
||||||
|
u8 bssid[ETH_ALEN];
|
||||||
|
u8 ssid[32];
|
||||||
|
+ u16 ht_capab;
|
||||||
|
size_t ssid_len;
|
||||||
|
int freq;
|
||||||
|
u16 beacon_int;
|
||||||
|
--- a/wpa_supplicant/main.c
|
||||||
|
+++ b/wpa_supplicant/main.c
|
||||||
|
@@ -31,7 +31,7 @@ static void usage(void)
|
||||||
|
"usage:\n"
|
||||||
|
" wpa_supplicant [-BddhKLqqstuvW] [-P<pid file>] "
|
||||||
|
"[-g<global ctrl>] \\\n"
|
||||||
|
- " -i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] "
|
||||||
|
+ " -i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] [-H<hostapd path>]"
|
||||||
|
"[-p<driver_param>] \\\n"
|
||||||
|
" [-b<br_ifname>] [-f<debug file>] \\\n"
|
||||||
|
" [-o<override driver>] [-O<override ctrl>] \\\n"
|
||||||
|
@@ -67,6 +67,7 @@ static void usage(void)
|
||||||
|
#endif /* CONFIG_DEBUG_SYSLOG */
|
||||||
|
printf(" -t = include timestamp in debug messages\n"
|
||||||
|
" -h = show this help text\n"
|
||||||
|
+ " -H = connect to a hostapd instance to manage state changes\n"
|
||||||
|
" -L = show license (GPL and BSD)\n"
|
||||||
|
" -o = override driver parameter for new interfaces\n"
|
||||||
|
" -O = override ctrl_interface parameter for new interfaces\n"
|
||||||
|
@@ -143,7 +144,7 @@ int main(int argc, char *argv[])
|
||||||
|
wpa_supplicant_fd_workaround();
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
- c = getopt(argc, argv, "b:Bc:C:D:df:g:hi:KLNo:O:p:P:qstuvW");
|
||||||
|
+ c = getopt(argc, argv, "b:Bc:C:D:df:g:hH:i:KLNo:O:p:P:qstuvW");
|
||||||
|
if (c < 0)
|
||||||
|
break;
|
||||||
|
switch (c) {
|
||||||
|
@@ -184,6 +185,9 @@ int main(int argc, char *argv[])
|
||||||
|
usage();
|
||||||
|
exitcode = 0;
|
||||||
|
goto out;
|
||||||
|
+ case 'H':
|
||||||
|
+ iface->hostapd_ctrl = optarg;
|
||||||
|
+ break;
|
||||||
|
case 'i':
|
||||||
|
iface->ifname = optarg;
|
||||||
|
break;
|
25
package/hostapd/patches/460-oper_state_fix.patch
Normal file
25
package/hostapd/patches/460-oper_state_fix.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From: Jouni Malinen <jouni.malinen@atheros.com>
|
||||||
|
Date: Tue, 26 Oct 2010 13:30:28 +0000 (+0300)
|
||||||
|
Subject: hostapd: Set operstate UP when initializing AP mode
|
||||||
|
X-Git-Url: http://w1.fi/gitweb/gitweb.cgi?p=hostap.git;a=commitdiff_plain;h=e11f5a2cbc333113a3a1cc1aeea7f698c3936ca3
|
||||||
|
|
||||||
|
hostapd: Set operstate UP when initializing AP mode
|
||||||
|
|
||||||
|
This is needed to avoid problems with other applications setting and
|
||||||
|
leaving the interface to IF_OPER_DORMANT state. In AP mode, the interface
|
||||||
|
is ready immediately after the keys are set, so we better make sure the
|
||||||
|
DORMANT state does not prevent normal operations after that.
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/src/ap/hostapd.c
|
||||||
|
+++ b/src/ap/hostapd.c
|
||||||
|
@@ -622,6 +622,9 @@ static int hostapd_setup_bss(struct host
|
||||||
|
|
||||||
|
ieee802_11_set_beacon(hapd);
|
||||||
|
|
||||||
|
+ if (hapd->driver && hapd->driver->set_operstate)
|
||||||
|
+ hapd->driver->set_operstate(hapd->drv_priv, 1);
|
||||||
|
+
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -15,7 +15,7 @@ PKG_RELEASE:=2
|
|||||||
PKG_SOURCE_PROTO:=svn
|
PKG_SOURCE_PROTO:=svn
|
||||||
PKG_SOURCE_VERSION:=$(PKG_REV)
|
PKG_SOURCE_VERSION:=$(PKG_REV)
|
||||||
PKG_SOURCE_SUBDIR:=hotplug2-$(PKG_VERSION)
|
PKG_SOURCE_SUBDIR:=hotplug2-$(PKG_VERSION)
|
||||||
PKG_SOURCE_URL:=http://svn.nomi.cz/svn/isteve/hotplug2
|
PKG_SOURCE_URL:=http://svn.nomi.cz/svn/isteve/hotplug2
|
||||||
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
|
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
|
||||||
#PKG_SOURCE_URL:=http://isteve.bofh.cz/~isteve/hotplug2
|
#PKG_SOURCE_URL:=http://isteve.bofh.cz/~isteve/hotplug2
|
||||||
#PKG_MD5SUM:=ea2c01d027b4002e4e6b0ff266f51a51
|
#PKG_MD5SUM:=ea2c01d027b4002e4e6b0ff266f51a51
|
||||||
@ -36,6 +36,10 @@ define Package/hotplug2/description
|
|||||||
This is an implementation of Hotplug2-1.0-beta
|
This is an implementation of Hotplug2-1.0-beta
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/hotplug2/conffiles
|
||||||
|
/etc/hotplug2.rules
|
||||||
|
endef
|
||||||
|
|
||||||
MAKE_FLAGS += \
|
MAKE_FLAGS += \
|
||||||
COPTS="$(TARGET_CFLAGS)" \
|
COPTS="$(TARGET_CFLAGS)" \
|
||||||
STATIC_WORKER="fork"
|
STATIC_WORKER="fork"
|
||||||
|
@ -30,6 +30,10 @@ $(call Package/iproute2/Default)
|
|||||||
TITLE:=Routing control utility
|
TITLE:=Routing control utility
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/ip/conffiles
|
||||||
|
/etc/iproute2/rt_tables
|
||||||
|
endef
|
||||||
|
|
||||||
define Package/tc
|
define Package/tc
|
||||||
$(call Package/iproute2/Default)
|
$(call Package/iproute2/Default)
|
||||||
TITLE:=Traffic control utility
|
TITLE:=Traffic control utility
|
||||||
|
24
package/iptables/patches/011-iprange-linux-2.4-compat.patch
Normal file
24
package/iptables/patches/011-iprange-linux-2.4-compat.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
--- a/extensions/libxt_iprange.c
|
||||||
|
+++ b/extensions/libxt_iprange.c
|
||||||
|
@@ -96,7 +96,8 @@ static int iprange_parse(int c, char **a
|
||||||
|
if (invert)
|
||||||
|
info->flags |= IPRANGE_SRC_INV;
|
||||||
|
iprange_parse_range(optarg, range, NFPROTO_IPV4, "--src-range");
|
||||||
|
-
|
||||||
|
+ info->src.min_ip = range[0].in.s_addr;
|
||||||
|
+ info->src.max_ip = range[1].in.s_addr;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '2':
|
||||||
|
@@ -110,8 +111,9 @@ static int iprange_parse(int c, char **a
|
||||||
|
if (invert)
|
||||||
|
info->flags |= IPRANGE_DST_INV;
|
||||||
|
|
||||||
|
- iprange_parse_range(optarg, range, NFPROTO_IPV4, "--src-range");
|
||||||
|
-
|
||||||
|
+ iprange_parse_range(optarg, range, NFPROTO_IPV4, "--dst-range");
|
||||||
|
+ info->dst.min_ip = range[0].in.s_addr;
|
||||||
|
+ info->dst.max_ip = range[1].in.s_addr;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
@ -8,12 +8,12 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=iw
|
PKG_NAME:=iw
|
||||||
PKG_VERSION:=0.9.19
|
PKG_VERSION:=0.9.21
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||||
PKG_SOURCE_URL:=http://wireless.kernel.org/download/iw/
|
PKG_SOURCE_URL:=http://wireless.kernel.org/download/iw/
|
||||||
PKG_MD5SUM:=3b88743f9c6ce8a7e2f5fd7d18fdea42
|
PKG_MD5SUM:=726db5f1fd6bc316434414770513ef81
|
||||||
PKG_BUILD_DEPENDS:=mac80211
|
PKG_BUILD_DEPENDS:=mac80211
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
@ -48,11 +48,9 @@ MAKE_FLAGS += \
|
|||||||
LIBS="-lm -lnl-tiny" \
|
LIBS="-lm -lnl-tiny" \
|
||||||
V=1
|
V=1
|
||||||
|
|
||||||
ifneq ($(CONFIG_LINUX_2_6),)
|
define Package/iw/install
|
||||||
define Package/iw/install
|
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/iw $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/iw $(1)/usr/sbin/
|
||||||
endef
|
endef
|
||||||
endif
|
|
||||||
|
|
||||||
$(eval $(call BuildPackage,iw))
|
$(eval $(call BuildPackage,iw))
|
||||||
|
183
package/iw/patches/001-nl80211_sync.patch
Normal file
183
package/iw/patches/001-nl80211_sync.patch
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
--- a/nl80211.h
|
||||||
|
+++ b/nl80211.h
|
||||||
|
@@ -295,7 +295,9 @@
|
||||||
|
* auth and assoc steps. For this, you need to specify the SSID in a
|
||||||
|
* %NL80211_ATTR_SSID attribute, and can optionally specify the association
|
||||||
|
* IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_MAC,
|
||||||
|
- * %NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_CONTROL_PORT.
|
||||||
|
+ * %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
|
||||||
|
+ * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE and
|
||||||
|
+ * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT.
|
||||||
|
* It is also sent as an event, with the BSSID and response IEs when the
|
||||||
|
* connection is established or failed to be established. This can be
|
||||||
|
* determined by the STATUS_CODE attribute.
|
||||||
|
@@ -313,8 +315,8 @@
|
||||||
|
* channel for the specified amount of time. This can be used to do
|
||||||
|
* off-channel operations like transmit a Public Action frame and wait for
|
||||||
|
* a response while being associated to an AP on another channel.
|
||||||
|
- * %NL80211_ATTR_WIPHY or %NL80211_ATTR_IFINDEX is used to specify which
|
||||||
|
- * radio is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the
|
||||||
|
+ * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus
|
||||||
|
+ * radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the
|
||||||
|
* frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be
|
||||||
|
* optionally used to specify additional channel parameters.
|
||||||
|
* %NL80211_ATTR_DURATION is used to specify the duration in milliseconds
|
||||||
|
@@ -385,6 +387,8 @@
|
||||||
|
* of any other interfaces, and other interfaces will again take
|
||||||
|
* precedence when they are used.
|
||||||
|
*
|
||||||
|
+ * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface.
|
||||||
|
+ *
|
||||||
|
* @NL80211_CMD_MAX: highest used command number
|
||||||
|
* @__NL80211_CMD_AFTER_LAST: internal use
|
||||||
|
*/
|
||||||
|
@@ -487,6 +491,7 @@ enum nl80211_commands {
|
||||||
|
NL80211_CMD_NOTIFY_CQM,
|
||||||
|
|
||||||
|
NL80211_CMD_SET_CHANNEL,
|
||||||
|
+ NL80211_CMD_SET_WDS_PEER,
|
||||||
|
|
||||||
|
/* add new commands above here */
|
||||||
|
|
||||||
|
@@ -686,6 +691,15 @@ enum nl80211_commands {
|
||||||
|
* request, the driver will assume that the port is unauthorized until
|
||||||
|
* authorized by user space. Otherwise, port is marked authorized by
|
||||||
|
* default in station mode.
|
||||||
|
+ * @NL80211_ATTR_CONTROL_PORT_ETHERTYPE: A 16-bit value indicating the
|
||||||
|
+ * ethertype that will be used for key negotiation. It can be
|
||||||
|
+ * specified with the associate and connect commands. If it is not
|
||||||
|
+ * specified, the value defaults to 0x888E (PAE, 802.1X). This
|
||||||
|
+ * attribute is also used as a flag in the wiphy information to
|
||||||
|
+ * indicate that protocols other than PAE are supported.
|
||||||
|
+ * @NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT: When included along with
|
||||||
|
+ * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, indicates that the custom
|
||||||
|
+ * ethertype frames used for key negotiation must not be encrypted.
|
||||||
|
*
|
||||||
|
* @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
|
||||||
|
* We recommend using nested, driver-specific attributes within this.
|
||||||
|
@@ -787,6 +801,11 @@ enum nl80211_commands {
|
||||||
|
* This is used in association with @NL80211_ATTR_WIPHY_TX_POWER_SETTING
|
||||||
|
* for non-automatic settings.
|
||||||
|
*
|
||||||
|
+ * @NL80211_ATTR_SUPPORT_IBSS_RSN: The device supports IBSS RSN, which mostly
|
||||||
|
+ * means support for per-station GTKs.
|
||||||
|
+ *
|
||||||
|
+ * @NL80211_ATTR_MCAST_RATE: Multicast tx rate (in 100 kbps) for IBSS
|
||||||
|
+ *
|
||||||
|
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||||
|
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||||
|
*/
|
||||||
|
@@ -951,6 +970,13 @@ enum nl80211_attrs {
|
||||||
|
NL80211_ATTR_RX_FRAME_TYPES,
|
||||||
|
NL80211_ATTR_FRAME_TYPE,
|
||||||
|
|
||||||
|
+ NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
|
||||||
|
+ NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT,
|
||||||
|
+
|
||||||
|
+ NL80211_ATTR_SUPPORT_IBSS_RSN,
|
||||||
|
+
|
||||||
|
+ NL80211_ATTR_MCAST_RATE,
|
||||||
|
+
|
||||||
|
/* add attributes here, update the policy in nl80211.c */
|
||||||
|
|
||||||
|
__NL80211_ATTR_AFTER_LAST,
|
||||||
|
@@ -1006,6 +1032,8 @@ enum nl80211_attrs {
|
||||||
|
* @NL80211_IFTYPE_WDS: wireless distribution interface
|
||||||
|
* @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames
|
||||||
|
* @NL80211_IFTYPE_MESH_POINT: mesh point
|
||||||
|
+ * @NL80211_IFTYPE_P2P_CLIENT: P2P client
|
||||||
|
+ * @NL80211_IFTYPE_P2P_GO: P2P group owner
|
||||||
|
* @NL80211_IFTYPE_MAX: highest interface type number currently defined
|
||||||
|
* @NUM_NL80211_IFTYPES: number of defined interface types
|
||||||
|
*
|
||||||
|
@@ -1022,6 +1050,8 @@ enum nl80211_iftype {
|
||||||
|
NL80211_IFTYPE_WDS,
|
||||||
|
NL80211_IFTYPE_MONITOR,
|
||||||
|
NL80211_IFTYPE_MESH_POINT,
|
||||||
|
+ NL80211_IFTYPE_P2P_CLIENT,
|
||||||
|
+ NL80211_IFTYPE_P2P_GO,
|
||||||
|
|
||||||
|
/* keep last */
|
||||||
|
NUM_NL80211_IFTYPES,
|
||||||
|
@@ -1111,6 +1141,8 @@ enum nl80211_rate_info {
|
||||||
|
* @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station)
|
||||||
|
* @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this
|
||||||
|
* station)
|
||||||
|
+ * @NL80211_STA_INFO_TX_RETRIES: total retries (u32, to this station)
|
||||||
|
+ * @NL80211_STA_INFO_TX_FAILED: total failed packets (u32, to this station)
|
||||||
|
*/
|
||||||
|
enum nl80211_sta_info {
|
||||||
|
__NL80211_STA_INFO_INVALID,
|
||||||
|
@@ -1124,6 +1156,8 @@ enum nl80211_sta_info {
|
||||||
|
NL80211_STA_INFO_TX_BITRATE,
|
||||||
|
NL80211_STA_INFO_RX_PACKETS,
|
||||||
|
NL80211_STA_INFO_TX_PACKETS,
|
||||||
|
+ NL80211_STA_INFO_TX_RETRIES,
|
||||||
|
+ NL80211_STA_INFO_TX_FAILED,
|
||||||
|
|
||||||
|
/* keep last */
|
||||||
|
__NL80211_STA_INFO_AFTER_LAST,
|
||||||
|
@@ -1382,6 +1416,17 @@ enum nl80211_reg_rule_flags {
|
||||||
|
* @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved
|
||||||
|
* @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel
|
||||||
|
* @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm)
|
||||||
|
+ * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used
|
||||||
|
+ * @NL80211_SURVEY_INFO_CHANNEL_TIME: amount of time (in ms) that the radio
|
||||||
|
+ * spent on this channel
|
||||||
|
+ * @NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY: amount of the time the primary
|
||||||
|
+ * channel was sensed busy (either due to activity or energy detect)
|
||||||
|
+ * @NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY: amount of time the extension
|
||||||
|
+ * channel was sensed busy
|
||||||
|
+ * @NL80211_SURVEY_INFO_CHANNEL_TIME_RX: amount of time the radio spent
|
||||||
|
+ * receiving data
|
||||||
|
+ * @NL80211_SURVEY_INFO_CHANNEL_TIME_TX: amount of time the radio spent
|
||||||
|
+ * transmitting data
|
||||||
|
* @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
|
||||||
|
* currently defined
|
||||||
|
* @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
|
||||||
|
@@ -1390,6 +1435,12 @@ enum nl80211_survey_info {
|
||||||
|
__NL80211_SURVEY_INFO_INVALID,
|
||||||
|
NL80211_SURVEY_INFO_FREQUENCY,
|
||||||
|
NL80211_SURVEY_INFO_NOISE,
|
||||||
|
+ NL80211_SURVEY_INFO_IN_USE,
|
||||||
|
+ NL80211_SURVEY_INFO_CHANNEL_TIME,
|
||||||
|
+ NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY,
|
||||||
|
+ NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY,
|
||||||
|
+ NL80211_SURVEY_INFO_CHANNEL_TIME_RX,
|
||||||
|
+ NL80211_SURVEY_INFO_CHANNEL_TIME_TX,
|
||||||
|
|
||||||
|
/* keep last */
|
||||||
|
__NL80211_SURVEY_INFO_AFTER_LAST,
|
||||||
|
@@ -1636,11 +1687,14 @@ enum nl80211_auth_type {
|
||||||
|
* @NL80211_KEYTYPE_GROUP: Group (broadcast/multicast) key
|
||||||
|
* @NL80211_KEYTYPE_PAIRWISE: Pairwise (unicast/individual) key
|
||||||
|
* @NL80211_KEYTYPE_PEERKEY: PeerKey (DLS)
|
||||||
|
+ * @NUM_NL80211_KEYTYPES: number of defined key types
|
||||||
|
*/
|
||||||
|
enum nl80211_key_type {
|
||||||
|
NL80211_KEYTYPE_GROUP,
|
||||||
|
NL80211_KEYTYPE_PAIRWISE,
|
||||||
|
NL80211_KEYTYPE_PEERKEY,
|
||||||
|
+
|
||||||
|
+ NUM_NL80211_KEYTYPES
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -1671,6 +1725,9 @@ enum nl80211_wpa_versions {
|
||||||
|
* CCMP keys, each six bytes in little endian
|
||||||
|
* @NL80211_KEY_DEFAULT: flag indicating default key
|
||||||
|
* @NL80211_KEY_DEFAULT_MGMT: flag indicating default management key
|
||||||
|
+ * @NL80211_KEY_TYPE: the key type from enum nl80211_key_type, if not
|
||||||
|
+ * specified the default depends on whether a MAC address was
|
||||||
|
+ * given with the command using the key or not (u32)
|
||||||
|
* @__NL80211_KEY_AFTER_LAST: internal
|
||||||
|
* @NL80211_KEY_MAX: highest key attribute
|
||||||
|
*/
|
||||||
|
@@ -1682,6 +1739,7 @@ enum nl80211_key_attributes {
|
||||||
|
NL80211_KEY_SEQ,
|
||||||
|
NL80211_KEY_DEFAULT,
|
||||||
|
NL80211_KEY_DEFAULT_MGMT,
|
||||||
|
+ NL80211_KEY_TYPE,
|
||||||
|
|
||||||
|
/* keep last */
|
||||||
|
__NL80211_KEY_AFTER_LAST,
|
@ -1,167 +0,0 @@
|
|||||||
--- a/nl80211.h
|
|
||||||
+++ b/nl80211.h
|
|
||||||
@@ -270,6 +270,35 @@
|
|
||||||
* @NL80211_CMD_SET_WIPHY_NETNS: Set a wiphy's netns. Note that all devices
|
|
||||||
* associated with this wiphy must be down and will follow.
|
|
||||||
*
|
|
||||||
+ * @NL80211_CMD_REMAIN_ON_CHANNEL: Request to remain awake on the specified
|
|
||||||
+ * channel for the specified amount of time. This can be used to do
|
|
||||||
+ * off-channel operations like transmit a Public Action frame and wait for
|
|
||||||
+ * a response while being associated to an AP on another channel.
|
|
||||||
+ * %NL80211_ATTR_WIPHY or %NL80211_ATTR_IFINDEX is used to specify which
|
|
||||||
+ * radio is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the
|
|
||||||
+ * frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be
|
|
||||||
+ * optionally used to specify additional channel parameters.
|
|
||||||
+ * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds
|
|
||||||
+ * to remain on the channel. This command is also used as an event to
|
|
||||||
+ * notify when the requested duration starts (it may take a while for the
|
|
||||||
+ * driver to schedule this time due to other concurrent needs for the
|
|
||||||
+ * radio).
|
|
||||||
+ * When called, this operation returns a cookie (%NL80211_ATTR_COOKIE)
|
|
||||||
+ * that will be included with any events pertaining to this request;
|
|
||||||
+ * the cookie is also used to cancel the request.
|
|
||||||
+ * @NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL: This command can be used to cancel a
|
|
||||||
+ * pending remain-on-channel duration if the desired operation has been
|
|
||||||
+ * completed prior to expiration of the originally requested duration.
|
|
||||||
+ * %NL80211_ATTR_WIPHY or %NL80211_ATTR_IFINDEX is used to specify the
|
|
||||||
+ * radio. The %NL80211_ATTR_COOKIE attribute must be given as well to
|
|
||||||
+ * uniquely identify the request.
|
|
||||||
+ * This command is also used as an event to notify when a requested
|
|
||||||
+ * remain-on-channel duration has expired.
|
|
||||||
+ *
|
|
||||||
+ * @NL80211_CMD_SET_TX_BITRATE_MASK: Set the mask of rates to be used in TX
|
|
||||||
+ * rate selection. %NL80211_ATTR_IFINDEX is used to specify the interface
|
|
||||||
+ * and @NL80211_ATTR_TX_RATES the set of allowed rates.
|
|
||||||
+ *
|
|
||||||
* @NL80211_CMD_MAX: highest used command number
|
|
||||||
* @__NL80211_CMD_AFTER_LAST: internal use
|
|
||||||
*/
|
|
||||||
@@ -349,6 +378,15 @@ enum nl80211_commands {
|
|
||||||
NL80211_CMD_GET_SURVEY,
|
|
||||||
NL80211_CMD_NEW_SURVEY_RESULTS,
|
|
||||||
|
|
||||||
+ NL80211_CMD_SET_PMKSA,
|
|
||||||
+ NL80211_CMD_DEL_PMKSA,
|
|
||||||
+ NL80211_CMD_FLUSH_PMKSA,
|
|
||||||
+
|
|
||||||
+ NL80211_CMD_REMAIN_ON_CHANNEL,
|
|
||||||
+ NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL,
|
|
||||||
+
|
|
||||||
+ NL80211_CMD_SET_TX_BITRATE_MASK,
|
|
||||||
+
|
|
||||||
/* add new commands above here */
|
|
||||||
|
|
||||||
/* used to define NL80211_CMD_MAX below */
|
|
||||||
@@ -398,6 +436,8 @@ enum nl80211_commands {
|
|
||||||
* @NL80211_ATTR_WIPHY_RTS_THRESHOLD: RTS threshold (TX frames with length
|
|
||||||
* larger than or equal to this use RTS/CTS handshake); allowed range:
|
|
||||||
* 0..65536, disable with (u32)-1; dot11RTSThreshold; u32
|
|
||||||
+ * @NL80211_ATTR_WIPHY_COVERAGE_CLASS: Coverage Class as defined by IEEE 802.11
|
|
||||||
+ * section 7.3.2.9; dot11CoverageClass; u8
|
|
||||||
*
|
|
||||||
* @NL80211_ATTR_IFINDEX: network interface index of the device to operate on
|
|
||||||
* @NL80211_ATTR_IFNAME: network interface name
|
|
||||||
@@ -598,6 +638,21 @@ enum nl80211_commands {
|
|
||||||
* the survey response for %NL80211_CMD_GET_SURVEY, nested attribute
|
|
||||||
* containing info as possible, see &enum survey_info.
|
|
||||||
*
|
|
||||||
+ * @NL80211_ATTR_PMKID: PMK material for PMKSA caching.
|
|
||||||
+ * @NL80211_ATTR_MAX_NUM_PMKIDS: maximum number of PMKIDs a firmware can
|
|
||||||
+ * cache, a wiphy attribute.
|
|
||||||
+ *
|
|
||||||
+ * @NL80211_ATTR_DURATION: Duration of an operation in milliseconds, u32.
|
|
||||||
+ *
|
|
||||||
+ * @NL80211_ATTR_COOKIE: Generic 64-bit cookie to identify objects.
|
|
||||||
+ *
|
|
||||||
+ * @NL80211_ATTR_TX_RATES: Nested set of attributes
|
|
||||||
+ * (enum nl80211_tx_rate_attributes) describing TX rates per band. The
|
|
||||||
+ * enum nl80211_band value is used as the index (nla_type() of the nested
|
|
||||||
+ * data. If a band is not included, it will be configured to allow all
|
|
||||||
+ * rates based on negotiated supported rates information. This attribute
|
|
||||||
+ * is used with %NL80211_CMD_SET_TX_BITRATE_MASK.
|
|
||||||
+ *
|
|
||||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
|
||||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
|
||||||
*/
|
|
||||||
@@ -732,6 +787,17 @@ enum nl80211_attrs {
|
|
||||||
|
|
||||||
NL80211_ATTR_SURVEY_INFO,
|
|
||||||
|
|
||||||
+ NL80211_ATTR_PMKID,
|
|
||||||
+ NL80211_ATTR_MAX_NUM_PMKIDS,
|
|
||||||
+
|
|
||||||
+ NL80211_ATTR_DURATION,
|
|
||||||
+
|
|
||||||
+ NL80211_ATTR_COOKIE,
|
|
||||||
+
|
|
||||||
+ NL80211_ATTR_WIPHY_COVERAGE_CLASS,
|
|
||||||
+
|
|
||||||
+ NL80211_ATTR_TX_RATES,
|
|
||||||
+
|
|
||||||
/* add attributes here, update the policy in nl80211.c */
|
|
||||||
|
|
||||||
__NL80211_ATTR_AFTER_LAST,
|
|
||||||
@@ -1312,13 +1378,20 @@ enum nl80211_channel_type {
|
|
||||||
* @NL80211_BSS_BEACON_INTERVAL: beacon interval of the (I)BSS (u16)
|
|
||||||
* @NL80211_BSS_CAPABILITY: capability field (CPU order, u16)
|
|
||||||
* @NL80211_BSS_INFORMATION_ELEMENTS: binary attribute containing the
|
|
||||||
- * raw information elements from the probe response/beacon (bin)
|
|
||||||
+ * raw information elements from the probe response/beacon (bin);
|
|
||||||
+ * if the %NL80211_BSS_BEACON_IES attribute is present, the IEs here are
|
|
||||||
+ * from a Probe Response frame; otherwise they are from a Beacon frame.
|
|
||||||
+ * However, if the driver does not indicate the source of the IEs, these
|
|
||||||
+ * IEs may be from either frame subtype.
|
|
||||||
* @NL80211_BSS_SIGNAL_MBM: signal strength of probe response/beacon
|
|
||||||
* in mBm (100 * dBm) (s32)
|
|
||||||
* @NL80211_BSS_SIGNAL_UNSPEC: signal strength of the probe response/beacon
|
|
||||||
* in unspecified units, scaled to 0..100 (u8)
|
|
||||||
* @NL80211_BSS_STATUS: status, if this BSS is "used"
|
|
||||||
* @NL80211_BSS_SEEN_MS_AGO: age of this BSS entry in ms
|
|
||||||
+ * @NL80211_BSS_BEACON_IES: binary attribute containing the raw information
|
|
||||||
+ * elements from a Beacon frame (bin); not present if no Beacon frame has
|
|
||||||
+ * yet been received
|
|
||||||
* @__NL80211_BSS_AFTER_LAST: internal
|
|
||||||
* @NL80211_BSS_MAX: highest BSS attribute
|
|
||||||
*/
|
|
||||||
@@ -1334,6 +1407,7 @@ enum nl80211_bss {
|
|
||||||
NL80211_BSS_SIGNAL_UNSPEC,
|
|
||||||
NL80211_BSS_STATUS,
|
|
||||||
NL80211_BSS_SEEN_MS_AGO,
|
|
||||||
+ NL80211_BSS_BEACON_IES,
|
|
||||||
|
|
||||||
/* keep last */
|
|
||||||
__NL80211_BSS_AFTER_LAST,
|
|
||||||
@@ -1431,4 +1505,33 @@ enum nl80211_key_attributes {
|
|
||||||
NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1
|
|
||||||
};
|
|
||||||
|
|
||||||
+/**
|
|
||||||
+ * enum nl80211_tx_rate_attributes - TX rate set attributes
|
|
||||||
+ * @__NL80211_TXRATE_INVALID: invalid
|
|
||||||
+ * @NL80211_TXRATE_LEGACY: Legacy (non-MCS) rates allowed for TX rate selection
|
|
||||||
+ * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with
|
|
||||||
+ * 1 = 500 kbps) but without the IE length restriction (at most
|
|
||||||
+ * %NL80211_MAX_SUPP_RATES in a single array).
|
|
||||||
+ * @__NL80211_TXRATE_AFTER_LAST: internal
|
|
||||||
+ * @NL80211_TXRATE_MAX: highest TX rate attribute
|
|
||||||
+ */
|
|
||||||
+enum nl80211_tx_rate_attributes {
|
|
||||||
+ __NL80211_TXRATE_INVALID,
|
|
||||||
+ NL80211_TXRATE_LEGACY,
|
|
||||||
+
|
|
||||||
+ /* keep last */
|
|
||||||
+ __NL80211_TXRATE_AFTER_LAST,
|
|
||||||
+ NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * enum nl80211_band - Frequency band
|
|
||||||
+ * @NL80211_BAND_2GHZ - 2.4 GHz ISM band
|
|
||||||
+ * @NL80211_BAND_5GHZ - around 5 GHz band (4.9 - 5.7 GHz)
|
|
||||||
+ */
|
|
||||||
+enum nl80211_band {
|
|
||||||
+ NL80211_BAND_2GHZ,
|
|
||||||
+ NL80211_BAND_5GHZ,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
#endif /* __LINUX_NL80211_H */
|
|
@ -1,81 +0,0 @@
|
|||||||
--- a/info.c
|
|
||||||
+++ b/info.c
|
|
||||||
@@ -156,6 +156,14 @@ static int print_phy_handler(struct nl_m
|
|
||||||
printf("\tRTS threshold: %d\n", rts);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (tb_msg[NL80211_ATTR_WIPHY_COVERAGE_CLASS]) {
|
|
||||||
+ unsigned char coverage;
|
|
||||||
+
|
|
||||||
+ coverage = nla_get_u8(tb_msg[NL80211_ATTR_WIPHY_COVERAGE_CLASS]);
|
|
||||||
+ /* See handle_distance() for an explanation where the '450' comes from */
|
|
||||||
+ printf("\tCoverage class: %d (up to %dm)\n", coverage, 450 * coverage);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (!tb_msg[NL80211_ATTR_SUPPORTED_IFTYPES])
|
|
||||||
goto commands;
|
|
||||||
|
|
||||||
--- a/phy.c
|
|
||||||
+++ b/phy.c
|
|
||||||
@@ -164,3 +164,61 @@ static int handle_netns(struct nl80211_s
|
|
||||||
COMMAND(set, netns, "<pid>",
|
|
||||||
NL80211_CMD_SET_WIPHY_NETNS, 0, CIB_PHY, handle_netns,
|
|
||||||
"Put this wireless device into a different network namespace");
|
|
||||||
+
|
|
||||||
+static int handle_coverage(struct nl80211_state *state,
|
|
||||||
+ struct nl_cb *cb,
|
|
||||||
+ struct nl_msg *msg,
|
|
||||||
+ int argc, char **argv)
|
|
||||||
+{
|
|
||||||
+ unsigned int coverage;
|
|
||||||
+
|
|
||||||
+ if (argc != 1)
|
|
||||||
+ return 1;
|
|
||||||
+
|
|
||||||
+ coverage = strtoul(argv[0], NULL, 10);
|
|
||||||
+ if (coverage > 255)
|
|
||||||
+ return 1;
|
|
||||||
+
|
|
||||||
+ NLA_PUT_U8(msg, NL80211_ATTR_WIPHY_COVERAGE_CLASS, coverage);
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+ nla_put_failure:
|
|
||||||
+ return -ENOBUFS;
|
|
||||||
+}
|
|
||||||
+COMMAND(set, coverage, "<coverage class>",
|
|
||||||
+ NL80211_CMD_SET_WIPHY, 0, CIB_PHY, handle_coverage,
|
|
||||||
+ "Set coverage class (1 for every 3 usec of air propagation time).\n"
|
|
||||||
+ "Valid values: 0 - 255.");
|
|
||||||
+
|
|
||||||
+static int handle_distance(struct nl80211_state *state,
|
|
||||||
+ struct nl_cb *cb,
|
|
||||||
+ struct nl_msg *msg,
|
|
||||||
+ int argc, char **argv)
|
|
||||||
+{
|
|
||||||
+ unsigned int distance, coverage;
|
|
||||||
+
|
|
||||||
+ if (argc != 1)
|
|
||||||
+ return 1;
|
|
||||||
+
|
|
||||||
+ distance = strtoul(argv[0], NULL, 10);
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * Divide double the distance by the speed of light in m/usec (300) to
|
|
||||||
+ * get round-trip time in microseconds and then divide the result by
|
|
||||||
+ * three to get coverage class as specified in IEEE 802.11-2007 table
|
|
||||||
+ * 7-27. Values are rounded upwards.
|
|
||||||
+ */
|
|
||||||
+ coverage = (distance + 449) / 450;
|
|
||||||
+ if (coverage > 255)
|
|
||||||
+ return 1;
|
|
||||||
+
|
|
||||||
+ NLA_PUT_U8(msg, NL80211_ATTR_WIPHY_COVERAGE_CLASS, coverage);
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+ nla_put_failure:
|
|
||||||
+ return -ENOBUFS;
|
|
||||||
+}
|
|
||||||
+COMMAND(set, distance, "<distance>",
|
|
||||||
+ NL80211_CMD_SET_WIPHY, 0, CIB_PHY, handle_distance,
|
|
||||||
+ "Set appropriate coverage class for given link distance in meters.\n"
|
|
||||||
+ "Valid values: 0 - 114750");
|
|
14
package/iw/patches/100-survey_freq_in_use.patch
Normal file
14
package/iw/patches/100-survey_freq_in_use.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
--- a/survey.c
|
||||||
|
+++ b/survey.c
|
||||||
|
@@ -44,8 +44,9 @@ static int print_survey_handler(struct n
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sinfo[NL80211_SURVEY_INFO_FREQUENCY])
|
||||||
|
- printf("\tfrequency:\t%u MHz\n",
|
||||||
|
- nla_get_u32(sinfo[NL80211_SURVEY_INFO_FREQUENCY]));
|
||||||
|
+ printf("\tfrequency:\t%u MHz%s\n",
|
||||||
|
+ nla_get_u32(sinfo[NL80211_SURVEY_INFO_FREQUENCY]),
|
||||||
|
+ sinfo[NL80211_SURVEY_INFO_IN_USE] ? " [in use]" : "");
|
||||||
|
if (sinfo[NL80211_SURVEY_INFO_NOISE])
|
||||||
|
printf("\tnoise:\t\t%d dBm\n",
|
||||||
|
(int8_t)nla_get_u8(sinfo[NL80211_SURVEY_INFO_NOISE]));
|
@ -1,30 +0,0 @@
|
|||||||
--- a/interface.c
|
|
||||||
+++ b/interface.c
|
|
||||||
@@ -260,6 +260,27 @@ static int print_iface_handler(struct nl
|
|
||||||
printf("%s\tifindex %d\n", indent, nla_get_u32(tb_msg[NL80211_ATTR_IFINDEX]));
|
|
||||||
if (tb_msg[NL80211_ATTR_IFTYPE])
|
|
||||||
printf("%s\ttype %s\n", indent, iftype_name(nla_get_u32(tb_msg[NL80211_ATTR_IFTYPE])));
|
|
||||||
+ if (tb_msg[NL80211_ATTR_WIPHY_FREQ]) {
|
|
||||||
+ const char *mode;
|
|
||||||
+
|
|
||||||
+ if (tb_msg[NL80211_ATTR_WIPHY_CHANNEL_TYPE])
|
|
||||||
+ switch(nla_get_u32(tb_msg[NL80211_ATTR_WIPHY_CHANNEL_TYPE])) {
|
|
||||||
+ case NL80211_CHAN_HT20:
|
|
||||||
+ mode = "HT20";
|
|
||||||
+ break;
|
|
||||||
+ case NL80211_CHAN_HT40PLUS:
|
|
||||||
+ mode = "HT40+";
|
|
||||||
+ break;
|
|
||||||
+ case NL80211_CHAN_HT40MINUS:
|
|
||||||
+ mode = "HT40-";
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
+ mode = "";
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ printf("%s\tfrequency %d MHz %s\n", indent, nla_get_u32(tb_msg[NL80211_ATTR_WIPHY_FREQ]), mode);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
|
|
||||||
return NL_SKIP;
|
|
||||||
}
|
|
32
package/iw/patches/110-survey_phy_stats.patch
Normal file
32
package/iw/patches/110-survey_phy_stats.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
--- a/survey.c
|
||||||
|
+++ b/survey.c
|
||||||
|
@@ -44,12 +44,27 @@ static int print_survey_handler(struct n
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sinfo[NL80211_SURVEY_INFO_FREQUENCY])
|
||||||
|
- printf("\tfrequency:\t%u MHz%s\n",
|
||||||
|
+ printf("\tfrequency:\t\t\t%u MHz%s\n",
|
||||||
|
nla_get_u32(sinfo[NL80211_SURVEY_INFO_FREQUENCY]),
|
||||||
|
sinfo[NL80211_SURVEY_INFO_IN_USE] ? " [in use]" : "");
|
||||||
|
if (sinfo[NL80211_SURVEY_INFO_NOISE])
|
||||||
|
- printf("\tnoise:\t\t%d dBm\n",
|
||||||
|
+ printf("\tnoise:\t\t\t\t%d dBm\n",
|
||||||
|
(int8_t)nla_get_u8(sinfo[NL80211_SURVEY_INFO_NOISE]));
|
||||||
|
+ if (sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME])
|
||||||
|
+ printf("\tchannel active time:\t\t%lld ms\n",
|
||||||
|
+ (int64_t)nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME]));
|
||||||
|
+ if (sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY])
|
||||||
|
+ printf("\tchannel busy time:\t\t%lld ms\n",
|
||||||
|
+ (int64_t)nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY]));
|
||||||
|
+ if (sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY])
|
||||||
|
+ printf("\textension channel busy time:\t%lld ms\n",
|
||||||
|
+ (int64_t)nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY]));
|
||||||
|
+ if (sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_RX])
|
||||||
|
+ printf("\tchannel receive time:\t\t%lld ms\n",
|
||||||
|
+ (int64_t)nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_RX]));
|
||||||
|
+ if (sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_TX])
|
||||||
|
+ printf("\tchannel transmit time:\t\t%lld ms\n",
|
||||||
|
+ (int64_t)nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_TX]));
|
||||||
|
return NL_SKIP;
|
||||||
|
}
|
||||||
|
|
32
package/iw/patches/120-ibss_mcast_rate.patch
Normal file
32
package/iw/patches/120-ibss_mcast_rate.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
--- a/ibss.c
|
||||||
|
+++ b/ibss.c
|
||||||
|
@@ -83,6 +83,20 @@ static int join_ibss(struct nl80211_stat
|
||||||
|
argc--;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* multicast rate */
|
||||||
|
+ if (argc > 1 && strcmp(argv[0], "mcast-rate") == 0) {
|
||||||
|
+ argv++;
|
||||||
|
+ argc--;
|
||||||
|
+
|
||||||
|
+ rate = strtod(argv[0], &end);
|
||||||
|
+ if (*end != '\0')
|
||||||
|
+ return 1;
|
||||||
|
+
|
||||||
|
+ NLA_PUT_U32(msg, NL80211_ATTR_MCAST_RATE, (int) rate * 10);
|
||||||
|
+ argv++;
|
||||||
|
+ argc--;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (!argc)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
@@ -109,7 +123,7 @@ COMMAND(ibss, leave, NULL,
|
||||||
|
"Leave the current IBSS cell.");
|
||||||
|
COMMAND(ibss, join,
|
||||||
|
"<SSID> <freq in MHz> [fixed-freq] [<fixed bssid>] "
|
||||||
|
- "[basic-rates <rate in Mbps,rate2,...>] [key d:0:abcde]",
|
||||||
|
+ "[basic-rates <rate in Mbps,rate2,...>] [mcast-rate <rate in Mbps>] [key d:0:abcde]",
|
||||||
|
NL80211_CMD_JOIN_IBSS, 0, CIB_NETDEV, join_ibss,
|
||||||
|
"Join the IBSS cell with the given SSID, if it doesn't exist create\n"
|
||||||
|
"it on the given frequency. When fixed frequency is requested, don't\n"
|
@ -9,6 +9,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
include $(INCLUDE_DIR)/kernel.mk
|
include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=kernel
|
PKG_NAME:=kernel
|
||||||
|
PKG_FLAGS:=hold
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/packages
|
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/packages
|
||||||
SCAN_DEPS=modules/*.mk
|
SCAN_DEPS=modules/*.mk
|
||||||
|
@ -146,6 +146,22 @@ endef
|
|||||||
$(eval $(call KernelPackage,8139too))
|
$(eval $(call KernelPackage,8139too))
|
||||||
|
|
||||||
|
|
||||||
|
define KernelPackage/8139cp
|
||||||
|
SUBMENU:=$(NETWORK_DEVICES_MENU)
|
||||||
|
TITLE:=RealTek RTL-8139C+ PCI Fast Ethernet Adapter kernel support
|
||||||
|
DEPENDS:=@TARGET_x86
|
||||||
|
KCONFIG:=CONFIG_8139CP
|
||||||
|
FILES:=$(LINUX_DIR)/drivers/net/8139cp.$(LINUX_KMOD_SUFFIX)
|
||||||
|
AUTOLOAD:=$(call AutoLoad,50,8139cp)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/8139cp/description
|
||||||
|
Kernel module for RealTek RTL-8139C+ PCI Fast Ethernet adapters.
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call KernelPackage,8139cp))
|
||||||
|
|
||||||
|
|
||||||
define KernelPackage/r8169
|
define KernelPackage/r8169
|
||||||
SUBMENU:=$(NETWORK_DEVICES_MENU)
|
SUBMENU:=$(NETWORK_DEVICES_MENU)
|
||||||
TITLE:=RealTek RTL-8169 PCI Gigabit Ethernet Adapter kernel support
|
TITLE:=RealTek RTL-8169 PCI Gigabit Ethernet Adapter kernel support
|
||||||
|
@ -85,7 +85,7 @@ $(eval $(call KernelPackage,video-konica))
|
|||||||
define KernelPackage/video-ov511
|
define KernelPackage/video-ov511
|
||||||
$(call KernelPackage/video/Depends,@LINUX_2_6 @USB_SUPPORT +kmod-usb-core)
|
$(call KernelPackage/video/Depends,@LINUX_2_6 @USB_SUPPORT +kmod-usb-core)
|
||||||
TITLE:=OV511 USB webcam support
|
TITLE:=OV511 USB webcam support
|
||||||
KCONFIG:=CONFIG_VIDEO_OV511
|
KCONFIG:=CONFIG_USB_OV511
|
||||||
FILES:=$(LINUX_DIR)/drivers/media/video/ov511.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(LINUX_DIR)/drivers/media/video/ov511.$(LINUX_KMOD_SUFFIX)
|
||||||
AUTOLOAD:=$(call AutoLoad,70,ov511)
|
AUTOLOAD:=$(call AutoLoad,70,ov511)
|
||||||
endef
|
endef
|
||||||
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
|
|
||||||
PKG_NAME:=lua
|
PKG_NAME:=lua
|
||||||
PKG_VERSION:=5.1.4
|
PKG_VERSION:=5.1.4
|
||||||
PKG_RELEASE:=6
|
PKG_RELEASE:=7
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=http://www.lua.org/ftp/ \
|
PKG_SOURCE_URL:=http://www.lua.org/ftp/ \
|
||||||
|
11
package/lua/patches-host/011-lnum-use-double.patch
Normal file
11
package/lua/patches-host/011-lnum-use-double.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- a/src/lnum_config.h
|
||||||
|
+++ b/src/lnum_config.h
|
||||||
|
@@ -11,7 +11,7 @@
|
||||||
|
** Default number modes
|
||||||
|
*/
|
||||||
|
#if (!defined LNUM_DOUBLE) && (!defined LNUM_FLOAT) && (!defined LNUM_LDOUBLE)
|
||||||
|
-# define LNUM_FLOAT
|
||||||
|
+# define LNUM_DOUBLE
|
||||||
|
#endif
|
||||||
|
#if (!defined LNUM_INT16) && (!defined LNUM_INT32) && (!defined LNUM_INT64)
|
||||||
|
# define LNUM_INT32
|
11
package/lua/patches/011-lnum-use-double.patch
Normal file
11
package/lua/patches/011-lnum-use-double.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- a/src/lnum_config.h
|
||||||
|
+++ b/src/lnum_config.h
|
||||||
|
@@ -11,7 +11,7 @@
|
||||||
|
** Default number modes
|
||||||
|
*/
|
||||||
|
#if (!defined LNUM_DOUBLE) && (!defined LNUM_FLOAT) && (!defined LNUM_LDOUBLE)
|
||||||
|
-# define LNUM_FLOAT
|
||||||
|
+# define LNUM_DOUBLE
|
||||||
|
#endif
|
||||||
|
#if (!defined LNUM_INT16) && (!defined LNUM_INT32) && (!defined LNUM_INT64)
|
||||||
|
# define LNUM_INT32
|
@ -10,23 +10,25 @@ include $(INCLUDE_DIR)/kernel.mk
|
|||||||
|
|
||||||
PKG_NAME:=mac80211
|
PKG_NAME:=mac80211
|
||||||
|
|
||||||
PKG_VERSION:=2010-07-29
|
PKG_VERSION:=2010-10-19
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
|
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
|
||||||
# http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \
|
# http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \
|
||||||
# http://wireless.kernel.org/download/compat-wireless-2.6
|
# http://wireless.kernel.org/download/compat-wireless-2.6
|
||||||
PKG_MD5SUM:=fcfb757939c4718efbf9c87ca59c6932
|
PKG_MD5SUM:=3bad1752f0154baa57a4d94774bd2ccf
|
||||||
|
|
||||||
PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
|
PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
|
||||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
|
||||||
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
||||||
PKG_CONFIG_DEPENDS:= \
|
PKG_CONFIG_DEPENDS:= \
|
||||||
CONFIG_PACKAGE_kmod-mac80211 \
|
CONFIG_PACKAGE_kmod-mac80211 \
|
||||||
CONFIG_PACKAGE_MAC80211_DEBUGFS \
|
CONFIG_PACKAGE_MAC80211_DEBUGFS \
|
||||||
CONFIG_PACKAGE_ATH9K_USE_MINSTREL \
|
|
||||||
CONFIG_PACKAGE_ATH_DEBUG \
|
CONFIG_PACKAGE_ATH_DEBUG \
|
||||||
CONFIG_ATH_USER_REGD \
|
CONFIG_ATH_USER_REGD \
|
||||||
|
|
||||||
|
CARL9170_FW_VERSION:=1.8.8.2
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
WMENU:=Wireless Drivers
|
WMENU:=Wireless Drivers
|
||||||
@ -35,23 +37,23 @@ define KernelPackage/mac80211/Default
|
|||||||
SUBMENU:=$(WMENU)
|
SUBMENU:=$(WMENU)
|
||||||
URL:=http://linuxwireless.org/
|
URL:=http://linuxwireless.org/
|
||||||
MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
|
MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
|
||||||
DEPENDS:=@!LINUX_2_4 @(!(TARGET_avr32||TARGET_ep93xx||TARGET_ps3||TARGET_pxcab)||BROKEN)
|
DEPENDS:=@(!(TARGET_avr32||TARGET_ep93xx||TARGET_ps3||TARGET_pxcab)||BROKEN)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define KernelPackage/cfg80211
|
define KernelPackage/cfg80211
|
||||||
$(call KernelPackage/mac80211/Default)
|
$(call KernelPackage/mac80211/Default)
|
||||||
TITLE:=cfg80211 - wireless configuration API
|
TITLE:=cfg80211 - wireless configuration API
|
||||||
DEPENDS+= +wireless-tools +iw @!LINUX_2_6_25
|
DEPENDS+= +wireless-tools +iw @!LINUX_2_6_25 @!LINUX_2_4 +crda
|
||||||
ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.33)),1)
|
ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.33)),1)
|
||||||
FILES:= \
|
FILES:= \
|
||||||
$(PKG_BUILD_DIR)/compat/compat.$(LINUX_KMOD_SUFFIX) \
|
$(PKG_BUILD_DIR)/compat/compat.ko \
|
||||||
$(PKG_BUILD_DIR)/net/wireless/cfg80211.$(LINUX_KMOD_SUFFIX)
|
$(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,20,compat cfg80211)
|
AUTOLOAD:=$(call AutoLoad,20,compat cfg80211)
|
||||||
else
|
else
|
||||||
FILES:= \
|
FILES:= \
|
||||||
$(PKG_BUILD_DIR)/compat/compat.$(LINUX_KMOD_SUFFIX) \
|
$(PKG_BUILD_DIR)/compat/compat.ko \
|
||||||
$(PKG_BUILD_DIR)/compat/compat_firmware_class.$(LINUX_KMOD_SUFFIX) \
|
$(PKG_BUILD_DIR)/compat/compat_firmware_class.ko \
|
||||||
$(PKG_BUILD_DIR)/net/wireless/cfg80211.$(LINUX_KMOD_SUFFIX)
|
$(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,20,compat compat_firmware_class cfg80211)
|
AUTOLOAD:=$(call AutoLoad,20,compat compat_firmware_class cfg80211)
|
||||||
endif
|
endif
|
||||||
endef
|
endef
|
||||||
@ -64,7 +66,7 @@ define KernelPackage/mac80211
|
|||||||
$(call KernelPackage/mac80211/Default)
|
$(call KernelPackage/mac80211/Default)
|
||||||
TITLE:=Linux 802.11 Wireless Networking Stack
|
TITLE:=Linux 802.11 Wireless Networking Stack
|
||||||
DEPENDS+= +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-cfg80211
|
DEPENDS+= +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-cfg80211
|
||||||
FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.$(LINUX_KMOD_SUFFIX)
|
FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,21,mac80211)
|
AUTOLOAD:=$(call AutoLoad,21,mac80211)
|
||||||
MENU:=1
|
MENU:=1
|
||||||
endef
|
endef
|
||||||
@ -92,6 +94,8 @@ endef
|
|||||||
# Prism54 drivers
|
# Prism54 drivers
|
||||||
P54PCIFW:=2.13.12.0.arm
|
P54PCIFW:=2.13.12.0.arm
|
||||||
P54USBFW:=2.13.24.0.lm87.arm
|
P54USBFW:=2.13.24.0.lm87.arm
|
||||||
|
P54SPIFW:=2.13.0.0.a.13.14.arm
|
||||||
|
CARL9170_FW:=carl9170-1.fw
|
||||||
|
|
||||||
define Download/p54usb
|
define Download/p54usb
|
||||||
FILE:=$(P54USBFW)
|
FILE:=$(P54USBFW)
|
||||||
@ -107,6 +111,20 @@ define Download/p54pci
|
|||||||
endef
|
endef
|
||||||
$(eval $(call Download,p54pci))
|
$(eval $(call Download,p54pci))
|
||||||
|
|
||||||
|
define Download/p54spi
|
||||||
|
FILE:=$(P54SPIFW)
|
||||||
|
URL:=http://daemonizer.de/prism54/prism54-fw/stlc4560
|
||||||
|
MD5SUM:=42661f8ecbadd88012807493f596081d
|
||||||
|
endef
|
||||||
|
$(eval $(call Download,p54spi))
|
||||||
|
|
||||||
|
define Download/carl9170
|
||||||
|
FILE:=$(CARL9170_FW)
|
||||||
|
URL:=http://www.kernel.org/pub/linux/kernel/people/chr/carl9170/fw/$(CARL9170_FW_VERSION)
|
||||||
|
MD5SUM:=114c43846ed1d2f89cc92bd0e2ec0589
|
||||||
|
endef
|
||||||
|
$(eval $(call Download,carl9170))
|
||||||
|
|
||||||
define KernelPackage/p54/Default
|
define KernelPackage/p54/Default
|
||||||
$(call KernelPackage/mac80211/Default)
|
$(call KernelPackage/mac80211/Default)
|
||||||
TITLE:=Prism54 Drivers
|
TITLE:=Prism54 Drivers
|
||||||
@ -118,9 +136,9 @@ endef
|
|||||||
|
|
||||||
define KernelPackage/p54-common
|
define KernelPackage/p54-common
|
||||||
$(call KernelPackage/p54/Default)
|
$(call KernelPackage/p54/Default)
|
||||||
DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT +kmod-mac80211
|
DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT||@TARGET_omap24xx +kmod-mac80211 +kmod-crc-ccitt
|
||||||
TITLE+= (COMMON)
|
TITLE+= (COMMON)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54common.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54common.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,30,p54common)
|
AUTOLOAD:=$(call AutoLoad,30,p54common)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -128,7 +146,7 @@ define KernelPackage/p54-pci
|
|||||||
$(call KernelPackage/p54/Default)
|
$(call KernelPackage/p54/Default)
|
||||||
TITLE+= (PCI)
|
TITLE+= (PCI)
|
||||||
DEPENDS+= @PCI_SUPPORT +kmod-p54-common
|
DEPENDS+= @PCI_SUPPORT +kmod-p54-common
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54pci.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54pci.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,31,p54pci)
|
AUTOLOAD:=$(call AutoLoad,31,p54pci)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -136,10 +154,18 @@ define KernelPackage/p54-usb
|
|||||||
$(call KernelPackage/p54/Default)
|
$(call KernelPackage/p54/Default)
|
||||||
TITLE+= (USB)
|
TITLE+= (USB)
|
||||||
DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common
|
DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54usb.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54usb.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,31,p54usb)
|
AUTOLOAD:=$(call AutoLoad,31,p54usb)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/p54-spi
|
||||||
|
$(call KernelPackage/p54/Default)
|
||||||
|
TITLE+= (SPI)
|
||||||
|
DEPENDS+= @TARGET_omap24xx +kmod-p54-common
|
||||||
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54spi.ko
|
||||||
|
AUTOLOAD:=$(call AutoLoad,31,p54spi)
|
||||||
|
endef
|
||||||
|
|
||||||
# Ralink rt2x00 drivers
|
# Ralink rt2x00 drivers
|
||||||
RT61FW:=RT61_Firmware_V1.2.zip
|
RT61FW:=RT61_Firmware_V1.2.zip
|
||||||
RT71FW:=RT71W_Firmware_V1.8.zip
|
RT71FW:=RT71W_Firmware_V1.8.zip
|
||||||
@ -197,7 +223,7 @@ define KernelPackage/rt2x00-lib
|
|||||||
$(call KernelPackage/rt2x00/Default)
|
$(call KernelPackage/rt2x00/Default)
|
||||||
DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-mac80211 +kmod-crc-itu-t
|
DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-mac80211 +kmod-crc-itu-t
|
||||||
TITLE+= (LIB)
|
TITLE+= (LIB)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00lib.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00lib.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,25,rt2x00lib)
|
AUTOLOAD:=$(call AutoLoad,25,rt2x00lib)
|
||||||
MENU:=1
|
MENU:=1
|
||||||
endef
|
endef
|
||||||
@ -226,7 +252,7 @@ define KernelPackage/rt2x00-pci
|
|||||||
$(call KernelPackage/rt2x00/Default)
|
$(call KernelPackage/rt2x00/Default)
|
||||||
DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-eeprom-93cx6
|
DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-eeprom-93cx6
|
||||||
TITLE+= (PCI)
|
TITLE+= (PCI)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00pci.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00pci.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,26,rt2x00pci)
|
AUTOLOAD:=$(call AutoLoad,26,rt2x00pci)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -234,7 +260,7 @@ define KernelPackage/rt2x00-usb
|
|||||||
$(call KernelPackage/rt2x00/Default)
|
$(call KernelPackage/rt2x00/Default)
|
||||||
DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core
|
DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core
|
||||||
TITLE+= (USB)
|
TITLE+= (USB)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00usb.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00usb.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,26,rt2x00usb)
|
AUTOLOAD:=$(call AutoLoad,26,rt2x00usb)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -242,7 +268,7 @@ define KernelPackage/rt2x00-soc
|
|||||||
$(call KernelPackage/rt2x00/Default)
|
$(call KernelPackage/rt2x00/Default)
|
||||||
DEPENDS+= @TARGET_ramips +kmod-rt2x00-lib
|
DEPENDS+= @TARGET_ramips +kmod-rt2x00-lib
|
||||||
TITLE+= (SoC)
|
TITLE+= (SoC)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00soc.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00soc.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,26,rt2x00soc)
|
AUTOLOAD:=$(call AutoLoad,26,rt2x00soc)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -250,7 +276,7 @@ define KernelPackage/rt2800-lib
|
|||||||
$(call KernelPackage/rt2x00/Default)
|
$(call KernelPackage/rt2x00/Default)
|
||||||
DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +USB_SUPPORT:kmod-rt2x00-usb +TARGET_ramips:kmod-rt2x00-soc
|
DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +USB_SUPPORT:kmod-rt2x00-usb +TARGET_ramips:kmod-rt2x00-soc
|
||||||
TITLE+= (rt2800 LIB)
|
TITLE+= (rt2800 LIB)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800lib.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800lib.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,rt2800lib)
|
AUTOLOAD:=$(call AutoLoad,27,rt2800lib)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -258,7 +284,7 @@ define KernelPackage/rt2400-pci
|
|||||||
$(call KernelPackage/rt2x00/Default)
|
$(call KernelPackage/rt2x00/Default)
|
||||||
DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
|
DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
|
||||||
TITLE+= (RT2400 PCI)
|
TITLE+= (RT2400 PCI)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2400pci.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2400pci.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,rt2400pci)
|
AUTOLOAD:=$(call AutoLoad,27,rt2400pci)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -266,7 +292,7 @@ define KernelPackage/rt2500-pci
|
|||||||
$(call KernelPackage/rt2x00/Default)
|
$(call KernelPackage/rt2x00/Default)
|
||||||
DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
|
DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
|
||||||
TITLE+= (RT2500 PCI)
|
TITLE+= (RT2500 PCI)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500pci.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500pci.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,rt2500pci)
|
AUTOLOAD:=$(call AutoLoad,27,rt2500pci)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -274,7 +300,7 @@ define KernelPackage/rt2500-usb
|
|||||||
$(call KernelPackage/rt2x00/Default)
|
$(call KernelPackage/rt2x00/Default)
|
||||||
DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
|
DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
|
||||||
TITLE+= (RT2500 USB)
|
TITLE+= (RT2500 USB)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500usb.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500usb.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,rt2500usb)
|
AUTOLOAD:=$(call AutoLoad,27,rt2500usb)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -282,7 +308,7 @@ define KernelPackage/rt61-pci
|
|||||||
$(call KernelPackage/rt2x00/Default)
|
$(call KernelPackage/rt2x00/Default)
|
||||||
DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
|
DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
|
||||||
TITLE+= (RT2x61 PCI)
|
TITLE+= (RT2x61 PCI)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt61pci.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt61pci.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,rt61pci)
|
AUTOLOAD:=$(call AutoLoad,27,rt61pci)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -290,7 +316,7 @@ define KernelPackage/rt73-usb
|
|||||||
$(call KernelPackage/rt2x00/Default)
|
$(call KernelPackage/rt2x00/Default)
|
||||||
DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
|
DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
|
||||||
TITLE+= (RT73 USB)
|
TITLE+= (RT73 USB)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt73usb.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt73usb.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,rt73usb)
|
AUTOLOAD:=$(call AutoLoad,27,rt73usb)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -298,7 +324,7 @@ define KernelPackage/rt2800-pci
|
|||||||
$(call KernelPackage/rt2x00/Default)
|
$(call KernelPackage/rt2x00/Default)
|
||||||
DEPENDS+= +kmod-rt2x00-pci +kmod-rt2800-lib +kmod-crc-ccitt +TARGET_ramips:kmod-rt2x00-soc
|
DEPENDS+= +kmod-rt2x00-pci +kmod-rt2800-lib +kmod-crc-ccitt +TARGET_ramips:kmod-rt2x00-soc
|
||||||
TITLE+= (RT2860 PCI)
|
TITLE+= (RT2860 PCI)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800pci.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800pci.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,28,rt2800pci)
|
AUTOLOAD:=$(call AutoLoad,28,rt2800pci)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -306,7 +332,7 @@ define KernelPackage/rt2800-usb
|
|||||||
$(call KernelPackage/rt2x00/Default)
|
$(call KernelPackage/rt2x00/Default)
|
||||||
DEPENDS+= +kmod-rt2x00-usb +kmod-rt2800-lib +kmod-crc-ccitt
|
DEPENDS+= +kmod-rt2x00-usb +kmod-rt2800-lib +kmod-crc-ccitt
|
||||||
TITLE+= (RT2870 USB)
|
TITLE+= (RT2870 USB)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800usb.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800usb.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,28,rt2800usb)
|
AUTOLOAD:=$(call AutoLoad,28,rt2800usb)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -321,7 +347,7 @@ define KernelPackage/rtl8180
|
|||||||
$(call KernelPackage/rtl818x/Default)
|
$(call KernelPackage/rtl818x/Default)
|
||||||
DEPENDS+= @PCI_SUPPORT
|
DEPENDS+= @PCI_SUPPORT
|
||||||
TITLE+= (RTL8180 PCI)
|
TITLE+= (RTL8180 PCI)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,rtl8180)
|
AUTOLOAD:=$(call AutoLoad,27,rtl8180)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -329,7 +355,7 @@ define KernelPackage/rtl8187
|
|||||||
$(call KernelPackage/rtl818x/Default)
|
$(call KernelPackage/rtl818x/Default)
|
||||||
DEPENDS+= @USB_SUPPORT
|
DEPENDS+= @USB_SUPPORT
|
||||||
TITLE+= (RTL8187 USB)
|
TITLE+= (RTL8187 USB)
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,rtl8187)
|
AUTOLOAD:=$(call AutoLoad,27,rtl8187)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -346,7 +372,7 @@ define KernelPackage/zd1211rw
|
|||||||
$(call KernelPackage/mac80211/Default)
|
$(call KernelPackage/mac80211/Default)
|
||||||
TITLE:=Zydas ZD1211 support
|
TITLE:=Zydas ZD1211 support
|
||||||
DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
|
DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zd1211rw/zd1211rw.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zd1211rw/zd1211rw.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,60,zd1211rw)
|
AUTOLOAD:=$(call AutoLoad,60,zd1211rw)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -378,7 +404,7 @@ define KernelPackage/ath
|
|||||||
$(call KernelPackage/mac80211/Default)
|
$(call KernelPackage/mac80211/Default)
|
||||||
TITLE:=Atheros common driver part
|
TITLE:=Atheros common driver part
|
||||||
DEPENDS+= @PCI_SUPPORT +kmod-mac80211
|
DEPENDS+= @PCI_SUPPORT +kmod-mac80211
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,26,ath)
|
AUTOLOAD:=$(call AutoLoad,26,ath)
|
||||||
MENU:=1
|
MENU:=1
|
||||||
endef
|
endef
|
||||||
@ -392,7 +418,7 @@ define KernelPackage/ath5k
|
|||||||
TITLE:=Atheros 5xxx wireless cards support
|
TITLE:=Atheros 5xxx wireless cards support
|
||||||
URL:=http://linuxwireless.org/en/users/Drivers/ath5k
|
URL:=http://linuxwireless.org/en/users/Drivers/ath5k
|
||||||
DEPENDS+= +kmod-ath
|
DEPENDS+= +kmod-ath
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,ath5k)
|
AUTOLOAD:=$(call AutoLoad,27,ath5k)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -407,9 +433,9 @@ define KernelPackage/ath9k
|
|||||||
URL:=http://linuxwireless.org/en/users/Drivers/ath9k
|
URL:=http://linuxwireless.org/en/users/Drivers/ath9k
|
||||||
DEPENDS+= +kmod-ath
|
DEPENDS+= +kmod-ath
|
||||||
FILES:= \
|
FILES:= \
|
||||||
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.$(LINUX_KMOD_SUFFIX) \
|
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.ko \
|
||||||
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.$(LINUX_KMOD_SUFFIX) \
|
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.ko \
|
||||||
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.$(LINUX_KMOD_SUFFIX)
|
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,ath9k_hw ath9k_common ath9k)
|
AUTOLOAD:=$(call AutoLoad,27,ath9k_hw ath9k_common ath9k)
|
||||||
MENU:=1
|
MENU:=1
|
||||||
endef
|
endef
|
||||||
@ -419,17 +445,20 @@ This module adds support for wireless adapters based on
|
|||||||
Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
|
Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define KernelPackage/ath9k/config
|
define KernelPackage/carl9170
|
||||||
menu "Configuration"
|
$(call KernelPackage/mac80211/Default)
|
||||||
depends PACKAGE_kmod-ath9k
|
TITLE:=Driver for Atheros AR9170 USB sticks
|
||||||
|
DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core
|
||||||
config PACKAGE_ATH9K_USE_MINSTREL
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
|
||||||
bool "use the new minstrel_ht rate control for ath9k"
|
AUTOLOAD:=$(call AutoLoad,60,carl9170)
|
||||||
default y
|
|
||||||
|
|
||||||
endmenu
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/carl9170/install
|
||||||
|
$(INSTALL_DIR) $(1)/lib/firmware
|
||||||
|
$(INSTALL_DATA) $(DL_DIR)/$(CARL9170_FW) $(1)/lib/firmware/
|
||||||
|
endef
|
||||||
|
|
||||||
|
|
||||||
USB8388FW_NAME:=usb8388
|
USB8388FW_NAME:=usb8388
|
||||||
USB8388FW_VERSION:=5.110.22.p23
|
USB8388FW_VERSION:=5.110.22.p23
|
||||||
|
|
||||||
@ -464,8 +493,8 @@ define KernelPackage/libertas-usb
|
|||||||
DEPENDS+= @USB_SUPPORT +kmod-mac80211 +kmod-usb-core +kmod-lib80211
|
DEPENDS+= @USB_SUPPORT +kmod-mac80211 +kmod-usb-core +kmod-lib80211
|
||||||
TITLE:=Marvell 88W8015 Wireless Driver
|
TITLE:=Marvell 88W8015 Wireless Driver
|
||||||
FILES:= \
|
FILES:= \
|
||||||
$(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.$(LINUX_KMOD_SUFFIX) \
|
$(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
|
||||||
$(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.$(LINUX_KMOD_SUFFIX)
|
$(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,libertas usb8xxx)
|
AUTOLOAD:=$(call AutoLoad,27,libertas usb8xxx)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -474,29 +503,16 @@ define KernelPackage/libertas-sd
|
|||||||
DEPENDS+= +kmod-mac80211 +kmod-lib80211
|
DEPENDS+= +kmod-mac80211 +kmod-lib80211
|
||||||
TITLE:=Marvell 88W8686 Wireless Driver
|
TITLE:=Marvell 88W8686 Wireless Driver
|
||||||
FILES:= \
|
FILES:= \
|
||||||
$(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.$(LINUX_KMOD_SUFFIX) \
|
$(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
|
||||||
$(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas_sdio.$(LINUX_KMOD_SUFFIX)
|
$(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas_sdio.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,libertas libertas_sdio)
|
AUTOLOAD:=$(call AutoLoad,27,libertas libertas_sdio)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define KernelPackage/ar9170
|
|
||||||
$(call KernelPackage/mac80211/Default)
|
|
||||||
TITLE:=Atheros AR9170 802.11n USB support
|
|
||||||
URL:=http://wireless.kernel.org/en/users/Drivers/ar9170
|
|
||||||
DEPENDS+= @USB_SUPPORT @!LINUX_2_6_25 +kmod-ath +kmod-usb-core
|
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ar9170/ar9170usb.$(LINUX_KMOD_SUFFIX)
|
|
||||||
AUTOLOAD:=$(call AutoLoad,27,ar9170usb)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define KernelPackage/ar9170/description
|
|
||||||
This is a driver for the Atheros "otus" 802.11n USB devices.
|
|
||||||
endef
|
|
||||||
|
|
||||||
define KernelPackage/mac80211-hwsim
|
define KernelPackage/mac80211-hwsim
|
||||||
$(call KernelPackage/mac80211/Default)
|
$(call KernelPackage/mac80211/Default)
|
||||||
TITLE:=mac80211 HW simulation device
|
TITLE:=mac80211 HW simulation device
|
||||||
DEPENDS+= +kmod-mac80211
|
DEPENDS+= +kmod-mac80211
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,60,mac80211_hwsim)
|
AUTOLOAD:=$(call AutoLoad,60,mac80211_hwsim)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -504,7 +520,7 @@ define KernelPackage/net-libipw
|
|||||||
$(call KernelPackage/mac80211/Default)
|
$(call KernelPackage/mac80211/Default)
|
||||||
TITLE:=libipw for ipw2100 and ipw2200
|
TITLE:=libipw for ipw2100 and ipw2200
|
||||||
DEPENDS:=@PCI_SUPPORT +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211
|
DEPENDS:=@PCI_SUPPORT +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/libipw.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/libipw.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,49,libipw)
|
AUTOLOAD:=$(call AutoLoad,49,libipw)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -526,7 +542,7 @@ define KernelPackage/net-ipw2100
|
|||||||
$(call KernelPackage/mac80211/Default)
|
$(call KernelPackage/mac80211/Default)
|
||||||
TITLE:=Intel IPW2100 driver
|
TITLE:=Intel IPW2100 driver
|
||||||
DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
|
DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2100.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2100.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,50,ipw2100)
|
AUTOLOAD:=$(call AutoLoad,50,ipw2100)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -550,7 +566,7 @@ define KernelPackage/net-ipw2200
|
|||||||
$(call KernelPackage/mac80211/Default)
|
$(call KernelPackage/mac80211/Default)
|
||||||
TITLE:=Intel IPW2200 driver
|
TITLE:=Intel IPW2200 driver
|
||||||
DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
|
DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2200.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2200.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,50,ipw2200)
|
AUTOLOAD:=$(call AutoLoad,50,ipw2200)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -566,7 +582,7 @@ define KernelPackage/mwl8k
|
|||||||
TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards
|
TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards
|
||||||
URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k
|
URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k
|
||||||
DEPENDS+= @PCI_SUPPORT +kmod-mac80211
|
DEPENDS+= @PCI_SUPPORT +kmod-mac80211
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mwl8k.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mwl8k.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,27,mwl8k)
|
AUTOLOAD:=$(call AutoLoad,27,mwl8k)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -661,7 +677,7 @@ endef
|
|||||||
define KernelPackage/b43
|
define KernelPackage/b43
|
||||||
$(call KernelPackage/b43-common)
|
$(call KernelPackage/b43-common)
|
||||||
TITLE:=Broadcom 43xx wireless support
|
TITLE:=Broadcom 43xx wireless support
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,30,b43)
|
AUTOLOAD:=$(call AutoLoad,30,b43)
|
||||||
MENU:=1
|
MENU:=1
|
||||||
endef
|
endef
|
||||||
@ -759,7 +775,7 @@ endef
|
|||||||
define KernelPackage/b43legacy
|
define KernelPackage/b43legacy
|
||||||
$(call KernelPackage/b43-common)
|
$(call KernelPackage/b43-common)
|
||||||
TITLE:=Broadcom 43xx-legacy wireless support
|
TITLE:=Broadcom 43xx-legacy wireless support
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,30,b43legacy)
|
AUTOLOAD:=$(call AutoLoad,30,b43legacy)
|
||||||
MENU:=1
|
MENU:=1
|
||||||
endef
|
endef
|
||||||
@ -804,12 +820,11 @@ BUILDFLAGS:= \
|
|||||||
$(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT) \
|
$(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT) \
|
||||||
$(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS -DCONFIG_AR9170_LEDS) \
|
$(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS -DCONFIG_AR9170_LEDS) \
|
||||||
-DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG \
|
-DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG \
|
||||||
$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),-DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS) \
|
$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),-DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS -DCONFIG_CARL9170_DEBUGFS) \
|
||||||
$(if $(CONFIG_PACKAGE_ATH_DEBUG),-DCONFIG_ATH_DEBUG -DCONFIG_ATH9K_PKTLOG) \
|
$(if $(CONFIG_PACKAGE_ATH_DEBUG),-DCONFIG_ATH_DEBUG -DCONFIG_ATH9K_PKTLOG) \
|
||||||
-D__CONFIG_MAC80211_RC_DEFAULT=minstrel \
|
-D__CONFIG_MAC80211_RC_DEFAULT=minstrel \
|
||||||
-DCONFIG_MAC80211_RC_MINSTREL_HT \
|
-DCONFIG_MAC80211_RC_MINSTREL_HT \
|
||||||
$(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1) \
|
$(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1) \
|
||||||
$(if $(CONFIG_PACKAGE_ATH9K_USE_MINSTREL),-DATH9K_USE_MINSTREL) \
|
|
||||||
$(if $(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS),-DCONFIG_RT2X00_LIB_DEBUGFS) \
|
$(if $(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS),-DCONFIG_RT2X00_LIB_DEBUGFS) \
|
||||||
$(if $(CONFIG_PACKAGE_RT2X00_DEBUG),-DCONFIG_RT2X00_DEBUG) \
|
$(if $(CONFIG_PACKAGE_RT2X00_DEBUG),-DCONFIG_RT2X00_DEBUG) \
|
||||||
$(if $(NEED_RT2X00_LIB_HT),-DCONFIG_RT2X00_LIB_HT) \
|
$(if $(NEED_RT2X00_LIB_HT),-DCONFIG_RT2X00_LIB_HT) \
|
||||||
@ -821,6 +836,7 @@ BUILDFLAGS:= \
|
|||||||
$(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),-DCONFIG_RT2X00_LIB_SOC) \
|
$(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),-DCONFIG_RT2X00_LIB_SOC) \
|
||||||
$(if $(CONFIG_PCI_SUPPORT),-DCONFIG_RT2800PCI_PCI) \
|
$(if $(CONFIG_PCI_SUPPORT),-DCONFIG_RT2800PCI_PCI) \
|
||||||
$(if $(CONFIG_TARGET_ramips),-DCONFIG_RT2800PCI_SOC) \
|
$(if $(CONFIG_TARGET_ramips),-DCONFIG_RT2800PCI_SOC) \
|
||||||
|
-DCONFIG_P54_SPI_DEFAULT_EEPROM
|
||||||
|
|
||||||
MAKE_OPTS:= \
|
MAKE_OPTS:= \
|
||||||
CROSS_COMPILE="$(KERNEL_CROSS)" \
|
CROSS_COMPILE="$(KERNEL_CROSS)" \
|
||||||
@ -845,12 +861,17 @@ MAKE_OPTS:= \
|
|||||||
CONFIG_ATH9K_PKTLOG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
|
CONFIG_ATH9K_PKTLOG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
|
||||||
CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \
|
CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \
|
||||||
CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
|
CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
|
||||||
|
CONFIG_ATH9K_HW=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
|
||||||
|
CONFIG_ATH9K_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
|
||||||
CONFIG_ATH9K_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
|
CONFIG_ATH9K_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
|
||||||
|
CONFIG_CARL9170=$(if $(CONFIG_PACKAGE_kmod-carl9170),m) \
|
||||||
|
CONFIG_CARL9170_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
|
||||||
CONFIG_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \
|
CONFIG_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \
|
||||||
CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \
|
CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \
|
||||||
CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \
|
CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \
|
||||||
CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \
|
CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \
|
||||||
CONFIG_P54_SPI= \
|
CONFIG_P54_SPI=$(if $(CONFIG_PACKAGE_kmod-p54-spi),m) \
|
||||||
|
CONFIG_P54_SPI_DEFAULT_EEPROM=y \
|
||||||
CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
|
CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
|
||||||
CONFIG_RT2X00_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
|
CONFIG_RT2X00_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
|
||||||
CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \
|
CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \
|
||||||
@ -890,6 +911,7 @@ MAKE_OPTS:= \
|
|||||||
CONFIG_LIB80211_CRYPT_CCMP= \
|
CONFIG_LIB80211_CRYPT_CCMP= \
|
||||||
CONFIG_LIB80211_CRYPT_TKIP= \
|
CONFIG_LIB80211_CRYPT_TKIP= \
|
||||||
CONFIG_IWLWIFI= \
|
CONFIG_IWLWIFI= \
|
||||||
|
CONFIG_COMPAT_IWLWIFI= \
|
||||||
CONFIG_IWLAGN= \
|
CONFIG_IWLAGN= \
|
||||||
CONFIG_MWL8K=$(if $(CONFIG_PACKAGE_kmod-mwl8k),m) \
|
CONFIG_MWL8K=$(if $(CONFIG_PACKAGE_kmod-mwl8k),m) \
|
||||||
CONFIG_ATMEL= \
|
CONFIG_ATMEL= \
|
||||||
@ -935,7 +957,7 @@ endef
|
|||||||
ifneq ($(CONFIG_PACKAGE_kmod-cfg80211),)
|
ifneq ($(CONFIG_PACKAGE_kmod-cfg80211),)
|
||||||
define Build/Compile/kmod
|
define Build/Compile/kmod
|
||||||
rm -rf $(PKG_BUILD_DIR)/modules
|
rm -rf $(PKG_BUILD_DIR)/modules
|
||||||
$(MAKE) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) all
|
$(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) all
|
||||||
endef
|
endef
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -980,6 +1002,11 @@ define KernelPackage/p54-usb/install
|
|||||||
$(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb
|
$(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/p54-spi/install
|
||||||
|
$(INSTALL_DIR) $(1)/lib/firmware
|
||||||
|
$(INSTALL_DATA) $(DL_DIR)/$(P54SPIFW) $(1)/lib/firmware/3826.arm
|
||||||
|
endef
|
||||||
|
|
||||||
define KernelPackage/rt61-pci/install
|
define KernelPackage/rt61-pci/install
|
||||||
$(INSTALL_DIR) $(1)/lib/firmware
|
$(INSTALL_DIR) $(1)/lib/firmware
|
||||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2?61*.bin $(1)/lib/firmware/
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2?61*.bin $(1)/lib/firmware/
|
||||||
@ -1076,6 +1103,7 @@ $(eval $(call KernelPackage,mac80211))
|
|||||||
$(eval $(call KernelPackage,p54-common))
|
$(eval $(call KernelPackage,p54-common))
|
||||||
$(eval $(call KernelPackage,p54-pci))
|
$(eval $(call KernelPackage,p54-pci))
|
||||||
$(eval $(call KernelPackage,p54-usb))
|
$(eval $(call KernelPackage,p54-usb))
|
||||||
|
$(eval $(call KernelPackage,p54-spi))
|
||||||
$(eval $(call KernelPackage,rt2x00-lib))
|
$(eval $(call KernelPackage,rt2x00-lib))
|
||||||
$(eval $(call KernelPackage,rt2x00-pci))
|
$(eval $(call KernelPackage,rt2x00-pci))
|
||||||
$(eval $(call KernelPackage,rt2x00-usb))
|
$(eval $(call KernelPackage,rt2x00-usb))
|
||||||
@ -1094,7 +1122,7 @@ $(eval $(call KernelPackage,zd1211rw))
|
|||||||
$(eval $(call KernelPackage,mac80211-hwsim))
|
$(eval $(call KernelPackage,mac80211-hwsim))
|
||||||
$(eval $(call KernelPackage,ath9k))
|
$(eval $(call KernelPackage,ath9k))
|
||||||
$(eval $(call KernelPackage,ath))
|
$(eval $(call KernelPackage,ath))
|
||||||
$(eval $(call KernelPackage,ar9170))
|
$(eval $(call KernelPackage,carl9170))
|
||||||
$(eval $(call KernelPackage,b43))
|
$(eval $(call KernelPackage,b43))
|
||||||
$(eval $(call KernelPackage,b43legacy))
|
$(eval $(call KernelPackage,b43legacy))
|
||||||
$(eval $(call KernelPackage,net-libipw))
|
$(eval $(call KernelPackage,net-libipw))
|
||||||
|
@ -165,6 +165,14 @@ scan_mac80211() {
|
|||||||
config_set "$device" vifs "${ap:+$ap }${adhoc:+$adhoc }${sta:+$sta }${monitor:+$monitor }${mesh:+$mesh}"
|
config_set "$device" vifs "${ap:+$ap }${adhoc:+$adhoc }${sta:+$sta }${monitor:+$monitor }${mesh:+$mesh}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list_phy_interfaces() {
|
||||||
|
local phy="$1"
|
||||||
|
if [ -d "/sys/class/ieee80211/${phy}/device/net" ]; then
|
||||||
|
ls "/sys/class/ieee80211/${phy}/device/net" 2>/dev/null;
|
||||||
|
else
|
||||||
|
ls "/sys/class/ieee80211/${phy}/device" 2>/dev/null | grep net: | sed -e 's,net:,,g'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
disable_mac80211() (
|
disable_mac80211() (
|
||||||
local device="$1"
|
local device="$1"
|
||||||
@ -181,7 +189,7 @@ disable_mac80211() (
|
|||||||
done
|
done
|
||||||
|
|
||||||
include /lib/network
|
include /lib/network
|
||||||
for wdev in $(ls /sys/class/ieee80211/${phy}/device/net 2>/dev/null); do
|
for wdev in $(list_phy_interfaces "$phy"); do
|
||||||
[ -f "/var/run/$wdev.pid" ] && kill $(cat /var/run/$wdev.pid) >&/dev/null 2>&1
|
[ -f "/var/run/$wdev.pid" ] && kill $(cat /var/run/$wdev.pid) >&/dev/null 2>&1
|
||||||
for pid in `pidof wpa_supplicant`; do
|
for pid in `pidof wpa_supplicant`; do
|
||||||
grep "$wdev" /proc/$pid/cmdline >/dev/null && \
|
grep "$wdev" /proc/$pid/cmdline >/dev/null && \
|
||||||
@ -214,6 +222,7 @@ enable_mac80211() {
|
|||||||
local macidx=0
|
local macidx=0
|
||||||
local apidx=0
|
local apidx=0
|
||||||
fixed=""
|
fixed=""
|
||||||
|
local hostapd_ctrl=""
|
||||||
|
|
||||||
[ -n "$country" ] && iw reg set "$country"
|
[ -n "$country" ] && iw reg set "$country"
|
||||||
[ "$channel" = "auto" -o "$channel" = "0" ] || {
|
[ "$channel" = "auto" -o "$channel" = "0" ] || {
|
||||||
@ -336,6 +345,7 @@ enable_mac80211() {
|
|||||||
config_get mode "$vif" mode
|
config_get mode "$vif" mode
|
||||||
config_get ifname "$vif" ifname
|
config_get ifname "$vif" ifname
|
||||||
[ "$mode" = "ap" ] || continue
|
[ "$mode" = "ap" ] || continue
|
||||||
|
hostapd_ctrl="${hostapd_ctrl:-/var/run/hostapd-$phy/$ifname}"
|
||||||
mac80211_start_vif "$vif" "$ifname"
|
mac80211_start_vif "$vif" "$ifname"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@ -352,11 +362,18 @@ enable_mac80211() {
|
|||||||
adhoc)
|
adhoc)
|
||||||
config_get bssid "$vif" bssid
|
config_get bssid "$vif" bssid
|
||||||
config_get ssid "$vif" ssid
|
config_get ssid "$vif" ssid
|
||||||
iw dev "$ifname" ibss join "$ssid" $freq ${fixed:+fixed-freq} $bssid
|
config_get mcast_rate "$vif" mcast_rate
|
||||||
|
local mcval=""
|
||||||
|
[ -n "$mcast_rate" ] && {
|
||||||
|
mcval="$(($mcast_rate / 1000))"
|
||||||
|
mcsub="$(( ($mcast_rate / 100) % 10 ))"
|
||||||
|
[ "$mcsub" -gt 0 ] && mcval="$mcval.$mcsub"
|
||||||
|
}
|
||||||
|
iw dev "$ifname" ibss join "$ssid" $freq ${fixed:+fixed-freq} $bssid ${mcval:+mcast-rate $mcval}
|
||||||
;;
|
;;
|
||||||
sta)
|
sta)
|
||||||
if eval "type wpa_supplicant_setup_vif" 2>/dev/null >/dev/null; then
|
if eval "type wpa_supplicant_setup_vif" 2>/dev/null >/dev/null; then
|
||||||
wpa_supplicant_setup_vif "$vif" wext || {
|
wpa_supplicant_setup_vif "$vif" nl80211 "${hostapd_ctrl:+-H $hostapd_ctrl}" || {
|
||||||
echo "enable_mac80211($device): Failed to set up wpa_supplicant for interface $ifname" >&2
|
echo "enable_mac80211($device): Failed to set up wpa_supplicant for interface $ifname" >&2
|
||||||
# make sure this wifi interface won't accidentally stay open without encryption
|
# make sure this wifi interface won't accidentally stay open without encryption
|
||||||
ifconfig "$ifname" down
|
ifconfig "$ifname" down
|
||||||
@ -396,7 +413,7 @@ detect_mac80211() {
|
|||||||
|
|
||||||
mode_11n=""
|
mode_11n=""
|
||||||
mode_band="g"
|
mode_band="g"
|
||||||
channel="5"
|
channel="11"
|
||||||
ht_cap=0
|
ht_cap=0
|
||||||
for cap in $(iw phy "$dev" info | grep 'Capabilities:' | cut -d: -f2); do
|
for cap in $(iw phy "$dev" info | grep 'Capabilities:' | cut -d: -f2); do
|
||||||
ht_cap="$(($ht_cap | $cap))"
|
ht_cap="$(($ht_cap | $cap))"
|
||||||
@ -408,6 +425,7 @@ detect_mac80211() {
|
|||||||
|
|
||||||
list=" list ht_capab"
|
list=" list ht_capab"
|
||||||
[ "$(($ht_cap & 1))" -eq 1 ] && append ht_capab "$list LDPC" "$N"
|
[ "$(($ht_cap & 1))" -eq 1 ] && append ht_capab "$list LDPC" "$N"
|
||||||
|
[ "$(($ht_cap & 16))" -eq 16 ] && append ht_capab "$list GF" "$N"
|
||||||
[ "$(($ht_cap & 32))" -eq 32 ] && append ht_capab "$list SHORT-GI-20" "$N"
|
[ "$(($ht_cap & 32))" -eq 32 ] && append ht_capab "$list SHORT-GI-20" "$N"
|
||||||
[ "$(($ht_cap & 64))" -eq 64 ] && append ht_capab "$list SHORT-GI-40" "$N"
|
[ "$(($ht_cap & 64))" -eq 64 ] && append ht_capab "$list SHORT-GI-40" "$N"
|
||||||
[ "$(($ht_cap & 128))" -eq 128 ] && append ht_capab "$list TX-STBC" "$N"
|
[ "$(($ht_cap & 128))" -eq 128 ] && append ht_capab "$list TX-STBC" "$N"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/config.mk
|
--- a/config.mk
|
||||||
+++ b/config.mk
|
+++ b/config.mk
|
||||||
@@ -268,8 +268,8 @@ endif
|
@@ -300,8 +300,8 @@ endif #CONFIG_SSB
|
||||||
|
|
||||||
CONFIG_P54_PCI=m
|
CONFIG_P54_PCI=m
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/config.mk
|
--- a/config.mk
|
||||||
+++ b/config.mk
|
+++ b/config.mk
|
||||||
@@ -72,7 +72,7 @@ endif # build check
|
@@ -74,7 +74,7 @@ endif # build check
|
||||||
endif # kernel Makefile check
|
endif # kernel Makefile check
|
||||||
|
|
||||||
# These both are needed by compat-wireless || compat-bluetooth so enable them
|
# These both are needed by compat-wireless || compat-bluetooth so enable them
|
||||||
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
ifeq ($(CONFIG_MAC80211),y)
|
ifeq ($(CONFIG_MAC80211),y)
|
||||||
$(error "ERROR: you have MAC80211 compiled into the kernel, CONFIG_MAC80211=y, as such you cannot replace its mac80211 driver. You need this set to CONFIG_MAC80211=m. If you are using Fedora upgrade your kernel as later version should this set as modular. For further information on Fedora see https://bugzilla.redhat.com/show_bug.cgi?id=470143. If you are using your own kernel recompile it and make mac80211 modular")
|
$(error "ERROR: you have MAC80211 compiled into the kernel, CONFIG_MAC80211=y, as such you cannot replace its mac80211 driver. You need this set to CONFIG_MAC80211=m. If you are using Fedora upgrade your kernel as later version should this set as modular. For further information on Fedora see https://bugzilla.redhat.com/show_bug.cgi?id=470143. If you are using your own kernel recompile it and make mac80211 modular")
|
||||||
@@ -495,8 +495,8 @@ endif
|
@@ -585,8 +585,8 @@ endif #CONFIG_COMPAT_KERNEL_27
|
||||||
# We need the backported rfkill module on kernel < 2.6.31.
|
# We need the backported rfkill module on kernel < 2.6.31.
|
||||||
# In more recent kernel versions use the in kernel rfkill module.
|
# In more recent kernel versions use the in kernel rfkill module.
|
||||||
ifdef CONFIG_COMPAT_KERNEL_31
|
ifdef CONFIG_COMPAT_KERNEL_31
|
||||||
@ -19,5 +19,5 @@
|
|||||||
+# CONFIG_RFKILL_BACKPORT=m
|
+# CONFIG_RFKILL_BACKPORT=m
|
||||||
+# CONFIG_RFKILL_BACKPORT_LEDS=y
|
+# CONFIG_RFKILL_BACKPORT_LEDS=y
|
||||||
+# CONFIG_RFKILL_BACKPORT_INPUT=y
|
+# CONFIG_RFKILL_BACKPORT_INPUT=y
|
||||||
endif
|
endif #CONFIG_COMPAT_KERNEL_31
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/config.mk
|
--- a/config.mk
|
||||||
+++ b/config.mk
|
+++ b/config.mk
|
||||||
@@ -94,8 +94,8 @@ ifndef CONFIG_COMPAT_KERNEL_27
|
@@ -96,8 +96,8 @@ ifndef CONFIG_COMPAT_KERNEL_27
|
||||||
ifeq ($(CONFIG_BT),y)
|
ifeq ($(CONFIG_BT),y)
|
||||||
# we'll ignore compiling bluetooth
|
# we'll ignore compiling bluetooth
|
||||||
else
|
else
|
||||||
@ -9,5 +9,5 @@
|
|||||||
+# CONFIG_COMPAT_BLUETOOTH=y
|
+# CONFIG_COMPAT_BLUETOOTH=y
|
||||||
+# CONFIG_COMPAT_BLUETOOTH_MODULES=m
|
+# CONFIG_COMPAT_BLUETOOTH_MODULES=m
|
||||||
endif
|
endif
|
||||||
endif # Kernel >= 2.6.26
|
endif #CONFIG_COMPAT_KERNEL_27
|
||||||
|
|
||||||
|
@ -6,9 +6,9 @@
|
|||||||
obj-$(CONFIG_COMPAT_NETWORK_MODULES) += drivers/net/
|
obj-$(CONFIG_COMPAT_NETWORK_MODULES) += drivers/net/
|
||||||
-obj-$(CONFIG_COMPAT_VAR_MODULES) += drivers/ssb/ drivers/misc/eeprom/
|
-obj-$(CONFIG_COMPAT_VAR_MODULES) += drivers/ssb/ drivers/misc/eeprom/
|
||||||
+obj-$(CONFIG_COMPAT_VAR_MODULES) += drivers/misc/eeprom/
|
+obj-$(CONFIG_COMPAT_VAR_MODULES) += drivers/misc/eeprom/
|
||||||
endif
|
|
||||||
|
|
||||||
obj-$(CONFIG_COMPAT_BLUETOOTH) += net/bluetooth/
|
ifeq ($(CONFIG_STAGING_EXCLUDE_BUILD),)
|
||||||
|
obj-$(CONFIG_COMPAT_STAGING) += drivers/staging/ath6kl/
|
||||||
--- a/config.mk
|
--- a/config.mk
|
||||||
+++ b/config.mk
|
+++ b/config.mk
|
||||||
@@ -9,7 +9,6 @@ ifeq ($(wildcard $(KLIB_BUILD)/.config),
|
@@ -9,7 +9,6 @@ ifeq ($(wildcard $(KLIB_BUILD)/.config),
|
||||||
@ -19,11 +19,11 @@
|
|||||||
else
|
else
|
||||||
include $(KLIB_BUILD)/.config
|
include $(KLIB_BUILD)/.config
|
||||||
endif
|
endif
|
||||||
@@ -251,21 +250,6 @@ CONFIG_IPW2200_QOS=y
|
@@ -283,21 +282,6 @@ CONFIG_IPW2200_QOS=y
|
||||||
#
|
|
||||||
# % echo 1 > /sys/bus/pci/drivers/ipw2200/*/rtap_iface
|
# % echo 1 > /sys/bus/pci/drivers/ipw2200/*/rtap_iface
|
||||||
|
endif #CONFIG_WIRELESS_EXT
|
||||||
|
|
||||||
-ifneq ($(CONFIG_SSB),)
|
-ifdef CONFIG_SSB
|
||||||
-# Sonics Silicon Backplane
|
-# Sonics Silicon Backplane
|
||||||
-CONFIG_SSB_SPROM=y
|
-CONFIG_SSB_SPROM=y
|
||||||
-# CONFIG_SSB_DEBUG=y
|
-# CONFIG_SSB_DEBUG=y
|
||||||
@ -31,21 +31,21 @@
|
|||||||
-CONFIG_SSB_BLOCKIO=y
|
-CONFIG_SSB_BLOCKIO=y
|
||||||
-CONFIG_SSB_PCIHOST=y
|
-CONFIG_SSB_PCIHOST=y
|
||||||
-CONFIG_SSB_B43_PCI_BRIDGE=y
|
-CONFIG_SSB_B43_PCI_BRIDGE=y
|
||||||
-ifneq ($(CONFIG_PCMCIA),)
|
-ifdef CONFIG_PCMCIA
|
||||||
-CONFIG_SSB_PCMCIAHOST=y
|
-CONFIG_SSB_PCMCIAHOST=y
|
||||||
-endif
|
-endif #CONFIG_PCMCIA
|
||||||
-# CONFIG_SSB_DEBUG=y
|
-# CONFIG_SSB_DEBUG=y
|
||||||
-CONFIG_SSB_DRIVER_PCICORE=y
|
-CONFIG_SSB_DRIVER_PCICORE=y
|
||||||
-endif
|
-endif #CONFIG_SSB
|
||||||
-
|
-
|
||||||
CONFIG_P54_PCI=m
|
CONFIG_P54_PCI=m
|
||||||
|
|
||||||
# CONFIG_B44=m
|
# CONFIG_B44=m
|
||||||
@@ -429,7 +413,6 @@ endif # end of SPI driver list
|
@@ -485,7 +469,6 @@ endif #CONFIG_SPI_MASTER end of SPI driv
|
||||||
|
|
||||||
ifneq ($(CONFIG_MMC),)
|
ifdef CONFIG_MMC
|
||||||
|
|
||||||
-CONFIG_SSB_SDIOHOST=y
|
-CONFIG_SSB_SDIOHOST=y
|
||||||
CONFIG_B43_SDIO=y
|
CONFIG_B43_SDIO=y
|
||||||
CONFIG_WL1251_SDIO=m
|
|
||||||
|
|
||||||
|
ifdef CONFIG_CRC7
|
||||||
|
@ -1,6 +1,15 @@
|
|||||||
--- a/config.mk
|
--- a/config.mk
|
||||||
+++ b/config.mk
|
+++ b/config.mk
|
||||||
@@ -282,13 +282,13 @@ endif
|
@@ -196,7 +196,7 @@ $(warning "WARNING: CONFIG_CFG80211_WEXT
|
||||||
|
endif #CONFIG_WIRELESS_EXT
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_STAGING),)
|
||||||
|
- CONFIG_COMPAT_STAGING=m
|
||||||
|
+# CONFIG_COMPAT_STAGING=m
|
||||||
|
endif
|
||||||
|
|
||||||
|
# mac80211 test driver
|
||||||
|
@@ -314,13 +314,13 @@ endif #CONFIG_CRC_ITU_T
|
||||||
CONFIG_MWL8K=m
|
CONFIG_MWL8K=m
|
||||||
|
|
||||||
# Ethernet drivers go here
|
# Ethernet drivers go here
|
||||||
@ -13,24 +22,35 @@
|
|||||||
ifdef CONFIG_COMPAT_KERNEL_27
|
ifdef CONFIG_COMPAT_KERNEL_27
|
||||||
-CONFIG_ATL1C=n
|
-CONFIG_ATL1C=n
|
||||||
+# CONFIG_ATL1C=n
|
+# CONFIG_ATL1C=n
|
||||||
else
|
else #CONFIG_COMPAT_KERNEL_27
|
||||||
-CONFIG_ATL1C=m
|
-CONFIG_ATL1C=m
|
||||||
+# CONFIG_ATL1C=m
|
+# CONFIG_ATL1C=m
|
||||||
endif
|
endif #CONFIG_COMPAT_KERNEL_27
|
||||||
|
|
||||||
CONFIG_HERMES=m
|
ifdef CONFIG_WIRELESS_EXT
|
||||||
@@ -342,10 +342,10 @@ CONFIG_USB_NET_COMPAT_RNDIS_HOST=n
|
@@ -371,17 +371,17 @@ CONFIG_ZD1211RW=m
|
||||||
CONFIG_USB_NET_COMPAT_RNDIS_WLAN=n
|
# Note: this depends on CONFIG_USB_NET_RNDIS_HOST and CONFIG_USB_NET_CDCETHER
|
||||||
CONFIG_USB_NET_COMPAT_CDCETHER=n
|
# it also requires new RNDIS_HOST and CDC_ETHER modules which we add
|
||||||
else
|
ifdef CONFIG_COMPAT_KERNEL_29
|
||||||
|
-CONFIG_USB_COMPAT_USBNET=n
|
||||||
|
-CONFIG_USB_NET_COMPAT_RNDIS_HOST=n
|
||||||
|
-CONFIG_USB_NET_COMPAT_RNDIS_WLAN=n
|
||||||
|
-CONFIG_USB_NET_COMPAT_CDCETHER=n
|
||||||
|
+# CONFIG_USB_COMPAT_USBNET=n
|
||||||
|
+# CONFIG_USB_NET_COMPAT_RNDIS_HOST=n
|
||||||
|
+# CONFIG_USB_NET_COMPAT_RNDIS_WLAN=n
|
||||||
|
+# CONFIG_USB_NET_COMPAT_CDCETHER=n
|
||||||
|
else #CONFIG_COMPAT_KERNEL_29
|
||||||
-CONFIG_USB_COMPAT_USBNET=m
|
-CONFIG_USB_COMPAT_USBNET=m
|
||||||
|
+# CONFIG_USB_COMPAT_USBNET=m
|
||||||
|
ifdef CONFIG_USB_NET_CDCETHER
|
||||||
-CONFIG_USB_NET_COMPAT_RNDIS_HOST=m
|
-CONFIG_USB_NET_COMPAT_RNDIS_HOST=m
|
||||||
-CONFIG_USB_NET_COMPAT_RNDIS_WLAN=m
|
-CONFIG_USB_NET_COMPAT_RNDIS_WLAN=m
|
||||||
-CONFIG_USB_NET_COMPAT_CDCETHER=m
|
|
||||||
+# CONFIG_USB_COMPAT_USBNET=m
|
|
||||||
+# CONFIG_USB_NET_COMPAT_RNDIS_HOST=m
|
+# CONFIG_USB_NET_COMPAT_RNDIS_HOST=m
|
||||||
+# CONFIG_USB_NET_COMPAT_RNDIS_WLAN=m
|
+# CONFIG_USB_NET_COMPAT_RNDIS_WLAN=m
|
||||||
|
endif #CONFIG_USB_NET_CDCETHER
|
||||||
|
-CONFIG_USB_NET_COMPAT_CDCETHER=m
|
||||||
+# CONFIG_USB_NET_COMPAT_CDCETHER=m
|
+# CONFIG_USB_NET_COMPAT_CDCETHER=m
|
||||||
endif
|
endif #CONFIG_COMPAT_KERNEL_29
|
||||||
|
|
||||||
|
|
||||||
|
127
package/mac80211/patches/008-led_default.patch
Normal file
127
package/mac80211/patches/008-led_default.patch
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
--- a/config.mk
|
||||||
|
+++ b/config.mk
|
||||||
|
@@ -132,7 +132,7 @@ CONFIG_COMPAT_MAC80211_RC_DEFAULT=minstr
|
||||||
|
CONFIG_MAC80211_RC_PID=y
|
||||||
|
CONFIG_MAC80211_RC_MINSTREL=y
|
||||||
|
CONFIG_MAC80211_RC_MINSTREL_HT=y
|
||||||
|
-CONFIG_MAC80211_LEDS=y
|
||||||
|
+# CONFIG_MAC80211_LEDS=y
|
||||||
|
|
||||||
|
# enable mesh networking too
|
||||||
|
CONFIG_MAC80211_MESH=y
|
||||||
|
@@ -240,7 +240,7 @@ CONFIG_B43_PCI_AUTOSELECT=y
|
||||||
|
ifdef CONFIG_PCMCIA
|
||||||
|
CONFIG_B43_PCMCIA=y
|
||||||
|
endif #CONFIG_PCMCIA
|
||||||
|
-CONFIG_B43_LEDS=y
|
||||||
|
+# CONFIG_B43_LEDS=y
|
||||||
|
CONFIG_B43_PHY_LP=y
|
||||||
|
CONFIG_B43_NPHY=y
|
||||||
|
# CONFIG_B43_FORCE_PIO=y
|
||||||
|
@@ -249,7 +249,7 @@ CONFIG_B43_NPHY=y
|
||||||
|
CONFIG_B43LEGACY=m
|
||||||
|
CONFIG_B43LEGACY_HWRNG=y
|
||||||
|
CONFIG_B43LEGACY_PCI_AUTOSELECT=y
|
||||||
|
-CONFIG_B43LEGACY_LEDS=y
|
||||||
|
+# CONFIG_B43LEGACY_LEDS=y
|
||||||
|
# CONFIG_B43LEGACY_DEBUG=y
|
||||||
|
CONFIG_B43LEGACY_DMA=y
|
||||||
|
CONFIG_B43LEGACY_PIO=y
|
||||||
|
@@ -542,7 +542,7 @@ endif
|
||||||
|
|
||||||
|
# p54
|
||||||
|
CONFIG_P54_COMMON=m
|
||||||
|
-CONFIG_P54_LEDS=y
|
||||||
|
+# CONFIG_P54_LEDS=y
|
||||||
|
|
||||||
|
# Atheros
|
||||||
|
CONFIG_ATH_COMMON=m
|
||||||
|
--- a/drivers/net/wireless/ath/ath9k/gpio.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath9k/gpio.c
|
||||||
|
@@ -54,6 +54,7 @@ static void ath_led_blink_work(struct wo
|
||||||
|
sc->sc_flags |= SC_OP_LED_ON;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef CONFIG_LEDS_CLASS
|
||||||
|
static void ath_led_brightness(struct led_classdev *led_cdev,
|
||||||
|
enum led_brightness brightness)
|
||||||
|
{
|
||||||
|
@@ -90,10 +91,12 @@ static void ath_led_brightness(struct le
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
static int ath_register_led(struct ath_softc *sc, struct ath_led *led,
|
||||||
|
char *trigger)
|
||||||
|
{
|
||||||
|
+#ifdef CONFIG_LEDS_CLASS
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
led->sc = sc;
|
||||||
|
@@ -108,14 +111,19 @@ static int ath_register_led(struct ath_s
|
||||||
|
else
|
||||||
|
led->registered = 1;
|
||||||
|
return ret;
|
||||||
|
+#else
|
||||||
|
+ return 0;
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ath_unregister_led(struct ath_led *led)
|
||||||
|
{
|
||||||
|
+#ifdef CONFIG_LEDS_CLASS
|
||||||
|
if (led->registered) {
|
||||||
|
led_classdev_unregister(&led->led_cdev);
|
||||||
|
led->registered = 0;
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void ath_deinit_leds(struct ath_softc *sc)
|
||||||
|
--- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
|
||||||
|
@@ -860,6 +860,7 @@ static void ath9k_led_brightness_work(st
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef CONFIG_LEDS_CLASS
|
||||||
|
static void ath9k_led_brightness(struct led_classdev *led_cdev,
|
||||||
|
enum led_brightness brightness)
|
||||||
|
{
|
||||||
|
@@ -871,6 +872,7 @@ static void ath9k_led_brightness(struct
|
||||||
|
ieee80211_queue_delayed_work(priv->hw,
|
||||||
|
&led->brightness_work, 0);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
static void ath9k_led_stop_brightness(struct ath9k_htc_priv *priv)
|
||||||
|
{
|
||||||
|
@@ -883,6 +885,7 @@ static void ath9k_led_stop_brightness(st
|
||||||
|
static int ath9k_register_led(struct ath9k_htc_priv *priv, struct ath_led *led,
|
||||||
|
char *trigger)
|
||||||
|
{
|
||||||
|
+#ifdef CONFIG_LEDS_CLASS
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
led->priv = priv;
|
||||||
|
@@ -900,14 +903,19 @@ static int ath9k_register_led(struct ath
|
||||||
|
INIT_DELAYED_WORK(&led->brightness_work, ath9k_led_brightness_work);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
+#else
|
||||||
|
+ return 0;
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ath9k_unregister_led(struct ath_led *led)
|
||||||
|
{
|
||||||
|
+#ifdef CONFIG_LEDS_CLASS
|
||||||
|
if (led->registered) {
|
||||||
|
led_classdev_unregister(&led->led_cdev);
|
||||||
|
led->registered = 0;
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void ath9k_deinit_leds(struct ath9k_htc_priv *priv)
|
@ -1,6 +1,6 @@
|
|||||||
--- a/config.mk
|
--- a/config.mk
|
||||||
+++ b/config.mk
|
+++ b/config.mk
|
||||||
@@ -42,21 +42,6 @@ $(error "ERROR: Your 2.6.27 kernel has C
|
@@ -42,23 +42,6 @@ $(error "ERROR: Your 2.6.27 kernel has C
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -13,9 +13,11 @@
|
|||||||
-#
|
-#
|
||||||
-# skb->requeue
|
-# skb->requeue
|
||||||
-#
|
-#
|
||||||
-ifeq ($(shell test $(KERNEL_SUBLEVEL) -ge 27 && echo yes),yes)
|
-# In kernel 2.6.32 both attributes were removed.
|
||||||
|
-#
|
||||||
|
-ifeq ($(shell test $(KERNEL_SUBLEVEL) -ge 27 -a $(KERNEL_SUBLEVEL) -le 31 && echo yes),yes)
|
||||||
-ifeq ($(CONFIG_MAC80211),)
|
-ifeq ($(CONFIG_MAC80211),)
|
||||||
-$(error "ERROR: Your >=2.6.27 kernel has CONFIG_MAC80211 disabled, you should have it CONFIG_MAC80211=m if you want to use this thing.")
|
-$(error "ERROR: Your >=2.6.27 and <= 2.6.31 kernel has CONFIG_MAC80211 disabled, you should have it CONFIG_MAC80211=m if you want to use this thing.")
|
||||||
-endif
|
-endif
|
||||||
-endif
|
-endif
|
||||||
-
|
-
|
||||||
|
@ -9,12 +9,12 @@
|
|||||||
else
|
else
|
||||||
include $(KLIB_BUILD)/.config
|
include $(KLIB_BUILD)/.config
|
||||||
endif
|
endif
|
||||||
@@ -192,7 +192,7 @@ CONFIG_B43=m
|
@@ -221,7 +221,7 @@ CONFIG_B43=m
|
||||||
CONFIG_B43_HWRNG=y
|
CONFIG_B43_HWRNG=y
|
||||||
CONFIG_B43_PCI_AUTOSELECT=y
|
CONFIG_B43_PCI_AUTOSELECT=y
|
||||||
ifneq ($(CONFIG_PCMCIA),)
|
ifdef CONFIG_PCMCIA
|
||||||
-CONFIG_B43_PCMCIA=y
|
-CONFIG_B43_PCMCIA=y
|
||||||
+# CONFIG_B43_PCMCIA=y
|
+# CONFIG_B43_PCMCIA=y
|
||||||
endif
|
endif #CONFIG_PCMCIA
|
||||||
CONFIG_B43_LEDS=y
|
# CONFIG_B43_LEDS=y
|
||||||
CONFIG_B43_PHY_LP=y
|
CONFIG_B43_PHY_LP=y
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
--- a/config.mk
|
--- a/config.mk
|
||||||
+++ b/config.mk
|
+++ b/config.mk
|
||||||
@@ -398,7 +398,7 @@ endif # end of SPI driver list
|
@@ -452,7 +452,7 @@ endif #CONFIG_SPI_MASTER end of SPI driv
|
||||||
|
|
||||||
ifneq ($(CONFIG_MMC),)
|
ifdef CONFIG_MMC
|
||||||
|
|
||||||
-CONFIG_B43_SDIO=y
|
-CONFIG_B43_SDIO=y
|
||||||
+# CONFIG_B43_SDIO=y
|
+# CONFIG_B43_SDIO=y
|
||||||
CONFIG_WL1251_SDIO=m
|
|
||||||
|
|
||||||
ifndef CONFIG_COMPAT_KERNEL_32
|
ifdef CONFIG_CRC7
|
||||||
|
CONFIG_WL1251_SDIO=m
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
--- a/config.mk
|
--- a/config.mk
|
||||||
+++ b/config.mk
|
+++ b/config.mk
|
||||||
@@ -196,7 +196,7 @@ ifneq ($(CONFIG_PCMCIA),)
|
@@ -225,7 +225,7 @@ ifdef CONFIG_PCMCIA
|
||||||
endif
|
endif #CONFIG_PCMCIA
|
||||||
CONFIG_B43_LEDS=y
|
# CONFIG_B43_LEDS=y
|
||||||
CONFIG_B43_PHY_LP=y
|
CONFIG_B43_PHY_LP=y
|
||||||
-CONFIG_B43_NPHY=y
|
-CONFIG_B43_NPHY=y
|
||||||
+# CONFIG_B43_NPHY is not set
|
+# CONFIG_B43_NPHY is not set
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/config.mk
|
--- a/config.mk
|
||||||
+++ b/config.mk
|
+++ b/config.mk
|
||||||
@@ -244,12 +244,12 @@ CONFIG_RTL8180=m
|
@@ -274,12 +274,12 @@ CONFIG_RTL8180=m
|
||||||
|
|
||||||
CONFIG_ADM8211=m
|
CONFIG_ADM8211=m
|
||||||
|
|
||||||
@ -8,19 +8,19 @@
|
|||||||
+# CONFIG_RT2X00_LIB_PCI=m
|
+# CONFIG_RT2X00_LIB_PCI=m
|
||||||
CONFIG_RT2400PCI=m
|
CONFIG_RT2400PCI=m
|
||||||
CONFIG_RT2500PCI=m
|
CONFIG_RT2500PCI=m
|
||||||
ifneq ($(CONFIG_CRC_CCITT),)
|
ifdef CONFIG_CRC_CCITT
|
||||||
CONFIG_RT2800PCI=m
|
CONFIG_RT2800PCI=m
|
||||||
-CONFIG_RT2800PCI_PCI=y
|
-CONFIG_RT2800PCI_PCI=y
|
||||||
+# CONFIG_RT2800PCI_PCI=y
|
+# CONFIG_RT2800PCI_PCI=y
|
||||||
# CONFIG_RT2800PCI_RT30XX=y
|
# CONFIG_RT2800PCI_RT30XX=y
|
||||||
# CONFIG_RT2800PCI_RT35XX=y
|
# CONFIG_RT2800PCI_RT35XX=y
|
||||||
# CONFIG_RT2800PCI_SOC=y
|
# CONFIG_RT2800PCI_SOC=y
|
||||||
@@ -355,7 +355,7 @@ CONFIG_RT2800USB_RT30XX=y
|
@@ -402,7 +402,7 @@ CONFIG_RT2800USB_RT30XX=y
|
||||||
CONFIG_RT2800USB_RT35XX=y
|
CONFIG_RT2800USB_RT35XX=y
|
||||||
CONFIG_RT2800USB_UNKNOWN=y
|
CONFIG_RT2800USB_UNKNOWN=y
|
||||||
endif
|
endif #CONFIG_CRC_CCITT
|
||||||
-CONFIG_RT2X00_LIB_USB=m
|
-CONFIG_RT2X00_LIB_USB=m
|
||||||
+# CONFIG_RT2X00_LIB_USB=m
|
+# CONFIG_RT2X00_LIB_USB=m
|
||||||
NEED_RT2X00=y
|
NEED_RT2X00=y
|
||||||
# RT73USB requires firmware
|
# RT73USB requires firmware
|
||||||
ifneq ($(CONFIG_CRC_ITU_T),)
|
ifdef CONFIG_CRC_ITU_T
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
@@ -112,7 +112,7 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
|
@@ -112,7 +112,7 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
|
||||||
# This is the one used by our compat-wireless net/mac80211/rate.c
|
# This is the one used by our compat-wireless net/mac80211/rate.c
|
||||||
# in case you have and old kernel which is overriding this to pid.
|
# in case you have and old kernel which is overriding this to pid.
|
||||||
CONFIG_COMPAT_MAC80211_RC_DEFAULT=minstrel
|
CONFIG_COMPAT_MAC80211_RC_DEFAULT=minstrel_ht
|
||||||
-CONFIG_MAC80211_RC_PID=y
|
-CONFIG_MAC80211_RC_PID=y
|
||||||
+# CONFIG_MAC80211_RC_PID=y
|
+# CONFIG_MAC80211_RC_PID=y
|
||||||
CONFIG_MAC80211_RC_MINSTREL=y
|
CONFIG_MAC80211_RC_MINSTREL=y
|
||||||
CONFIG_MAC80211_RC_MINSTREL_HT=y
|
CONFIG_MAC80211_RC_MINSTREL_HT=y
|
||||||
CONFIG_MAC80211_LEDS=y
|
# CONFIG_MAC80211_LEDS=y
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user