1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2025-02-17 17:14:43 +02:00

Merge commit 'nbd/master' into xburst

This commit is contained in:
Lars-Peter Clausen 2010-04-14 16:51:33 +02:00
commit 7d183397d9
482 changed files with 92825 additions and 3038 deletions

View File

@ -1,5 +1,5 @@
#
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2006-2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -15,14 +15,35 @@ override MAKEFLAGS=
override MAKE:=$(SUBMAKE)
KDIR=$(KERNEL_BUILD_DIR)
IMG_PREFIX:=openwrt-$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
ifneq ($(CONFIG_BIG_ENDIAN),y)
JFFS2OPTS := --pad --little-endian --squash
JFFS2OPTS := --pad --little-endian --squash -v
SQUASHFS_OPTS := -le
else
JFFS2OPTS := --pad --big-endian --squash
JFFS2OPTS := --pad --big-endian --squash -v
SQUASHFS_OPTS := -be
endif
ifeq ($(CONFIG_JFFS2_RTIME),y)
JFFS2OPTS+= -X rtime
endif
ifeq ($(CONFIG_JFFS2_ZLIB),y)
JFFS2OPTS+= -X zlib
endif
ifeq ($(CONFIG_JFFS2_LZMA),y)
JFFS2OPTS+= -X lzma --compression-mode=size
endif
ifneq ($(CONFIG_JFFS2_RTIME),y)
JFFS2OPTS+= -x rtime
endif
ifneq ($(CONFIG_JFFS2_ZLIB),y)
JFFS2OPTS+= -x zlib
endif
ifneq ($(CONFIG_JFFS2_LZMA),y)
JFFS2OPTS+= -x lzma
endif
ifneq ($(CONFIG_LINUX_2_4)$(CONFIG_LINUX_2_6_25),)
USE_SQUASHFS3 := y
endif
@ -57,7 +78,7 @@ ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
ifeq ($(CONFIG_TARGET_ROOTFS_JFFS2),y)
define Image/mkfs/jffs2/sub
# FIXME: removing this line will cause strange behaviour in the foreach loop below
$(STAGING_DIR_HOST)/bin/mkfs.jffs2 $(JFFS2OPTS) -e $(patsubst %k,%KiB,$(1)) -o $(KDIR)/root.jffs2-$(1) -d $(TARGET_DIR)
$(STAGING_DIR_HOST)/bin/mkfs.jffs2 $(JFFS2OPTS) -e $(patsubst %k,%KiB,$(1)) -o $(KDIR)/root.jffs2-$(1) -d $(TARGET_DIR) -v 2>&1 1>/dev/null | awk '/^.+$$$$/'
$(call add_jffs2_mark,$(KDIR)/root.jffs2-$(1))
$(call Image/Build,jffs2-$(1))
endef
@ -76,13 +97,13 @@ ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
ifeq ($(CONFIG_TARGET_ROOTFS_TGZ),y)
define Image/mkfs/tgz
$(TAR) -zcf $(BIN_DIR)/openwrt-$(BOARD)-rootfs.tgz --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ .
$(TAR) -zcf $(BIN_DIR)/$(IMG_PREFIX)-rootfs.tgz --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ .
endef
endif
ifeq ($(CONFIG_TARGET_ROOTFS_CPIOGZ),y)
define Image/mkfs/cpiogz
( cd $(TARGET_DIR); find . | cpio -o -H newc | gzip -9 >$(BIN_DIR)/openwrt-$(BOARD)-rootfs.cpio.gz )
( cd $(TARGET_DIR); find . | cpio -o -H newc | gzip -9 >$(BIN_DIR)/$(IMG_PREFIX)-rootfs.cpio.gz )
endef
endif
ifeq ($(CONFIG_TARGET_ROOTFS_UBIFS),y)
@ -96,7 +117,7 @@ ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
endif
else
define Image/BuildKernel
cp $(KDIR)/vmlinux.elf $(BIN_DIR)/openwrt-$(BOARD)-vmlinux.elf
cp $(KDIR)/vmlinux.elf $(BIN_DIR)/$(IMG_PREFIX)-vmlinux.elf
$(call Image/Build/Initramfs)
endef
endif

View File

@ -97,9 +97,8 @@ define Kernel/Configure/2.6
endef
define Kernel/Configure/Default
$(LINUX_CONFCMD) > $(LINUX_DIR)/.config.target
echo "$(if $(CONFIG_KERNEL_KALLSYMS),CONFIG_KALLSYMS=y,# CONFIG_KALLSYMS is not set)" >> $(LINUX_DIR)/.config.target
echo "$(if $(CONFIG_KERNEL_PROFILING),CONFIG_PROFILING=y,# CONFIG_PROFILING is not set)" >> $(LINUX_DIR)/.config.target
echo "$(if $(CONFIG_KERNEL_DEBUG_FS),CONFIG_DEBUG_FS=y,# CONFIG_DEBUG_FS is not set)" >> $(LINUX_DIR)/.config.target
# copy CONFIG_KERNEL_* settings over to .config.target
awk '/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' $(TOPDIR)/.config >> $(LINUX_DIR)/.config.target
echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> $(LINUX_DIR)/.config.target
echo "# CONFIG_KALLSYMS_ALL is not set" >> $(LINUX_DIR)/.config.target
echo "# CONFIG_KPROBES is not set" >> $(LINUX_DIR)/.config.target

View File

@ -20,12 +20,21 @@ endif
ifeq ($(LINUX_VERSION),2.6.32.10)
LINUX_KERNEL_MD5SUM:=5d996507ad482a3a8c8e6b2d48e7994b
endif
ifeq ($(LINUX_VERSION),2.6.32.11)
LINUX_KERNEL_MD5SUM:=3709c691d909b4f8ca692edc6c726cb6
endif
ifeq ($(LINUX_VERSION),2.6.33)
LINUX_KERNEL_MD5SUM:=c3883760b18d50e8d78819c54d579b00
endif
ifeq ($(LINUX_VERSION),2.6.33.1)
LINUX_KERNEL_MD5SUM:=73b514ec918b88a45656be191b1ee226
endif
ifeq ($(LINUX_VERSION),2.6.33.2)
LINUX_KERNEL_MD5SUM:=80c5ff544b0ee4d9b5d8b8b89d4a0ef9
endif
ifeq ($(LINUX_VERSION),2.6.34-rc4)
LINUX_KERNEL_MD5SUM:=45b185f33300bbd69034779748b52c5f
endif
# disable the md5sum check for unknown kernel versions
LINUX_KERNEL_MD5SUM?=x

View File

@ -1,5 +1,5 @@
#
# Copyright (C) 2006-2008 OpenWrt.org
# Copyright (C) 2006-2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -29,41 +29,6 @@ $(eval $(if $(NF_KMOD),$(call nf_add,IPT_CORE,CONFIG_IP_NF_IPTABLES, $(P_V4)ip_t
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_CORE,CONFIG_IP_NF_FILTER, $(P_V4)iptable_filter),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_CORE,CONFIG_IP_NF_MANGLE, $(P_V4)iptable_mangle),))
#
# ebtables
#
$(eval $(if $(NF_KMOD),$(call nf_add,EBTABLES,CONFIG_BRIDGE_NF_EBTABLES, $(P_EBT)ebtables),))
# ebtables: tables
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_BROUTE, $(P_EBT)ebtable_broute))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_T_FILTER, $(P_EBT)ebtable_filter))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_T_NAT, $(P_EBT)ebtable_nat))
# ebtables: matches
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_802_3, $(P_EBT)ebt_802_3))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_AMONG, $(P_EBT)ebt_among))
$(eval $(call nf_add,EBTABLES_IP4,CONFIG_BRIDGE_EBT_ARP, $(P_EBT)ebt_arp))
$(eval $(call nf_add,EBTABLES_IP4,CONFIG_BRIDGE_EBT_IP, $(P_EBT)ebt_ip))
$(eval $(call nf_add,EBTABLES_IP6,CONFIG_BRIDGE_EBT_IP6, $(P_EBT)ebt_ip6))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_LIMIT, $(P_EBT)ebt_limit))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_MARK, $(P_EBT)ebt_mark_m))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_PKTTYPE, $(P_EBT)ebt_pkttype))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_STP, $(P_EBT)ebt_stp))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_VLAN, $(P_EBT)ebt_vlan))
# targets
$(eval $(call nf_add,EBTABLES_IP4,CONFIG_BRIDGE_EBT_ARPREPLY, $(P_EBT)ebt_arpreply))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_MARK_T, $(P_EBT)ebt_mark))
$(eval $(call nf_add,EBTABLES_IP4,CONFIG_BRIDGE_EBT_DNAT, $(P_EBT)ebt_dnat))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_REDIRECT, $(P_EBT)ebt_redirect))
$(eval $(call nf_add,EBTABLES_IP4,CONFIG_BRIDGE_EBT_SNAT, $(P_EBT)ebt_snat))
# watchers
$(eval $(call nf_add,EBTABLES_WATCHERS,CONFIG_BRIDGE_EBT_LOG, $(P_EBT)ebt_log))
$(eval $(call nf_add,EBTABLES_WATCHERS,CONFIG_BRIDGE_EBT_ULOG, $(P_EBT)ebt_ulog))
$(eval $(call nf_add,EBTABLES_WATCHERS,CONFIG_BRIDGE_EBT_NFLOG, $(P_EBT)ebt_nflog))
# userland only
$(eval $(if $(NF_KMOD),,$(call nf_add,IPT_CORE,CONFIG_IP_NF_IPTABLES, xt_standard ipt_icmp xt_tcp xt_udp xt_comment)))
@ -120,10 +85,11 @@ $(eval $(call nf_add,IPT_CONNTRACK_EXTRA,CONFIG_NETFILTER_XT_TARGET_CONNMARK, $(
$(eval $(call nf_add,IPT_EXTRA,CONFIG_IP_NF_MATCH_CONDITION, $(P_V4)ipt_condition))
$(eval $(call nf_add,IPT_EXTRA,CONFIG_IP_NF_MATCH_OWNER, $(P_V4)ipt_owner))
$(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_OWNER, $(P_XT)xt_owner))
$(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_PHYSDEV, $(P_XT)xt_physdev))
$(eval $(call nf_add,IPT_EXTRA,CONFIG_IP_NF_MATCH_PKTTYPE, $(P_V4)ipt_pkttype))
$(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_PKTTYPE, $(P_XT)xt_pkttype))
#$(eval $(call nf_add,IPT_EXTRA,CONFIG_IP_NF_MATCH_QUOTA, $(P_V4)ipt_quota))
$(eval $(call nf_add,IPT_EXTRA,CONFIG_IP_NF_MATCH_QUOTA, $(P_V4)ipt_quota))
$(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_QUOTA, $(P_XT)xt_quota))
#$(eval $(call nf_add,IPT_EXTRA,CONFIG_IP_NF_TARGET_ROUTE, $(P_V4)ipt_ROUTE))
@ -257,6 +223,7 @@ $(eval $(call nf_add,IPT_NATHELPER,CONFIG_IP_NF_NAT_IRC, $(P_V4)ip_nat_irc))
$(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_CONNTRACK_IRC, $(P_XT)nf_conntrack_irc))
$(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_NAT_IRC, $(P_V4)nf_nat_irc))
$(eval $(call nf_add,IPT_NATHELPER,CONFIG_IP_NF_TFTP, $(P_V4)ip_conntrack_tftp))
$(eval $(call nf_add,IPT_NATHELPER,CONFIG_IP_NF_NAT_TFTP, $(P_V4)ip_nat_tftp))
$(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_CONNTRACK_TFTP, $(P_XT)nf_conntrack_tftp))
$(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_NAT_TFTP, $(P_V4)nf_nat_tftp))
@ -264,6 +231,7 @@ $(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_NAT_TFTP, $(P_V4)nf_nat_tftp))
# nathelper-extra
$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_IP_NF_AMANDA, $(P_V4)ip_conntrack_amanda))
$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_IP_NF_NAT_AMANDA, $(P_V4)ip_nat_amanda))
$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_AMANDA, $(P_XT)nf_conntrack_amanda))
$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_AMANDA, $(P_V4)nf_nat_amanda))
$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_IP_NF_CT_PROTO_GRE, $(P_V4)ip_conntrack_proto_gre))
@ -302,6 +270,42 @@ $(eval $(call nf_add,IPT_QUEUE,CONFIG_IP_NF_QUEUE, $(P_V4)ip_queue))
$(eval $(call nf_add,IPT_ULOG,CONFIG_IP_NF_TARGET_ULOG, $(P_V4)ipt_ULOG))
#
# ebtables
#
$(eval $(if $(NF_KMOD),$(call nf_add,EBTABLES,CONFIG_BRIDGE_NF_EBTABLES, $(P_EBT)ebtables),))
# ebtables: tables
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_BROUTE, $(P_EBT)ebtable_broute))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_T_FILTER, $(P_EBT)ebtable_filter))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_T_NAT, $(P_EBT)ebtable_nat))
# ebtables: matches
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_802_3, $(P_EBT)ebt_802_3))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_AMONG, $(P_EBT)ebt_among))
$(eval $(call nf_add,EBTABLES_IP4,CONFIG_BRIDGE_EBT_ARP, $(P_EBT)ebt_arp))
$(eval $(call nf_add,EBTABLES_IP4,CONFIG_BRIDGE_EBT_IP, $(P_EBT)ebt_ip))
$(eval $(call nf_add,EBTABLES_IP6,CONFIG_BRIDGE_EBT_IP6, $(P_EBT)ebt_ip6))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_LIMIT, $(P_EBT)ebt_limit))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_MARK, $(P_EBT)ebt_mark_m))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_PKTTYPE, $(P_EBT)ebt_pkttype))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_STP, $(P_EBT)ebt_stp))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_VLAN, $(P_EBT)ebt_vlan))
# targets
$(eval $(call nf_add,EBTABLES_IP4,CONFIG_BRIDGE_EBT_ARPREPLY, $(P_EBT)ebt_arpreply))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_MARK_T, $(P_EBT)ebt_mark))
$(eval $(call nf_add,EBTABLES_IP4,CONFIG_BRIDGE_EBT_DNAT, $(P_EBT)ebt_dnat))
$(eval $(call nf_add,EBTABLES,CONFIG_BRIDGE_EBT_REDIRECT, $(P_EBT)ebt_redirect))
$(eval $(call nf_add,EBTABLES_IP4,CONFIG_BRIDGE_EBT_SNAT, $(P_EBT)ebt_snat))
# watchers
$(eval $(call nf_add,EBTABLES_WATCHERS,CONFIG_BRIDGE_EBT_LOG, $(P_EBT)ebt_log))
$(eval $(call nf_add,EBTABLES_WATCHERS,CONFIG_BRIDGE_EBT_ULOG, $(P_EBT)ebt_ulog))
$(eval $(call nf_add,EBTABLES_WATCHERS,CONFIG_BRIDGE_EBT_NFLOG, $(P_EBT)ebt_nflog))
# userland only
IPT_BUILTIN += $(IPT_CORE-y) $(IPT_CORE-m)
IPT_BUILTIN += $(IPT_CONNTRACK-y)

View File

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=base-files
PKG_RELEASE:=41
PKG_RELEASE:=42
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/

View File

@ -1,4 +1,10 @@
# uncomment me to log hotplug events
# DEVPATH is set {
# nothrottle
# exec logger -s -t hotplug -p daemon.info "name=%DEVICENAME%, path=%DEVPATH%"
# }
DEVICENAME ~~ (null|full|ptmx|tty|zero|gpio|hvc) {
nothrottle
makedev /dev/%DEVICENAME% 0666
@ -35,8 +41,8 @@ DEVPATH is set, SUBSYSTEM ~~ (input) {
}
DEVICENAME == device-mapper {
nothrottle
makedev /dev/mapper/control 0600
nothrottle
makedev /dev/mapper/control 0600
}
@ -45,8 +51,8 @@ DEVPATH is set {
makedev /dev/%DEVICENAME% 0644
}
FIRMWARE is set {
FIRMWARE is set, ACTION == add {
nothrottle
exec /sbin/hotplug-call firmware
load-firmware /lib/firmware
next
}

View File

@ -9,9 +9,12 @@ boot() {
include /lib/network
setup_switch
[ -s /etc/config/wireless ] || \
grep -qs config /etc/config/wireless && {
/sbin/wifi up
} || {
rm -f /etc/config/wireless
/sbin/wifi detect > /etc/config/wireless
/sbin/wifi up
}
}
start() {

View File

@ -10,7 +10,12 @@ run_scripts() {
LOGGER="cat"
[ -x /usr/bin/logger ] && LOGGER="logger -s -p 6 -t sysinit"
if [ "$1" = "S" ]; then
. /etc/functions.sh
config_load system
config_get_bool foreground system foreground no
if [ "$1" = "S" -a "$foreground" != "yes" ]; then
run_scripts "$1" "$2" &
else
run_scripts "$1" "$2"

View File

@ -1,19 +1,8 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2006-2010 OpenWrt.org
export HOTPLUG_TYPE="$1"
# bypass the normal hotplug path for firmware loading
# would otherwise cause problems with drivers like bcm43xx
[ -d /sys/firmware -a "firmware" = "$HOTPLUG_TYPE" -a "add" = "$ACTION" ] && {
[ -f "/lib/firmware/$FIRMWARE" ] && {
echo 1 > "/sys$DEVPATH/loading"
dd if="/lib/firmware/$FIRMWARE" of="/sys$DEVPATH/data" bs=64k
echo 0 > "/sys$DEVPATH/loading"
} || echo -1 > "/sys$DEVPATH/loading"
exit 0
}
. /etc/functions.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin

View File

@ -23,4 +23,4 @@ preinit_echo() {
echo "$@"
}
boot_run_hook mount_root
boot_run_hook preinit_mount_root

View File

@ -26,7 +26,7 @@ endef
define Package/block-extroot
$(call Package/block-extroot/Default)
MENU:=1
DEPENDS:=+block-mount @PACKAGE_kmod-ide-core||PACKAGE_kmod-usb-storage||PACKAGE_kmod-mmc
DEPENDS:=+block-mount @PACKAGE_kmod-ide-core||PACKAGE_kmod-ata-core||PACKAGE_kmod-usb-storage||PACKAGE_kmod-mmc||PACKAGE_kmod-broadcom-sdhc
endef
define Package/block-extroot/config

View File

@ -11,8 +11,6 @@ PKG_NAME:=block-mount
PKG_VERSION:=0.1.0
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/block-mount/Default
@ -25,27 +23,6 @@ define Package/block-mount
TITLE:=Block device mounting and checking
endef
define Package/block-mount/config
select BUSYBOX_CONFIG_MKSWAP
select BUSYBOX_CONFIG_FEATURE_MKSWAP_UUID
select BUSYBOX_CONFIG_SWAPONOFF
select BUSYBOX_CONFIG_BLKID
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_EXT
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_REISERFS
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_FAT
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_HFS
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_JFS
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_XFS
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_NTFS
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_SYSV
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_OCFS2
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_ISO9660
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXSWAP
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_CRAMFS
select BUSYBOX_CONFIG_FEATURE_VOLUMEID_ROMFS
endef
define Package/block-mount/description
Scripts used to mount and check block devices (filesystems and swap)
endef
@ -53,7 +30,7 @@ endef
define Package/block-hotplug
$(call Package/block-mount/Default)
TITLE:=Automount and autocheck block devices
DEPENDS:=block-mount hotplug2
DEPENDS:=+block-mount +hotplug2
endef
define Package/block-hotplug/description

View File

@ -60,6 +60,7 @@ enum {
WRT54G,
WRTSL54GS,
WRT54G3G,
WRT54G3GV2_VF,
WRT160N,
WRT300NV11,
WRT350N,
@ -271,6 +272,18 @@ static struct platform_t __initdata platforms[] = {
{ .name = "3g_blink", .gpio = 1 << 5, .polarity = NORMAL },
},
},
[WRT54G3GV2_VF] = {
.name = "Linksys WRT54G3GV2-VF",
.buttons = {
{ .name = "reset", .gpio = 1 << 6 },
{ .name = "3g", .gpio = 1 << 4 },
},
.leds = {
{ .name = "power", .gpio = 1 << 1, .polarity = NORMAL },
{ .name = "3g_green", .gpio = 1 << 2, .polarity = NORMAL },
{ .name = "3g_blue", .gpio = 1 << 3, .polarity = NORMAL },
},
},
[WRT160N] = {
.name = "Linksys WRT160N",
.buttons = {
@ -983,6 +996,9 @@ static struct platform_t __init *platform_detect(void)
if (!strcmp(boardtype, "0x0101") && !strcmp(getvar("boot_ver"), "v3.6"))
return &platforms[WRT54G3G];
if (!strcmp(boardtype, "0x042f") && !strcmp(getvar("model_name"), "WRT54G3GV2-VF"))
return &platforms[WRT54G3GV2_VF];
if (!strcmp(getvar("et1phyaddr"),"5") && !strcmp(getvar("et1mdcport"), "1"))
return &platforms[WRTSL54GS];

View File

@ -128,6 +128,7 @@ enable_broadcom() {
config_get txpower "$device" txpower
config_get frag "$device" frag
config_get rts "$device" rts
config_get hwmode "$device" hwmode
local vif_pre_up vif_post_up vif_do_up vif_txpower
local doth=0
local wmm=0
@ -159,6 +160,15 @@ enable_broadcom() {
;;
esac
case "$hwmode" in
*b) hwmode=0;;
*bg) hwmode=1;;
*g) hwmode=2;;
*gst) hwmode=4;;
*lrs) hwmode=5;;
*) hwmode=1;;
esac
for vif in $vifs; do
config_get vif_txpower "$vif" txpower
@ -238,7 +248,7 @@ enable_broadcom() {
append vif_do_up "wpa_auth $auth" "$N"
append vif_do_up "wsec_restrict $wsec_r" "$N"
append vif_do_up "eap_restrict $eap_r" "$N"
config_get ssid "$vif" ssid
append vif_post_up "vlan_mode 0" "$N"
append vif_post_up "ssid $ssid" "$N"
@ -256,9 +266,9 @@ enable_broadcom() {
append vif_pre_up "allow_mode 1" "$N"
}
} || append vif_pre_up "allow_mode 0" "$N"
append vif_post_up "enabled 1" "$N"
config_get ifname "$vif" ifname
#append if_up "ifconfig $ifname up" ";$N"
@ -278,7 +288,7 @@ enable_broadcom() {
[ -z "$bridge" ] || {
append vif_post_up "supplicant 1" "$N"
append vif_post_up "passphrase $key" "$N"
use_nas=0
}
}
@ -290,6 +300,7 @@ enable_broadcom() {
wlc ifname "$device" stdin <<EOF
$ifdown
gmode ${hwmode:-1}
apsta $apsta
ap $ap
${mssid:+mssid $mssid}

View File

@ -919,6 +919,13 @@ static const struct wlc_call wlc_calls[] = {
.handler = wlc_maclist,
.desc = "MACs of associated stations"
},
{
.name = "gmode",
.param = INT,
.data.num = ((WLC_GET_GMODE << 16) | WLC_SET_GMODE),
.handler = wlc_ioctl,
.desc = "G Mode"
},
};
#define wlc_calls_size (sizeof(wlc_calls) / sizeof(struct wlc_call))

View File

@ -1,5 +1,5 @@
#
# Copyright (C) 2006-2009 OpenWrt.org
# Copyright (C) 2006-2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=busybox
PKG_VERSION:=1.15.3
PKG_RELEASE:=1
PKG_VERSION:=1.16.1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.busybox.net/downloads \
http://distfiles.gentoo.org/distfiles/
PKG_MD5SUM:=6059ac9456de6fb18dc8ee4cd0ec9240
PKG_MD5SUM:=319486ec65078d07fde26eb620fecde7
include $(INCLUDE_DIR)/package.mk
@ -30,6 +30,7 @@ init-$(CONFIG_BUSYBOX_CONFIG_TELNETD) += telnet
define Package/busybox
SECTION:=base
CATEGORY:=Base system
MAINTAINER:=Nicolas Thill <nico@openwrt.org>
TITLE:=Core utilities for embedded Linux
URL:=http://busybox.net/
MENU:=1

View File

@ -29,6 +29,23 @@ config BUSYBOX_CONFIG_EXTRA_COMPAT
some GNU extensions in libc. You probably only need this option
if you plan to run busybox on desktop.
config BUSYBOX_CONFIG_INCLUDE_SUSv2
bool "Enable obsolete features removed before SUSv3"
default y
help
This option will enable backwards compatibility with SuSv2,
specifically, old-style numeric options ('command -1 <file>')
will be supported in head, tail, and fold. (Note: should
affect renice too.)
config BUSYBOX_CONFIG_USE_PORTABLE_CODE
bool "Avoid using GCC-specific code constructs"
default n
help
Use this option if you are trying to compile busybox with
compiler other than gcc.
If you do use gcc, this option may needlessly increase code size.
choice
prompt "Buffer allocation policy"
default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
@ -502,17 +519,8 @@ config BUSYBOX_CONFIG_EFENCE
endchoice
config BUSYBOX_CONFIG_INCLUDE_SUSv2
bool "Enable obsolete features removed before SUSv3?"
default y
help
This option will enable backwards compatibility with SuSv2,
specifically, old-style numeric options ('command -1 <file>')
will be supported in head, tail, and fold. (Note: should
affect renice too.)
### config PARSE
### bool "Uniform config file parser debugging applet: parse"
### bool "Uniform config file parser debugging applet: parse"
endmenu

View File

@ -165,6 +165,13 @@ config BUSYBOX_CONFIG_GZIP
gzip is used to compress files.
It's probably the most widely used UNIX compression program.
config BUSYBOX_CONFIG_FEATURE_GZIP_LONG_OPTIONS
bool "Enable long options"
default n
depends on BUSYBOX_CONFIG_GZIP && BUSYBOX_CONFIG_LONG_OPTS
help
Enable use of long options, increases size by about 106 Bytes
config BUSYBOX_CONFIG_LZOP
bool "lzop"
default n
@ -269,6 +276,14 @@ config BUSYBOX_CONFIG_FEATURE_TAR_UNAME_GNAME
listings (-t) and preserving permissions when unpacking (-p).
+200 bytes.
config BUSYBOX_CONFIG_FEATURE_TAR_NOPRESERVE_TIME
bool "Enable -m (do not preserve time) option"
default n
depends on BUSYBOX_CONFIG_TAR
help
With this option busybox supports GNU tar -m
(do not preserve time) option.
endif #tar
config BUSYBOX_CONFIG_UNCOMPRESS

View File

@ -52,6 +52,13 @@ config BUSYBOX_CONFIG_CHOWN
chown is used to change the user and/or group ownership
of files.
config BUSYBOX_CONFIG_FEATURE_CHOWN_LONG_OPTIONS
bool "Enable long options"
default n
depends on BUSYBOX_CONFIG_CHOWN && BUSYBOX_CONFIG_LONG_OPTS
help
Enable use of long options
config BUSYBOX_CONFIG_CHROOT
bool "chroot"
default y
@ -78,6 +85,14 @@ config BUSYBOX_CONFIG_CP
help
cp is used to copy files and directories.
config BUSYBOX_CONFIG_FEATURE_CP_LONG_OPTIONS
bool "Enable long options for cp"
default n
depends on BUSYBOX_CONFIG_CP && BUSYBOX_CONFIG_LONG_OPTS
help
Enable long options for cp.
Also add support for --parents option.
config BUSYBOX_CONFIG_CUT
bool "cut"
default y
@ -100,6 +115,22 @@ config BUSYBOX_CONFIG_FEATURE_DATE_ISOFMT
Enable option (-I) to output an ISO-8601 compliant
date/time string.
config BUSYBOX_CONFIG_FEATURE_DATE_COMPAT
bool "Support weird 'date MMDDhhmm[[YY]YY][.ss]' format"
default n
depends on BUSYBOX_CONFIG_DATE
help
System time can be set by 'date -s DATE' and simply 'date DATE',
but formats of DATE string are different. 'date DATE' accepts
a rather weird MMDDhhmm[[YY]YY][.ss] format with completely
unnatural placement of year between minutes and seconds.
date -s (and other commands like touch -d) use more sensible
formats (for one, ISO format YYYY-MM-DD hh:mm:ss.ssssss).
With this option off, 'date DATE' is 'date -s DATE' support
the same format. With it on, 'date DATE' additionally supports
MMDDhhmm[[YY]YY][.ss] format.
config BUSYBOX_CONFIG_DD
bool "dd"
default y
@ -113,13 +144,22 @@ config BUSYBOX_CONFIG_FEATURE_DD_SIGNAL_HANDLING
default y
depends on BUSYBOX_CONFIG_DD
help
sending a SIGUSR1 signal to a running `dd' process makes it
Sending a SIGUSR1 signal to a running `dd' process makes it
print to standard error the number of records read and written
so far, then to resume copying.
$ dd if=/dev/zero of=/dev/null&
$ pid=$! kill -USR1 $pid; sleep 1; kill $pid
10899206+0 records in 10899206+0 records out
10899206+0 records in
10899206+0 records out
config BUSYBOX_CONFIG_FEATURE_DD_THIRD_STATUS_LINE
bool "Enable the third status line upon signal"
default n
depends on BUSYBOX_CONFIG_DD && BUSYBOX_CONFIG_FEATURE_DD_SIGNAL_HANDLING
help
Displays a coreutils-like third status line with transferred bytes,
elapsed time and speed.
config BUSYBOX_CONFIG_FEATURE_DD_IBS_OBS
bool "Enable ibs, obs and conv options"
@ -829,13 +869,13 @@ config BUSYBOX_CONFIG_FEATURE_HUMAN_READABLE
help
Allow df, du, and ls to have human readable output.
comment "Common options for md5sum, sha1sum"
depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM
comment "Common options for md5sum, sha1sum, sha256sum, sha512sum"
depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM
config BUSYBOX_CONFIG_FEATURE_MD5_SHA1_SUM_CHECK
bool "Enable -c, -s and -w options"
default y
depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM
depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM
help
Enabling the -c options allows files to be checked
against pre-calculated hash values.

View File

@ -35,13 +35,12 @@ config BUSYBOX_CONFIG_DIFF
differences between them in a form that can be given to
the patch command.
config BUSYBOX_CONFIG_FEATURE_DIFF_BINARY
bool "Enable checks for binary files"
config BUSYBOX_CONFIG_FEATURE_DIFF_LONG_OPTIONS
bool "Enable long options"
default n
depends on BUSYBOX_CONFIG_DIFF
depends on BUSYBOX_CONFIG_DIFF && BUSYBOX_CONFIG_LONG_OPTS
help
This option enables support for checking for binary files
before a comparison is carried out.
Enable use of long options.
config BUSYBOX_CONFIG_FEATURE_DIFF_DIR
bool "Enable directory support"
@ -51,14 +50,6 @@ config BUSYBOX_CONFIG_FEATURE_DIFF_DIR
This option enables support for directory and subdirectory
comparison.
config BUSYBOX_CONFIG_FEATURE_DIFF_MINIMAL
bool "Enable -d option to find smaller sets of changes"
default n
depends on BUSYBOX_CONFIG_DIFF
help
Enabling this option allows the use of -d to make diff
try hard to find the smallest possible set of changes.
config BUSYBOX_CONFIG_ED
bool "ed"
default n

View File

@ -171,6 +171,13 @@ config BUSYBOX_CONFIG_FEATURE_FIND_CONTEXT
help
Support the 'find -context' option for matching security context.
config BUSYBOX_CONFIG_FEATURE_FIND_LINKS
bool "Enable -links: link count matching"
default n
depends on BUSYBOX_CONFIG_FIND
help
Support the 'find -links' option for matching number of links.
config BUSYBOX_CONFIG_GREP
bool "grep"
default y

View File

@ -111,7 +111,7 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
current cursor position. This information is used to make line
editing more robust in some cases.
If you are not sure whether your terminals respond to this code
correctly, or want to save on code size (about 300 bytes),
correctly, or want to save on code size (about 400 bytes),
then do not turn this option on.
config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
@ -134,9 +134,8 @@ config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
$ cp file /vmlinuz/file
cp: cannot stat '/vmlinuz/file': Path has non-directory component
If this feature is not enabled, they will be, respectively:
cp: cannot remove '/does_not_exist/file': No such file or directory
cp: cannot create '/does_not_exist/file': No such file or directory
cp: cannot stat '/vmlinuz/file': Not a directory
respectively.
This will cost you ~60 bytes.
config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB

View File

@ -137,11 +137,11 @@ config BUSYBOX_CONFIG_FEATURE_CROND_D
-d sets loglevel to 0 (most verbose) and directs all output to stderr.
config BUSYBOX_CONFIG_FEATURE_CROND_CALL_SENDMAIL
bool "Using /usr/sbin/sendmail?"
bool "Report command output via email (using sendmail)"
default n
depends on BUSYBOX_CONFIG_CROND
help
Support calling /usr/sbin/sendmail for send cmd outputs.
Command output will be sent to corresponding user via email.
config BUSYBOX_CONFIG_FEATURE_CROND_DIR
string "crond spool directory"
@ -272,6 +272,13 @@ config BUSYBOX_CONFIG_FBSPLASH
"NN" (ASCII decimal number) - percentage to show on progress bar
"exit" - well you guessed it
config BUSYBOX_CONFIG_FLASHCP
bool "flashcp"
default n
help
The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7.
This utility is used to copy images into a MTD device.
config BUSYBOX_CONFIG_FLASH_LOCK
bool "flash_lock"
default n
@ -618,6 +625,12 @@ config BUSYBOX_CONFIG_VOLNAME
help
Prints a CD-ROM volume name.
config BUSYBOX_CONFIG_WALL
bool "wall"
default n
help
Write a message to all users that are logged in.
config BUSYBOX_CONFIG_WATCHDOG
bool "watchdog"
default y

View File

@ -121,6 +121,22 @@ config BUSYBOX_CONFIG_FEATURE_2_4_MODULES
This increases size considerably. Say N unless you plan
to run ancient kernels.
config BUSYBOX_CONFIG_FEATURE_INSMOD_TRY_MMAP
bool "Try to load module from a mmap'ed area"
default n
depends on BUSYBOX_CONFIG_INSMOD || BUSYBOX_CONFIG_MODPROBE_SMALL
help
This option causes module loading code to try to mmap
module first. If it does not work (for example,
it does not work for compressed modules), module will be read
(and unpacked if needed) into a memory block allocated by malloc.
The only case when mmap works but malloc does not is when
you are trying to load a big module on a very memory-constrained
machine. Malloc will momentarily need 2x as much memory as mmap.
Choosing N saves about 250 bytes of code (on 32-bit x86).
config BUSYBOX_CONFIG_FEATURE_INSMOD_VERSION_CHECKING
bool "Enable module version checking"
default n

View File

@ -117,6 +117,17 @@ config BUSYBOX_CONFIG_FEATURE_FTP_WRITE
help
Enable all kinds of FTP upload commands (-w option)
config BUSYBOX_CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST
bool "Enable workaround for RFC-violating clients"
default n
depends on BUSYBOX_CONFIG_FTPD
help
Some ftp-clients (among them KDE's Konqueror) issue illegal
"LIST -la" requests. This option works around those problems.
It might prevent you from listing files starting with "-" and
it increases the code size by ~40 bytes.
Most other ftp servers seem to behave similar to this.
config BUSYBOX_CONFIG_FTPGET
bool "ftpget"
default n
@ -667,6 +678,20 @@ config BUSYBOX_CONFIG_NSLOOKUP
help
nslookup is a tool to query Internet name servers.
config BUSYBOX_CONFIG_NTPD
bool "ntpd"
default n
help
The NTP client/server daemon.
config BUSYBOX_CONFIG_FEATURE_NTPD_SERVER
bool "Make ntpd usable as a NTP server"
default n
depends on BUSYBOX_CONFIG_NTPD
help
Make ntpd usable as a NTP server. If you disable this option
ntpd will be usable only as a NTP client.
config BUSYBOX_CONFIG_PING
bool "ping"
default y
@ -794,6 +819,27 @@ config BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE
help
Selecting this will make telnetd able to run standalone.
config BUSYBOX_CONFIG_FEATURE_TELNETD_INETD_WAIT
bool "Support -w SEC option (inetd wait mode)"
default n
depends on BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE
help
This option allows you to run telnetd in "inet wait" mode.
Example inetd.conf line (note "wait", not usual "nowait"):
telnet stream tcp wait root /bin/telnetd telnetd -w10
In this example, inetd passes _listening_ socket_ as fd 0
to telnetd when connection appears.
telnetd will wait for connections until all existing
connections are closed, and no new connections
appear during 10 seconds. Then it exits, and inetd continues
to listen for new connections.
This option is rarely used. "tcp nowait" is much more usual
way of running tcp services, including telnetd.
You most probably want to say N here.
config BUSYBOX_CONFIG_TFTP
bool "tftp"
default n
@ -831,12 +877,19 @@ config BUSYBOX_CONFIG_FEATURE_TFTP_PUT
Also enable download support in tftpd, if tftpd is selected.
config BUSYBOX_CONFIG_FEATURE_TFTP_BLOCKSIZE
bool "Enable \"blksize\" protocol option"
bool "Enable 'blksize' and 'tsize' protocol options"
default n
depends on BUSYBOX_CONFIG_TFTP || BUSYBOX_CONFIG_TFTPD
help
Allow tftp to specify block size, and tftpd to understand
"blksize" option.
"blksize" and "tsize" options.
config BUSYBOX_CONFIG_FEATURE_TFTP_PROGRESS_BAR
bool "Enable tftp progress meter"
default n
depends on BUSYBOX_CONFIG_TFTP && BUSYBOX_CONFIG_FEATURE_TFTP_BLOCKSIZE
help
Show progress bar.
config BUSYBOX_CONFIG_TFTP_DEBUG
bool "Enable debug"
@ -852,6 +905,13 @@ config BUSYBOX_CONFIG_TRACEROUTE
help
Utility to trace the route of IP packets.
config BUSYBOX_CONFIG_TRACEROUTE6
bool "traceroute6"
default n
depends on BUSYBOX_CONFIG_FEATURE_IPV6 && BUSYBOX_CONFIG_TRACEROUTE
help
Utility to trace the route of IPv6 packets.
config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_VERBOSE
bool "Enable verbose output"
default y
@ -880,7 +940,7 @@ source package/busybox/config/networking/udhcp/Config.in
config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS
string "ifup udhcpc command line options"
default "-R -n"
depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_APP_UDHCPC
depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_UDHCPC
help
Command line options to pass to udhcpc from ifup.
Intended to alter options not available in /etc/network/interfaces.

View File

@ -3,26 +3,26 @@
# see scripts/kbuild/config-language.txt.
#
config BUSYBOX_CONFIG_APP_UDHCPD
config BUSYBOX_CONFIG_UDHCPD
bool "udhcp server (udhcpd)"
default n
help
udhcpd is a DHCP server geared primarily toward embedded systems,
while striving to be fully functional and RFC compliant.
config BUSYBOX_CONFIG_APP_DHCPRELAY
config BUSYBOX_CONFIG_DHCPRELAY
bool "dhcprelay"
default n
depends on BUSYBOX_CONFIG_APP_UDHCPD
depends on BUSYBOX_CONFIG_UDHCPD
help
dhcprelay listens for dhcp requests on one or more interfaces
and forwards these requests to a different interface or dhcp
server.
config BUSYBOX_CONFIG_APP_DUMPLEASES
config BUSYBOX_CONFIG_DUMPLEASES
bool "Lease display utility (dumpleases)"
default n
depends on BUSYBOX_CONFIG_APP_UDHCPD
depends on BUSYBOX_CONFIG_UDHCPD
help
dumpleases displays the leases written out by the udhcpd server.
Lease times are stored in the file by time remaining in lease, or
@ -31,7 +31,7 @@ config BUSYBOX_CONFIG_APP_DUMPLEASES
config BUSYBOX_CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY
bool "Rewrite the lease file at every new acknowledge"
default n
depends on BUSYBOX_CONFIG_APP_UDHCPD
depends on BUSYBOX_CONFIG_UDHCPD
help
If selected, udhcpd will write a new file with leases every
time a new lease has been accepted, thus eliminating the need
@ -41,12 +41,12 @@ config BUSYBOX_CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY
config BUSYBOX_CONFIG_DHCPD_LEASES_FILE
string "Absolute path to lease file"
default "/var/run/udhcpd.leases"
depends on BUSYBOX_CONFIG_APP_UDHCPD
depends on BUSYBOX_CONFIG_UDHCPD
help
udhcpd stores addresses in a lease file. This is the absolute path
of the file. Normally it is safe to leave it untouched.
config BUSYBOX_CONFIG_APP_UDHCPC
config BUSYBOX_CONFIG_UDHCPC
bool "udhcp client (udhcpc)"
default y
help
@ -59,7 +59,7 @@ config BUSYBOX_CONFIG_APP_UDHCPC
config BUSYBOX_CONFIG_FEATURE_UDHCPC_ARPING
bool "Verify that the offered address is free, using ARP ping"
default n
depends on BUSYBOX_CONFIG_APP_UDHCPC
depends on BUSYBOX_CONFIG_UDHCPC
help
If selected, udhcpc will send ARP probes and make sure
the offered address is really not in use by anyone. The client
@ -69,7 +69,7 @@ config BUSYBOX_CONFIG_FEATURE_UDHCPC_ARPING
config BUSYBOX_CONFIG_FEATURE_UDHCP_PORT
bool "Enable '-P port' option for udhcpd and udhcpc"
default n
depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC
depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
help
At the cost of ~300 bytes, enables -P port option.
This feature is typically not needed.
@ -78,7 +78,7 @@ config BUSYBOX_CONFIG_UDHCP_DEBUG
int "Maximum verbosity level for udhcp applets (0..9)"
default 0
range 0 9
depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC || BUSYBOX_CONFIG_APP_DHCPRELAY
depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_DHCPRELAY
help
Verbosity can be increased with multiple -v options.
This options controls how high it can be cranked up.
@ -89,7 +89,7 @@ config BUSYBOX_CONFIG_UDHCP_DEBUG
config BUSYBOX_CONFIG_FEATURE_UDHCP_RFC3397
bool "Support for RFC3397 domain search (experimental)"
default y
depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC
depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
help
If selected, both client and server will support passing of domain
search lists via option 119, specified in RFC3397.
@ -97,7 +97,7 @@ config BUSYBOX_CONFIG_FEATURE_UDHCP_RFC3397
config BUSYBOX_CONFIG_UDHCPC_DEFAULT_SCRIPT
string "Absolute path to config script"
default "/usr/share/udhcpc/default.script"
depends on BUSYBOX_CONFIG_APP_UDHCPC
depends on BUSYBOX_CONFIG_UDHCPC
help
This script is called after udhcpc receives an answer. See
examples/udhcp for a working example. Normally it is safe
@ -107,7 +107,7 @@ config BUSYBOX_CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS
int "DHCP options slack buffer size"
default 80
range 0 924
depends on BUSYBOX_CONFIG_APP_UDHCPD || BUSYBOX_CONFIG_APP_UDHCPC
depends on BUSYBOX_CONFIG_UDHCPD || BUSYBOX_CONFIG_UDHCPC
help
Some buggy DHCP servers send DHCP offer packets with option
field larger than we expect (which might also be considered a

View File

@ -188,6 +188,13 @@ config BUSYBOX_CONFIG_FEATURE_TOPMEM
help
Enable 's' in top (gives lots of memory info).
config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS
bool "Support for showing threads in ps/top"
default n
depends on BUSYBOX_CONFIG_PS || BUSYBOX_CONFIG_TOP
help
Enables ps -T option and 'h' command in top
config BUSYBOX_CONFIG_UPTIME
bool "uptime"
default y
@ -203,5 +210,4 @@ config BUSYBOX_CONFIG_WATCH
watch is used to execute a program periodically, showing
output to the screen.
endmenu

View File

@ -15,6 +15,7 @@ choice
config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
select BUSYBOX_CONFIG_ASH
bool "ash"
depends on !BUSYBOX_CONFIG_NOMMU
config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
select BUSYBOX_CONFIG_HUSH
@ -36,6 +37,7 @@ endchoice
config BUSYBOX_CONFIG_ASH
bool "ash"
default y
depends on !BUSYBOX_CONFIG_NOMMU
help
Tha 'ash' shell adds about 60k in the default configuration and is
the most complete and most pedantically correct shell included with
@ -57,23 +59,6 @@ config BUSYBOX_CONFIG_ASH_JOB_CONTROL
help
Enable job control in the ash shell.
config BUSYBOX_CONFIG_ASH_READ_NCHARS
bool "'read -n N' and 'read -s' support"
default n
depends on BUSYBOX_CONFIG_ASH
help
'read -n N' will return a value after N characters have been read.
'read -s' will read without echoing the user's input.
config BUSYBOX_CONFIG_ASH_READ_TIMEOUT
bool "'read -t S' support"
default y
depends on BUSYBOX_CONFIG_ASH
help
'read -t S' will return a value after S seconds have passed.
This implementation will allow fractional seconds, expressed
as a decimal fraction, e.g. 'read -t 2.5 foo'.
config BUSYBOX_CONFIG_ASH_ALIAS
bool "alias support"
default y
@ -187,7 +172,7 @@ config BUSYBOX_CONFIG_HUSH_INTERACTIVE
help
Enable interactive mode (prompt and command editing).
Without this, hush simply reads and executes commands
from stdin just like a shell script from the file.
from stdin just like a shell script from a file.
No prompt, no PS1/PS2 magic shell variables.
config BUSYBOX_CONFIG_HUSH_JOB
@ -250,6 +235,14 @@ config BUSYBOX_CONFIG_HUSH_EXPORT_N
help
Enable support for export '-n' option in hush. It is a bash extension.
config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
bool "Pseudorandom generator and $RANDOM variable"
default n
depends on BUSYBOX_CONFIG_HUSH
help
Enable pseudorandom generator and dynamic variable "$RANDOM".
Each read of "$RANDOM" will generate a new pseudorandom value.
config BUSYBOX_CONFIG_LASH
bool "lash (deprecated: aliased to hush)"
default n

View File

@ -29,7 +29,7 @@ config BUSYBOX_CONFIG_FEATURE_ACPID_COMPAT
config BUSYBOX_CONFIG_BLKID
bool "blkid"
default n
default y
select BUSYBOX_CONFIG_VOLUMEID
help
Lists labels and UUIDs of all filesystems.
@ -213,6 +213,12 @@ config BUSYBOX_CONFIG_FSCK_MINIX
check for and attempt to repair any corruption that occurs to a minix
filesystem.
config BUSYBOX_CONFIG_MKFS_EXT2
bool "mkfs_ext2"
default n
help
Utility to create EXT2 filesystems.
config BUSYBOX_CONFIG_MKFS_MINIX
bool "mkfs_minix"
default n
@ -233,6 +239,12 @@ config BUSYBOX_CONFIG_FEATURE_MINIX2
this. If you enabled 'mkfs_minix' then you almost certainly want to
be using the version 2 filesystem support.
config BUSYBOX_CONFIG_MKFS_REISER
bool "mkfs_reiser"
default n
help
Utility to create ReiserFS filesystems.
config BUSYBOX_CONFIG_MKFS_VFAT
bool "mkfs_vfat"
default n
@ -336,6 +348,24 @@ config BUSYBOX_CONFIG_LOSETUP
file or block device, and to query the status of a loop device. This
version does not currently support enabling data encryption.
config BUSYBOX_CONFIG_LSPCI
bool "lspci"
default n
help
lspci is a utility for displaying information about PCI buses in the
system and devices connected to them.
This version uses sysfs (/sys/bus/pci/devices) only.
config BUSYBOX_CONFIG_LSUSB
bool "lsusb"
default n
help
lsusb is a utility for displaying information about USB buses in the
system and devices connected to them.
This version uses sysfs (/sys/bus/usb/devices) only.
config BUSYBOX_CONFIG_MDEV
bool "mdev"
default n
@ -395,7 +425,7 @@ config BUSYBOX_CONFIG_FEATURE_MDEV_LOAD_FIRMWARE
config BUSYBOX_CONFIG_MKSWAP
bool "mkswap"
default n
default y
help
The mkswap utility is used to configure a file or disk partition as
Linux swap space. This allows Linux to use the entire file or
@ -408,7 +438,7 @@ config BUSYBOX_CONFIG_MKSWAP
config BUSYBOX_CONFIG_FEATURE_MKSWAP_UUID
bool "UUID support"
default n
default y
depends on BUSYBOX_CONFIG_MKSWAP
help
Generate swap spaces with universally unique identifiers.
@ -440,28 +470,35 @@ config BUSYBOX_CONFIG_VOLUMEID
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_EXT
bool "Ext filesystem"
default n
default y
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_BTRFS
bool "btrfs filesystem"
default y
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_REISERFS
bool "Reiser filesystem"
default n
default y
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_FAT
bool "fat filesystem"
default n
default y
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_HFS
bool "hfs filesystem"
default n
default y
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
@ -482,28 +519,28 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_JFS
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_XFS
bool "xfs filesystem"
default n
default y
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_NTFS
bool "ntfs filesystem"
default n
default y
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_ISO9660
bool "iso9660 filesystem"
default n
default y
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF
bool "udf filesystem"
default n
default y
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
@ -517,7 +554,7 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LUKS
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXSWAP
bool "linux swap filesystem"
default n
default y
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
@ -637,7 +674,7 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_OCFS2
config BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXRAID
bool "linuxraid"
default n
default y
depends on BUSYBOX_CONFIG_VOLUMEID
help
TODO
@ -689,6 +726,7 @@ config BUSYBOX_CONFIG_FEATURE_MOUNT_LABEL
help
This allows for specifying a device by label or uuid, rather than by
name. This feature utilizes the same functionality as blkid/findfs.
This also enables label or uuid support for swapon.
config BUSYBOX_CONFIG_FEATURE_MOUNT_NFS
bool "Support mounting NFS file systems"
@ -786,7 +824,7 @@ config BUSYBOX_CONFIG_SETARCH
config BUSYBOX_CONFIG_SWAPONOFF
bool "swaponoff"
default n
default y
help
This option enables both the 'swapon' and the 'swapoff' utilities.
Once you have created some swap space using 'mkswap', you also need

View File

@ -1,12 +1,12 @@
--- a/applets/Kbuild
+++ b/applets/Kbuild
@@ -27,13 +27,13 @@ HOSTCFLAGS_usage.o = -I$(srctree_slash)i
@@ -28,13 +28,13 @@ HOSTCFLAGS_usage_pod.o = -I$(srctree_sla
applets/applets.o: include/usage_compressed.h include/applet_tables.h
-applets/usage: .config $(srctree_slash)applets/usage_compressed
+applets/usage: .config $(srctree_slash)applets/usage_compressed include/autoconf.h
applets/applet_tables: .config
applets/applet_tables: .config $(srctree_slash)include/applets.h
-applets/usage: .config $(srctree_slash)include/applets.h
+applets/usage: .config $(srctree_slash)include/applets.h include/autoconf.h
applets/usage_pod: .config include/applet_tables.h $(srctree_slash)include/applets.h
quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h
cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets

View File

@ -1,6 +1,6 @@
--- a/init/init.c
+++ b/init/init.c
@@ -451,8 +451,11 @@ static void run_actions(int action_type)
@@ -456,8 +456,11 @@ static void run_actions(int action_type)
/* Only run stuff with pid == 0. If pid != 0,
* it is already running
*/

View File

@ -1,6 +1,6 @@
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -653,7 +653,7 @@ int wget_main(int argc UNUSED_PARAM, cha
@@ -543,7 +543,7 @@ int wget_main(int argc UNUSED_PARAM, cha
// "tries\0" Required_argument "t"
// "timeout\0" Required_argument "T"
/* Ignored (we always use PASV): */
@ -8,4 +8,4 @@
+ "passive-ftp\0" No_argument "\xfd"
"header\0" Required_argument "\xfe"
"post-data\0" Required_argument "\xfd"
;
/* Ignored (we don't do ssl) */

View File

@ -1,6 +1,6 @@
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -12351,8 +12351,17 @@ exportcmd(int argc UNUSED_PARAM, char **
@@ -12340,8 +12340,17 @@ exportcmd(int argc UNUSED_PARAM, char **
const char *p;
char **aptr;
int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT;
@ -19,7 +19,7 @@
aptr = argptr;
name = *aptr;
if (name) {
@@ -12364,10 +12373,12 @@ exportcmd(int argc UNUSED_PARAM, char **
@@ -12353,10 +12362,12 @@ exportcmd(int argc UNUSED_PARAM, char **
vp = *findvar(hashvar(name), name);
if (vp) {
vp->flags |= flag;

View File

@ -1,6 +1,6 @@
--- a/include/applets.h
+++ b/include/applets.h
@@ -278,6 +278,7 @@ IF_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_D
@@ -282,6 +282,7 @@ IF_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_D
IF_MV(APPLET(mv, _BB_DIR_BIN, _BB_SUID_DROP))
IF_NAMEIF(APPLET(nameif, _BB_DIR_SBIN, _BB_SUID_DROP))
IF_NC(APPLET(nc, _BB_DIR_USR_BIN, _BB_SUID_DROP))
@ -10,7 +10,7 @@
IF_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_DROP))
--- a/include/usage.h
+++ b/include/usage.h
@@ -3101,6 +3101,9 @@
@@ -3166,6 +3166,9 @@
#endif
@ -22,7 +22,7 @@
#define netstat_full_usage "\n\n" \
--- a/networking/Config.in
+++ b/networking/Config.in
@@ -617,6 +617,12 @@ config NC
@@ -628,6 +628,12 @@ config NC
A simple Unix utility which reads and writes data across network
connections.
@ -44,7 +44,7 @@
+lib-$(CONFIG_NETMSG) += netmsg.o
lib-$(CONFIG_NETSTAT) += netstat.o
lib-$(CONFIG_NSLOOKUP) += nslookup.o
lib-$(CONFIG_PING) += ping.o
lib-$(CONFIG_NTPD) += ntpd.o
--- /dev/null
+++ b/networking/netmsg.c
@@ -0,0 +1,63 @@

View File

@ -3,7 +3,7 @@
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -1699,21 +1699,32 @@ static int check_user_passwd(const char
@@ -1716,21 +1716,32 @@ static int check_user_passwd(const char
if (ENABLE_FEATURE_HTTPD_AUTH_MD5) {
char *md5_passwd;

View File

@ -1,6 +1,6 @@
--- a/include/applets.h
+++ b/include/applets.h
@@ -233,6 +233,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, _BB_DIR_BIN,
@@ -234,6 +234,7 @@ IF_LN(APPLET_NOEXEC(ln, ln, _BB_DIR_BIN,
IF_LOAD_POLICY(APPLET(load_policy, _BB_DIR_USR_SBIN, _BB_SUID_DROP))
IF_LOADFONT(APPLET(loadfont, _BB_DIR_USR_SBIN, _BB_SUID_DROP))
IF_LOADKMAP(APPLET(loadkmap, _BB_DIR_SBIN, _BB_SUID_DROP))
@ -10,7 +10,7 @@
IF_LOGNAME(APPLET_NOFORK(logname, logname, _BB_DIR_USR_BIN, _BB_SUID_DROP, logname))
--- a/include/usage.h
+++ b/include/usage.h
@@ -2325,6 +2325,9 @@
@@ -2357,6 +2357,9 @@
#define loadkmap_example_usage \
"$ loadkmap < /etc/i18n/lang-keymap\n"
@ -22,7 +22,7 @@
#define logger_full_usage "\n\n" \
--- a/miscutils/Config.in
+++ b/miscutils/Config.in
@@ -456,6 +456,11 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
@@ -463,6 +463,11 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA
help
Enables the 'hdparm -d' option to get/set using_dma flag.
@ -36,7 +36,7 @@
default n
--- a/miscutils/Kbuild
+++ b/miscutils/Kbuild
@@ -26,6 +26,7 @@ lib-$(CONFIG_INOTIFYD) += inotifyd.o
@@ -27,6 +27,7 @@ lib-$(CONFIG_INOTIFYD) += inotifyd.o
lib-$(CONFIG_FEATURE_LAST_SMALL)+= last.o
lib-$(CONFIG_FEATURE_LAST_FANCY)+= last_fancy.o
lib-$(CONFIG_LESS) += less.o

View File

@ -1,6 +1,6 @@
--- a/include/usage.h
+++ b/include/usage.h
@@ -1693,6 +1693,7 @@
@@ -1727,6 +1727,7 @@
IF_FEATURE_HTTPD_BASIC_AUTH(" [-r REALM]") \
" [-h HOME]\n" \
"or httpd -d/-e" IF_FEATURE_HTTPD_AUTH_MD5("/-m") " STRING"
@ -8,18 +8,18 @@
#define httpd_full_usage "\n\n" \
"Listen for incoming HTTP requests\n" \
"\nOptions:" \
@@ -1710,6 +1711,8 @@
@@ -1744,6 +1745,8 @@
"\n -m STRING MD5 crypt STRING") \
"\n -e STRING HTML encode STRING" \
"\n -d STRING URL decode STRING" \
+ "\n -R PATH Redirect target path" \
+ "\n -H HOST Redirect target host" \
+ "\n -R PATH Redirect target path" \
+ "\n -H HOST Redirect target host" \
#define hwclock_trivial_usage \
IF_FEATURE_HWCLOCK_LONG_OPTIONS( \
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -248,6 +248,8 @@ struct globals {
@@ -250,6 +250,8 @@ struct globals {
const char *found_mime_type;
const char *found_moved_temporarily;
@ -28,7 +28,7 @@
Htaccess_IP *ip_a_d; /* config allow/deny lines */
IF_FEATURE_HTTPD_BASIC_AUTH(const char *g_realm;)
@@ -294,6 +296,8 @@ struct globals {
@@ -296,6 +298,8 @@ struct globals {
#define index_page (G.index_page )
#define found_mime_type (G.found_mime_type )
#define found_moved_temporarily (G.found_moved_temporarily)
@ -37,7 +37,7 @@
#define last_mod (G.last_mod )
#define ip_a_d (G.ip_a_d )
#define g_realm (G.g_realm )
@@ -993,8 +997,11 @@ static void send_headers(int responseNum
@@ -997,8 +1001,11 @@ static void send_headers(int responseNum
}
#endif
if (responseNum == HTTP_MOVED_TEMPORARILY) {
@ -50,7 +50,7 @@
(g_query ? "?" : ""),
(g_query ? g_query : ""));
}
@@ -1924,8 +1931,12 @@ static void handle_incoming_and_exit(con
@@ -1941,8 +1948,12 @@ static void handle_incoming_and_exit(con
} while (*++tptr);
*++urlp = '\0'; /* terminate after last character */
@ -61,10 +61,10 @@
/* If URL is a directory, add '/' */
- if (urlp[-1] != '/') {
+ if (!redirect_path && (urlp[-1] != '/')) {
if (is_directory(urlcopy + 1, 1, &sb)) {
if (is_directory(urlcopy + 1, 1, NULL)) {
found_moved_temporarily = urlcopy;
}
@@ -2266,7 +2277,9 @@ static void sighup_handler(int sig UNUSE
@@ -2283,7 +2294,9 @@ static void sighup_handler(int sig UNUSE
}
enum {
@ -75,7 +75,7 @@
d_opt_decode_url,
h_opt_home_httpd,
IF_FEATURE_HTTPD_ENCODE_URL_STR(e_opt_encode_url,)
@@ -2315,12 +2328,13 @@ int httpd_main(int argc UNUSED_PARAM, ch
@@ -2332,12 +2345,13 @@ int httpd_main(int argc UNUSED_PARAM, ch
/* We do not "absolutize" path given by -h (home) opt.
* If user gives relative path in -h,
* $SCRIPT_FILENAME will not be set. */

View File

@ -1,6 +1,6 @@
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -1250,10 +1250,10 @@ static NOINLINE void cgi_io_loop_and_exi
@@ -1254,10 +1254,10 @@ static NOINLINE void cgi_io_loop_and_exi
if (full_write(STDOUT_FILENO, HTTP_200, sizeof(HTTP_200)-1) != sizeof(HTTP_200)-1)
break;
}

View File

@ -1,6 +1,6 @@
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -1810,6 +1810,7 @@ static void handle_incoming_and_exit(con
@@ -1827,6 +1827,7 @@ static void handle_incoming_and_exit(con
char *header_ptr = header_ptr;
Htaccess_Proxy *proxy_entry;
#endif

View File

@ -119,7 +119,7 @@
}
--- a/modutils/Config.in
+++ b/modutils/Config.in
@@ -210,7 +210,7 @@ config FEATURE_MODUTILS_SYMBOLS
@@ -226,7 +226,7 @@ config FEATURE_MODUTILS_SYMBOLS
config DEFAULT_MODULES_DIR
string "Default directory containing modules"
default "/lib/modules"

View File

@ -1,7 +1,7 @@
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -69,6 +69,10 @@
#define MS_DIRSYNC 128 // Directory modifications are synchronous
@@ -77,6 +77,10 @@
# include <rpc/pmap_clnt.h>
#endif
+#ifndef MS_UNION
@ -11,7 +11,7 @@
#if defined(__dietlibc__)
// 16.12.2006, Sampo Kellomaki (sampo@iki.fi)
@@ -185,6 +189,7 @@ static const int32_t mount_options[] = {
@@ -194,6 +198,7 @@ static const int32_t mount_options[] = {
/* "rslave" */ MS_SLAVE|MS_RECURSIVE,
/* "rprivate" */ MS_SLAVE|MS_RECURSIVE,
/* "runbindable" */ MS_UNBINDABLE|MS_RECURSIVE,
@ -19,7 +19,7 @@
)
// Always understood.
@@ -239,6 +244,7 @@ static const char mount_option_str[] =
@@ -249,6 +254,7 @@ static const char mount_option_str[] =
"rslave\0"
"rprivate\0"
"runbindable\0"

View File

@ -15,7 +15,7 @@
} func;
/* I/O stream */
@@ -1420,7 +1425,8 @@ static void parse_program(char *p)
@@ -1424,7 +1429,8 @@ static void parse_program(char *p)
next_token(TC_FUNCTION);
g_pos++;
f = newfunc(t_string);
@ -25,7 +25,7 @@
f->nargs = 0;
while (next_token(TC_VARIABLE | TC_SEQTERM) & TC_VARIABLE) {
v = findvar(ahash, t_string);
@@ -1429,7 +1435,7 @@ static void parse_program(char *p)
@@ -1433,7 +1439,7 @@ static void parse_program(char *p)
if (next_token(TC_COMMA | TC_SEQTERM) & TC_SEQTERM)
break;
}
@ -34,7 +34,7 @@
chain_group();
clear_array(ahash);
@@ -2410,7 +2416,8 @@ static var *evaluate(node *op, var *res)
@@ -2446,7 +2452,8 @@ static var *evaluate(node *op, var *res)
break;
case XC( OC_FUNC ):
@ -43,8 +43,8 @@
+ !op->r.f->x.body.first)
syntax_error(EMSG_UNDEF_FUNC);
X.v = R.v = nvalloc(op->r.f->nargs+1);
@@ -2427,7 +2434,10 @@ static var *evaluate(node *op, var *res)
X.v = R.v = nvalloc(op->r.f->nargs + 1);
@@ -2463,7 +2470,10 @@ static var *evaluate(node *op, var *res)
fnargs = X.v;
L.s = g_progname;
@ -56,7 +56,7 @@
g_progname = L.s;
nvfree(fnargs);
@@ -2790,6 +2800,143 @@ static rstream *next_input_file(void)
@@ -2829,6 +2839,143 @@ static rstream *next_input_file(void)
#undef files_happen
}
@ -200,7 +200,7 @@
int awk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int awk_main(int argc, char **argv)
{
@@ -2855,6 +3002,9 @@ int awk_main(int argc, char **argv)
@@ -2894,6 +3041,9 @@ int awk_main(int argc, char **argv)
*s1 = '=';
}
}

View File

@ -1,6 +1,6 @@
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
@@ -306,6 +306,7 @@ make_new_session(
@@ -308,6 +308,7 @@ make_new_session(
/* Restore default signal handling ASAP */
bb_signals((1 << SIGCHLD) + (1 << SIGPIPE), SIG_DFL);

View File

@ -24,7 +24,6 @@ define Package/libcyassl
SECTION:=libs
SUBMENU:=SSL
CATEGORY:=Libraries
DEPENDS:=+zlib
TITLE:=CyaSSL library
URL:=http://www.yassl.com/
endef

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmasq
PKG_VERSION:=2.52
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq

View File

@ -284,16 +284,22 @@ dhcp_option_add() {
dhcp_domain_add() {
local cfg="$1"
local ip name names
config_get name "$cfg" name
[ -n "$name" ] || return 0
config_get names "$cfg" name
[ -n "$names" ] || return 0
config_get ip "$cfg" ip
[ -n "$ip" ] || return 0
local oIFS="$IFS"; IFS="."; set -- $ip; IFS="$oIFS"
append args "-A /$name${DOMAIN:+.$DOMAIN}/$ip"
append args "--ptr-record=$4.$3.$2.$1.in-addr.arpa,$name${DOMAIN:+.$DOMAIN}"
local raddr="${4:+$4.$3.$2.$1.in-addr.arpa}"
for name in $names; do
append args "-A /$name${DOMAIN:+.$DOMAIN}/$ip"
[ -n "$raddr" ] && \
append args "--ptr-record=$raddr,$name${DOMAIN:+.$DOMAIN}"
done
}
start() {

View File

@ -31,20 +31,10 @@ define Package/grub
URL:=http://www.gnu.org/software/grub/
endef
ifeq ($(HOST_OS),Linux)
NATIVEGRUB-i386:=1
NATIVEGRUB-i686:=1
NATIVEGRUB:=$(NATIVEGRUB-$(HOST_ARCH))
endif
ifeq ($(NATIVEGRUB),)
CONFIGURE_FLAGS:= \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME)
else
CONFIGURE_FLAGS:=
endif
ifneq ($(HOST_OS),Darwin)
define Build/Configure

View File

@ -134,7 +134,8 @@ hostapd_setup_vif() {
config_get channel "$device" channel
config_get hwmode "$device" hwmode
case "$hwmode" in
*bg) hwmode=g;;
*bg|*gdt|*gst|*fh) hwmode=g;;
*adt|*ast) hwmode=a;;
esac
[ "$channel" = auto ] && channel=
[ -n "$channel" -a -z "$hwmode" ] && wifi_fixup_hwmode "$device"

View File

@ -0,0 +1,14 @@
--- a/rules/command.c
+++ b/rules/command.c
@@ -374,9 +374,9 @@ RULES_COMMAND_F(cmd_firmware) {
if (firmware == NULL)
return -1;
- if (snprintf(sysfs_path_loading, PATH_MAX, "/sysfs%s/loading", devpath) >= PATH_MAX)
+ if (snprintf(sysfs_path_loading, PATH_MAX, "/sys%s/loading", devpath) >= PATH_MAX)
return -1;
- if (snprintf(sysfs_path_data, PATH_MAX, "/sysfs%s/data", devpath) >= PATH_MAX)
+ if (snprintf(sysfs_path_data, PATH_MAX, "/sys%s/data", devpath) >= PATH_MAX)
return -1;
if (snprintf(firmware_path, PATH_MAX, "%s/%s", argv[0], firmware) >= PATH_MAX)
return -1;

View File

@ -0,0 +1,18 @@
--- a/rules/command.c
+++ b/rules/command.c
@@ -385,13 +385,13 @@ RULES_COMMAND_F(cmd_firmware) {
infp = fopen(firmware_path, "r");
if (infp == NULL) {
- echo_to_file(sysfs_path_loading, "0\n", 2);
+ echo_to_file(sysfs_path_loading, "-1\n", 2);
return -1;
}
outfp = fopen(sysfs_path_data, "w");
if (outfp == NULL) {
fclose(infp);
- echo_to_file(sysfs_path_loading, "0\n", 2);
+ echo_to_file(sysfs_path_loading, "-1\n", 2);
return -1;
}

View File

@ -0,0 +1,56 @@
--- a/action.c
+++ b/action.c
@@ -39,7 +39,7 @@ static void action_dumb(const struct set
* Returns: Newly allocated string in "key=value" form
*
*/
-static char* alloc_env(const char *key, const char *value) {
+char* alloc_env(const char *key, const char *value) {
size_t keylen, vallen;
char *combined;
--- a/action.h
+++ b/action.h
@@ -12,5 +12,6 @@
#include "settings.h"
void action_perform(struct settings_t *, struct uevent_t *);
+char* alloc_env(const char *, const char *);
#endif /* ifndef ACTION_H */
--- a/workers/worker_fork.c
+++ b/workers/worker_fork.c
@@ -380,6 +380,7 @@ static void worker_fork_deinit(void *in_
static int worker_fork_process(void *in_ctx, struct uevent_t *uevent) {
+ char **env;
int i;
struct worker_fork_child_t *child;
struct worker_fork_ctx_t *ctx = in_ctx;
@@ -406,6 +407,12 @@ static int worker_fork_process(void *in_
* No child process is currently available.
*/
if (child == NULL) {
+ env = xmalloc(sizeof(char *) * uevent->env_vars_c);
+ for (i = 0; i < uevent->env_vars_c; i++) {
+ env[i] = alloc_env(uevent->env_vars[i].key, uevent->env_vars[i].value);
+ putenv(env[i]);
+ }
+
/*
* Are the matching rules trivial enough that we
* can execute them in the main process?
@@ -421,6 +428,12 @@ static int worker_fork_process(void *in_
*/
if (ctx->children_count < ctx->max_children)
child = worker_fork_spawn(ctx);
+
+ for (i = 0; i < uevent->env_vars_c; i++) {
+ unsetenv(uevent->env_vars[i].key);
+ free(env[i]);
+ }
+ free(env);
}
/*

View File

@ -0,0 +1,21 @@
--- a/workers/worker_fork.c
+++ b/workers/worker_fork.c
@@ -396,7 +396,7 @@ static int worker_fork_process(void *in_
worker_fork_update_children(ctx);
child = NULL;
- for (i = 0; i < ctx->children_count; i++) {
+ for (i = 0; i < ctx->children_count && i < ctx->max_children; i++) {
if (ctx->children[i]->busy == 0) {
child = ctx->children[i];
break;
@@ -426,7 +426,8 @@ static int worker_fork_process(void *in_
/*
* We have to fork off a new child.
*/
- if (ctx->children_count < ctx->max_children)
+ if (ctx->children_count < ctx->max_children ||
+ (ruleset_flags(&ctx->settings->rules, uevent) & FLAG_SLOW))
child = worker_fork_spawn(ctx);
for (i = 0; i < uevent->env_vars_c; i++) {

View File

@ -0,0 +1,200 @@
--- a/uevent.c
+++ b/uevent.c
@@ -132,6 +132,8 @@ struct uevent_t *uevent_dup(const struct
dest = xmalloc(sizeof(struct uevent_t));
dest->action = src->action;
+ dest->seqnum = src->seqnum;
+ dest->action_str = strdup(src->action_str);
dest->env_vars_c = src->env_vars_c;
dest->env_vars = xmalloc(sizeof(struct env_var_t) * dest->env_vars_c);
dest->plain_s = src->plain_s;
--- a/workers/worker_fork.c
+++ b/workers/worker_fork.c
@@ -1,6 +1,69 @@
#include "worker_fork.h"
static struct worker_fork_ctx_t *global_ctx;
+static struct worker_fork_uevent_t *uevent_list;
+
+static void worker_fork_uevent_free(struct worker_fork_uevent_t *node) {
+ uevent_free(node->uevent);
+ free(node);
+}
+
+static void worker_fork_uevent_add(void *in_ctx, struct uevent_t *uevent) {
+ char **env;
+ int i;
+ struct worker_fork_ctx_t *ctx = in_ctx;
+ struct worker_fork_uevent_t *node, *walker;
+
+ node = malloc(sizeof (struct worker_fork_uevent_t));
+ node->uevent = uevent_dup(uevent);
+ node->next = NULL;
+
+ if (!uevent_list) uevent_list = node;
+ else {
+ /*
+ * Put events that need to fork first and in reverse order
+ */
+ env = xmalloc(sizeof(char *) * node->uevent->env_vars_c);
+ for (i = 0; i < node->uevent->env_vars_c; i++) {
+ env[i] = alloc_env(node->uevent->env_vars[i].key, node->uevent->env_vars[i].value);
+ putenv(env[i]);
+ }
+ if (ruleset_flags(&ctx->settings->rules, uevent) & FLAG_SLOW) {
+ node->next = uevent_list;
+ uevent_list = node;
+ }
+ else {
+ for (walker = uevent_list; walker->next; walker = walker->next);
+ walker->next = node;
+ }
+ for (i = 0; i < node->uevent->env_vars_c; i++) {
+ unsetenv(node->uevent->env_vars[i].key);
+ free(env[i]);
+ }
+ free(env);
+ }
+}
+
+static void worker_fork_uevent_del(struct worker_fork_uevent_t *node) {
+ struct worker_fork_uevent_t *walker;
+
+ if (node == uevent_list) {
+ uevent_list = node->next;
+ }
+ else {
+ for (walker = uevent_list; walker->next; walker = walker->next)
+ if (walker->next == node) walker->next = node->next;
+ }
+ worker_fork_uevent_free(node);
+}
+
+static void worker_fork_uevent_empty(void) {
+ struct worker_fork_uevent_t *walker;
+
+ if (!uevent_list) return;
+ for (walker = uevent_list; walker->next; walker = walker->next) worker_fork_uevent_free(walker);
+ uevent_list = NULL;
+}
/**
* Destroys data structures related to the given child ID (not PID).
@@ -315,6 +378,8 @@ static void *worker_fork_init(struct set
struct worker_fork_ctx_t *ctx;
PRINTFUNC();
+ uevent_list = NULL;
+
ctx = malloc(sizeof(struct worker_fork_ctx_t));
ctx->children = NULL;
ctx->children_count = 0;
@@ -376,6 +441,7 @@ static void worker_fork_deinit(void *in_
free(ctx->children);
free(ctx);
global_ctx = NULL;
+ worker_fork_uevent_empty();
}
@@ -384,15 +450,26 @@ static int worker_fork_process(void *in_
int i;
struct worker_fork_child_t *child;
struct worker_fork_ctx_t *ctx = in_ctx;
+ struct worker_fork_uevent_t *node, *walker;
+ event_seqnum_t seqnum;
+
+ worker_fork_uevent_add(ctx, uevent);
+ walker = uevent_list;
/*
- * A big loop, because if we fail to process the event,
+ * A big loop, because if we fail to process the events,
* we don't want to give up.
*
* TODO: Decide if we want to limit the number of attempts
* or set a time limit before reporting terminal failure.
*/
do {
+ /*
+ * If more events are waiting, return to receive them
+ */
+ if (!seqnum_get(&seqnum) && seqnum > uevent->seqnum) break;
+
+ node = walker;
worker_fork_update_children(ctx);
child = NULL;
@@ -407,9 +484,9 @@ static int worker_fork_process(void *in_
* No child process is currently available.
*/
if (child == NULL) {
- env = xmalloc(sizeof(char *) * uevent->env_vars_c);
- for (i = 0; i < uevent->env_vars_c; i++) {
- env[i] = alloc_env(uevent->env_vars[i].key, uevent->env_vars[i].value);
+ env = xmalloc(sizeof(char *) * node->uevent->env_vars_c);
+ for (i = 0; i < node->uevent->env_vars_c; i++) {
+ env[i] = alloc_env(node->uevent->env_vars[i].key, node->uevent->env_vars[i].value);
putenv(env[i]);
}
@@ -418,8 +495,11 @@ static int worker_fork_process(void *in_
* can execute them in the main process?
*/
if (ctx->always_fork == 0 && ctx->settings->dumb == 0 &&
- (ruleset_flags(&ctx->settings->rules, uevent) & FLAG_MASK_SLOW) == 0) {
- action_perform(ctx->settings, uevent);
+ (ruleset_flags(&ctx->settings->rules, node->uevent) & FLAG_MASK_SLOW) == 0) {
+ action_perform(ctx->settings, node->uevent);
+ walker = walker->next;
+ worker_fork_uevent_del(node);
+ if (walker) continue;
break;
}
@@ -427,11 +507,11 @@ static int worker_fork_process(void *in_
* We have to fork off a new child.
*/
if (ctx->children_count < ctx->max_children ||
- (ruleset_flags(&ctx->settings->rules, uevent) & FLAG_SLOW))
+ (ruleset_flags(&ctx->settings->rules, node->uevent) & FLAG_SLOW))
child = worker_fork_spawn(ctx);
- for (i = 0; i < uevent->env_vars_c; i++) {
- unsetenv(uevent->env_vars[i].key);
+ for (i = 0; i < node->uevent->env_vars_c; i++) {
+ unsetenv(node->uevent->env_vars[i].key);
free(env[i]);
}
free(env);
@@ -442,9 +522,14 @@ static int worker_fork_process(void *in_
*/
if (child != NULL) {
child->busy = 1;
- if (!worker_fork_relay_event(child->event_fd, uevent));
- break;
- child->busy = 0;
+ if (worker_fork_relay_event(child->event_fd, node->uevent)) {
+ child->busy = 0;
+ continue;
+ }
+ walker = walker->next;
+ worker_fork_uevent_del(node);
+ if (walker) continue;
+ break;
}
/*
--- a/workers/worker_fork.h
+++ b/workers/worker_fork.h
@@ -35,4 +35,9 @@ struct worker_fork_ctx_t {
struct settings_t *settings;
};
+struct worker_fork_uevent_t {
+ struct uevent_t *uevent;
+ struct worker_fork_uevent_t *next;
+};
+
#endif

View File

@ -125,8 +125,10 @@ define Build/Prepare
$(INSTALL_DIR) $(PKG_BUILD_DIR)/src/mei/
$(CP) ./src/* $(PKG_BUILD_DIR)/src/mei/
$(Build/Patch)
ifeq ($(CONFIG_IFXMIPS_DSL_FIRMWARE),)
$(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(FW_BASE_NAME)_a-$(FW_A_VER).tar.gz
$(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(FW_BASE_NAME)_b-$(FW_B_VER).tar.gz
endif
endef
define Build/Configure

View File

@ -1,5 +1,5 @@
#
# Copyright (C) 2006-2008 OpenWrt.org
# Copyright (C) 2006-2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -156,6 +156,25 @@ endef
$(eval $(call KernelPackage,ata-magicbox-cf))
define KernelPackage/ata-pdc202xx-old
SUBMENU:=$(BLOCK_MENU)
TITLE:=Older Promise PATA controller support
DEPENDS:=kmod-ata-core
KCONFIG:= \
CONFIG_ATA_SFF=y \
CONFIG_PATA_PDC_OLD
FILES:=$(LINUX_DIR)/drivers/ata/pata_pdc202xx_old.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,41,pata_pdc202xx_old,1)
endef
define KernelPackage/ata-pdc202xx-old/description
This option enables support for the Promise 20246, 20262, 20263,
20265 and 20267 adapters.
endef
$(eval $(call KernelPackage,ata-pdc202xx-old))
define KernelPackage/ata-piix
$(call KernelPackage/ata/Depends,)
TITLE:=Intel PIIX PATA/SATA support
@ -193,8 +212,6 @@ define KernelPackage/ide-core
DEPENDS:=@PCI_SUPPORT
KCONFIG:= \
CONFIG_IDE \
CONFIG_IDE_GENERIC \
CONFIG_BLK_DEV_GENERIC \
CONFIG_BLK_DEV_IDE \
CONFIG_BLK_DEV_IDEDISK \
CONFIG_IDE_GD \
@ -203,36 +220,26 @@ define KernelPackage/ide-core
CONFIG_BLK_DEV_IDEDMA_PCI=y \
CONFIG_BLK_DEV_IDEPCI=y
FILES:= \
$(LINUX_DIR)/drivers/ide/ide-core.$(LINUX_KMOD_SUFFIX) \
$(LINUX_DIR)/drivers/ide/ide-gd_mod.$(LINUX_KMOD_SUFFIX)
$(LINUX_DIR)/drivers/ide/ide-core.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:= \
$(call AutoLoad,20,ide-core,1) \
$(call AutoLoad,40,ide-gd_mod,1)
$(call AutoLoad,20,ide-core,1)
endef
define KernelPackage/ide-core/2.4
FILES:= \
$(LINUX_DIR)/drivers/ide/ide-core.$(LINUX_KMOD_SUFFIX) \
FILES+= \
$(LINUX_DIR)/drivers/ide/ide-detect.$(LINUX_KMOD_SUFFIX) \
$(LINUX_DIR)/drivers/ide/ide-disk.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:= \
$(call AutoLoad,20,ide-core,1) \
AUTOLOAD+= \
$(call AutoLoad,35,ide-detect,1) \
$(call AutoLoad,40,ide-disk,1)
endef
ifneq ($(CONFIG_arm)$(CONFIG_powerpc),y)
define KernelPackage/ide-core/2.6
ifeq ($(CONFIG_PCI_SUPPORT),y)
FILES+=$(LINUX_DIR)/drivers/ide/ide-generic.$(LINUX_KMOD_SUFFIX) \
$(LINUX_DIR)/drivers/ide/ide-pci-generic.$(LINUX_KMOD_SUFFIX)
AUTOLOAD+=$(call AutoLoad,30,ide-generic ide-pci-generic,1)
else
FILES+=$(LINUX_DIR)/drivers/ide/ide-generic.$(LINUX_KMOD_SUFFIX)
AUTOLOAD+=$(call AutoLoad,30,ide-generic,1)
endif
endef
endif
define KernelPackage/ide-core/2.6
FILES+= \
$(LINUX_DIR)/drivers/ide/ide-gd_mod.$(LINUX_KMOD_SUFFIX)
AUTOLOAD+= \
$(call AutoLoad,40,ide-gd_mod,1)
endef
define KernelPackage/ide-core/description
Kernel support for IDE, useful for usb mass storage devices (e.g. on WL-HDD)
@ -251,6 +258,42 @@ define KernelPackage/ide/Depends
endef
define KernelPackage/ide-generic
$(call KernelPackage/ide/Depends,@PCI_SUPPORT)
SUBMENU:=$(BLOCK_MENU)
TITLE:=Kernel support for generic PCI IDE chipsets
KCONFIG:=CONFIG_BLK_DEV_GENERIC
endef
define KernelPackage/ide-generic/2.4
FILES+= \
$(LINUX_DIR)/drivers/ide/pci/generic.$(LINUX_KMOD_SUFFIX)
AUTOLOAD+= \
$(call AutoLoad,30,generic,1)
endef
define KernelPackage/ide-generic/2.6
FILES+= \
$(LINUX_DIR)/drivers/ide/ide-pci-generic.$(LINUX_KMOD_SUFFIX)
AUTOLOAD+= \
$(call AutoLoad,30,ide-pci-generic,1)
endef
$(eval $(call KernelPackage,ide-generic))
define KernelPackage/ide-generic-old
$(call KernelPackage/ide/Depends,@LINUX_2_6)
SUBMENU:=$(BLOCK_MENU)
TITLE:=Kernel support for generic (legacy) IDE chipsets
KCONFIG:=CONFIG_IDE_GENERIC
FILES:=$(LINUX_DIR)/drivers/ide/ide-generic.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,30,ide-generic,1)
endef
$(eval $(call KernelPackage,ide-generic-old))
define KernelPackage/ide-aec62xx
$(call KernelPackage/ide/Depends,@PCI_SUPPORT)
TITLE:=Acard AEC62xx IDE driver

View File

@ -21,18 +21,13 @@ endef
define KernelPackage/ipt-core/description
Netfilter core kernel modules
Includes:
- ipt_limit
- xt_limit
- ipt_mac
- xt_mac
- ipt_multiport
- xt_multiport
- ipt_comment
- xt_comment
- ipt_LOG
- ipt_TCPMSS
- xt_TCPMSS
- ipt_REJECT
- comment (2.6)
- limit
- LOG
- mac
- multiport
- REJECT
- TCPMSS
endef
$(eval $(call KernelPackage,ipt-core))
@ -56,11 +51,10 @@ define KernelPackage/ipt-conntrack/description
Netfilter (IPv4) kernel modules for connection tracking
Includes:
- conntrack
- defrag
- defrag (2.6)
- iptables_raw
- NOTRACK
- state
- xt_NOTRACK
endef
$(eval $(call KernelPackage,ipt-conntrack))
@ -98,10 +92,8 @@ endef
define KernelPackage/ipt-filter/description
Netfilter (IPv4) kernel modules for packet content inspection
Includes:
- ipt_layer7
- ipt_string
- xt_layer7
- xt_string
- layer7
- string
endef
$(eval $(call KernelPackage,ipt-filter))
@ -118,30 +110,18 @@ endef
define KernelPackage/ipt-ipopt/description
Netfilter (IPv4) modules for matching/changing IP packet options
Includes:
- ipt_dscp
- xt_dscp
- xt_DSCP
- ipt_ecn
- ipt_length
- xt_length
- ipt_mark
- xt_mark
- xt_statistic
- ipt_tcpmss
- xt_tcpmss
- ipt_time
- xt_time
- ipt_unclean
- ipt_CLASSIFY
- xt_CLASSIFY
- ipt_DSCP
- ipt_ECN
- ipt_MARK
- xt_MARK
- xt_tos
- xt_TOS
- xt_hl
- xt_HL
- CLASSIFY
- dscp/DSCP
- ecn/ECN
- hl/HL (2.6.30 and later)
- length
- mark/MARK
- statistic (2.6)
- tcpmss
- time
- tos/TOS (prior to 2.6.25)
- ttl/TTL (prior to 2.6.30)
- unclean
endef
$(eval $(call KernelPackage,ipt-ipopt))
@ -158,10 +138,9 @@ endef
define KernelPackage/ipt-ipsec/description
Netfilter (IPv4) modules for matching IPSec packets
Includes:
- ipt_ah
- ipt_esp
- xt_esp
- xt_policy
- ah
- esp
- policy (2.6)
endef
$(eval $(call KernelPackage,ipt-ipsec))
@ -195,7 +174,7 @@ endef
define KernelPackage/ipt-nat-extra/description
Netfilter (IPv4) kernel modules for extra NAT targets
Includes:
- MIRROR
- MIRROR (2.4)
- NETMAP
- REDIRECT
endef
@ -214,17 +193,9 @@ endef
define KernelPackage/ipt-nathelper/description
Default Netfilter (IPv4) Conntrack and NAT helpers
Includes:
- ip_conntrack_ftp
- ip_nat_ftp
- nf_conntrack_ftp
- nf_nat_ftp
- ip_conntrack_irc
- ip_nat_irc
- nf_conntrack_irc
- nf_nat_irc
- ip_conntrack_tftp
- nf_conntrack_tftp
- nf_nat_tftp
- ftp
- irc
- tftp
endef
$(eval $(call KernelPackage,ipt-nathelper))
@ -241,33 +212,14 @@ endef
define KernelPackage/ipt-nathelper-extra/description
Extra Netfilter (IPv4) Conntrack and NAT helpers
Includes:
- ip_conntrack_amanda
- nf_conntrack_amanda
- nf_nat_amanda
- ip_conntrack_proto_gre
- ip_nat_proto_gre
- nf_conntrack_proto_gre
- nf_nat_proto_gre
- ip_conntrack_h323
- ip_nat_h323
- nf_conntrack_h323
- nf_nat_h323
- ip_conntrack_mms
- ip_nat_mms
- ip_conntrack_pptp
- ip_nat_pptp
- nf_conntrack_pptp
- nf_nat_pptp
- ip_conntrack_rtsp
- ip_nat_rtsp
- nf_conntrack_rtsp
- nf_nat_rtsp
- ip_conntrack_sip
- ip_nat_sip
- nf_conntrack_sip
- nf_nat_sip
- ip_nat_snmp_basic
- nf_nat_snmp_basic
- amanda
- h323
- mms
- pptp (2.6)
- proto_gre (2.6)
- rtsp
- sip (2.6)
- snmp_basic
endef
$(eval $(call KernelPackage,ipt-nathelper-extra))
@ -325,7 +277,7 @@ endef
define KernelPackage/ipt-ulog/description
Netfilter (IPv4) module for user-space packet logging
Includes:
- ipt_ULOG
- ULOG
endef
$(eval $(call KernelPackage,ipt-ulog))
@ -342,7 +294,7 @@ endef
define KernelPackage/ipt-iprange/description
Netfilter (IPv4) module for matching ip ranges
Includes:
- ipt_IPRANGE
- iprange
endef
$(eval $(call KernelPackage,ipt-iprange))
@ -359,12 +311,11 @@ endef
define KernelPackage/ipt-extra/description
Other Netfilter (IPv4) kernel modules
Includes:
- ipt_condition
- ipt_owner
- xt_physdev
- ipt_pkttype
- xt_pkttype
- xt_quota
- condition (2.4 only)
- owner
- physdev (if bridge support was enabled in kernel)
- pkttype
- quota
endef
$(eval $(call KernelPackage,ipt-extra))

View File

@ -64,7 +64,7 @@ define KernelPackage/crc16
TITLE:=CRC16 support
KCONFIG:=CONFIG_CRC16
FILES:=$(LINUX_DIR)/lib/crc16.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,20,crc16)
AUTOLOAD:=$(call AutoLoad,20,crc16,1)
endef
define KernelPackage/crc16/description
@ -801,7 +801,7 @@ define KernelPackage/cs5535-gpio
DEPENDS:=@TARGET_x86||@TARGET_olpc
KCONFIG:=CONFIG_CS5535_GPIO
FILES:=$(LINUX_DIR)/drivers/char/cs5535_gpio.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,90,cs5535_gpio)
AUTOLOAD:=$(call AutoLoad,50,cs5535_gpio)
endef
define KernelPackage/cs5535-gpio/description
@ -874,3 +874,34 @@ define KernelPackage/rfkill/description
endef
$(eval $(call KernelPackage,rfkill))
define KernelPackage/geodewdt
SUBMENU:=$(OTHER_MENU)
TITLE:=Geode/LX Watchdog timer
DEPENDS:=@TARGET_x86 @LINUX_2_6
KCONFIG:=CONFIG_GEODE_WDT
FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/geodewdt.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,50,geodewdt)
endef
define KernelPackage/geodewdt/description
Kernel module for Geode watchdog timer.
endef
$(eval $(call KernelPackage,geodewdt))
define KernelPackage/pc8736x-gpio
SUBMENU:=$(OTHER_MENU)
TITLE:=PC8736x GPIO support
DEPENDS:=@TARGET_x86
KCONFIG:=CONFIG_PC8736x_GPIO
FILES:=$(LINUX_DIR)/drivers/char/pc8736x_gpio.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,40,pc8736x_gpio)
endef
define KernelPackage/pc8736x-gpio/description
Kernel module for PC8736x GPIO
endef
$(eval $(call KernelPackage,pc8736x-gpio))

View File

@ -47,13 +47,13 @@ define Build/Configure
touch $(PKG_BUILD_DIR)/stamp-h.in
endef
TARGET_CFLAGS += -I$(LINUX_DIR)/include
TARGET_CFLAGS += -I$(LINUX_DIR)/include -I$(LINUX_DIR)/arch/$(LINUX_KARCH)/include
define Build/Compile
# src/qgen is built with HOSTCC, which does not really like our LDFLAGS
$(MAKE) -C $(PKG_BUILD_DIR)/src/qgen \
LDFLAGS="" \
all
all
$(MAKE) -C $(PKG_BUILD_DIR) \
DESTDIR="$(PKG_INSTALL_DIR)" \
all install

View File

@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=mac80211
PKG_VERSION:=2010-03-24
PKG_RELEASE:=5
PKG_VERSION:=2010-04-13
PKG_RELEASE:=1
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
# http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \
# http://wireless.kernel.org/download/compat-wireless-2.6
PKG_MD5SUM:=73357c52b5d6888ea3228b2ca8aa5eca
PKG_MD5SUM:=d70715219e37214463c0e08974db80c1
PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)

View File

@ -1,6 +1,6 @@
--- a/config.mk
+++ b/config.mk
@@ -269,8 +269,8 @@ endif
@@ -256,8 +256,8 @@ endif
CONFIG_P54_PCI=m

View File

@ -9,7 +9,7 @@
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")
@@ -492,8 +492,8 @@ endif
@@ -481,8 +481,8 @@ endif
# We need the backported rfkill module on kernel < 2.6.31.
# In more recent kernel versions use the in kernel rfkill module.
ifdef CONFIG_COMPAT_KERNEL_31

View File

@ -1,6 +1,6 @@
--- a/config.mk
+++ b/config.mk
@@ -299,10 +299,10 @@ endif
@@ -286,10 +286,10 @@ endif
CONFIG_MWL8K=m
# Ethernet drivers go here
@ -15,7 +15,7 @@
CONFIG_HERMES=m
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -355,10 +355,10 @@ CONFIG_USB_NET_COMPAT_RNDIS_HOST=n
@@ -342,10 +342,10 @@ CONFIG_USB_NET_COMPAT_RNDIS_HOST=n
CONFIG_USB_NET_COMPAT_RNDIS_WLAN=n
CONFIG_USB_NET_COMPAT_CDCETHER=n
else

View File

@ -9,7 +9,7 @@
CONFIG_SSB=m
else
include $(KLIB_BUILD)/.config
@@ -194,7 +194,7 @@ CONFIG_B43=m
@@ -181,7 +181,7 @@ CONFIG_B43=m
CONFIG_B43_HWRNG=y
CONFIG_B43_PCI_AUTOSELECT=y
ifneq ($(CONFIG_PCMCIA),)
@ -18,7 +18,7 @@
endif
CONFIG_B43_LEDS=y
CONFIG_B43_PHY_LP=y
@@ -246,7 +246,7 @@ CONFIG_SSB_BLOCKIO=y
@@ -233,7 +233,7 @@ CONFIG_SSB_BLOCKIO=y
CONFIG_SSB_PCIHOST=y
CONFIG_SSB_B43_PCI_BRIDGE=y
ifneq ($(CONFIG_PCMCIA),)

View File

@ -1,6 +1,6 @@
--- a/config.mk
+++ b/config.mk
@@ -407,8 +407,8 @@ endif # end of SPI driver list
@@ -396,8 +396,8 @@ endif # end of SPI driver list
ifneq ($(CONFIG_MMC),)

View File

@ -1,6 +1,6 @@
--- a/config.mk
+++ b/config.mk
@@ -198,7 +198,7 @@ ifneq ($(CONFIG_PCMCIA),)
@@ -185,7 +185,7 @@ ifneq ($(CONFIG_PCMCIA),)
endif
CONFIG_B43_LEDS=y
CONFIG_B43_PHY_LP=y

View File

@ -1,33 +0,0 @@
commit b7d48ccc687c44213121b1b565dccdc4488f5d9a
Author: Pavel Roskin <proski@gnu.org>
Date: Wed Mar 24 17:23:37 2010 -0400
compat: add compat-2.6.35.h and IW_HANDLER
Signed-off-by: Pavel Roskin <proski@gnu.org>
--- /dev/null
+++ b/include/linux/compat-2.6.35.h
@@ -0,0 +1,13 @@
+#ifndef LINUX_26_35_COMPAT_H
+#define LINUX_26_35_COMPAT_H
+
+#include <linux/version.h>
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35))
+
+#define IW_HANDLER(id, func) \
+ [IW_IOCTL_IDX(id)] = func
+
+#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)) */
+
+#endif /* LINUX_26_35_COMPAT_H */
--- a/include/linux/compat-2.6.h
+++ b/include/linux/compat-2.6.h
@@ -27,5 +27,6 @@
#include <linux/compat-2.6.32.h>
#include <linux/compat-2.6.33.h>
#include <linux/compat-2.6.34.h>
+#include <linux/compat-2.6.35.h>
#endif /* LINUX_26_COMPAT_H */

View File

@ -1,6 +1,6 @@
--- a/config.mk
+++ b/config.mk
@@ -276,12 +276,12 @@ CONFIG_RTL8180=m
@@ -248,12 +248,12 @@ CONFIG_RTL8180=m
CONFIG_ADM8211=m
@ -15,7 +15,7 @@
# CONFIG_RT2800PCI_RT30XX=y
# CONFIG_RT2800PCI_RT35XX=y
# CONFIG_RT2800PCI_SOC=y
@@ -381,7 +381,7 @@ CONFIG_RT2800USB=m
@@ -355,7 +355,7 @@ CONFIG_RT2800USB=m
# CONFIG_RT2800USB_RT35XX=y
# CONFIG_RT2800USB_UNKNOWN=y
endif

View File

@ -0,0 +1,11 @@
--- a/include/linux/compat-2.6.34.h
+++ b/include/linux/compat-2.6.34.h
@@ -164,6 +164,8 @@ static inline void device_unlock(struct
#define rcu_dereference_check(p, c) rcu_dereference(p)
+#define rcu_dereference_check(p, c) rcu_dereference(p)
+
#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34)) */
#endif /* LINUX_26_34_COMPAT_H */

View File

@ -0,0 +1,11 @@
--- a/include/linux/tracepoint.h
+++ b/include/linux/tracepoint.h
@@ -1,6 +1,8 @@
#ifndef _COMPAT_LINUX_TRACEPOINT_H
#define _COMPAT_LINUX_TRACEPOINT_H 1
+#include <linux/version.h>
+
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,27))
#include_next <linux/tracepoint.h>
#endif /* (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,27)) */

File diff suppressed because it is too large Load Diff

View File

@ -1,45 +0,0 @@
From 181ce6f71d907f42ab73376ce154015a835a6d8a Mon Sep 17 00:00:00 2001
From: Javier Cardona <javier@cozybit.com>
Date: Mon, 29 Mar 2010 11:00:20 -0700
Subject: [PATCH] mac80211: Handle mesh action frames in ieee80211_rx_h_action
This fixes the problem introduced in commit
8404080568613d93ad7cf0a16dfb68 which broke mesh peer link establishment.
changes:
v2 Added missing break (Johannes)
v3 Broke original patch into two (Johannes)
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
net/mac80211/mesh.c | 3 ---
net/mac80211/rx.c | 5 +++++
2 files changed, 5 insertions(+), 3 deletions(-)
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -749,9 +749,6 @@ ieee80211_mesh_rx_mgmt(struct ieee80211_
switch (fc & IEEE80211_FCTL_STYPE) {
case IEEE80211_STYPE_ACTION:
- if (skb->len < IEEE80211_MIN_ACTION_SIZE)
- return RX_DROP_MONITOR;
- /* fall through */
case IEEE80211_STYPE_PROBE_RESP:
case IEEE80211_STYPE_BEACON:
skb_queue_tail(&ifmsh->skb_queue, skb);
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1964,6 +1964,11 @@ ieee80211_rx_h_action(struct ieee80211_r
goto handled;
}
break;
+ case MESH_PLINK_CATEGORY:
+ case MESH_PATH_SEL_CATEGORY:
+ if (ieee80211_vif_is_mesh(&sdata->vif))
+ return ieee80211_mesh_rx_mgmt(sdata, rx->skb);
+ break;
}
/*

View File

@ -1,14 +1,14 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -15,6 +15,7 @@
*/
@@ -16,6 +16,7 @@
#include <linux/io.h>
#include <linux/slab.h>
+#include <linux/etherdevice.h>
#include <asm/unaligned.h>
#include "hw.h"
@@ -441,8 +442,16 @@ static int ath9k_hw_init_macaddr(struct
@@ -431,8 +432,16 @@ static int ath9k_hw_init_macaddr(struct
common->macaddr[2 * i] = eeval >> 8;
common->macaddr[2 * i + 1] = eeval & 0xff;
}

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -19,6 +19,9 @@
@@ -18,6 +18,9 @@
#include <net/cfg80211.h>
#include <net/mac80211.h>
#include "regd.h"

View File

@ -8,7 +8,7 @@
#include "ath9k.h"
static DEFINE_PCI_DEVICE_TABLE(ath_pci_id_table) = {
@@ -52,21 +53,36 @@ static void ath_pci_read_cachesize(struc
@@ -53,21 +54,36 @@ static void ath_pci_read_cachesize(struc
static bool ath_pci_eeprom_read(struct ath_common *common, u32 off, u16 *data)
{

View File

@ -1,17 +1,3 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -385,11 +385,8 @@ static void ath9k_hw_init_defaults(struc
ah->hw_version.magic = AR5416_MAGIC;
ah->hw_version.subvendorid = 0;
- ah->ah_flags = 0;
if (ah->hw_version.devid == AR5416_AR9100_DEVID)
ah->hw_version.macVersion = AR_SREV_VERSION_9100;
- if (!AR_SREV_9100(ah))
- ah->ah_flags = AH_USE_EEPROM;
ah->atim_window = 0;
ah->sta_id1_defaults = AR_STA_ID1_CRPT_MIC_ENABLE;
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -15,6 +15,7 @@
@ -24,7 +10,7 @@
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -531,6 +531,7 @@ static int ath9k_init_softc(u16 devid, s
@@ -542,6 +542,7 @@ static int ath9k_init_softc(u16 devid, s
{
struct ath_hw *ah = NULL;
struct ath_common *common;
@ -32,7 +18,7 @@
int ret = 0, i;
int csz = 0;
@@ -542,6 +543,10 @@ static int ath9k_init_softc(u16 devid, s
@@ -553,6 +554,10 @@ static int ath9k_init_softc(u16 devid, s
ah->hw_version.subsysid = subsysid;
sc->sc_ah = ah;
@ -43,3 +29,16 @@
common = ath9k_hw_common(ah);
common->ops = &ath9k_common_ops;
common->bus_ops = bus_ops;
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -404,10 +404,6 @@ static void ath9k_hw_init_defaults(struc
ah->hw_version.magic = AR5416_MAGIC;
ah->hw_version.subvendorid = 0;
- ah->ah_flags = 0;
- if (!AR_SREV_9100(ah))
- ah->ah_flags = AH_USE_EEPROM;
-
ah->atim_window = 0;
ah->sta_id1_defaults = AR_STA_ID1_CRPT_MIC_ENABLE;
ah->beacon_interval = 100;

View File

@ -1,17 +1,17 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -16,8 +16,10 @@
@@ -17,8 +17,10 @@
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/etherdevice.h>
+#include <linux/ath9k_platform.h>
#include <asm/unaligned.h>
+#include "ath9k.h"
#include "hw.h"
#include "hw-ops.h"
#include "rc.h"
#include "initvals.h"
@@ -428,17 +430,23 @@ static int ath9k_hw_rf_claim(struct ath_
@@ -416,18 +418,23 @@ static void ath9k_hw_init_defaults(struc
static int ath9k_hw_init_macaddr(struct ath_hw *ah)
{
struct ath_common *common = ath9k_hw_common(ah);
@ -20,10 +20,11 @@
u32 sum;
int i;
u16 eeval;
u32 EEP_MAC[] = { EEP_MAC_LSW, EEP_MAC_MID, EEP_MAC_MSW };
sum = 0;
- for (i = 0; i < 3; i++) {
- eeval = ah->eep_ops->get_eeprom(ah, AR_EEPROM_MAC(i));
- eeval = ah->eep_ops->get_eeprom(ah, EEP_MAC[i]);
- sum += eeval;
- common->macaddr[2 * i] = eeval >> 8;
- common->macaddr[2 * i + 1] = eeval & 0xff;
@ -32,12 +33,11 @@
+ memcpy(common->macaddr, pdata->macaddr, ETH_ALEN);
+ else
+ for (i = 0; i < 3; i++) {
+ eeval = ah->eep_ops->get_eeprom(ah, AR_EEPROM_MAC(i));
+ eeval = ah->eep_ops->get_eeprom(ah, EEP_MAC[i]);
+ sum += eeval;
+ common->macaddr[2 * i] = eeval >> 8;
+ common->macaddr[2 * i + 1] = eeval & 0xff;
+ }
+
if (!is_valid_ether_addr(common->macaddr)) {
ath_print(common, ATH_DBG_EEPROM,
"eeprom contains invalid mac address: %pM\n",

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -2097,7 +2097,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st
@@ -1298,7 +1298,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st
if (ah->config.rx_intr_mitigation) {
REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, 500);
@ -8,4 +8,4 @@
+ REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_FIRST, 500);
}
ath9k_hw_init_bb(ah, chan);
if (ah->config.tx_intr_mitigation) {

View File

@ -1,14 +1,14 @@
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -14,6 +14,7 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
@@ -16,6 +16,7 @@
#include <linux/slab.h>
+#include "linux/ath9k_platform.h"
#include "ath9k.h"
static char *dev_info = "ath9k";
@@ -546,6 +547,8 @@ static int ath9k_init_softc(u16 devid, s
@@ -557,6 +558,8 @@ static int ath9k_init_softc(u16 devid, s
pdata = (struct ath9k_platform_data *) sc->dev->platform_data;
if (!pdata)
ah->ah_flags |= AH_USE_EEPROM;
@ -17,7 +17,7 @@
common = ath9k_hw_common(ah);
common->ops = &ath9k_common_ops;
@@ -671,6 +674,24 @@ void ath9k_set_hw_capab(struct ath_softc
@@ -679,6 +682,24 @@ void ath9k_set_hw_capab(struct ath_softc
SET_IEEE80211_PERM_ADDR(hw, common->macaddr);
}
@ -42,7 +42,7 @@
int ath9k_init_device(u16 devid, struct ath_softc *sc, u16 subsysid,
const struct ath_bus_ops *bus_ops)
{
@@ -689,6 +710,9 @@ int ath9k_init_device(u16 devid, struct
@@ -697,6 +718,9 @@ int ath9k_init_device(u16 devid, struct
common = ath9k_hw_common(ah);
ath9k_set_hw_capab(sc, hw);
@ -54,15 +54,15 @@
ath9k_reg_notifier);
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -511,6 +511,8 @@ struct ath_softc {
struct ath_beacon_config cur_beacon_conf;
struct delayed_work tx_complete_work;
struct ath_btcoex btcoex;
+
+ unsigned long quirk_wndr3700:1;
};
@@ -517,6 +517,8 @@ struct ath_softc {
struct ath_wiphy {
int beacon_interval;
+ bool quirk_wndr3700;
+
#ifdef CONFIG_ATH9K_DEBUGFS
struct ath9k_debug debug;
#endif
--- a/include/linux/ath9k_platform.h
+++ b/include/linux/ath9k_platform.h
@@ -24,6 +24,8 @@
@ -70,7 +70,7 @@
u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS];
u8 *macaddr;
+
+ unsigned long quirk_wndr3700:1;
+ bool quirk_wndr3700;
};
#endif /* _LINUX_ATH9K_PLATFORM_H */

View File

@ -13,7 +13,7 @@
sc->sc_ah->led_pin = ATH_LED_PIN_DEF;
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -379,6 +379,7 @@ void ath9k_btcoex_timer_pause(struct ath
@@ -392,6 +392,7 @@ void ath9k_btcoex_timer_pause(struct ath
#define ATH_LED_PIN_DEF 1
#define ATH_LED_PIN_9287 8

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
@@ -77,6 +77,90 @@ static const struct file_operations fops
@@ -78,6 +78,90 @@ static const struct file_operations fops
#define DMA_BUF_LEN 1024
@ -91,7 +91,7 @@
static ssize_t read_file_dma(struct file *file, char __user *user_buf,
size_t count, loff_t *ppos)
{
@@ -719,6 +803,16 @@ int ath9k_init_debug(struct ath_hw *ah)
@@ -731,6 +815,16 @@ int ath9k_init_debug(struct ath_hw *ah)
goto err;
#endif
@ -108,7 +108,7 @@
sc->debug.debugfs_dma = debugfs_create_file("dma", S_IRUSR,
sc->debug.debugfs_phy, sc, &fops_dma);
if (!sc->debug.debugfs_dma)
@@ -769,6 +863,8 @@ void ath9k_exit_debug(struct ath_hw *ah)
@@ -781,6 +875,8 @@ void ath9k_exit_debug(struct ath_hw *ah)
struct ath_common *common = ath9k_hw_common(ah);
struct ath_softc *sc = (struct ath_softc *) common->priv;
@ -119,7 +119,7 @@
debugfs_remove(sc->debug.debugfs_wiphy);
--- a/drivers/net/wireless/ath/ath9k/debug.h
+++ b/drivers/net/wireless/ath/ath9k/debug.h
@@ -148,6 +148,8 @@ struct ath_stats {
@@ -152,6 +152,8 @@ struct ath_stats {
};
struct ath9k_debug {

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
@@ -783,6 +783,86 @@ static const struct file_operations fops
@@ -795,6 +795,86 @@ static const struct file_operations fops
.owner = THIS_MODULE
};
@ -87,7 +87,7 @@
int ath9k_init_debug(struct ath_hw *ah)
{
struct ath_common *common = ath9k_hw_common(ah);
@@ -852,6 +932,17 @@ int ath9k_init_debug(struct ath_hw *ah)
@@ -864,6 +944,17 @@ int ath9k_init_debug(struct ath_hw *ah)
if (!sc->debug.debugfs_recv)
goto err;
@ -105,7 +105,7 @@
return 0;
err:
ath9k_exit_debug(ah);
@@ -865,6 +956,8 @@ void ath9k_exit_debug(struct ath_hw *ah)
@@ -877,6 +968,8 @@ void ath9k_exit_debug(struct ath_hw *ah)
debugfs_remove(sc->debug.debugfs_tx_chainmask);
debugfs_remove(sc->debug.debugfs_rx_chainmask);
@ -116,7 +116,7 @@
debugfs_remove(sc->debug.debugfs_wiphy);
--- a/drivers/net/wireless/ath/ath9k/debug.h
+++ b/drivers/net/wireless/ath/ath9k/debug.h
@@ -158,6 +158,9 @@ struct ath9k_debug {
@@ -162,6 +162,9 @@ struct ath9k_debug {
struct dentry *debugfs_wiphy;
struct dentry *debugfs_xmit;
struct dentry *debugfs_recv;

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -655,7 +655,11 @@ void ath9k_set_hw_capab(struct ath_softc
@@ -663,7 +663,11 @@ void ath9k_set_hw_capab(struct ath_softc
hw->sta_data_size = sizeof(struct ath_node);
hw->vif_data_size = sizeof(struct ath_vif);

View File

@ -1,7 +1,7 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1911,6 +1911,34 @@ static void ath9k_enable_rfkill(struct a
REG_SET_BIT(ah, AR_PHY_TEST, RFSILENT_BB);
@@ -1131,6 +1131,34 @@ static bool ath9k_hw_channel_change(stru
return true;
}
+bool ath9k_hw_check_alive(struct ath_hw *ah)
@ -37,7 +37,7 @@
{
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -679,6 +679,7 @@ void ath9k_hw_set11nmac2040(struct ath_h
@@ -846,6 +846,7 @@ void ath9k_hw_set11nmac2040(struct ath_h
void ath9k_hw_beaconinit(struct ath_hw *ah, u32 next_beacon, u32 beacon_period);
void ath9k_hw_set_sta_beacon_timers(struct ath_hw *ah,
const struct ath9k_beacon_state *bs);
@ -47,7 +47,7 @@
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -405,7 +405,8 @@ void ath9k_tasklet(unsigned long data)
@@ -406,7 +406,8 @@ void ath9k_tasklet(unsigned long data)
ath9k_ps_wakeup(sc);

View File

@ -0,0 +1,114 @@
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -260,19 +260,40 @@ static void ath_tx_set_retry(struct ath_
hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_RETRY);
}
-static struct ath_buf* ath_clone_txbuf(struct ath_softc *sc, struct ath_buf *bf)
+static struct ath_buf *ath_tx_get_buffer(struct ath_softc *sc)
{
- struct ath_buf *tbf;
+ struct ath_buf *bf = NULL;
spin_lock_bh(&sc->tx.txbuflock);
- if (WARN_ON(list_empty(&sc->tx.txbuf))) {
+
+ if (unlikely(list_empty(&sc->tx.txbuf))) {
spin_unlock_bh(&sc->tx.txbuflock);
return NULL;
}
- tbf = list_first_entry(&sc->tx.txbuf, struct ath_buf, list);
- list_del(&tbf->list);
+
+ bf = list_first_entry(&sc->tx.txbuf, struct ath_buf, list);
+ list_del(&bf->list);
+
spin_unlock_bh(&sc->tx.txbuflock);
+ return bf;
+}
+
+static void ath_tx_return_buffer(struct ath_softc *sc, struct ath_buf *bf)
+{
+ spin_lock_bh(&sc->tx.txbuflock);
+ list_add_tail(&bf->list, &sc->tx.txbuf);
+ spin_unlock_bh(&sc->tx.txbuflock);
+}
+
+static struct ath_buf* ath_clone_txbuf(struct ath_softc *sc, struct ath_buf *bf)
+{
+ struct ath_buf *tbf;
+
+ tbf = ath_tx_get_buffer(sc);
+ if (WARN_ON(!tbf))
+ return NULL;
+
ATH_TXBUF_RESET(tbf);
tbf->aphy = bf->aphy;
@@ -1084,9 +1105,7 @@ void ath_draintxq(struct ath_softc *sc,
list_del(&bf->list);
spin_unlock_bh(&txq->axq_lock);
- spin_lock_bh(&sc->tx.txbuflock);
- list_add_tail(&bf->list, &sc->tx.txbuf);
- spin_unlock_bh(&sc->tx.txbuflock);
+ ath_tx_return_buffer(sc, bf);
continue;
}
}
@@ -1306,25 +1325,6 @@ static void ath_tx_txqaddbuf(struct ath_
txq->axq_depth++;
}
-static struct ath_buf *ath_tx_get_buffer(struct ath_softc *sc)
-{
- struct ath_buf *bf = NULL;
-
- spin_lock_bh(&sc->tx.txbuflock);
-
- if (unlikely(list_empty(&sc->tx.txbuf))) {
- spin_unlock_bh(&sc->tx.txbuflock);
- return NULL;
- }
-
- bf = list_first_entry(&sc->tx.txbuf, struct ath_buf, list);
- list_del(&bf->list);
-
- spin_unlock_bh(&sc->tx.txbuflock);
-
- return bf;
-}
-
static void ath_tx_send_ampdu(struct ath_softc *sc, struct ath_atx_tid *tid,
struct list_head *bf_head,
struct ath_tx_control *txctl)
@@ -1806,9 +1806,7 @@ int ath_tx_start(struct ieee80211_hw *hw
}
spin_unlock_bh(&txq->axq_lock);
- spin_lock_bh(&sc->tx.txbuflock);
- list_add_tail(&bf->list, &sc->tx.txbuf);
- spin_unlock_bh(&sc->tx.txbuflock);
+ ath_tx_return_buffer(sc, bf);
return r;
}
@@ -2122,13 +2120,12 @@ static void ath_tx_processq(struct ath_s
txq->axq_depth--;
txok = !(ts.ts_status & ATH9K_TXERR_MASK);
txq->axq_tx_inprogress = false;
+ if (bf_held)
+ list_del(&bf_held->list);
spin_unlock_bh(&txq->axq_lock);
- if (bf_held) {
- spin_lock_bh(&sc->tx.txbuflock);
- list_move_tail(&bf_held->list, &sc->tx.txbuf);
- spin_unlock_bh(&sc->tx.txbuflock);
- }
+ if (bf_held)
+ ath_tx_return_buffer(sc, bf_held);
if (!bf_isampdu(bf)) {
/*

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/rt2x00/rt2x00pci.c
+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
@@ -223,6 +223,7 @@ void rt2x00pci_uninitialize(struct rt2x0
@@ -224,6 +224,7 @@ void rt2x00pci_uninitialize(struct rt2x0
}
EXPORT_SYMBOL_GPL(rt2x00pci_uninitialize);
@ -8,7 +8,7 @@
/*
* PCI driver handlers.
*/
@@ -397,6 +398,7 @@ int rt2x00pci_resume(struct pci_dev *pci
@@ -398,6 +399,7 @@ int rt2x00pci_resume(struct pci_dev *pci
}
EXPORT_SYMBOL_GPL(rt2x00pci_resume);
#endif /* CONFIG_PM */

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/rt2x00/rt2x00pci.c
+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
@@ -213,7 +213,7 @@ void rt2x00pci_uninitialize(struct rt2x0
@@ -214,7 +214,7 @@ void rt2x00pci_uninitialize(struct rt2x0
/*
* Free irq line.
*/

View File

@ -1,59 +1,29 @@
From f18d4463d092162f34a8bd226505627ceeac3e8a Mon Sep 17 00:00:00 2001
From: Luis Correia <luis.f.correia@gmail.com>
Date: Sat, 3 Apr 2010 12:49:53 +0100
Subject: [PATCH] rt2x00: remove MCU requests for SoC platforms
The ralink SoC platforms do not have an MCU.
Signed-off-by: Luis Correia <luis.f.correia@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
---
drivers/net/wireless/rt2x00/rt2800pci.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -221,9 +221,9 @@ void rt2800_mcu_request(struct rt2x00_de
u32 reg;
/*
- * SOC devices don't support MCU requests.
+ * some devices don't support MCU requests.
*/
- if (rt2x00_is_soc(rt2x00dev))
+ if (!test_bit(DRIVER_REQUIRE_MCU, &rt2x00dev->flags))
return;
mutex_lock(&rt2x00dev->csr_mutex);
--- a/drivers/net/wireless/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
@@ -60,6 +60,12 @@ static void rt2800pci_mcu_status(struct
unsigned int i;
u32 reg;
@@ -66,6 +66,12 @@ static void rt2800pci_mcu_status(struct
if (rt2x00_is_soc(rt2x00dev))
return;
+ /*
+ * some devices don't support MCU requests.
+ * SOC devices don't support MCU requests.
+ */
+ if (!test_bit(DRIVER_REQUIRE_MCU, &rt2x00dev->flags))
+ if (rt2x00_is_soc(rt2x00dev))
+ return;
+
for (i = 0; i < 200; i++) {
rt2800_register_read(rt2x00dev, H2M_MAILBOX_CID, &reg);
@@ -1098,10 +1104,12 @@ static int rt2800pci_probe_hw(struct rt2
__set_bit(DRIVER_SUPPORT_CONTROL_FILTER_PSPOLL, &rt2x00dev->flags);
/*
- * This device requires firmware.
+ * This device requires firmware and MCU access.
*/
- if (!rt2x00_is_soc(rt2x00dev))
+ if (!rt2x00_is_soc(rt2x00dev)){
__set_bit(DRIVER_REQUIRE_FIRMWARE, &rt2x00dev->flags);
+ __set_bit(DRIVER_REQUIRE_MCU, &rt2x00dev->flags);
+ }
__set_bit(DRIVER_REQUIRE_DMA, &rt2x00dev->flags);
__set_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags);
if (!modparam_nohwcrypt)
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -631,6 +631,7 @@ enum rt2x00_flags {
* Driver requirements
*/
DRIVER_REQUIRE_FIRMWARE,
+ DRIVER_REQUIRE_MCU,
DRIVER_REQUIRE_BEACON_GUARD,
DRIVER_REQUIRE_ATIM_QUEUE,
DRIVER_REQUIRE_DMA,

View File

@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=opkg
PKG_REV:=513
PKG_VERSION:=$(PKG_REV)
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=svn
PKG_SOURCE_VERSION:=$(PKG_REV)

View File

@ -0,0 +1,15 @@
http://code.google.com/p/opkg/source/detail?r=521
--- a/libopkg/opkg_cmd.c
+++ b/libopkg/opkg_cmd.c
@@ -390,8 +390,8 @@ opkg_configure_packages(char *pkg_name)
goto error;
}
- for(i = 0; i < all->len; i++) {
- pkg = all->pkgs[i];
+ for(i = 0; i < ordered->len; i++) {
+ pkg = ordered->pkgs[i];
if (pkg_name && fnmatch(pkg_name, pkg->name, 0))
continue;

View File

@ -24,6 +24,7 @@ TARGET_CPPFLAGS := \
-D_GNU_SOURCE \
-I$(STAGING_DIR)/usr/include/libnl-tiny \
-I$(LINUX_DIR)/include \
-I$(LINUX_DIR)/arch/$(LINUX_KARCH)/include \
-I$(PKG_BUILD_DIR) \
$(TARGET_CPPFLAGS)

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=kmod-switch
PKG_RELEASE:=2
PKG_RELEASE:=3
include $(INCLUDE_DIR)/package.mk

View File

@ -15,6 +15,12 @@ setup_switch_hw() {
echo "$evlan" > "$proc/enable_vlan"
[ -f "$proc/enable" ] && echo "$enable" > "$proc/enable"
}
local vlan
for vlan in `seq 0 15`; do
proc="/proc/switch/$dev/vlan/$vlan/ports"
[ -f "$proc" ] && echo "" > "$proc"
done
}
setup_switch_vlan() {

View File

@ -9,8 +9,9 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=u-boot
PKG_VERSION:=2009.11.1
PKG_MD5SUM:=6086421c9e2f3a0d0dbc5f706b551dbc
PKG_VERSION:=2010.03
PKG_MD5SUM:=2bf5ebf497dddc52440b1ea386cc1332
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

View File

@ -7,9 +7,10 @@ $ make -s V=1
[CC] tools/img2srec.c
[CC] tools/bmp_logo.c
[CC] examples/hello_world.c
--- a/config.mk
+++ b/config.mk
@@ -206,17 +206,42 @@ export TEXT_BASE PLATFORM_CPPFLAGS PLATF
@@ -234,17 +234,42 @@ export TEXT_BASE PLATFORM_CPPFLAGS PLATF
#########################################################################

View File

@ -1,6 +1,6 @@
--- a/MAKEALL
+++ b/MAKEALL
@@ -709,6 +709,12 @@ LIST_arm=" \
@@ -730,6 +730,12 @@ LIST_arm=" \
## MIPS Systems (default = big endian)
#########################################################################
@ -13,7 +13,7 @@
LIST_mips4kc=" \
incaip \
qemu_mips \
@@ -740,6 +746,7 @@ LIST_au1xx0=" \
@@ -761,6 +767,7 @@ LIST_au1xx0=" \
"
LIST_mips=" \
@ -23,7 +23,7 @@
${LIST_au1xx0} \
--- a/Makefile
+++ b/Makefile
@@ -474,7 +474,7 @@ $(obj)include/autoconf.mk: $(obj)include
@@ -447,7 +447,7 @@ $(obj)include/autoconf.mk: $(obj)include
set -e ; \
: Extract the config macros ; \
$(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \
@ -32,7 +32,7 @@
mv $@.tmp $@
#########################################################################
@@ -3354,7 +3354,7 @@ incaip_config: unconfig
@@ -3370,7 +3370,7 @@ incaip_config: unconfig
{ echo "#define CPU_CLOCK_RATE 150000000" >>$(obj)include/config.h ; \
$(XECHO) "... with 150MHz system clock" ; \
}
@ -41,7 +41,7 @@
tb0229_config: unconfig
@$(MKCONFIG) $(@:_config=) mips mips tb0229
@@ -3395,6 +3395,50 @@ vct_platinumavc_onenand_small_config: un
@@ -3411,6 +3411,50 @@ vct_platinumavc_onenand_small_config: un
@$(MKCONFIG) -a vct mips mips vct micronas
#########################################################################
@ -92,6 +92,16 @@
## MIPS32 AU1X00
#########################################################################
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -43,6 +43,7 @@ COBJS-$(CONFIG_FEC_MXC) += fec_mxc.o
COBJS-$(CONFIG_FSLDMAFEC) += fsl_mcdmafec.o mcfmii.o
COBJS-$(CONFIG_FTMAC100) += ftmac100.o
COBJS-$(CONFIG_GRETH) += greth.o
+COBJS-$(CONFIG_IFX_ETOP) += ifx_etop.o
COBJS-$(CONFIG_INCA_IP_SWITCH) += inca-ip_sw.o
COBJS-$(CONFIG_KIRKWOOD_EGIGA) += kirkwood_egiga.o
COBJS-$(CONFIG_DRIVER_KS8695ETH) += ks8695eth.o
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -28,6 +28,7 @@ LIB := $(obj)libserial.a
@ -102,27 +112,17 @@
COBJS-$(CONFIG_MCFUART) += mcfuart.o
COBJS-$(CONFIG_NS9750_UART) += ns9750_serial.o
COBJS-$(CONFIG_SYS_NS16550) += ns16550.o
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -41,6 +41,7 @@ COBJS-$(CONFIG_FEC_MXC) += fec_mxc.o
COBJS-$(CONFIG_FSLDMAFEC) += fsl_mcdmafec.o mcfmii.o
COBJS-$(CONFIG_FTMAC100) += ftmac100.o
COBJS-$(CONFIG_GRETH) += greth.o
+COBJS-$(CONFIG_IFX_ETOP) += ifx_etop.o
COBJS-$(CONFIG_INCA_IP_SWITCH) += inca-ip_sw.o
COBJS-$(CONFIG_KIRKWOOD_EGIGA) += kirkwood_egiga.o
COBJS-$(CONFIG_DRIVER_KS8695ETH) += ks8695eth.o
--- a/include/netdev.h
+++ b/include/netdev.h
@@ -55,6 +55,7 @@ int fecmxc_initialize (bd_t *bis);
@@ -57,6 +57,7 @@ int fecmxc_initialize (bd_t *bis);
int ftmac100_initialize(bd_t *bits);
int greth_initialize(bd_t *bis);
void gt6426x_eth_initialize(bd_t *bis);
+int ifx_etop_initialize(bd_t *bis);
int inca_switch_initialize(bd_t *bis);
int kirkwood_egiga_initialize(bd_t *bis);
int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);
@@ -82,6 +83,7 @@ int uec_standard_init(bd_t *bis);
int lan91c96_initialize(u8 dev_num, int base_addr);
@@ -85,6 +86,7 @@ int uec_standard_init(bd_t *bis);
int uli526x_initialize(bd_t *bis);
int sh_eth_initialize(bd_t *bis);
int dm9000_initialize(bd_t *bis);

View File

@ -1,7 +1,5 @@
Index: u-boot-2009.11.1/common/env_common.c
===================================================================
--- u-boot-2009.11.1.orig/common/env_common.c 2010-01-25 09:35:12.000000000 +0100
+++ u-boot-2009.11.1/common/env_common.c 2010-03-29 13:20:50.000000000 +0200
--- a/common/env_common.c
+++ b/common/env_common.c
@@ -26,6 +26,7 @@
#include <common.h>
@ -10,10 +8,8 @@ Index: u-boot-2009.11.1/common/env_common.c
#include <environment.h>
#include <linux/stddef.h>
#include <malloc.h>
Index: u-boot-2009.11.1/common/env_embedded.c
===================================================================
--- u-boot-2009.11.1.orig/common/env_embedded.c 2010-03-29 13:22:19.000000000 +0200
+++ u-boot-2009.11.1/common/env_embedded.c 2010-03-29 13:22:29.000000000 +0200
--- a/common/env_embedded.c
+++ b/common/env_embedded.c
@@ -27,6 +27,7 @@
#define __ASM_STUB_PROCESSOR_H__ /* don't include asm/processor. */
#include <config.h>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,530 @@
--- a/board/infineon/easy50712/danube.c
+++ b/board/infineon/easy50712/danube.c
@@ -354,7 +354,7 @@ int do_http_upgrade(const unsigned char
}
/* write the image to the flash */
puts("http ugrade ...\n");
- sprintf(buf, "era ${kernel_addr} +0x%x; cp.b ${ram_addr} ${kernel_addr} 0x%x", size, size);
+ sprintf(buf, "era ${kernel_addr} +0x%lx; cp.b ${ram_addr} ${kernel_addr} 0x%lx", size, size);
return run_command(buf, 0);
}
--- a/common/main.c
+++ b/common/main.c
@@ -273,6 +273,10 @@ static __inline__ int abortboot(int boot
void main_loop (void)
{
+#ifdef CONFIG_CMD_HTTPD
+ int ret;
+#endif
+
#ifndef CONFIG_SYS_HUSH_PARSER
static char lastcommand[CONFIG_SYS_CBSIZE] = { 0, };
int len;
@@ -403,12 +407,22 @@ void main_loop (void)
# endif
# ifndef CONFIG_SYS_HUSH_PARSER
- run_command (s, 0);
+ ret = run_command (s, 0);
# else
- parse_string_outer(s, FLAG_PARSE_SEMICOLON |
+ ret = parse_string_outer(s, FLAG_PARSE_SEMICOLON |
FLAG_EXIT_FROM_LOOP);
# endif
+# ifdef CONFIG_CMD_HTTPD
+ if (ret < 0) {
+ printf("Failed to execute bootcmd "
+ "(maybe invalid u-boot environment?), "
+ "starting httpd to update firmware...\n");
+ NetLoopHttpd();
+ }
+# endif
+
+
# ifdef CONFIG_AUTOBOOT_KEYED
disable_ctrlc(prev); /* restore Control C checking */
# endif
--- a/include/configs/easy50712.h
+++ b/include/configs/easy50712.h
@@ -114,4 +114,7 @@
#define CONFIG_CMD_HTTPD /* enable upgrade via HTTPD */
+#define CONFIG_IPADDR 192.168.0.119
+#define CONFIG_ETHADDR 00:01:02:03:04:05
+
#endif /* __CONFIG_H */
--- a/lib_mips/time.c
+++ b/lib_mips/time.c
@@ -29,6 +29,8 @@ static unsigned long timestamp;
/* how many counter cycles in a jiffy */
#define CYCLES_PER_JIFFY (CONFIG_SYS_MIPS_TIMER_FREQ + CONFIG_SYS_HZ / 2) / CONFIG_SYS_HZ
+unsigned long ifx_get_cpuclk(void);
+
/*
* timer without interrupts
*/
--- a/net/httpd.c
+++ b/net/httpd.c
@@ -35,12 +35,14 @@ HttpdHandler (void)
}
}
+#if 0
static void
HttpdTimeout (void)
{
puts ("T ");
NetSetTimeout (TIMEOUT * 1000, HttpdTimeout);
}
+#endif
void
HttpdStart (void)
--- a/net/net.c
+++ b/net/net.c
@@ -1966,7 +1966,7 @@ NetSendHttpd(void)
void
NetReceiveHttpd(volatile uchar * inpkt, int len)
{
- memcpy(uip_buf, inpkt, len);
+ memcpy(uip_buf, (const void *)inpkt, len);
uip_len = len;
if(BUF->type == htons(UIP_ETHTYPE_IP)) {
uip_arp_ipin();
@@ -1989,6 +1989,7 @@ NetLoopHttpd(void)
unsigned long long tout = 0;
bd_t *bd = gd->bd;
unsigned short int ip[2];
+ struct uip_eth_addr eaddr;
#ifdef CONFIG_NET_MULTI
NetRestarted = 0;
@@ -2039,6 +2040,15 @@ restart:
eth_getenv_enetaddr("ethaddr", NetOurEther);
#endif
+ eaddr.addr[0] = NetOurEther[0];
+ eaddr.addr[1] = NetOurEther[1];
+ eaddr.addr[2] = NetOurEther[2];
+ eaddr.addr[3] = NetOurEther[3];
+ eaddr.addr[4] = NetOurEther[4];
+ eaddr.addr[5] = NetOurEther[5];
+
+ uip_setethaddr(eaddr);
+
NetCopyIP(&NetOurIP, &bd->bi_ip_addr);
NetOurGatewayIP = getenv_IPaddr ("gatewayip");
NetOurSubnetMask= getenv_IPaddr ("netmask");
@@ -2072,6 +2082,14 @@ restart:
tout = t1;
}
}
+
+ if (ctrlc()) {
+ eth_halt();
+ puts ("\nAbort\n");
+ return (-1);
+ }
+
+
if(!httpd_upload_complete)
continue;
printf("Bytes transferred = %ld (%lx hex)\n",
--- a/net/uip-0.9/fsdata.c
+++ b/net/uip-0.9/fsdata.c
@@ -1,199 +1,108 @@
-static const char data_flashing_html[] = {
- /* /flashing.html */
- 0x2f, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32,
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30,
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63,
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69,
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65,
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74,
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa,
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x3c, 0x62,
- 0x6f, 0x64, 0x79, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d,
- 0x22, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x20, 0x30,
- 0x70, 0x74, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x20, 0x68,
- 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25,
- 0x3b, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23,
- 0x66, 0x66, 0x66, 0x3b, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67,
- 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f,
- 0x72, 0x3a, 0x20, 0x23, 0x66, 0x62, 0x62, 0x30, 0x33, 0x34,
- 0x3b, 0x22, 0x3e, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72,
- 0x3e, 0x3c, 0x68, 0x31, 0x3e, 0x55, 0x70, 0x67, 0x72, 0x61,
- 0x64, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65,
- 0x6d, 0x20, 0x2e, 0x2e, 0x2e, 0x2e, 0x3c, 0x2f, 0x68, 0x31,
- 0x3e, 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e,
- 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x3c, 0x2f, 0x68,
- 0x74, 0x6d, 0x6c, 0x3e, 0xa, };
-
-static const char data_fail_html[] = {
- /* /fail.html */
- 0x2f, 0x66, 0x61, 0x69, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32,
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30,
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63,
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69,
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65,
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74,
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa,
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x9,
- 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0xa, 0x9, 0x9, 0x3c,
- 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0xa, 0x9, 0x9, 0x9,
- 0x4c, 0x61, 0x46, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x20, 0x46,
- 0x61, 0x69, 0x6c, 0x73, 0x61, 0x66, 0x65, 0x20, 0x55, 0x49,
- 0xa, 0x9, 0x9, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65,
- 0x3e, 0xa, 0x9, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa,
- 0x9, 0x9, 0x3c, 0x68, 0x31, 0x3e, 0x46, 0x6c, 0x61, 0x73,
- 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65,
- 0x64, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0xa, 0x9, 0x9, 0x45,
- 0x52, 0x52, 0x4f, 0x52, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65,
- 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x79, 0x6f, 0x75,
- 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20,
- 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20,
- 0x70, 0x61, 0x73, 0x73, 0x20, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x50,
- 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6d, 0x61, 0x6b, 0x65,
- 0x20, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x75,
- 0x73, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x66, 0x66, 0x69,
- 0x63, 0x69, 0x61, 0x6c, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74,
- 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64,
- 0x20, 0x62, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
- 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2e,
- 0x66, 0x6f, 0x6e, 0x6f, 0x73, 0x66, 0x65, 0x72, 0x61, 0x2e,
- 0x6f, 0x72, 0x67, 0x2f, 0xa, 0x9, 0x3c, 0x2f, 0x62, 0x6f,
- 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c,
- 0x3e, 0xa, };
-
-static const char data_404_html[] = {
- /* /404.html */
- 0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x34,
- 0x30, 0x34, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f,
- 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0xd, 0xa, 0x53,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50,
- 0x2f, 0x30, 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70,
- 0x3a, 0x2f, 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73,
- 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f,
- 0x75, 0x69, 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e,
- 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a,
- 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c,
- 0xd, 0xa, 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e,
- 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f,
- 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65,
- 0x22, 0x3e, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e,
- 0x3c, 0x68, 0x31, 0x3e, 0x34, 0x30, 0x34, 0x20, 0x2d, 0x20,
- 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66,
- 0x6f, 0x75, 0x6e, 0x64, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x3c,
- 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0x3c, 0x2f,
- 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x3c, 0x2f, 0x68, 0x74, 0x6d,
- 0x6c, 0x3e, };
-
-static const char data_index_html[] = {
- /* /index.html */
- 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32,
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30,
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63,
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69,
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65,
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74,
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa,
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x9,
- 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0xa, 0x9, 0x9, 0x3c,
- 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0xa, 0x9, 0x9, 0x9,
- 0x4c, 0x61, 0x46, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x20, 0x46,
- 0x61, 0x69, 0x6c, 0x73, 0x61, 0x66, 0x65, 0x20, 0x55, 0x49,
- 0xa, 0x9, 0x9, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65,
- 0x3e, 0xa, 0x9, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e,
- 0xa, 0x9, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x73, 0x74,
- 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x72, 0x67, 0x69,
- 0x6e, 0x3a, 0x20, 0x30, 0x70, 0x74, 0x20, 0x61, 0x75, 0x74,
- 0x6f, 0x3b, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a,
- 0x31, 0x30, 0x30, 0x25, 0x3b, 0x20, 0x63, 0x6f, 0x6c, 0x6f,
- 0x72, 0x3a, 0x20, 0x23, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x62,
- 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d,
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x62,
- 0x62, 0x30, 0x33, 0x34, 0x3b, 0x22, 0x3e, 0xa, 0x9, 0x9,
- 0x3c, 0x68, 0x31, 0x3e, 0x4c, 0x61, 0x46, 0x6f, 0x6e, 0x65,
- 0x72, 0x61, 0x20, 0x46, 0x61, 0x69, 0x6c, 0x73, 0x61, 0x66,
- 0x65, 0x20, 0x55, 0x49, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0xa,
- 0x9, 0x9, 0x3c, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6d, 0x65,
- 0x74, 0x68, 0x6f, 0x64, 0x3d, 0x22, 0x70, 0x6f, 0x73, 0x74,
- 0x22, 0x20, 0x65, 0x6e, 0x63, 0x74, 0x79, 0x70, 0x65, 0x3d,
- 0x22, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74,
- 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x64, 0x61, 0x74, 0x61,
- 0x22, 0x3e, 0xa, 0x9, 0x9, 0x9, 0x3c, 0x69, 0x6e, 0x70,
- 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x66, 0x69,
- 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x66, 0x69,
- 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x3e, 0xa, 0x9, 0x9,
- 0x9, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79,
- 0x70, 0x65, 0x3d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x3e,
- 0xa, 0x9, 0x9, 0x3c, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x3e,
- 0xa, 0x9, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa,
- 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, };
-
-static const char data_flash_html[] = {
- /* /flash.html */
- 0x2f, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32,
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30,
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63,
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69,
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65,
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74,
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa,
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x9,
- 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0xa, 0x9, 0x9, 0x3c,
- 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0xa, 0x9, 0x9, 0x9,
- 0x4c, 0x61, 0x46, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x20, 0x46,
- 0x61, 0x69, 0x6c, 0x73, 0x61, 0x66, 0x65, 0x20, 0x55, 0x49,
- 0xa, 0x9, 0x9, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65,
- 0x3e, 0xa, 0x9, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e,
- 0xa, 0x9, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x73, 0x74,
- 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x72, 0x67, 0x69,
- 0x6e, 0x3a, 0x20, 0x30, 0x70, 0x74, 0x20, 0x61, 0x75, 0x74,
- 0x6f, 0x3b, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a,
- 0x31, 0x30, 0x30, 0x25, 0x3b, 0x20, 0x63, 0x6f, 0x6c, 0x6f,
- 0x72, 0x3a, 0x20, 0x23, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x62,
- 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d,
- 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x62,
- 0x62, 0x30, 0x33, 0x34, 0x3b, 0x22, 0x3e, 0xa, 0x9, 0x9,
- 0x3c, 0x68, 0x31, 0x3e, 0x46, 0x6c, 0x61, 0x73, 0x68, 0x69,
- 0x6e, 0x67, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0xa, 0x9, 0x9,
- 0x54, 0x68, 0x65, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d,
- 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x74, 0x72,
- 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6c,
- 0x61, 0x73, 0x68, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68,
- 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x70,
- 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x2c, 0x20, 0x74, 0x68,
- 0x65, 0x20, 0x6c, 0x65, 0x64, 0x73, 0x20, 0x77, 0x69, 0x6c,
- 0x6c, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x74, 0x6f,
- 0x20, 0x62, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0xa, 0xa, 0x9,
- 0x9, 0x41, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x20, 0x73,
- 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x6c,
- 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68,
- 0x65, 0x20, 0x62, 0x6f, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c,
- 0x20, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0xa, 0x9, 0x3c,
- 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x68,
- 0x74, 0x6d, 0x6c, 0x3e, 0xa, };
-
-const struct fsdata_file file_flashing_html[] = {{NULL, data_flashing_html, data_flashing_html + 15, sizeof(data_flashing_html) - 15}};
+static const char data_flashing_html[] =
+"HTTP/1.0 200 OK\n"
+"Server: uIP/0.9 (http://dunkels.com/adam/uip/)\n"
+"Content-type: text/html\n"
+"\n"
+"<html>\n"
+"\t<head>\n"
+"\t\t<title>\n"
+"\t\t\tFailsafe UI\n"
+"\t\t</title>\n"
+"\t</head>\n"
+"\t<body>\n"
+"\t\t<center><h1>Upgrading system...</h1></center>\n"
+"\t</body>\n"
+"</html>\n";
+
+static const char data_fail_html[] =
+"HTTP/1.0 200 OK\n"
+"Server: uIP/0.9 (http://dunkels.com/adam/uip/)\n"
+"Content-type: text/html\n"
+"\n"
+"<html>\n"
+"\t<head>\n"
+"\t\t<title>\n"
+"\t\t\tFailsafe UI\n"
+"\t\t</title>\n"
+"\t</head>\n"
+"\t<body>\n"
+"\t\t<h1>Flashing failed</h1>\n"
+"\t\tERROR - the image you uploaded failed to pass verification.<br>\n"
+"\t\tPlease make sure to use an official update provided by http://lantiq.com/\n"
+"\t</body>\n"
+"</html>\n";
+
+static const char data_404_html[] =
+"HTTP/1.0 404 File not found\n"
+"Server: uIP/0.9 (http://dunkels.com/adam/uip/)\n"
+"Content-type: text/html\n"
+"\n"
+"<html>\n"
+"\t<head>\n"
+"\t\t<title>\n"
+"\t\t\tFailsafe UI\n"
+"\t\t</title>\n"
+"\t</head>\n"
+"\t<body>\n"
+"\t\t<center><h1>404 - file not found</h1></center>\n"
+"\t</body>\n"
+"</html>\n";
+
+static const char data_index_html[] =
+"HTTP/1.0 200 OK\n"
+"Server: uIP/0.9 (http://dunkels.com/adam/uip/)\n"
+"Content-type: text/html\n"
+"\n"
+"<html>\n"
+"\t<head>\n"
+"\t\t<title>\n"
+"\t\t\tFailsafe UI\n"
+"\t\t</title>\n"
+"\t</head>\n"
+"\t<body>\n"
+"\t\t<h1>Failsafe UI</h1>\n"
+"\t\t<form method=\"post\" enctype=\"multipart/form-data\">\n"
+"\t\t\t<input type=file name=firmware>\n"
+"\t\t\t<input type=submit>\n"
+"\t\t</form>\n"
+"\t</body>\n"
+"</html>\n";
+
+static const char data_flash_html[] =
+"HTTP/1.0 200 OK\n"
+"Server: uIP/0.9 (http://dunkels.com/adam/uip/)\n"
+"Content-type: text/html\n"
+"\n"
+"<html>\n"
+"\t<head>\n"
+"\t\t<title>\n"
+"\t\t\tFailsafe UI\n"
+"\t\t</title>\n"
+"\t</head>\n"
+"\t<body>\n"
+"\t\t<h1>Flashing...</h1>\n"
+"\t\tThe system is now trying to flash. If there is a problem, the LEDs will "
+"start to blink.<br>\n"
+"\n"
+"\t\tAfter a successful update the box will reboot\n"
+"\t</body>\n"
+"</html>\n";
+
+const struct fsdata_file file_flashing_html[] =
+{{NULL, "/flashing.html", data_flashing_html, sizeof(data_flashing_html)}};
+
+const struct fsdata_file file_fail_html[] =
+{{file_flashing_html, "/fail.html", data_fail_html, sizeof(data_fail_html)}};
-const struct fsdata_file file_fail_html[] = {{file_flashing_html, data_fail_html, data_fail_html + 11, sizeof(data_fail_html) - 11}};
+const struct fsdata_file file_404_html[] =
+{{file_fail_html, "/404.html", data_404_html, sizeof(data_404_html)}};
-const struct fsdata_file file_404_html[] = {{file_fail_html, data_404_html, data_404_html + 10, sizeof(data_404_html) - 10}};
+const struct fsdata_file file_index_html[] =
+{{file_404_html, "/index.html", data_index_html, sizeof(data_index_html)}};
-const struct fsdata_file file_index_html[] = {{file_404_html, data_index_html, data_index_html + 12, sizeof(data_index_html) - 12}};
-
-const struct fsdata_file file_flash_html[] = {{file_index_html, data_flash_html, data_flash_html + 12, sizeof(data_flash_html) - 12}};
+const struct fsdata_file file_flash_html[] =
+{{file_index_html, "/flash.html", data_flash_html, sizeof(data_flash_html)}};
#define FS_ROOT file_flash_html
-#define FS_NUMFILES 5
\ No newline at end of file
+#define FS_NUMFILES 5
--- a/net/uip-0.9/httpd.c
+++ b/net/uip-0.9/httpd.c
@@ -130,7 +130,7 @@ httpd_appcall(void)
if(!fs_open((const char *)&uip_appdata[4], &fsfile))
{
PRINTLN("couldn't open file");
- fs_open(file_index_html.name, &fsfile);
+ fs_open(file_404_html.name, &fsfile);
}
}
hs->script = 0;
@@ -141,7 +141,7 @@ httpd_appcall(void)
if(hs->state == HTTP_FIRMWARE)
{
unsigned char *start = (unsigned char*)uip_appdata;
- char *clen = strstr(start, "Content-Length:");
+ char *clen = strstr((char *)start, "Content-Length:");
int len = 0;
unsigned char *next, *end;
unsigned char *boundary_start;
@@ -150,14 +150,14 @@ httpd_appcall(void)
if(clen)
{
clen += sizeof("Content-Length:");
- next = strstr(clen, eol);
+ next = (unsigned char *)strstr(clen, eol);
if(next)
{
len = atoi(clen);
next++;
printf("expecting %d bytes\n", len);
upload_data = httpd_upload_data = (unsigned char *)do_http_tmp_address();
- printf("received data will be stored at 0x%08X\n", upload_data);
+ printf("received data will be stored at %p\n", upload_data);
if(!upload_data)
{
printf("failed to allocate memory\n");
@@ -174,14 +174,14 @@ httpd_appcall(void)
uip_close();
return;
}
- boundary_start = strstr(next, "---");
+ boundary_start = (unsigned char *)strstr((char *)next, "---");
if(!boundary_start)
{
uip_close();
return;
}
- end = strstr(boundary_start, eol);
- if(!eol)
+ end = (unsigned char *)strstr((char *)boundary_start, eol);
+ if(!end)
{
uip_close();
return;
@@ -189,13 +189,13 @@ httpd_appcall(void)
boundary_len = end - boundary_start;
memcpy(boundary, boundary_start, boundary_len);
boundary[boundary_len] = 0;
- next = strstr(boundary_start, "name=\"firmware\";");
+ next = (unsigned char *)strstr((char *)boundary_start, "name=\"firmware\";");
if(!next)
{
uip_close();
return;
}
- next = strstr(next, eol2);
+ next = (unsigned char *)strstr((char *)next, eol2);
if(!next)
{
printf("could not find start of data\n");
@@ -259,7 +259,6 @@ httpd_appcall(void)
{
if(upload_running)
{
- int i;
httpd_upload_complete = 1;
// for(i = 0; i < hs->upload_total; i++)
// printf("%c", httpd_upload_data[i]);
@@ -267,7 +266,7 @@ httpd_appcall(void)
uip_close();
}
}
- uip_send(hs->dataptr, hs->count);
+ uip_send((unsigned char *)hs->dataptr, hs->count);
}
break;

View File

@ -0,0 +1,102 @@
#
# Copyright (C) 2008 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:=u-boot
PKG_VERSION:=2009.11
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=ftp://ftp.denx.de/pub/u-boot
PKG_MD5SUM:=
PKG_TARGETS:=bin
include $(INCLUDE_DIR)/package.mk
define uboot/Default
TITLE:=
CONFIG:=
IMAGE:=
endef
define uboot/qi_lb60
TITLE:=U-boot for the qi_lb60 board
endef
define uboot/avt2
TITLE:=U-boot for the avt2 board
endef
define uboot/sakc
TITLE:=U-boot for the sakc board
endef
define uboot/n516
TITLE:=U-boot for the N516 e-book reader
CONFIG:=n516_nand
endef
UBOOTS:=qi_lb60 n516 avt2 sakc
define Package/uboot/template
define Package/uboot-xburst-$(1)
SECTION:=boot
CATEGORY:=Boot Loaders
DEPENDS:=@TARGET_xburst
TITLE:=$(2)
URL:=http://www.denx.de/wiki/UBoot/WebHome
VARIANT:=$(1)
endef
endef
define BuildUbootPackage
$(eval $(uboot/Default))
$(eval $(uboot/$(1)))
$(call Package/uboot/template,$(1),$(TITLE))
endef
ifdef BUILD_VARIANT
$(eval $(call uboot/$(BUILD_VARIANT)))
UBOOT_CONFIG:=$(if $(CONFIG),$(CONFIG),$(BUILD_VARIANT))
UBOOT_IMAGE:=$(if $(IMAGE),$(IMAGE),openwrt-$(BOARD)-$(BUILD_BARIANT)-u-boot.bin)
endif
define Build/Prepare
$(call Build/Prepare/Default)
$(CP) ./files/* $(PKG_BUILD_DIR)
find $(PKG_BUILD_DIR) -name .svn | $(XARGS) rm -rf
endef
define Build/Configure
$(MAKE) -C $(PKG_BUILD_DIR) \
$(UBOOT_CONFIG)_config
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
CROSS_COMPILE=$(TARGET_CROSS)
endef
define Package/uboot/install/template
define Package/uboot-xburst-$(1)/install
$(INSTALL_DIR) $$(1)
$(CP) $(PKG_BUILD_DIR)/u-boot-nand.bin $(BIN_DIR)/$(2)
endef
endef
$(foreach u,$(UBOOTS), \
$(eval $(call Package/uboot/install/template,$(u),openwrt-$(BOARD)-$(u)-u-boot.bin)) \
)
$(foreach u,$(UBOOTS), \
$(eval $(call BuildUbootPackage,$(u))) \
$(eval $(call BuildPackage,uboot-xburst-$(u))) \
)

View File

@ -0,0 +1,40 @@
#
# (C) Copyright 2006
# Ingenic Semiconductor, <jlwei@ingenic.cn>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a
COBJS = $(BOARD).o flash.o
OBJS = $(addprefix $(obj),$(COBJS))
SOBJS =
$(LIB): $(obj).depend $(OBJS) $(SOBJS)
$(AR) crv $@ $(OBJS) $(SOBJS)
#########################################################################
$(obj).depend: Makefile $(SOBJS:.o=.S) $(COBJS:.o=.c)
$(CC) -M $(CFLAGS) $(SOBJS:.o=.S) $(COBJS:.o=.c) > $@
sinclude $(obj).depend
#########################################################################

Some files were not shown because too many files have changed in this diff Show More