diff --git a/Config.in b/Config.in index ffe1147f4..e4c133f40 100644 --- a/Config.in +++ b/Config.in @@ -13,66 +13,55 @@ config HAVE_DOT_CONFIG source "target/Config.in" menu "Target Images" - config TARGET_ROOTFS_INITRAMFS + + menuconfig TARGET_ROOTFS_INITRAMFS bool "ramdisk" default y if USES_INITRAMFS depends LINUX_2_6 help Embed the rootfs into the kernel (initramfs) - choice - prompt "ramdisk compression" - depends TARGET_ROOTFS_INITRAMFS - depends !LINUX_2_6_25 - default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ar71xx - default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ramips - default TARGET_INITRAMFS_COMPRESSION_NONE + choice + prompt "Compression" + default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ar71xx + default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ramips + default TARGET_INITRAMFS_COMPRESSION_NONE + depends TARGET_ROOTFS_INITRAMFS + depends !LINUX_2_6_25 + help + Select ramdisk compression. + + config TARGET_INITRAMFS_COMPRESSION_NONE + bool "none" + + config TARGET_INITRAMFS_COMPRESSION_GZIP + bool "gzip" + + config TARGET_INITRAMFS_COMPRESSION_BZIP2 + bool "bzip2" + + config TARGET_INITRAMFS_COMPRESSION_LZMA + bool "lzma" + + config TARGET_INITRAMFS_COMPRESSION_LZO + bool "lzo" + endchoice + + comment "Root filesystem archives" + + config TARGET_ROOTFS_CPIOGZ + bool "cpio.gz" + default y if USES_CPIOGZ help - Select ramdisk compression. + Build a compressed cpio archive of the the root filesystem - config TARGET_INITRAMFS_COMPRESSION_NONE - bool "NONE" - - config TARGET_INITRAMFS_COMPRESSION_GZIP - bool "GZIP" - - config TARGET_INITRAMFS_COMPRESSION_BZIP2 - bool "BZIP2" - - config TARGET_INITRAMFS_COMPRESSION_LZMA - bool "LZMA" - - config TARGET_INITRAMFS_COMPRESSION_LZO - bool "LZO" - endchoice - - config TARGET_ROOTFS_JFFS2 - bool "jffs2" - default y if USES_JFFS2 - depends !TARGET_ROOTFS_INITRAMFS - help - Build a jffs2 root filesystem - - config TARGET_ROOTFS_SQUASHFS - bool "squashfs" - default y if USES_SQUASHFS - depends !TARGET_ROOTFS_INITRAMFS - help - Build a squashfs-lzma root filesystem - - config TARGET_ROOTFS_TGZ - bool "tgz" - default y if USES_TGZ - depends !TARGET_ROOTFS_INITRAMFS + config TARGET_ROOTFS_TARGZ + bool "tar.gz" + default y if USES_TARGZ help Build a compressed tar archive of the the root filesystem - config TARGET_ROOTFS_CPIOGZ - bool "cpiogz" - default y if USES_CPIOGZ - depends !TARGET_ROOTFS_INITRAMFS - help - Build a compressed cpio archive of the the root filesystem + comment "Root filesystem images" config TARGET_ROOTFS_EXT2FS bool "ext2" @@ -88,6 +77,20 @@ menu "Target Images" help Create some bootable ISO image + config TARGET_ROOTFS_JFFS2 + bool "jffs2" + default y if USES_JFFS2 + depends !TARGET_ROOTFS_INITRAMFS + help + Build a jffs2 root filesystem + + config TARGET_ROOTFS_SQUASHFS + bool "squashfs" + default y if USES_SQUASHFS + depends !TARGET_ROOTFS_INITRAMFS + help + Build a squashfs-lzma root filesystem + config TARGET_ROOTFS_UBIFS bool "ubifs" default y if USES_UBIFS @@ -95,155 +98,157 @@ menu "Target Images" help Build a ubifs root filesystem -comment "Image Options" + comment "Image Options" -source "target/linux/*/image/Config.in" + source "target/linux/*/image/Config.in" - config TARGET_ROOTFS_FSPART - int "Filesystem part size (in MB)" - depends X86_GRUB_IMAGES || TARGET_ROOTFS_EXT2FS || TARGET_rb532 || TARGET_olpc - default 48 - help - Allows you to change the filesystem partition size + config TARGET_ROOTFS_FSPART + int "Root filesystem partition size (in MB)" + depends X86_GRUB_IMAGES || TARGET_ROOTFS_EXT2FS || TARGET_rb532 + default 48 + help + Allows you to change the root filesystem partition size - config TARGET_ROOTFS_MAXINODE - int "Maximum number of inodes in filesystem" - depends TARGET_ROOTFS_EXT2FS - default 6000 - help - Allows you to change the maximum number of inodes in the filesystem + config TARGET_ROOTFS_MAXINODE + int "Maximum number of inodes in root filesystem" + depends TARGET_ROOTFS_EXT2FS + default 6000 + help + Allows you to change the maximum number of inodes in the root filesystem endmenu menu "Global build settings" -config ALL - bool "Select all packages by default" - default n + config ALL + bool "Select all packages by default" + default n -comment "General build options" + comment "General build options" -config CLEAN_IPKG - bool - prompt "Disable ipkg/opkg installation on the target" - default n - help - This removes all ipkg data from the target directory before building the root fs - -config LARGEFILE - bool - prompt "Enable large file (files > 2 GB) support" - default y - help - Enable large file (files > 2 GB) support. - -config SHADOW_PASSWORDS - bool - prompt "Enable shadow password support" - default y - help - Enable shadow password support. - -choice - prompt "Binary stripping method" - default USE_STRIP if EXTERNAL_TOOLCHAIN - default USE_STRIP if USE_GLIBC || USE_EGLIBC - default USE_SSTRIP - help - Select the binary stripping method you wish to use. - - config NO_STRIP - bool "none" + config BUILD_PATENTED + default y + bool "Compile with support for patented functionality" help - This will install unstripped binaries (useful for native compiling/debugging) + When this option is disabled, software which provides patented functionality will not be built. + In case software provides optional support for patented functionality, + this optional support will get disabled for this package. - config USE_STRIP - bool "strip" + config LARGEFILE + bool + prompt "Enable large file (files > 2 GB) support" + default y help - This will install binaries stripped using strip from binutils + Enable large file (files > 2 GB) support. - - config USE_SSTRIP - bool "sstrip" - depends !DEBUG - depends !USE_GLIBC - depends !USE_EGLIBC + config SHADOW_PASSWORDS + bool + prompt "Enable shadow password support" + default y help - This will install binaries stripped using sstrip -endchoice + Enable shadow password support. -config BUILD_PATENTED - default y - bool "Compile with support for patented functionality" - help - When this option is disabled, software which provides patented functionality will not be built. - In case software provides optional support for patented functionality, - this optional support will get disabled for this package. + config CLEAN_IPKG + bool + prompt "Remove ipkg/opkg status data files in final images" + default n + help + This removes all ipkg/opkg status data files from the target directory before building the root fs -config STRIP_ARGS - string - prompt "Strip arguments" - depends USE_STRIP - default "--strip-unneeded --remove-section=.comment --remove-section=.note" if DEBUG - default "--strip-all" - help - Specifies arguments passed to the strip command when stripping binaries + comment "Kernel build options" -config USE_MKLIBS - bool "Strip unnecessary functions from libraries" - help - Reduces libraries to only those functions that are necessary for using all - selected packages (including those selected as ) - Note that this will make the system libraries incompatible with most of the packages - that are not selected during the build process + config KERNEL_DEBUG_FS + bool "Compile the kernel with Debug FileSystem enabled" + default y + depends LINUX_2_6 + help + debugfs is a virtual file system that kernel developers use to put + debugging files into. Enable this option to be able to read and + write to these files. -config STRIP_KERNEL_EXPORTS - depends LINUX_2_6 - bool "Strip unnecessary exports from the kernel image" - help - Reduces kernel size by stripping unused kernel exports from the kernel image - Note that this might make the kernel incompatible with any kernel modules that - were not selected at the time the kernel image was created + config KERNEL_PROFILING + bool "Compile the kernel with profiling enabled" + default n + help + Enable the extended profiling support mechanisms used by profilers such + as OProfile. -comment "Package build options" + config KERNEL_KALLSYMS + bool "Compile the kernel with symbol table information" + default n + help + This will give you more information in stack traces from kernel oopses -config DEBUG - bool - prompt "Compile packages with debugging info" - default n - help - Adds -g3 to the CFLAGS + comment "Package build options" -config IPV6 - bool - prompt "Enable IPv6 support in packages" - default n - help - Enable IPV6 support in packages (passes --enable-ipv6 to configure scripts). + config DEBUG + bool + prompt "Compile packages with debugging info" + default n + help + Adds -g3 to the CFLAGS -comment "Kernel build options" + config IPV6 + bool + prompt "Enable IPv6 support in packages" + default n + help + Enable IPV6 support in packages (passes --enable-ipv6 to configure scripts). -config KERNEL_KALLSYMS - bool "Compile the kernel with symbol table information" - default n - help - This will give you more information in stack traces from kernel oopses + comment "Stripping options" -config KERNEL_PROFILING - bool "Compile the kernel with profiling enabled" - default n - help - Enable the extended profiling support mechanisms used by profilers such - as OProfile. + choice + prompt "Binary stripping method" + default USE_STRIP if EXTERNAL_TOOLCHAIN + default USE_STRIP if USE_GLIBC || USE_EGLIBC + default USE_SSTRIP + help + Select the binary stripping method you wish to use. -config KERNEL_DEBUG_FS - bool "Compile the kernel with Debug Filesystem enabled" - depends LINUX_2_6 - default y - help - debugfs is a virtual file system that kernel developers use to put - debugging files into. Enable this option to be able to read and - write to these files. + config NO_STRIP + bool "none" + help + This will install unstripped binaries (useful for native compiling/debugging) + + config USE_STRIP + bool "strip" + help + This will install binaries stripped using strip from binutils + + + config USE_SSTRIP + bool "sstrip" + depends !DEBUG + depends !USE_GLIBC + depends !USE_EGLIBC + help + This will install binaries stripped using sstrip + endchoice + + config STRIP_ARGS + string + prompt "Strip arguments" + depends USE_STRIP + default "--strip-unneeded --remove-section=.comment --remove-section=.note" if DEBUG + default "--strip-all" + help + Specifies arguments passed to the strip command when stripping binaries + + config STRIP_KERNEL_EXPORTS + depends LINUX_2_6 + bool "Strip unnecessary exports from the kernel image" + help + Reduces kernel size by stripping unused kernel exports from the kernel image + Note that this might make the kernel incompatible with any kernel modules that + were not selected at the time the kernel image was created + + config USE_MKLIBS + bool "Strip unnecessary functions from libraries" + help + Reduces libraries to only those functions that are necessary for using all + selected packages (including those selected as ) + Note that this will make the system libraries incompatible with most of the packages + that are not selected during the build process endmenu @@ -251,97 +256,84 @@ menuconfig DEVEL bool "Advanced configuration options (for developers)" default n -config BROKEN - bool - prompt "Show broken platforms / packages" if DEVEL - default n + config BROKEN + bool "Show broken platforms / packages" if DEVEL + default n -config DOWNLOAD_FOLDER - string - prompt "Download folder" if DEVEL - default "" + config DOWNLOAD_FOLDER + string "Download folder" if DEVEL + default "" -config LOCALMIRROR - string - prompt "Local mirror for source packages" if DEVEL + config LOCALMIRROR + string "Local mirror for source packages" if DEVEL + default "" -config AUTOREBUILD - bool - prompt "Automatic rebuild of packages" if DEVEL - default y - help - Automatically rebuild packages when their files change + config AUTOREBUILD + bool "Automatic rebuild of packages" if DEVEL + default y + help + Automatically rebuild packages when their files change -config BUILD_SUFFIX - string - prompt "Build suffix to append to the BUILD_DIR variable" if DEVEL - default "" - help - Build suffix to append to the BUILD_DIR variable, i.e: build_dir_suffix + config BUILD_SUFFIX + string "Build suffix to append to the BUILD_DIR variable" if DEVEL + default "" + help + Build suffix to append to the BUILD_DIR variable, i.e: build_dir_suffix -config TARGET_ROOTFS_DIR - string - prompt "Override the default TARGET_ROOTFS_DIR variable" if DEVEL - default "" - help - Override the default TARGET_ROOTFS_DIR variable content $(BUILD_DIR) with custom path. - Use this option to re-define the location of the target root file system directory. + config TARGET_ROOTFS_DIR + string "Override the default TARGET_ROOTFS_DIR variable" if DEVEL + default "" + help + Override the default TARGET_ROOTFS_DIR variable content $(BUILD_DIR) with custom path. + Use this option to re-define the location of the target root file system directory. -config CCACHE - bool - prompt "Use ccache" if DEVEL - default n - help - Compiler cache; see http://ccache.samba.org/ + config CCACHE + bool "Use ccache" if DEVEL + default n + help + Compiler cache; see http://ccache.samba.org/ -config EXTERNAL_KERNEL_TREE - string - prompt "Use external kernel tree" if DEVEL - default "" + config EXTERNAL_KERNEL_TREE + string "Use external kernel tree" if DEVEL + default "" -config KERNEL_GIT_CLONE_URI - string - prompt "Enter git repository to clone" if DEVEL - default "" - help - Enter the full git repository path i.e.: - git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git - This will create a git clone of the kernel in your build - directory. - -config KERNEL_GIT_LOCAL_REPOSITORY - string - prompt "Enter path to local reference repository" if DEVEL - default "" - help - Enter a full pathname to a local reference git repository. - In this instance, the --refererence option of git clone will - be used thus creating a quick local clone of your repo. + config KERNEL_GIT_CLONE_URI + string "Enter git repository to clone" if DEVEL + default "" + help + Enter the full git repository path i.e.: + git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + This will create a git clone of the kernel in your build + directory. + config KERNEL_GIT_LOCAL_REPOSITORY + string "Enter path to local reference repository" if DEVEL + default "" + help + Enter a full pathname to a local reference git repository. + In this instance, the --refererence option of git clone will + be used thus creating a quick local clone of your repo. menuconfig TARGET_OPTIONS bool "Target Options" if DEVEL -config TARGET_OPTIMIZATION - string - prompt "Target Optimizations" if TARGET_OPTIONS - default DEFAULT_TARGET_OPTIMIZATION - help - Optimizations to use when building for the target host. + config TARGET_OPTIMIZATION + string "Target Optimizations" if TARGET_OPTIONS + default DEFAULT_TARGET_OPTIMIZATION + help + Optimizations to use when building for the target host. -config SOFT_FLOAT - bool - prompt "Use software floating point by default" if TARGET_OPTIONS - default y - depends on (arm || armeb || powerpc || mipsel || mips) && !HAS_FPU - help - If your target CPU does not have a Floating Point Unit (FPU) or a - kernel FPU emulator, but you still wish to support floating point - functions, then everything will need to be compiled with soft floating - point support (-msoft-float). - - Most people will answer N. + config SOFT_FLOAT + bool "Use software floating point by default" if TARGET_OPTIONS + default y + depends on (arm || armeb || powerpc || mipsel || mips) && !HAS_FPU + help + If your target CPU does not have a Floating Point Unit (FPU) or a + kernel FPU emulator, but you still wish to support floating point + functions, then everything will need to be compiled with soft floating + point support (-msoft-float). + Most people will answer N. source "toolchain/Config.in" @@ -350,5 +342,3 @@ source "target/sdk/Config.in" source "target/toolchain/Config.in" source "tmp/.config-package.in" - - diff --git a/include/host.mk b/include/host.mk index b93ab8d53..02365d9ea 100644 --- a/include/host.mk +++ b/include/host.mk @@ -1,5 +1,5 @@ # -# Copyright (C) 2007 OpenWrt.org +# Copyright (C) 2007-2010 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -14,6 +14,17 @@ export TAR FIND ifneq ($(__host_inc),1) __host_inc:=1 + +try-run = $(shell set -e; \ + TMP_F="$(TMP_DIR)/try-run.$$$$.tmp"; \ + if ($(1)) >/dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi; \ + rm -f "$$TMP_F"; \ +) + +host-cc-option = $(call try-run, \ + $(HOSTCC) $(HOST_CFLAGS) $(1) -c -xc /dev/null -o "$$TMP_F",$(1),$(2) \ +) + .PRECIOUS: $(TMP_DIR)/.host.mk $(TMP_DIR)/.host.mk: $(TOPDIR)/include/host.mk @mkdir -p $(TMP_DIR) diff --git a/include/image.mk b/include/image.mk index 98e32b349..fec1990fd 100644 --- a/include/image.mk +++ b/include/image.mk @@ -17,23 +17,23 @@ KDIR=$(KERNEL_BUILD_DIR) IMG_PREFIX:=openwrt-$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET)) -ifneq ($(CONFIG_BIG_ENDIAN),y) -JFFS2OPTS := --pad --little-endian --squash -SQUASHFS_OPTS := -le +ifneq ($(CONFIG_BIG_ENDIAN),) + JFFS2OPTS := --pad --big-endian --squash -v + SQUASHFS_OPTS := -be else -JFFS2OPTS := --pad --big-endian --squash -SQUASHFS_OPTS := -be + JFFS2OPTS := --pad --little-endian --squash -v + SQUASHFS_OPTS := -le endif ifneq ($(CONFIG_LINUX_2_4)$(CONFIG_LINUX_2_6_25),) -USE_SQUASHFS3 := y + USE_SQUASHFS3 := y endif ifneq ($(USE_SQUASHFS3),) -MKSQUASHFS_CMD := $(STAGING_DIR_HOST)/bin/mksquashfs-lzma + MKSQUASHFS_CMD := $(STAGING_DIR_HOST)/bin/mksquashfs-lzma else -MKSQUASHFS_CMD := $(STAGING_DIR_HOST)/bin/mksquashfs4 -SQUASHFS_OPTS := -comp lzma -processors 1 + MKSQUASHFS_CMD := $(STAGING_DIR_HOST)/bin/mksquashfs4 + SQUASHFS_OPTS := -comp lzma -processors 1 endif JFFS2_BLOCKSIZE ?= 64k 128k @@ -55,8 +55,17 @@ define prepare_generic_squashfs rm -f $(KDIR)/tmpfile.* endef -ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) - ifeq ($(CONFIG_TARGET_ROOTFS_JFFS2),y) + +ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) + + define Image/BuildKernel + cp $(KDIR)/vmlinux.elf $(BIN_DIR)/$(IMG_PREFIX)-vmlinux.elf + $(call Image/Build/Initramfs) + endef + +else + + ifneq ($(CONFIG_TARGET_ROOTFS_JFFS2),) 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) @@ -68,7 +77,7 @@ ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) endef endif - ifeq ($(CONFIG_TARGET_ROOTFS_SQUASHFS),y) + ifneq ($(CONFIG_TARGET_ROOTFS_SQUASHFS),) define Image/mkfs/squashfs @mkdir -p $(TARGET_DIR)/overlay $(MKSQUASHFS_CMD) $(TARGET_DIR) $(KDIR)/root.squashfs -nopad -noappend -root-owned $(SQUASHFS_OPTS) @@ -76,18 +85,7 @@ ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) endef endif - ifeq ($(CONFIG_TARGET_ROOTFS_TGZ),y) - define Image/mkfs/tgz - $(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)/$(IMG_PREFIX)-rootfs.cpio.gz ) - endef - endif - ifeq ($(CONFIG_TARGET_ROOTFS_UBIFS),y) + ifneq ($(CONFIG_TARGET_ROOTFS_UBIFS),) define Image/mkfs/ubifs $(CP) ./ubinize.cfg $(KDIR) $(STAGING_DIR_HOST)/bin/mkfs.ubifs $(UBIFS_OPTS) -o $(KDIR)/root.ubifs -d $(TARGET_DIR) @@ -96,22 +94,22 @@ ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) $(call Image/Build,ubi) endef endif -else - define Image/BuildKernel - cp $(KDIR)/vmlinux.elf $(BIN_DIR)/$(IMG_PREFIX)-vmlinux.elf - $(call Image/Build/Initramfs) + +endif + +ifneq ($(CONFIG_TARGET_ROOTFS_CPIOGZ),) + define Image/mkfs/cpiogz + ( cd $(TARGET_DIR); find . | cpio -o -H newc | gzip -9 >$(BIN_DIR)/$(IMG_PREFIX)-rootfs.cpio.gz ) endef endif -define Image/Checksum - ( cd ${BIN_DIR} ; \ - $(FIND) -maxdepth 1 -type f \! -name 'md5sums' -printf "%P\n" | sort | xargs \ - md5sum --binary > md5sums \ - ) -endef +ifneq ($(CONFIG_TARGET_ROOTFS_TARGZ),) + define Image/mkfs/targz + $(TAR) -zcf $(BIN_DIR)/$(IMG_PREFIX)-rootfs.tar.gz --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ . + endef +endif - -ifeq ($(CONFIG_TARGET_ROOTFS_EXT2FS),y) +ifneq ($(CONFIG_TARGET_ROOTFS_EXT2FS),) E2SIZE=$(shell echo $$(($(CONFIG_TARGET_ROOTFS_FSPART)*1024))) define Image/mkfs/ext2 @@ -120,7 +118,7 @@ ifeq ($(CONFIG_TARGET_ROOTFS_EXT2FS),y) endef endif -ifeq ($(CONFIG_TARGET_ROOTFS_ISO),y) +ifneq ($(CONFIG_TARGET_ROOTFS_ISO),) define Image/mkfs/iso $(call Image/Build,iso) endef @@ -139,52 +137,62 @@ define Image/mkfs/prepare $(call Image/mkfs/prepare/default) endef -define BuildImage -download: -prepare: -ifneq ($(IB),1) - compile: compile-targets FORCE - $(call Build/Compile) -else - compile: -endif -ifneq ($(IB),1) - install: compile install-targets FORCE - $(call Image/Prepare) - $(call Image/mkfs/prepare) - $(call Image/BuildKernel) - $(call Image/mkfs/jffs2) - $(call Image/mkfs/squashfs) - $(call Image/mkfs/tgz) - $(call Image/mkfs/cpiogz) - $(call Image/mkfs/ext2) - $(call Image/mkfs/iso) - $(call Image/mkfs/ubifs) - $(call Image/Checksum) -else - install: compile install-targets - $(call Image/BuildKernel) - $(call Image/mkfs/jffs2) - $(call Image/mkfs/squashfs) - $(call Image/mkfs/tgz) - $(call Image/mkfs/cpiogz) - $(call Image/mkfs/ext2) - $(call Image/mkfs/iso) - $(call Image/mkfs/ubifs) - $(call Image/Checksum) -endif - -ifneq ($(IB),1) - clean: clean-targets - $(call Build/Clean) -else - clean: -endif - -compile-targets: -install-targets: -clean-targets: +define Image/Checksum + ( cd ${BIN_DIR} ; \ + $(FIND) -maxdepth 1 -type f \! -name 'md5sums' -printf "%P\n" | sort | xargs \ + md5sum --binary > md5sums \ + ) endef +define BuildImage + + download: + prepare: + + ifeq ($(IB),) + compile: compile-targets FORCE + $(call Build/Compile) + else + compile: + endif + + ifeq ($(IB),) + install: compile install-targets FORCE + $(call Image/Prepare) + $(call Image/mkfs/prepare) + $(call Image/BuildKernel) + $(call Image/mkfs/cpiogz) + $(call Image/mkfs/targz) + $(call Image/mkfs/ext2) + $(call Image/mkfs/iso) + $(call Image/mkfs/jffs2) + $(call Image/mkfs/squashfs) + $(call Image/mkfs/ubifs) + $(call Image/Checksum) + else + install: compile install-targets + $(call Image/BuildKernel) + $(call Image/mkfs/cpiogz) + $(call Image/mkfs/targz) + $(call Image/mkfs/ext2) + $(call Image/mkfs/iso) + $(call Image/mkfs/jffs2) + $(call Image/mkfs/squashfs) + $(call Image/mkfs/ubifs) + $(call Image/Checksum) + endif + + ifeq ($(IB),) + clean: clean-targets + $(call Build/Clean) + else + clean: + endif + + compile-targets: + install-targets: + clean-targets: + +endef diff --git a/include/package-version-override.mk b/include/package-version-override.mk index f18ecd7bf..eaaa3520f 100644 --- a/include/package-version-override.mk +++ b/include/package-version-override.mk @@ -3,7 +3,7 @@ PKG_VERSION_ORGINAL:=$(PKG_VERSION) # in case that another version is provided, overwrite the original ifeq ($(CONFIG_$(PKG_NAME)_USE_CUSTOM_VERSION),y) -PKG_VERSION:= $(strip $(subst ",, $(CONFIG_$(PKG_NAME)_CUSTOM_VERSION))) +PKG_VERSION:=$(call qstrip,$(CONFIG_$(PKG_NAME)_CUSTOM_VERSION)) PKG_SOURCE:=$(subst $(PKG_VERSION_ORGINAL),$(PKG_VERSION),$(PKG_SOURCE)) PKG_MD5SUM:= endif @@ -26,7 +26,7 @@ endef # in case that an customer source path is provided, set the acc. default variable ifeq ($(CONFIG_$(PKG_NAME)_USE_CUSTOM_SOURCE_DIR),y) -PKG_DEFAULT_CUSTOM_SOURCE_DIR:= $(strip $(subst ",, $(CONFIG_$(PKG_NAME)_CUSTOM_SOURCE_DIR))) +PKG_DEFAULT_CUSTOM_SOURCE_DIR:= $(call qstrip,$(CONFIG_$(PKG_NAME)_CUSTOM_SOURCE_DIR)) endif # package specific configuration diff --git a/package/acx/Makefile b/package/acx/Makefile index 64725be26..caa55c577 100644 --- a/package/acx/Makefile +++ b/package/acx/Makefile @@ -25,7 +25,7 @@ include $(INCLUDE_DIR)/package.mk define KernelPackage/acx TITLE:=Driver for TI ACX1xx chipset - DEPENDS:=@LINUX_2_6 @TARGET_ar7 +wireless-tools + DEPENDS:=@LINUX_2_6 @PCI_SUPPORT||TARGET_ar7 +wireless-tools URL:=http://acx100.sourceforge.net/ SUBMENU:=Wireless Drivers FILES:= $(PKG_BUILD_DIR)/acx.$(LINUX_KMOD_SUFFIX) diff --git a/package/acx/patches/006-netdev_ops.patch b/package/acx/patches/006-netdev_ops.patch index 210e92935..e7840c6eb 100644 --- a/package/acx/patches/006-netdev_ops.patch +++ b/package/acx/patches/006-netdev_ops.patch @@ -1,10 +1,12 @@ ---- a/pci.c -+++ b/pci.c -@@ -4135,6 +4135,18 @@ static struct vlynq_device_id acx_vlynq_ - { 0, 0, 0 }, - }; +Index: acx-20080210/pci.c +=================================================================== +--- acx-20080210.orig/pci.c 2010-05-02 21:37:00.000000000 +0200 ++++ acx-20080210/pci.c 2010-05-02 21:48:22.000000000 +0200 +@@ -1437,6 +1437,18 @@ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31) + static void dummy_netdev_init(struct net_device *ndev) {} + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30) +static const struct net_device_ops acx_netdev_ops = { + .ndo_open = &acxpci_e_open, + .ndo_stop = &acxpci_e_close, @@ -16,14 +18,39 @@ +}; +#endif + - static __devinit int vlynq_probe(struct vlynq_device *vdev, - struct vlynq_device_id *id) + #ifdef CONFIG_PCI + static int __devinit acxpci_e_probe(struct pci_dev *pdev, const struct pci_device_id *id) { -@@ -4191,17 +4203,24 @@ static __devinit int vlynq_probe(struct +@@ -1547,17 +1559,21 @@ + } + + ether_setup(ndev); ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)) + ndev->open = &acxpci_e_open; + ndev->stop = &acxpci_e_close; + ndev->hard_start_xmit = &acx_i_start_xmit; + ndev->get_stats = &acx_e_get_stats; ++ ndev->set_multicast_list = &acxpci_i_set_multicast_list; ++ ndev->tx_timeout = &acxpci_i_tx_timeout; ++ ndev->change_mtu = &acx_e_change_mtu; ++#else ++ ndev->netdev_ops = &acx_netdev_ops; ++#endif + #if IW_HANDLER_VERSION <= 5 + ndev->get_wireless_stats = &acx_e_get_wireless_stats; + #endif + ndev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def; +- ndev->set_multicast_list = &acxpci_i_set_multicast_list; +- ndev->tx_timeout = &acxpci_i_tx_timeout; +- ndev->change_mtu = &acx_e_change_mtu; + ndev->watchdog_timeo = 4 * HZ; + ndev->irq = pdev->irq; + ndev->base_addr = pci_resource_start(pdev, 0); +@@ -4191,17 +4207,24 @@ goto fail_alloc_netdev; } ether_setup(ndev); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) ndev->open = &acxpci_e_open; ndev->stop = &acxpci_e_close; ndev->hard_start_xmit = &acx_i_start_xmit; diff --git a/package/base-files/Makefile b/package/base-files/Makefile index c4717a78c..260255ba9 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -434,8 +434,10 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) $(TOOLCHAIN_DIR)/lib/libuClibc-$(LIBC_SO_VERSION).so \ $(1)/lib/ for file in libcrypt libdl libm libnsl libresolv libutil; do \ - $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(1)/lib/; \ - $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so $(1)/lib/; \ + $(CP) \ + $(TOOLCHAIN_DIR)/lib/$$$$file.so.* \ + $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so \ + $(1)/lib/; \ done endef diff --git a/package/base-files/files/etc/hotplug.d/net/10-net b/package/base-files/files/etc/hotplug.d/net/10-net index f46dcd08d..ef5900464 100644 --- a/package/base-files/files/etc/hotplug.d/net/10-net +++ b/package/base-files/files/etc/hotplug.d/net/10-net @@ -12,6 +12,8 @@ addif() { # PPP devices are configured by pppd, no need to run setup_interface here case "$INTERFACE" in ppp*) return 0;; + ath*) return 0;; + wlan*) return 0;; esac scan_interfaces diff --git a/package/block-extroot/Makefile b/package/block-extroot/Makefile index eaf01dad5..d24cbd134 100644 --- a/package/block-extroot/Makefile +++ b/package/block-extroot/Makefile @@ -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||PACKAGE_kmod-broadcom-sdhc + 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 diff --git a/package/goldfish-qemu/Makefile b/package/goldfish-qemu/Makefile deleted file mode 100644 index da3c64e4f..000000000 --- a/package/goldfish-qemu/Makefile +++ /dev/null @@ -1,69 +0,0 @@ -# -# Copyright (C) 2006 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=goldfish-qemu -PKG_VERSION:=20090429 -PKG_RELEASE:=1 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=git://android.git.kernel.org/platform/external/qemu -PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=2b8ea29e2bd12f876a4d06647e6077bf72de567e -PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_TARGETS:=bin - -include $(INCLUDE_DIR)/package.mk - -define Package/goldfish-qemu - SECTION:=emulator - CATEGORY:=Emulators - DEPENDS:=@TARGET_goldfish - TITLE:=A modified version of the Google Android Emulator - URL:=http://www.android.com/ -endef - -LIBSDL_PATCHED:=sdl-1.2.12-android-20080919 - -define Download/libsdl-patched - FILE:=$(LIBSDL_PATCHED).tar.gz - URL:=http://android.git.kernel.org/pub - MD5SUM:=22df8cbb2ecb811938eba8410e861650 -endef -$(eval $(call Download,libsdl-patched)) - -Build/Exports= - -define Build/Prepare - $(call Build/Prepare/Default) - zcat $(DL_DIR)/$(LIBSDL_PATCHED).tar.gz | tar x -C $(PKG_BUILD_DIR) -endef - -define Build/Configure - [ -x $(PKG_BUILD_DIR)/libsdl/bin/sdl-config ] || ( \ - cd $(PKG_BUILD_DIR)/$(LIBSDL_PATCHED); \ - ./android-configure --prefix=$(PKG_BUILD_DIR)/libsdl; \ - make all install; \ - ) -endef - -define Build/Compile - (cd $(PKG_BUILD_DIR); \ - [ -f $(PKG_BUILD_DIR)/objs/config.make ] || \ - ./android-configure.sh --sdl-config=$(PKG_BUILD_DIR)/libsdl/bin/sdl-config \ - ) - $(MAKE) -C $(PKG_BUILD_DIR) -endef - -define Package/goldfish-qemu/install - $(INSTALL_DIR) $(1) - $(CP) $(PKG_BUILD_DIR)/objs/emulator $(1)/ - $(CP) ./skins $(1)/ -endef - -$(eval $(call BuildPackage,goldfish-qemu)) diff --git a/package/goldfish-qemu/patches/100-darwin_fix.patch b/package/goldfish-qemu/patches/100-darwin_fix.patch deleted file mode 100644 index a5f56b3cf..000000000 --- a/package/goldfish-qemu/patches/100-darwin_fix.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/android-configure.sh -+++ b/android-configure.sh -@@ -656,6 +656,9 @@ case "$CPU" in - *) HOST_CPU=$CPU - ;; - esac -+case "$OS" in -+ darwin*) echo "#define _BSD 1" >> $config_h;; -+esac - echo "#define HOST_$HOST_CPU 1" >> $config_h - log "Generate : $config_h" - ---- a/android/utils/display-quartz.m -+++ b/android/utils/display-quartz.m -@@ -34,6 +34,7 @@ get_monitor_resolution( int *px_dpi, in - int - get_nearest_monitor_rect( int *x, int *y, int *width, int *height ) - { -+#if 0 - SDL_SysWMinfo info; - NSWindow* window; - -@@ -108,4 +109,7 @@ get_nearest_monitor_rect( int *x, int - } - return 0; - } -+#else -+ return -1; -+#endif - }; diff --git a/package/goldfish-qemu/patches/110-single_image.patch b/package/goldfish-qemu/patches/110-single_image.patch deleted file mode 100644 index 92a9e543d..000000000 --- a/package/goldfish-qemu/patches/110-single_image.patch +++ /dev/null @@ -1,233 +0,0 @@ ---- a/android/cmdline-option.c -+++ b/android/cmdline-option.c -@@ -50,16 +50,6 @@ android_parse_options( int *pargc, char - char arg2_tab[64], *arg2 = arg2_tab; - int nn; - -- /* process @ as a special exception meaning -- * '-avd ' -- */ -- if (aread[0][0] == '@') { -- opt->avd = aread[0]+1; -- nargs--; -- aread++; -- continue; -- } -- - /* anything that isn't an option past this points - * exits the loop - */ ---- a/android/cmdline-options.h -+++ b/android/cmdline-options.h -@@ -60,21 +60,16 @@ - */ - - CFG_PARAM( sysdir, "", "search for system disk images in " ) --CFG_PARAM( system, "", "read initial system image from " ) --CFG_PARAM( datadir, "", "write user data into " ) --CFG_PARAM( kernel, "", "use specific emulated kernel" ) --CFG_PARAM( ramdisk, "", "ramdisk image (default /ramdisk.img" ) --CFG_PARAM( image, "", "obsolete, use -system instead" ) --CFG_PARAM( init_data, "", "initial data image (default /userdata.img" ) --CFG_PARAM( initdata, "", "same as '-init-data '" ) --CFG_PARAM( data, "", "data image (default /userdata-qemu.img" ) -+CFG_PARAM( system, "", "read system image from , default: /system.img" ) -+CFG_PARAM( data, "", "data image, default: /data.img" ) -+CFG_PARAM( kernel, "", "use specific emulated kernel, default: kernel.bin" ) -+CFG_PARAM( ramdisk, "", "ramdisk image (default /ramdisk.bin" ) - CFG_PARAM( partition_size, "", "system/data partition size in MBs" ) - CFG_PARAM( cache, "", "cache partition image (default is temporary file)" ) - CFG_FLAG ( no_cache, "disable the cache partition" ) - CFG_FLAG ( nocache, "same as -no-cache" ) - OPT_PARAM( sdcard, "", "SD card image (default /sdcard.img") - OPT_FLAG ( wipe_data, "reset the use data image (copy it from initdata)" ) --CFG_PARAM( avd, "", "use a specific android virtual device" ) - CFG_PARAM( skindir, "", "search skins in (default /skins)" ) - CFG_PARAM( skin, "", "select a given skin" ) - CFG_FLAG ( no_skin, "don't use any emulator skin" ) ---- a/android/main.c -+++ b/android/main.c -@@ -1606,6 +1606,7 @@ report_console( const char* proto_port, - * containing 'fileName'. this is *not* the full - * path to 'fileName'. - */ -+ - static char* - _getSdkImagePath( const char* fileName ) - { -@@ -1617,8 +1618,6 @@ _getSdkImagePath( const char* fileName - - static const char* const searchPaths[] = { - "", /* program's directory */ -- "/lib/images", /* this is for SDK 1.0 */ -- "/../platforms/android-1.1/images", /* this is for SDK 1.1 */ - NULL - }; - -@@ -1841,25 +1840,7 @@ int main(int argc, char **argv) - } - } - -- /* legacy support: we used to use -system and -image -- * instead of -sysdir and -system , so handle this by checking -- * whether the options point to directories or files. -- */ -- if (opts->image != NULL) { -- if (opts->system != NULL) { -- if (opts->sysdir != NULL) { -- derror( "You can't use -sysdir, -system and -image at the same time.\n" -- "You should probably use '-sysdir -system '.\n" ); -- exit(2); -- } -- } -- dwarning( "Please note that -image is obsolete and that -system is now used to point\n" -- "to the system image. Next time, try using '-sysdir -system ' instead.\n" ); -- opts->sysdir = opts->system; -- opts->system = opts->image; -- opts->image = NULL; -- } -- else if (opts->system != NULL && path_is_dir(opts->system)) { -+ if (opts->system != NULL && path_is_dir(opts->system)) { - if (opts->sysdir != NULL) { - derror( "Option -system should now be followed by a file path, not a directory one.\n" - "Please use '-sysdir ' to point to the system directory.\n" ); -@@ -1885,49 +1866,11 @@ int main(int argc, char **argv) - if (opts->noskin) - opts->no_skin = opts->noskin; - -- if (opts->initdata) { -- opts->init_data = opts->initdata; -- opts->initdata = NULL; -- } -- -- /* If no AVD name was given, try to find the top of the -- * Android build tree -- */ -- if (opts->avd == NULL) { -- do { -- char* out = getenv("ANDROID_PRODUCT_OUT"); -- -- if (out == NULL || out[0] == 0) -- break; -- -- if (!path_exists(out)) { -- derror("Can't access ANDROID_PRODUCT_OUT as '%s'\n" -- "You need to build the Android system before launching the emulator", -- out); -- exit(2); -- } -- -- android_build_root = path_parent( out, 4 ); -- if (android_build_root == NULL || !path_exists(android_build_root)) { -- derror("Can't find the Android build root from '%s'\n" -- "Please check the definition of the ANDROID_PRODUCT_OUT variable.\n" -- "It should point to your product-specific build output directory.\n", -- out ); -- exit(2); -- } -- android_build_out = out; -- D( "found Android build root: %s", android_build_root ); -- D( "found Android build out: %s", android_build_out ); -- } while (0); -- } - /* if no virtual device name is given, and we're not in the - * Android build system, we'll need to perform some auto-detection - * magic :-) - */ -- if (opts->avd == NULL && !android_build_out) - { -- char dataDirIsSystem = 0; -- - if (!opts->sysdir) { - opts->sysdir = _getSdkImagePath("system.img"); - if (!opts->sysdir) { -@@ -1945,47 +1888,30 @@ int main(int argc, char **argv) - } - - if (!opts->system) { -- opts->system = _getSdkSystemImage(opts->sysdir, "-image", "system.img"); -- D("autoconfig: -image %s", opts->image); -+ opts->system = _getSdkSystemImage(opts->sysdir, "-system", "system.img"); -+ D("autoconfig: -system %s", opts->system); - } - - if (!opts->kernel) { -- opts->kernel = _getSdkSystemImage(opts->sysdir, "-kernel", "kernel-qemu"); -+ opts->kernel = _getSdkSystemImage(opts->sysdir, "-kernel", "kernel.bin"); - D("autoconfig: -kernel %s", opts->kernel); - } - - if (!opts->ramdisk) { -- opts->ramdisk = _getSdkSystemImage(opts->sysdir, "-ramdisk", "ramdisk.img"); -+ opts->ramdisk = _getSdkSystemImage(opts->sysdir, "-ramdisk", "ramdisk.bin"); - D("autoconfig: -ramdisk %s", opts->ramdisk); - } - -- /* if no data directory is specified, use the system directory */ -- if (!opts->datadir) { -- opts->datadir = qemu_strdup(opts->sysdir); -- dataDirIsSystem = 1; -- D("autoconfig: -datadir %s", opts->sysdir); -- } -- - if (!opts->data) { - /* check for userdata-qemu.img in the data directory */ -- bufprint(tmp, tmpend, "%s/userdata-qemu.img", opts->datadir); -- if (!path_exists(tmp)) { -- derror( -- "You did not provide the name of an Android Virtual Device\n" -- "with the '-avd ' option. Read -help-avd for more information.\n\n" -- -- "If you *really* want to *NOT* run an AVD, consider using '-data '\n" -- "to specify a data partition image file (I hope you know what you're doing).\n" -- ); -- exit(2); -- } -+ bufprint(tmp, tmpend, "%s/data.img", opts->sysdir); - - opts->data = qemu_strdup(tmp); - D("autoconfig: -data %s", opts->data); - } - -- if (!opts->sdcard && opts->datadir) { -- bufprint(tmp, tmpend, "%s/sdcard.img", opts->datadir); -+ if (!opts->sdcard && opts->sysdir) { -+ bufprint(tmp, tmpend, "%s/sdcard.img", opts->sysdir); - if (path_exists(tmp)) { - opts->sdcard = qemu_strdup(tmp); - D("autoconfig: -sdcard %s", opts->sdcard); -@@ -2029,19 +1955,6 @@ int main(int argc, char **argv) - android_avdParams->skinName = opts->skin; - android_avdParams->skinRootPath = opts->skindir; - -- /* setup the virtual device differently depending on whether -- * we are in the Android build system or not -- */ -- if (opts->avd != NULL) -- { -- android_avdInfo = avdInfo_new( opts->avd, android_avdParams ); -- if (android_avdInfo == NULL) { -- /* an error message has already been printed */ -- dprint("could not find virtual device named '%s'", opts->avd); -- exit(1); -- } -- } -- else - { - if (!android_build_out) { - android_build_out = android_build_root = opts->sysdir; ---- a/android/avd/info.c -+++ b/android/avd/info.c -@@ -1233,10 +1233,8 @@ _getBuildImagePaths( AvdInfo* i, AvdInf - ** take care of checking the state - **/ - imageLoader_set ( l, AVD_IMAGE_INITSYSTEM ); -- imageLoader_load( l, IMAGE_REQUIRED | IMAGE_DONT_LOCK ); -- -- /* force the system image to read-only status */ -- l->pState[0] = IMAGE_STATE_READONLY; -+ l->pState[0] = IMAGE_STATE_MUSTLOCK; -+ imageLoader_load( l, IMAGE_REQUIRED ); - - /** cache partition handling - **/ diff --git a/package/goldfish-qemu/skins/HVGA/arrow_down.png b/package/goldfish-qemu/skins/HVGA/arrow_down.png deleted file mode 100644 index 19b3764e8..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/arrow_down.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/arrow_left.png b/package/goldfish-qemu/skins/HVGA/arrow_left.png deleted file mode 100644 index 113e58427..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/arrow_left.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/arrow_right.png b/package/goldfish-qemu/skins/HVGA/arrow_right.png deleted file mode 100644 index ffe3356c0..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/arrow_right.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/arrow_up.png b/package/goldfish-qemu/skins/HVGA/arrow_up.png deleted file mode 100644 index 81c54df51..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/arrow_up.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/back.png b/package/goldfish-qemu/skins/HVGA/back.png deleted file mode 100644 index 41034d910..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/back.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/device.png b/package/goldfish-qemu/skins/HVGA/device.png deleted file mode 100644 index 465eb029d..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/device.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/end.png b/package/goldfish-qemu/skins/HVGA/end.png deleted file mode 100644 index 6830a603b..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/end.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/home.png b/package/goldfish-qemu/skins/HVGA/home.png deleted file mode 100644 index 7d021369b..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/home.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/key.png b/package/goldfish-qemu/skins/HVGA/key.png deleted file mode 100644 index 7a3f563bd..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/key.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/keyboard.png b/package/goldfish-qemu/skins/HVGA/keyboard.png deleted file mode 100644 index bb076d315..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/keyboard.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/layout b/package/goldfish-qemu/skins/HVGA/layout deleted file mode 100644 index 4c3d76420..000000000 --- a/package/goldfish-qemu/skins/HVGA/layout +++ /dev/null @@ -1,380 +0,0 @@ -parts { - device { - background { - image device.png - } - display { - width 320 - height 480 - x 31 - y 72 - } - - buttons { - soft-left { - image menu.png - x 147 - y 555 - } - home { - image home.png - x 48 - y 590 - } - back { - image back.png - x 286 - y 590 - } - dpad-up { - image arrow_up.png - x 140 - y 595 - } - dpad-down { - image arrow_down.png - x 140 - y 656 - } - dpad-left { - image arrow_left.png - x 111 - y 598 - } - dpad-right { - image arrow_right.png - x 222 - y 598 - } - dpad-center { - image select.png - x 142 - y 626 - } - phone-dial { - image send.png - x 48 - y 646 - } - phone-hangup { - image end.png - x 286 - y 646 - } - - power { - image power.png - x -38 - y 52 - } - - volume-up { - image volume_up.png - x 362 - y 260 - } - - volume-down { - image volume_down.png - x 362 - y 310 - } - } - } - - keyboard { - background { - image keyboard.png - } - buttons { - 1 { - image key.png - x 0 - y 0 - } - 2 { - image key.png - x 37 - y 0 - } - 3 { - image key.png - x 74 - y 0 - } - 4 { - image key.png - x 111 - y 0 - } - 5 { - image key.png - x 148 - y 0 - } - 6 { - image key.png - x 185 - y 0 - } - 7 { - image key.png - x 222 - y 0 - } - 8 { - image key.png - x 259 - y 0 - } - 9 { - image key.png - x 296 - y 0 - } - 0 { - image key.png - x 333 - y 0 - } - - q { - image key.png - x 0 - y 36 - } - w { - image key.png - x 37 - y 36 - } - e { - image key.png - x 74 - y 36 - } - r { - image key.png - x 111 - y 36 - } - t { - image key.png - x 148 - y 36 - } - y { - image key.png - x 185 - y 36 - } - u { - image key.png - x 222 - y 36 - } - i { - image key.png - x 259 - y 36 - } - o { - image key.png - x 296 - y 36 - } - p { - image key.png - x 333 - y 36 - } - - a { - image key.png - x 0 - y 72 - } - s { - image key.png - x 37 - y 72 - } - d { - image key.png - x 74 - y 72 - } - f { - image key.png - x 111 - y 72 - } - g { - image key.png - x 148 - y 72 - } - h { - image key.png - x 185 - y 72 - } - j { - image key.png - x 222 - y 72 - } - k { - image key.png - x 259 - y 72 - } - l { - image key.png - x 296 - y 72 - } - DEL { - image key.png - x 333 - y 72 - } - - CAP { - image key.png - x 0 - y 108 - } - z { - image key.png - x 37 - y 108 - } - x { - image key.png - x 74 - y 108 - } - c { - image key.png - x 111 - y 108 - } - v { - image key.png - x 148 - y 108 - } - b { - image key.png - x 185 - y 108 - } - n { - image key.png - x 222 - y 108 - } - m { - image key.png - x 259 - y 108 - } - PERIOD { - image key.png - x 296 - y 108 - } - ENTER { - image key.png - x 333 - y 108 - } - - ALT { - image key.png - x 0 - y 144 - } - SYM { - image key.png - x 37 - y 144 - } - AT { - image key.png - x 74 - y 144 - } - SPACE { - image spacebar.png - x 111 - y 144 - } - SLASH { - image key.png - x 259 - y 144 - } - COMMA { - image key.png - x 296 - y 144 - } - ALT2 { - image key.png - x 333 - y 144 - } - - } - } -} - -layouts { - portrait { - width 900 - height 730 - color 0xe0e0e0 - event EV_SW:0:1 - - part1 { - name device - x 40 - y -18 - } - part2 { - name keyboard - x 480 - y 200 - } - } - - landscape { - width 900 - height 670 - color 0xe0e0e0 - event EV_SW:0:0 - - part1 { - name device - x 50 - y 440 - rotation 3 - } - part2 { - name keyboard - x 250 - y 470 - } - } -} - -keyboard { - charmap qwerty2 -} - -network { - speed full - delay none -} diff --git a/package/goldfish-qemu/skins/HVGA/menu.png b/package/goldfish-qemu/skins/HVGA/menu.png deleted file mode 100644 index e81d8abcf..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/menu.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/power.png b/package/goldfish-qemu/skins/HVGA/power.png deleted file mode 100644 index 5894288f0..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/power.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/select.png b/package/goldfish-qemu/skins/HVGA/select.png deleted file mode 100644 index 803d49315..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/select.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/send.png b/package/goldfish-qemu/skins/HVGA/send.png deleted file mode 100644 index f547c8817..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/send.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/spacebar.png b/package/goldfish-qemu/skins/HVGA/spacebar.png deleted file mode 100644 index 19fe60476..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/spacebar.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/volume_down.png b/package/goldfish-qemu/skins/HVGA/volume_down.png deleted file mode 100644 index f8a88dec8..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/volume_down.png and /dev/null differ diff --git a/package/goldfish-qemu/skins/HVGA/volume_up.png b/package/goldfish-qemu/skins/HVGA/volume_up.png deleted file mode 100644 index 940457f70..000000000 Binary files a/package/goldfish-qemu/skins/HVGA/volume_up.png and /dev/null differ diff --git a/package/grub/Makefile b/package/grub/Makefile index 338dbcac1..221269ba4 100644 --- a/package/grub/Makefile +++ b/package/grub/Makefile @@ -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. @@ -10,71 +10,62 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=grub PKG_VERSION:=0.97 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=ftp://alpha.gnu.org/gnu/grub PKG_MD5SUM:=cd3f3eb54446be6003156158d51f4884 -PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/grub-$(PKG_VERSION) -PKG_TARGETS:=bin +PKG_BUILD_DEPENDS:= grub/host +PKG_INSTALL:=1 +include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk -export grub_cv_prog_objcopy_absolute=yes - define Package/grub - SECTION:=boot - DEPENDS:=@TARGET_x86 - CATEGORY:=Boot Loaders + SUBMENU:=Boot Loaders + CATEGORY:=Utilities + SECTION:=utils TITLE:=GRand Unified Bootloader URL:=http://www.gnu.org/software/grub/ + DEPENDS:=@TARGET_x86 endef -CONFIGURE_FLAGS:= \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) -ifneq ($(HOST_OS),Darwin) -define Build/Configure - (cd $(PKG_BUILD_DIR); \ - LDFLAGS="-static" \ - ./configure \ - $(CONFIGURE_FLAGS) \ - --program-prefix="" \ - --program-suffix="" \ - --prefix=/usr \ - --exec-prefix=/usr \ - --bindir=/usr/bin \ - --sbindir=/usr/sbin \ - --libexecdir=/usr/lib \ - --sysconfdir=/etc \ - --datadir=/usr/share \ - --localstatedir=/var \ - --mandir=/usr/man \ - --infodir=/usr/info \ - $(DISABLE_NLS) \ - --disable-auto-linux-mem-opt \ - ) -endef +MY_CONFIGURE_ARGS += \ + --disable-auto-linux-mem-opt \ + --disable-hercules \ + --without-curses \ -# -# ./configure detects whether the host compiler supports -# -fno-stack-protector but only sets STAGE2_CFLAGS accordingly -# -define Build/Compile - $(MAKE) -C $(PKG_BUILD_DIR) \ - GRUB_CFLAGS="\$$$$(STAGE2_CFLAGS)" \ - STAGE1_CFLAGS="\$$$$(STAGE2_CFLAGS)" -endef +MY_CONFIGURE_VARS += \ + grub_cv_prog_objcopy_absolute=yes \ + +CONFIGURE_ARGS += $(MY_CONFIGURE_ARGS) + +CONFIGURE_VARS += $(MY_CONFIGURE_VARS) + +HOST_CFLAGS += $(call host-cc-option,-fno-stack-protector) +HOST_CFLAGS += $(call host-cc-option,-U_FORTIFY_SOURCE) + +HOST_CONFIGURE_ARGS += $(MY_CONFIGURE_ARGS) \ + --sbindir="$(STAGING_DIR_HOST)/bin" \ + --disable-graphics \ + +HOST_CONFIGURE_VARS += $(MY_CONFIGURE_VARS) define Build/InstallDev - $(MAKE) -C $(PKG_BUILD_DIR) \ - DESTDIR="$(STAGING_DIR_HOST)" \ - install - mv $(STAGING_DIR_HOST)/usr/sbin/grub $(STAGING_DIR_HOST)/bin + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/grub $(1)/usr/lib/ endef -endif +define Package/grub/install + $(INSTALL_DIR) $(1)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/ + $(INSTALL_DIR) $(1)/usr/sbin + $(CP) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/ +endef + +$(eval $(call HostBuild)) $(eval $(call BuildPackage,grub)) diff --git a/package/hostapd/Makefile b/package/hostapd/Makefile index 0ccba9ad9..72a7205dd 100644 --- a/package/hostapd/Makefile +++ b/package/hostapd/Makefile @@ -8,9 +8,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hostapd -PKG_VERSION:=20100309 +PKG_VERSION:=20100418 PKG_RELEASE:=1 -PKG_REV:=7b90c16aa9ca377b1a6d160c1ba0f2bd304f7e2f +PKG_REV:=0b86f67a2970403d1b1b6d34ce49f5485ef5dbb3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://w1.fi/srv/git/hostap.git diff --git a/package/hostapd/files/hostapd.sh b/package/hostapd/files/hostapd.sh index 9dc18366d..a41c7678a 100644 --- a/package/hostapd/files/hostapd.sh +++ b/package/hostapd/files/hostapd.sh @@ -5,6 +5,11 @@ hostapd_set_bss_options() { config_get enc "$vif" encryption config_get wpa_group_rekey "$vif" wpa_group_rekey + config_get_bool ap_isolate "$vif" isolate 0 + + if [ "$ap_isolate" -gt 0 ]; then + append "$var" "ap_isolate=$ap_isolate" "$N" + fi # Examples: # psk-mixed/tkip => WPA1+2 PSK, TKIP diff --git a/package/hostapd/patches/001-nl80211_sync.patch b/package/hostapd/patches/001-nl80211_sync.patch new file mode 100644 index 000000000..a9310c704 --- /dev/null +++ b/package/hostapd/patches/001-nl80211_sync.patch @@ -0,0 +1,21 @@ +--- a/src/drivers/nl80211_copy.h ++++ b/src/drivers/nl80211_copy.h +@@ -709,6 +709,9 @@ enum nl80211_commands { + * NL80211_CMD_AUTHENTICATE, NL80211_CMD_DEAUTHENTICATE, + * NL80211_CMD_DISASSOCIATE. + * ++ * @NL80211_ATTR_AP_ISOLATE: (AP mode) Do not forward traffic between stations ++ * connected to this BSS. ++ * + * @NL80211_ATTR_MAX: highest attribute number currently defined + * @__NL80211_ATTR_AFTER_LAST: internal use + */ +@@ -864,6 +867,8 @@ enum nl80211_attrs { + + NL80211_ATTR_LOCAL_STATE_CHANGE, + ++ NL80211_ATTR_AP_ISOLATE, ++ + /* add attributes here, update the policy in nl80211.c */ + + __NL80211_ATTR_AFTER_LAST, diff --git a/package/hostapd/patches/110-countrycode.patch b/package/hostapd/patches/110-countrycode.patch index 083de89c1..88dd1e92e 100644 --- a/package/hostapd/patches/110-countrycode.patch +++ b/package/hostapd/patches/110-countrycode.patch @@ -1,6 +1,6 @@ --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -650,7 +650,6 @@ static int setup_interface(struct hostap +@@ -659,7 +659,6 @@ static int setup_interface(struct hostap country[3] = '\0'; if (hostapd_set_country(hapd, country) < 0) { wpa_printf(MSG_ERROR, "Failed to set country code"); diff --git a/package/hostapd/patches/130-scan_wait.patch b/package/hostapd/patches/130-scan_wait.patch index 1e29a41ca..5e8d1e72e 100644 --- a/package/hostapd/patches/130-scan_wait.patch +++ b/package/hostapd/patches/130-scan_wait.patch @@ -1,6 +1,6 @@ --- a/src/ap/hostapd.h +++ b/src/ap/hostapd.h -@@ -238,6 +238,7 @@ struct hostapd_iface { +@@ -245,6 +245,7 @@ struct hostapd_iface { int (*for_each_interface)(struct hapd_interfaces *interfaces, int (*cb)(struct hostapd_iface *iface, void *ctx), void *ctx); @@ -10,7 +10,7 @@ /* hostapd.c */ --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -746,6 +746,9 @@ int hostapd_setup_interface_complete(str +@@ -754,6 +754,9 @@ int hostapd_setup_interface_complete(str wpa_printf(MSG_DEBUG, "%s: Setup of interface done.", iface->bss[0]->conf->iface); @@ -55,7 +55,7 @@ hapd_iface->reload_config = hostapd_reload_config; hapd_iface->config_read_cb = hostapd_config_read; hapd_iface->config_fname = os_strdup(config_file); -@@ -390,7 +402,7 @@ static int hostapd_global_init(struct ha +@@ -391,7 +403,7 @@ static int hostapd_global_init(struct ha } @@ -64,7 +64,7 @@ { #ifdef EAP_SERVER_TNC tncs_global_deinit(); -@@ -408,8 +420,7 @@ static void hostapd_global_deinit(const +@@ -409,8 +421,7 @@ static void hostapd_global_deinit(const } @@ -74,7 +74,7 @@ { #ifdef EAP_SERVER_TNC int tnc = 0; -@@ -430,11 +441,6 @@ static int hostapd_global_run(struct hap +@@ -431,11 +442,6 @@ static int hostapd_global_run(struct hap } #endif /* EAP_SERVER_TNC */ @@ -86,7 +86,7 @@ eloop_run(); return 0; -@@ -478,8 +484,7 @@ int main(int argc, char *argv[]) +@@ -479,8 +485,7 @@ int main(int argc, char *argv[]) struct hapd_interfaces interfaces; int ret = 1; size_t i; @@ -96,7 +96,7 @@ if (os_program_init()) return -1; -@@ -544,7 +549,7 @@ int main(int argc, char *argv[]) +@@ -545,7 +550,7 @@ int main(int argc, char *argv[]) goto out; } @@ -105,7 +105,7 @@ goto out; ret = 0; -@@ -555,7 +560,7 @@ int main(int argc, char *argv[]) +@@ -556,7 +561,7 @@ int main(int argc, char *argv[]) hostapd_interface_deinit_free(interfaces.iface[i]); os_free(interfaces.iface); @@ -116,7 +116,7 @@ os_program_deinit(); --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -1855,6 +1855,8 @@ struct hostapd_config * hostapd_config_r +@@ -1857,6 +1857,8 @@ struct hostapd_config * hostapd_config_r } #endif /* CONFIG_IEEE80211W */ #ifdef CONFIG_IEEE80211N @@ -127,7 +127,7 @@ } else if (os_strcmp(buf, "ht_capab") == 0) { --- a/src/ap/ap_config.h +++ b/src/ap/ap_config.h -@@ -366,6 +366,7 @@ struct hostapd_config { +@@ -369,6 +369,7 @@ struct hostapd_config { int ht_op_mode_fixed; u16 ht_capab; diff --git a/package/hostapd/patches/200-multicall.patch b/package/hostapd/patches/200-multicall.patch index 4ba9301a3..006e26a94 100644 --- a/package/hostapd/patches/200-multicall.patch +++ b/package/hostapd/patches/200-multicall.patch @@ -26,7 +26,7 @@ LIBS += $(DRV_AP_LIBS) ifdef CONFIG_L2_PACKET -@@ -738,6 +743,12 @@ install: all +@@ -739,6 +744,12 @@ install: all BCHECK=../src/drivers/build.hostapd @@ -39,7 +39,7 @@ hostapd: $(BCHECK) $(OBJS) $(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS) -@@ -776,6 +787,12 @@ HOBJS += ../src/crypto/aes-internal.o +@@ -777,6 +788,12 @@ HOBJS += ../src/crypto/aes-internal.o HOBJS += ../src/crypto/aes-internal-enc.o endif @@ -86,7 +86,7 @@ endif ifdef NEED_RSN_AUTHENTICATOR -@@ -1261,6 +1272,12 @@ BCHECK=../src/drivers/build.wpa_supplica +@@ -1262,6 +1273,12 @@ BCHECK=../src/drivers/build.wpa_supplica wpa_priv: $(BCHECK) $(OBJS_priv) $(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS) @@ -99,7 +99,7 @@ wpa_supplicant: .config $(BCHECK) $(OBJS) $(EXTRA_progs) $(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) -@@ -1320,6 +1337,12 @@ endif +@@ -1321,6 +1338,12 @@ endif $(Q)$(CC) -c -o $@ $(CFLAGS) $< @$(E) " CC " $< @@ -114,7 +114,7 @@ wpa_cli.exe: wpa_cli --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -2413,8 +2413,8 @@ union wpa_event_data { +@@ -2449,8 +2449,8 @@ union wpa_event_data { * Driver wrapper code should call this function whenever an event is received * from the driver. */ @@ -127,7 +127,7 @@ /* --- a/src/ap/drv_callbacks.c +++ b/src/ap/drv_callbacks.c -@@ -337,8 +337,8 @@ static void hostapd_event_eapol_rx(struc +@@ -375,8 +375,8 @@ static void hostapd_event_eapol_rx(struc } @@ -138,7 +138,7 @@ { struct hostapd_data *hapd = ctx; -@@ -415,5 +415,6 @@ void wpa_supplicant_event(void *ctx, enu +@@ -453,5 +453,6 @@ void wpa_supplicant_event(void *ctx, enu break; } } @@ -169,8 +169,8 @@ for (;;) { --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c -@@ -1506,8 +1506,8 @@ static void wpa_supplicant_event_ibss_rs - #endif /* CONFIG_IBSS_RSN */ +@@ -1577,8 +1577,8 @@ static void ft_rx_action(struct wpa_supp + #endif /* CONFIG_IEEE80211R */ -void wpa_supplicant_event(void *ctx, enum wpa_event_type event, @@ -179,10 +179,10 @@ + union wpa_event_data *data) { struct wpa_supplicant *wpa_s = ctx; - + u16 reason_code = 0; --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -2215,6 +2215,9 @@ struct wpa_supplicant * wpa_supplicant_g +@@ -2223,6 +2223,9 @@ struct wpa_supplicant * wpa_supplicant_g return NULL; } @@ -192,7 +192,7 @@ /** * wpa_supplicant_init - Initialize %wpa_supplicant -@@ -2233,6 +2236,7 @@ struct wpa_global * wpa_supplicant_init( +@@ -2241,6 +2244,7 @@ struct wpa_global * wpa_supplicant_init( if (params == NULL) return NULL; @@ -202,7 +202,7 @@ wpa_debug_open_syslog(); --- a/hostapd/main.c +++ b/hostapd/main.c -@@ -478,6 +478,9 @@ static void usage(void) +@@ -479,6 +479,9 @@ static void usage(void) exit(1); } @@ -212,7 +212,7 @@ int main(int argc, char *argv[]) { -@@ -489,6 +492,7 @@ int main(int argc, char *argv[]) +@@ -490,6 +493,7 @@ int main(int argc, char *argv[]) if (os_program_init()) return -1; diff --git a/package/hostapd/patches/310-scan_ssid.patch b/package/hostapd/patches/310-scan_ssid.patch index 157209820..60babf474 100644 --- a/package/hostapd/patches/310-scan_ssid.patch +++ b/package/hostapd/patches/310-scan_ssid.patch @@ -8,7 +8,7 @@ size_t max_ssids; enum wpa_states prev_state; -@@ -310,6 +311,16 @@ static void wpa_supplicant_scan(void *el +@@ -311,6 +312,16 @@ static void wpa_supplicant_scan(void *el wpa_s->wpa_state == WPA_INACTIVE) wpa_supplicant_set_state(wpa_s, WPA_SCANNING); @@ -25,7 +25,7 @@ /* Find the starting point from which to continue scanning */ ssid = wpa_s->conf->ssid; if (wpa_s->prev_scan_ssid != WILDCARD_SSID_SCAN) { -@@ -371,6 +382,9 @@ static void wpa_supplicant_scan(void *el +@@ -374,6 +385,9 @@ static void wpa_supplicant_scan(void *el int_array_sort_unique(params.freqs); } diff --git a/package/hostapd/patches/320-rescan_immediately.patch b/package/hostapd/patches/320-rescan_immediately.patch index f486baf64..1a0eb58a7 100644 --- a/package/hostapd/patches/320-rescan_immediately.patch +++ b/package/hostapd/patches/320-rescan_immediately.patch @@ -1,11 +1,11 @@ --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c -@@ -924,7 +924,7 @@ static void wpa_supplicant_event_scan_re +@@ -958,7 +958,7 @@ static void wpa_supplicant_event_scan_re wpa_printf(MSG_DEBUG, "Setup a new network"); wpa_supplicant_associate(wpa_s, NULL, ssid); - } else -- wpa_supplicant_req_new_scan(wpa_s, 5); -+ wpa_supplicant_req_new_scan(wpa_s, 0); - } - } - #endif /* CONFIG_NO_SCAN_PROCESSING */ + } else { +- int timeout_sec = 5; ++ int timeout_sec = 0; + int timeout_usec = 0; + wpa_supplicant_req_new_scan(wpa_s, timeout_sec, + timeout_usec); diff --git a/package/hostapd/patches/350-wds_fix.patch b/package/hostapd/patches/350-wds_fix.patch index 57bbafb88..7bcf410a9 100644 --- a/package/hostapd/patches/350-wds_fix.patch +++ b/package/hostapd/patches/350-wds_fix.patch @@ -1,6 +1,6 @@ --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -4435,9 +4435,11 @@ static int i802_set_wds_sta(void *priv, +@@ -4576,9 +4576,11 @@ static int i802_set_wds_sta(void *priv, wpa_printf(MSG_DEBUG, "nl80211: Set WDS STA addr=" MACSTR " aid=%d val=%d name=%s", MAC2STR(addr), aid, val, name); if (val) { @@ -16,7 +16,7 @@ } else { --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c -@@ -1559,6 +1559,9 @@ static void handle_assoc_cb(struct hosta +@@ -1614,6 +1614,9 @@ static void handle_assoc_cb(struct hosta "Could not add STA to kernel driver"); } diff --git a/package/hostapd/patches/360-wds_bridge.patch b/package/hostapd/patches/360-wds_bridge.patch index d563bdbd8..48867922b 100644 --- a/package/hostapd/patches/360-wds_bridge.patch +++ b/package/hostapd/patches/360-wds_bridge.patch @@ -21,7 +21,7 @@ /* clear to get error below if setting is invalid */ --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -4425,7 +4425,8 @@ static int i802_set_sta_vlan(void *priv, +@@ -4566,7 +4566,8 @@ static int i802_set_sta_vlan(void *priv, } @@ -31,7 +31,7 @@ { struct i802_bss *bss = priv; struct wpa_driver_nl80211_data *drv = bss->drv; -@@ -4439,6 +4440,10 @@ static int i802_set_wds_sta(void *priv, +@@ -4580,6 +4581,10 @@ static int i802_set_wds_sta(void *priv, if (nl80211_create_iface(drv, name, NL80211_IFTYPE_AP_VLAN, NULL, 1) < 0) return -1; @@ -44,7 +44,7 @@ return i802_set_sta_vlan(priv, addr, name, 0); --- a/src/ap/ap_drv_ops.c +++ b/src/ap/ap_drv_ops.c -@@ -253,9 +253,15 @@ static int hostapd_vlan_if_remove(struct +@@ -265,9 +265,15 @@ static int hostapd_vlan_if_remove(struct static int hostapd_set_wds_sta(struct hostapd_data *hapd, const u8 *addr, int aid, int val) { @@ -63,7 +63,7 @@ --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -1610,7 +1610,8 @@ struct wpa_driver_ops { +@@ -1622,7 +1622,8 @@ struct wpa_driver_ops { * @val: 1 = bind to 4-address WDS; 0 = unbind * Returns: 0 on success, -1 on failure */ diff --git a/package/hostapd/patches/370-basic_rates.patch b/package/hostapd/patches/370-basic_rates.patch index ef4691bbd..98420c01f 100644 --- a/package/hostapd/patches/370-basic_rates.patch +++ b/package/hostapd/patches/370-basic_rates.patch @@ -1,6 +1,6 @@ --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -707,6 +707,16 @@ int hostapd_setup_interface_complete(str +@@ -715,6 +715,16 @@ int hostapd_setup_interface_complete(str } } diff --git a/package/hostapd/patches/380-ap_isolate.patch b/package/hostapd/patches/380-ap_isolate.patch new file mode 100644 index 000000000..92ac6ded8 --- /dev/null +++ b/package/hostapd/patches/380-ap_isolate.patch @@ -0,0 +1,108 @@ +--- a/hostapd/config_file.c ++++ b/hostapd/config_file.c +@@ -1266,6 +1266,8 @@ struct hostapd_config * hostapd_config_r + } + } else if (os_strcmp(buf, "wds_sta") == 0) { + bss->wds_sta = atoi(pos); ++ } else if (os_strcmp(buf, "ap_isolate") == 0) { ++ bss->isolate = atoi(pos); + } else if (os_strcmp(buf, "ap_max_inactivity") == 0) { + bss->ap_max_inactivity = atoi(pos); + } else if (os_strcmp(buf, "country_code") == 0) { +--- a/src/ap/ap_config.h ++++ b/src/ap/ap_config.h +@@ -199,6 +199,7 @@ struct hostapd_bss_config { + struct mac_acl_entry *deny_mac; + int num_deny_mac; + int wds_sta; ++ int isolate; + + int auth_algs; /* bitfield of allowed IEEE 802.11 authentication + * algorithms, WPA_AUTH_ALG_{OPEN,SHARED,LEAP} */ +--- a/src/drivers/driver.h ++++ b/src/drivers/driver.h +@@ -1626,6 +1626,14 @@ struct wpa_driver_ops { + const char *bridge_ifname); + + /** ++ * set_ap_isolate - Enable/disable AP isolation ++ * @priv: private driver interface data ++ * @val: 1 = enabled; 0 = disabled ++ * Returns: 0 on success, -1 on failure ++ */ ++ int (*set_ap_isolate)(void *priv, int val); ++ ++ /** + * send_action - Transmit an Action frame + * @priv: Private driver interface data + * @freq: Frequency (in MHz) of the channel +--- a/src/drivers/driver_nl80211.c ++++ b/src/drivers/driver_nl80211.c +@@ -4263,6 +4263,29 @@ static int i802_set_rate_sets(void *priv + return -ENOBUFS; + } + ++static int i802_set_ap_isolate(void *priv, int val) ++{ ++ struct i802_bss *bss = priv; ++ struct wpa_driver_nl80211_data *drv = bss->drv; ++ struct nl_msg *msg; ++ int i; ++ ++ msg = nlmsg_alloc(); ++ if (!msg) ++ return -ENOMEM; ++ ++ genlmsg_put(msg, 0, 0, genl_family_get_id(drv->nl80211), 0, 0, ++ NL80211_CMD_SET_BSS, 0); ++ ++ NLA_PUT_U8(msg, NL80211_ATTR_AP_ISOLATE, !!val); ++ ++ NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, if_nametoindex(bss->ifname)); ++ ++ return send_and_recv_msgs(drv, msg, NULL, NULL); ++ nla_put_failure: ++ return -ENOBUFS; ++} ++ + #endif /* HOSTAPD */ + + +@@ -5372,6 +5395,7 @@ const struct wpa_driver_ops wpa_driver_n + .set_tx_queue_params = i802_set_tx_queue_params, + .set_sta_vlan = i802_set_sta_vlan, + .set_wds_sta = i802_set_wds_sta, ++ .set_ap_isolate = i802_set_ap_isolate, + #endif /* HOSTAPD */ + .set_freq = i802_set_freq, + .send_action = wpa_driver_nl80211_send_action, +--- a/src/ap/ap_drv_ops.c ++++ b/src/ap/ap_drv_ops.c +@@ -180,6 +180,14 @@ static int hostapd_set_radius_acl_expire + } + + ++static int hostapd_set_ap_isolate(struct hostapd_data *hapd, int value) ++{ ++ if (hapd->driver == NULL || hapd->driver->set_ap_isolate == NULL) ++ return 0; ++ hapd->driver->set_ap_isolate(hapd->drv_priv, value); ++} ++ ++ + static int hostapd_set_bss_params(struct hostapd_data *hapd, + int use_protection) + { +@@ -229,6 +237,12 @@ static int hostapd_set_bss_params(struct + "driver"); + ret = -1; + } ++ if (hostapd_set_ap_isolate(hapd, hapd->conf->isolate) && ++ !hapd->conf->isolate) { ++ wpa_printf(MSG_ERROR, "Could not enable AP isolation in " ++ "kernel driver"); ++ ret = -1; ++ } + + return ret; + } diff --git a/package/hostapd/patches/390-nl80211_fixes.patch b/package/hostapd/patches/390-nl80211_fixes.patch new file mode 100644 index 000000000..fdac284b6 --- /dev/null +++ b/package/hostapd/patches/390-nl80211_fixes.patch @@ -0,0 +1,109 @@ +--- a/src/drivers/driver_nl80211.c ++++ b/src/drivers/driver_nl80211.c +@@ -1119,7 +1119,6 @@ nla_put_failure: + } + + +-#ifndef HOSTAPD + struct wiphy_info_data { + int max_scan_ssids; + int ap_supported; +@@ -1231,7 +1230,6 @@ static int wpa_driver_nl80211_capa(struc + + return 0; + } +-#endif /* HOSTAPD */ + + + static int wpa_driver_nl80211_init_nl(struct wpa_driver_nl80211_data *drv, +@@ -1371,6 +1369,7 @@ static void * wpa_driver_nl80211_init(vo + drv->monitor_ifidx = -1; + drv->monitor_sock = -1; + drv->ioctl_sock = -1; ++ drv->nlmode = NL80211_IFTYPE_STATION; + + if (wpa_driver_nl80211_init_nl(drv, ctx)) { + os_free(drv); +@@ -1468,24 +1467,23 @@ wpa_driver_nl80211_finish_drv_init(struc + drv->ifindex = if_nametoindex(bss->ifname); + drv->first_bss.ifindex = drv->ifindex; + +-#ifndef HOSTAPD +- if (wpa_driver_nl80211_set_mode(bss, IEEE80211_MODE_INFRA) < 0) { +- wpa_printf(MSG_DEBUG, "nl80211: Could not configure driver to " +- "use managed mode"); +- } +- +- if (linux_set_iface_flags(drv->ioctl_sock, bss->ifname, 1)) { +- wpa_printf(MSG_ERROR, "Could not set interface '%s' UP", +- bss->ifname); +- return -1; +- } ++ if (drv->nlmode == NL80211_IFTYPE_STATION) { ++ if (wpa_driver_nl80211_set_mode(bss, IEEE80211_MODE_INFRA) < 0) ++ wpa_printf(MSG_DEBUG, "nl80211: Could not configure " ++ "driver to use managed mode"); ++ ++ if (linux_set_iface_flags(drv->ioctl_sock, bss->ifname, 1)) { ++ wpa_printf(MSG_ERROR, "Could not set interface '%s' UP", ++ bss->ifname); ++ return -1; ++ } + +- if (wpa_driver_nl80211_capa(drv)) +- return -1; ++ if (wpa_driver_nl80211_capa(drv)) ++ return -1; + +- netlink_send_oper_ifla(drv->netlink, drv->ifindex, +- 1, IF_OPER_DORMANT); +-#endif /* HOSTAPD */ ++ netlink_send_oper_ifla(drv->netlink, drv->ifindex, ++ 1, IF_OPER_DORMANT); ++ } + + if (nl80211_register_action_frames(drv) < 0) { + wpa_printf(MSG_DEBUG, "nl80211: Failed to register Action " +@@ -2143,13 +2141,9 @@ static int wpa_driver_nl80211_set_key(co + */ + if (ret || !set_tx || alg == WPA_ALG_NONE) + return ret; +-#ifdef HOSTAPD +- if (addr) +- return ret; +-#else /* HOSTAPD */ ++ + if (drv->nlmode == NL80211_IFTYPE_AP && addr) + return ret; +-#endif /* HOSTAPD */ + + msg = nlmsg_alloc(); + if (!msg) +@@ -2990,7 +2984,8 @@ static void nl80211_remove_iface(struct + + #ifdef HOSTAPD + /* stop listening for EAPOL on this interface */ +- del_ifidx(drv, ifidx); ++ if (drv->nlmode == NL80211_IFTYPE_AP) ++ del_ifidx(drv, ifidx); + #endif /* HOSTAPD */ + + msg = nlmsg_alloc(); +@@ -3063,7 +3058,8 @@ static int nl80211_create_iface_once(str + + #ifdef HOSTAPD + /* start listening for EAPOL on this interface */ +- add_ifidx(drv, ifidx); ++ if (drv->nlmode == NL80211_IFTYPE_AP) ++ add_ifidx(drv, ifidx); + #endif /* HOSTAPD */ + + if (addr && iftype != NL80211_IFTYPE_MONITOR && +@@ -4766,6 +4762,7 @@ static void *i802_init(struct hostapd_da + return NULL; + + drv = bss->drv; ++ drv->nlmode = NL80211_IFTYPE_AP; + if (linux_br_get(brname, params->ifname) == 0) { + wpa_printf(MSG_DEBUG, "nl80211: Interface %s is in bridge %s", + params->ifname, brname); diff --git a/package/hostapd/patches/400-nl80211_sta_auth.patch b/package/hostapd/patches/400-nl80211_sta_auth.patch new file mode 100644 index 000000000..8c959062d --- /dev/null +++ b/package/hostapd/patches/400-nl80211_sta_auth.patch @@ -0,0 +1,19 @@ +--- a/wpa_supplicant/wpa_supplicant.c ++++ b/wpa_supplicant/wpa_supplicant.c +@@ -543,10 +543,16 @@ void wpa_supplicant_set_state(struct wpa + wpa_s->reassociated_connection = 1; + wpa_drv_set_operstate(wpa_s, 1); + wpa_s->after_wps = 0; ++#ifndef IEEE8021X_EAPOL ++ wpa_drv_set_supp_port(wpa_s, 1); ++#endif + } else if (state == WPA_DISCONNECTED || state == WPA_ASSOCIATING || + state == WPA_ASSOCIATED) { + wpa_s->new_connection = 1; + wpa_drv_set_operstate(wpa_s, 0); ++#ifndef IEEE8021X_EAPOL ++ wpa_drv_set_supp_port(wpa_s, 0); ++#endif + } + wpa_s->wpa_state = state; + diff --git a/package/hotplug2/Makefile b/package/hotplug2/Makefile index 2f8fc1477..d02b435bd 100644 --- a/package/hotplug2/Makefile +++ b/package/hotplug2/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hotplug2 PKG_REV:=201 PKG_VERSION:=$(PKG_REV) -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_PROTO:=svn PKG_SOURCE_VERSION:=$(PKG_REV) diff --git a/package/kernel/modules/netsupport.mk b/package/kernel/modules/netsupport.mk index 0c0c91244..462be0028 100644 --- a/package/kernel/modules/netsupport.mk +++ b/package/kernel/modules/netsupport.mk @@ -601,7 +601,7 @@ $(eval $(call KernelPackage,sched)) define KernelPackage/ax25 SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=AX25 support - DEPENDS:= +kmod-crc16 + DEPENDS:= +!(LINUX_2_4||TARGET_xburst):kmod-crc16 KCONFIG:= \ CONFIG_AX25 \ CONFIG_MKISS diff --git a/package/kernel/modules/other.mk b/package/kernel/modules/other.mk index 68d9c88e1..ffcb48ffd 100644 --- a/package/kernel/modules/other.mk +++ b/package/kernel/modules/other.mk @@ -62,6 +62,7 @@ $(eval $(call KernelPackage,crc7)) define KernelPackage/crc16 SUBMENU:=$(OTHER_MENU) TITLE:=CRC16 support + DEPENDS:=@!(LINUX_2_4||TARGET_xburst) KCONFIG:=CONFIG_CRC16 FILES:=$(LINUX_DIR)/lib/crc16.$(LINUX_KMOD_SUFFIX) AUTOLOAD:=$(call AutoLoad,20,crc16,1) @@ -105,8 +106,22 @@ define KernelPackage/lp AUTOLOAD:=$(call AutoLoad,50,parport lp) endef +define KernelPackage/lp/2.4 + FILES:= \ + $(LINUX_DIR)/drivers/parport/parport.$(LINUX_KMOD_SUFFIX) \ + $(LINUX_DIR)/drivers/parport/parport_*.$(LINUX_KMOD_SUFFIX) \ + $(LINUX_DIR)/drivers/char/lp.$(LINUX_KMOD_SUFFIX) \ + $(LINUX_DIR)/drivers/char/ppdev.$(LINUX_KMOD_SUFFIX) + AUTOLOAD:=$(call AutoLoad,50, \ + parport \ + parport_splink \ + lp \ + ) +endef + $(eval $(call KernelPackage,lp)) + define KernelPackage/pcspkr SUBMENU:=$(OTHER_MENU) TITLE:=PC speaker support @@ -261,7 +276,7 @@ $(eval $(call KernelPackage,ssb)) define KernelPackage/bluetooth SUBMENU:=$(OTHER_MENU) TITLE:=Bluetooth support - DEPENDS:=@USB_SUPPORT +kmod-crc16 +kmod-usb-core +!TARGET_x86:kmod-hid \ + DEPENDS:=@USB_SUPPORT +!(LINUX_2_4||TARGET_xburst):kmod-crc16 +kmod-usb-core +!TARGET_x86:kmod-hid \ +(TARGET_x86||TARGET_s3c24xx||TARGET_brcm47xx||TARGET_ar71xx):kmod-rfkill KCONFIG:= \ CONFIG_BLUEZ \ @@ -652,8 +667,16 @@ $(eval $(call KernelPackage,sc520-wdt)) define KernelPackage/input-core SUBMENU:=$(OTHER_MENU) TITLE:=Input device core - DEPENDS:=@LINUX_2_6 @!TARGET_x86 + DEPENDS:=@!TARGET_x86 KCONFIG:=CONFIG_INPUT +endef + +define KernelPackage/input-core/2.4 + FILES:=$(LINUX_DIR)/drivers/input/input.$(LINUX_KMOD_SUFFIX) + AUTOLOAD:=$(call AutoLoad,19,input) +endef + +define KernelPackage/input-core/2.6 FILES:=$(LINUX_DIR)/drivers/input/input-core.$(LINUX_KMOD_SUFFIX) AUTOLOAD:=$(call AutoLoad,19,input-core) endef diff --git a/package/mac80211/Makefile b/package/mac80211/Makefile index ba4cda5df..78c8aa37d 100644 --- a/package/mac80211/Makefile +++ b/package/mac80211/Makefile @@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=mac80211 -PKG_VERSION:=2010-03-24 -PKG_RELEASE:=5 +PKG_VERSION:=2010-04-28 +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:=4b8c23ac7f33af7556034635af744c67 PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION) @@ -425,6 +425,7 @@ define KernelPackage/ath9k/config config PACKAGE_ATH9K_USE_MINSTREL bool "use the new minstrel_ht rate control for ath9k" + default y endmenu endef @@ -531,6 +532,20 @@ define KernelPackage/net-ipw2200/description - ipw2200 endef + +define KernelPackage/mwl8k + $(call KernelPackage/mac80211/Default) + TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards + URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k + DEPENDS+= @PCI_SUPPORT +kmod-mac80211 + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mwl8k.$(LINUX_KMOD_SUFFIX) + AUTOLOAD:=$(call AutoLoad,27,mwl8k) +endef + +define KernelPackage/mwl8k/description + Kernel modules for Marvell TOPDOG 802.11 Wireless cards +endef + #Broadcom firmware ifneq ($(CONFIG_B43_EXPERIMENTAL),) PKG_B43_FWV4_NAME:=broadcom-wl @@ -852,7 +867,7 @@ MAKE_OPTS:= \ CONFIG_LIB80211_CRYPT_TKIP= \ CONFIG_IWLWIFI= \ CONFIG_IWLAGN= \ - CONFIG_MWL8K= \ + CONFIG_MWL8K=$(if $(CONFIG_PACKAGE_kmod-mwl8k),m) \ CONFIG_ATMEL= \ CONFIG_PCMCIA_ATMEL= \ CONFIG_ADM8211= \ @@ -1051,3 +1066,4 @@ $(eval $(call KernelPackage,b43legacy)) $(eval $(call KernelPackage,net-libipw)) $(eval $(call KernelPackage,net-ipw2100)) $(eval $(call KernelPackage,net-ipw2200)) +$(eval $(call KernelPackage,mwl8k)) diff --git a/package/mac80211/files/lib/wifi/mac80211.sh b/package/mac80211/files/lib/wifi/mac80211.sh index 5991b4c16..c871cbe73 100644 --- a/package/mac80211/files/lib/wifi/mac80211.sh +++ b/package/mac80211/files/lib/wifi/mac80211.sh @@ -416,6 +416,10 @@ detect_mac80211() { [ "$(($ht_cap & 1))" -eq 1 ] && append ht_capab "$list LDPC" "$N" [ "$(($ht_cap & 32))" -eq 32 ] && append ht_capab "$list SHORT-GI-20" "$N" [ "$(($ht_cap & 64))" -eq 64 ] && append ht_capab "$list SHORT-GI-40" "$N" + [ "$(($ht_cap & 128))" -eq 128 ] && append ht_capab "$list TX-STBC" "$N" + [ "$(($ht_cap & 768))" -eq 256 ] && append ht_capab "$list RX-STBC1" "$N" + [ "$(($ht_cap & 768))" -eq 512 ] && append ht_capab "$list RX-STBC12" "$N" + [ "$(($ht_cap & 768))" -eq 768 ] && append ht_capab "$list RX-STBC123" "$N" [ "$(($ht_cap & 4096))" -eq 4096 ] && append ht_capab "$list DSSS_CCK-40" "$N" } iw phy "$dev" info | grep -q '2412 MHz' || { mode_band="a"; channel="36"; } diff --git a/package/mac80211/patches/001-disable_b44.patch b/package/mac80211/patches/001-disable_b44.patch index ce10e71bb..1869a5915 100644 --- a/package/mac80211/patches/001-disable_b44.patch +++ b/package/mac80211/patches/001-disable_b44.patch @@ -1,6 +1,6 @@ --- a/config.mk +++ b/config.mk -@@ -269,8 +269,8 @@ endif +@@ -256,8 +256,8 @@ endif CONFIG_P54_PCI=m diff --git a/package/mac80211/patches/002-disable_rfkill.patch b/package/mac80211/patches/002-disable_rfkill.patch index 2599dbb84..9c6338a9a 100644 --- a/package/mac80211/patches/002-disable_rfkill.patch +++ b/package/mac80211/patches/002-disable_rfkill.patch @@ -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 diff --git a/package/mac80211/patches/007-remove_misc_drivers.patch b/package/mac80211/patches/007-remove_misc_drivers.patch index a51a4b36e..e0b007fa4 100644 --- a/package/mac80211/patches/007-remove_misc_drivers.patch +++ b/package/mac80211/patches/007-remove_misc_drivers.patch @@ -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 diff --git a/package/mac80211/patches/010-no_pcmcia.patch b/package/mac80211/patches/010-no_pcmcia.patch index a9437ce8e..0826df4f3 100644 --- a/package/mac80211/patches/010-no_pcmcia.patch +++ b/package/mac80211/patches/010-no_pcmcia.patch @@ -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),) diff --git a/package/mac80211/patches/011-no_sdio.patch b/package/mac80211/patches/011-no_sdio.patch index bd6bdfe78..04a8029c3 100644 --- a/package/mac80211/patches/011-no_sdio.patch +++ b/package/mac80211/patches/011-no_sdio.patch @@ -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),) diff --git a/package/mac80211/patches/013-disable_b43_nphy.patch b/package/mac80211/patches/013-disable_b43_nphy.patch index 747c52ab0..efdfb149a 100644 --- a/package/mac80211/patches/013-disable_b43_nphy.patch +++ b/package/mac80211/patches/013-disable_b43_nphy.patch @@ -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 diff --git a/package/mac80211/patches/014-add_iw_handler.patch b/package/mac80211/patches/014-add_iw_handler.patch deleted file mode 100644 index 5119b35fb..000000000 --- a/package/mac80211/patches/014-add_iw_handler.patch +++ /dev/null @@ -1,33 +0,0 @@ -commit b7d48ccc687c44213121b1b565dccdc4488f5d9a -Author: Pavel Roskin -Date: Wed Mar 24 17:23:37 2010 -0400 - - compat: add compat-2.6.35.h and IW_HANDLER - - Signed-off-by: Pavel Roskin - ---- /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 -+ -+#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 - #include - #include -+#include - - #endif /* LINUX_26_COMPAT_H */ diff --git a/package/mac80211/patches/015-remove-rt2x00-options.patch b/package/mac80211/patches/015-remove-rt2x00-options.patch index f980979cc..e62192bdf 100644 --- a/package/mac80211/patches/015-remove-rt2x00-options.patch +++ b/package/mac80211/patches/015-remove-rt2x00-options.patch @@ -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 diff --git a/package/mac80211/patches/120-compat_rcu_dereference.patch b/package/mac80211/patches/120-compat_rcu_dereference.patch index 37f4a2d0a..f14a8ddbd 100644 --- a/package/mac80211/patches/120-compat_rcu_dereference.patch +++ b/package/mac80211/patches/120-compat_rcu_dereference.patch @@ -1,8 +1,8 @@ --- 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) +@@ -197,6 +197,8 @@ do { \ + */ + #define sysfs_bin_attr_init(bin_attr) sysfs_attr_init(&(bin_attr)->attr) +#define rcu_dereference_check(p, c) rcu_dereference(p) + diff --git a/package/mac80211/patches/130-tracepoint_include_linux_version_h.patch b/package/mac80211/patches/130-tracepoint_include_linux_version_h.patch index 55163317b..034f00cd9 100644 --- a/package/mac80211/patches/130-tracepoint_include_linux_version_h.patch +++ b/package/mac80211/patches/130-tracepoint_include_linux_version_h.patch @@ -1,8 +1,8 @@ --- 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 +@@ -3,6 +3,8 @@ + + #include +#include + diff --git a/package/mac80211/patches/300-fix-mesh.patch b/package/mac80211/patches/300-fix-mesh.patch deleted file mode 100644 index 554565615..000000000 --- a/package/mac80211/patches/300-fix-mesh.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 181ce6f71d907f42ab73376ce154015a835a6d8a Mon Sep 17 00:00:00 2001 -From: Javier Cardona -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 -Signed-off-by: Hauke Mehrtens ---- - 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; - } - - /* diff --git a/package/mac80211/patches/403-ath9k-fix-invalid-mac-address-handling.patch b/package/mac80211/patches/403-ath9k-fix-invalid-mac-address-handling.patch index e42be951c..946dda567 100644 --- a/package/mac80211/patches/403-ath9k-fix-invalid-mac-address-handling.patch +++ b/package/mac80211/patches/403-ath9k-fix-invalid-mac-address-handling.patch @@ -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 + #include +#include #include #include "hw.h" -@@ -441,8 +442,16 @@ static int ath9k_hw_init_macaddr(struct +@@ -456,8 +457,16 @@ static int ath9k_hw_init_macaddr(struct common->macaddr[2 * i] = eeval >> 8; common->macaddr[2 * i + 1] = eeval & 0xff; } diff --git a/package/mac80211/patches/404-ath_regd_optional.patch b/package/mac80211/patches/404-ath_regd_optional.patch index 58ed4bdbe..5d4251c35 100644 --- a/package/mac80211/patches/404-ath_regd_optional.patch +++ b/package/mac80211/patches/404-ath_regd_optional.patch @@ -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 #include #include "regd.h" diff --git a/package/mac80211/patches/405-ath9k-read-eeprom-data-from-platform-data-on-pci-bus.patch b/package/mac80211/patches/405-ath9k-read-eeprom-data-from-platform-data-on-pci-bus.patch index 560f8d42d..bbf46a0d2 100644 --- a/package/mac80211/patches/405-ath9k-read-eeprom-data-from-platform-data-on-pci-bus.patch +++ b/package/mac80211/patches/405-ath9k-read-eeprom-data-from-platform-data-on-pci-bus.patch @@ -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) { diff --git a/package/mac80211/patches/406-ath9k-set-AH_USE_EEPROM-only-if-no-platform-data-present.patch b/package/mac80211/patches/406-ath9k-set-AH_USE_EEPROM-only-if-no-platform-data-present.patch index 799c1186f..58728c554 100644 --- a/package/mac80211/patches/406-ath9k-set-AH_USE_EEPROM-only-if-no-platform-data-present.patch +++ b/package/mac80211/patches/406-ath9k-set-AH_USE_EEPROM-only-if-no-platform-data-present.patch @@ -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 +@@ -565,6 +565,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 +@@ -576,6 +577,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 +@@ -429,10 +429,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; diff --git a/package/mac80211/patches/407-ath9k-override-mac-address-from-platform-data.patch b/package/mac80211/patches/407-ath9k-override-mac-address-from-platform-data.patch index 93ad941b7..20a33bbdb 100644 --- a/package/mac80211/patches/407-ath9k-override-mac-address-from-platform-data.patch +++ b/package/mac80211/patches/407-ath9k-override-mac-address-from-platform-data.patch @@ -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 + #include #include +#include #include +#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_ +@@ -441,18 +443,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", diff --git a/package/mac80211/patches/408-ath9k_tweak_rx_intr_mitigation.patch b/package/mac80211/patches/408-ath9k_tweak_rx_intr_mitigation.patch index 9d8ce1a33..f7e7742e1 100644 --- a/package/mac80211/patches/408-ath9k_tweak_rx_intr_mitigation.patch +++ b/package/mac80211/patches/408-ath9k_tweak_rx_intr_mitigation.patch @@ -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 +@@ -1380,7 +1380,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) { diff --git a/package/mac80211/patches/409-ath9k-add-wndr3700-antenna-initialization.patch b/package/mac80211/patches/409-ath9k-add-wndr3700-antenna-initialization.patch index 83eabaf09..57a5678f8 100644 --- a/package/mac80211/patches/409-ath9k-add-wndr3700-antenna-initialization.patch +++ b/package/mac80211/patches/409-ath9k-add-wndr3700-antenna-initialization.patch @@ -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 +#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 +@@ -580,6 +581,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 +@@ -702,6 +705,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 +@@ -720,6 +741,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 */ diff --git a/package/mac80211/patches/410-ath9k-wndr3700-led-pin-fix.patch b/package/mac80211/patches/410-ath9k-wndr3700-led-pin-fix.patch index c5cc6b7e1..c0e1e7f2e 100644 --- a/package/mac80211/patches/410-ath9k-wndr3700-led-pin-fix.patch +++ b/package/mac80211/patches/410-ath9k-wndr3700-led-pin-fix.patch @@ -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 diff --git a/package/mac80211/patches/500-ath9k_debugfs_chainmask.patch b/package/mac80211/patches/500-ath9k_debugfs_chainmask.patch index eaed50091..b5f035af7 100644 --- a/package/mac80211/patches/500-ath9k_debugfs_chainmask.patch +++ b/package/mac80211/patches/500-ath9k_debugfs_chainmask.patch @@ -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 { diff --git a/package/mac80211/patches/510-ath9k_debugfs_regaccess.patch b/package/mac80211/patches/510-ath9k_debugfs_regaccess.patch index dda4b88e8..3827ed9c2 100644 --- a/package/mac80211/patches/510-ath9k_debugfs_regaccess.patch +++ b/package/mac80211/patches/510-ath9k_debugfs_regaccess.patch @@ -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; diff --git a/package/mac80211/patches/520-cfg80211_get_freq.patch b/package/mac80211/patches/520-cfg80211_get_freq.patch index f7e478f29..26190c63b 100644 --- a/package/mac80211/patches/520-cfg80211_get_freq.patch +++ b/package/mac80211/patches/520-cfg80211_get_freq.patch @@ -20,7 +20,7 @@ } --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -886,6 +886,11 @@ static int nl80211_send_iface(struct sk_ +@@ -887,6 +887,11 @@ static int nl80211_send_iface(struct sk_ NLA_PUT_U32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx); NLA_PUT_STRING(msg, NL80211_ATTR_IFNAME, dev->name); NLA_PUT_U32(msg, NL80211_ATTR_IFTYPE, dev->ieee80211_ptr->iftype); diff --git a/package/mac80211/patches/530-minstrel_ht.patch b/package/mac80211/patches/530-minstrel_ht.patch index c51d541fb..046e91b8c 100644 --- a/package/mac80211/patches/530-minstrel_ht.patch +++ b/package/mac80211/patches/530-minstrel_ht.patch @@ -13,7 +13,7 @@ mac80211-$(CONFIG_MAC80211_RC_MINSTREL) += $(rc80211_minstrel-y) --- a/net/mac80211/main.c +++ b/net/mac80211/main.c -@@ -714,6 +714,10 @@ static int __init ieee80211_init(void) +@@ -716,6 +716,10 @@ static int __init ieee80211_init(void) if (ret) return ret; @@ -24,7 +24,7 @@ ret = rc80211_pid_init(); if (ret) goto err_pid; -@@ -726,6 +730,8 @@ static int __init ieee80211_init(void) +@@ -728,6 +732,8 @@ static int __init ieee80211_init(void) err_netdev: rc80211_pid_exit(); err_pid: @@ -33,7 +33,7 @@ rc80211_minstrel_exit(); return ret; -@@ -734,6 +740,7 @@ static int __init ieee80211_init(void) +@@ -736,6 +742,7 @@ static int __init ieee80211_init(void) static void __exit ieee80211_exit(void) { rc80211_pid_exit(); @@ -68,7 +68,7 @@ --- /dev/null +++ b/net/mac80211/rc80211_minstrel_ht.c -@@ -0,0 +1,815 @@ +@@ -0,0 +1,822 @@ +/* + * Copyright (C) 2010 Felix Fietkau + * @@ -389,9 +389,9 @@ + if (!mg->supported) + continue; + -+ if (++mg->index > MCS_GROUP_RATES) { ++ if (++mg->index >= MCS_GROUP_RATES) { + mg->index = 0; -+ if (++mg->column > ARRAY_SIZE(sample_table)) ++ if (++mg->column >= ARRAY_SIZE(sample_table)) + mg->column = 0; + } + break; @@ -474,7 +474,7 @@ + mi->ampdu_len += info->status.ampdu_len; + + if (!mi->sample_wait && !mi->sample_tries && mi->sample_count > 0) { -+ mi->sample_wait = 4 + MINSTREL_TRUNC(mi->avg_ampdu_len); ++ mi->sample_wait = 4 + 2 * MINSTREL_TRUNC(mi->avg_ampdu_len); + mi->sample_tries = 3; + mi->sample_count--; + } @@ -660,6 +660,7 @@ + if (!msp->is_ht) + return mac80211_minstrel.get_rate(priv, sta, &msp->legacy, txrc); + ++ info->flags |= mi->tx_flags; + sample_idx = minstrel_get_sample_rate(mp, mi); + if (sample_idx >= 0) { + minstrel_ht_set_rate(mp, mi, &ar[0], sample_idx, @@ -733,6 +734,12 @@ + } + mi->sample_tries = 4; + ++ if (sta_cap & IEEE80211_HT_CAP_TX_STBC) ++ mi->tx_flags |= IEEE80211_TX_CTL_STBC; ++ ++ if (sta_cap & IEEE80211_HT_CAP_LDPC_CODING) ++ mi->tx_flags |= IEEE80211_TX_CTL_LDPC; ++ + if (oper_chan_type != NL80211_CHAN_HT40MINUS && + oper_chan_type != NL80211_CHAN_HT40PLUS) + sta_cap &= ~IEEE80211_HT_CAP_SUP_WIDTH_20_40; @@ -886,7 +893,7 @@ +} --- /dev/null +++ b/net/mac80211/rc80211_minstrel_ht.h -@@ -0,0 +1,125 @@ +@@ -0,0 +1,128 @@ +/* + * Copyright (C) 2010 Felix Fietkau + * @@ -899,10 +906,10 @@ +#define __RC_MINSTREL_HT_H + +/* -+ * maximum number of spatial streams to make use of -+ * set this value to 3 once we have drivers that support it ++ * The number of streams can be changed to 2 to reduce code ++ * size and memory footprint. + */ -+#define MINSTREL_MAX_STREAMS 2 ++#define MINSTREL_MAX_STREAMS 3 +#define MINSTREL_STREAM_GROUPS 4 + +/* scaled fraction values */ @@ -983,6 +990,9 @@ + unsigned int total_packets; + unsigned int sample_packets; + ++ /* tx flags to add for frames for this sta */ ++ u32 tx_flags; ++ + u8 sample_wait; + u8 sample_tries; + u8 sample_count; diff --git a/package/mac80211/patches/540-ath9k_use_minstrel.patch b/package/mac80211/patches/540-ath9k_use_minstrel.patch index 0983abf33..6f1877f16 100644 --- a/package/mac80211/patches/540-ath9k_use_minstrel.patch +++ b/package/mac80211/patches/540-ath9k_use_minstrel.patch @@ -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 +@@ -686,7 +686,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); diff --git a/package/mac80211/patches/550-ath9k_bb_fix.patch b/package/mac80211/patches/550-ath9k_bb_fix.patch deleted file mode 100644 index d09114c89..000000000 --- a/package/mac80211/patches/550-ath9k_bb_fix.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- 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); - } - -+bool ath9k_hw_check_alive(struct ath_hw *ah) -+{ -+ int count = 50; -+ u32 reg; -+ -+ if (AR_SREV_9285_10_OR_LATER(ah)) -+ return true; -+ -+ do { -+ reg = REG_READ(ah, AR_OBS_BUS_1); -+ -+ if ((reg & 0x7E7FFFEF) == 0x00702400) -+ continue; -+ -+ switch (reg & 0x7E000B00) { -+ case 0x1E000000: -+ case 0x52000B00: -+ case 0x18000B00: -+ continue; -+ default: -+ return true; -+ } -+ } while (count-- > 0); -+ -+ return false; -+} -+EXPORT_SYMBOL(ath9k_hw_check_alive); -+ - int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan, - bool bChannelChange) - { ---- 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 - 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); -+bool ath9k_hw_check_alive(struct ath_hw *ah); - - bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode); - ---- 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) - - ath9k_ps_wakeup(sc); - -- if (status & ATH9K_INT_FATAL) { -+ if ((status & ATH9K_INT_FATAL) || -+ !ath9k_hw_check_alive(ah)) { - ath_reset(sc, false); - ath9k_ps_restore(sc); - return; diff --git a/package/mac80211/patches/550-ath9k_no_multi_desc_frames.patch b/package/mac80211/patches/550-ath9k_no_multi_desc_frames.patch new file mode 100644 index 000000000..3bc730e32 --- /dev/null +++ b/package/mac80211/patches/550-ath9k_no_multi_desc_frames.patch @@ -0,0 +1,24 @@ +--- a/drivers/net/wireless/ath/ath9k/common.c ++++ b/drivers/net/wireless/ath/ath9k/common.c +@@ -57,13 +57,19 @@ static bool ath9k_rx_accept(struct ath_c + * rs_more indicates chained descriptors which can be used + * to link buffers together for a sort of scatter-gather + * operation. +- * ++ * reject the frame, we don't support scatter-gather yet and ++ * the frame is probably corrupt anyway ++ */ ++ if (rx_stats->rs_more) ++ return false; ++ ++ /* + * The rx_stats->rs_status will not be set until the end of the + * chained descriptors so it can be ignored if rs_more is set. The + * rs_more will be false at the last element of the chained + * descriptors. + */ +- if (!rx_stats->rs_more && rx_stats->rs_status != 0) { ++ if (rx_stats->rs_status != 0) { + if (rx_stats->rs_status & ATH9K_RXERR_CRC) + rxs->flag |= RX_FLAG_FAILED_FCS_CRC; + if (rx_stats->rs_status & ATH9K_RXERR_PHY) diff --git a/package/mac80211/patches/600-rt2x00-disable-pci-code-if-CONFIG_PCI-not-defined.patch b/package/mac80211/patches/600-rt2x00-disable-pci-code-if-CONFIG_PCI-not-defined.patch index 3971413b0..8da8cb5da 100644 --- a/package/mac80211/patches/600-rt2x00-disable-pci-code-if-CONFIG_PCI-not-defined.patch +++ b/package/mac80211/patches/600-rt2x00-disable-pci-code-if-CONFIG_PCI-not-defined.patch @@ -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 +@@ -225,6 +225,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 +@@ -399,6 +400,7 @@ int rt2x00pci_resume(struct pci_dev *pci } EXPORT_SYMBOL_GPL(rt2x00pci_resume); #endif /* CONFIG_PM */ diff --git a/package/mac80211/patches/601-rt2x00-lib-use-rt2x00dev-irq.patch b/package/mac80211/patches/601-rt2x00-lib-use-rt2x00dev-irq.patch index 22bfc2ebe..c04bb2d88 100644 --- a/package/mac80211/patches/601-rt2x00-lib-use-rt2x00dev-irq.patch +++ b/package/mac80211/patches/601-rt2x00-lib-use-rt2x00dev-irq.patch @@ -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 +@@ -215,7 +215,7 @@ void rt2x00pci_uninitialize(struct rt2x0 /* * Free irq line. */ diff --git a/package/mac80211/patches/602-rt2x00-remove-mcu-requests-for-soc.patch b/package/mac80211/patches/602-rt2x00-remove-mcu-requests-for-soc.patch index 9cecf3a03..e743af3d3 100644 --- a/package/mac80211/patches/602-rt2x00-remove-mcu-requests-for-soc.patch +++ b/package/mac80211/patches/602-rt2x00-remove-mcu-requests-for-soc.patch @@ -1,59 +1,29 @@ +From f18d4463d092162f34a8bd226505627ceeac3e8a Mon Sep 17 00:00:00 2001 +From: Luis Correia +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 +Acked-by: Ivo van Doorn +Signed-off-by: Gertjan van Wingerde --- + 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, ®); -@@ -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, diff --git a/package/mac80211/patches/700-mwl8k-missing-pci-id-for-WNR854T.patch b/package/mac80211/patches/700-mwl8k-missing-pci-id-for-WNR854T.patch new file mode 100644 index 000000000..744581167 --- /dev/null +++ b/package/mac80211/patches/700-mwl8k-missing-pci-id-for-WNR854T.patch @@ -0,0 +1,10 @@ +--- a/drivers/net/wireless/mwl8k.c ++++ b/drivers/net/wireless/mwl8k.c +@@ -3850,6 +3850,7 @@ MODULE_FIRMWARE("mwl8k/helper_8366.fw"); + MODULE_FIRMWARE("mwl8k/fmimage_8366.fw"); + + static DEFINE_PCI_DEVICE_TABLE(mwl8k_pci_id_table) = { ++ { PCI_VDEVICE(MARVELL, 0x2a02), .driver_data = MWL8363, }, + { PCI_VDEVICE(MARVELL, 0x2a0a), .driver_data = MWL8363, }, + { PCI_VDEVICE(MARVELL, 0x2a0c), .driver_data = MWL8363, }, + { PCI_VDEVICE(MARVELL, 0x2a24), .driver_data = MWL8363, }, diff --git a/package/mountd/Makefile b/package/mountd/Makefile index 87ddef50f..ded7d30d1 100644 --- a/package/mountd/Makefile +++ b/package/mountd/Makefile @@ -35,8 +35,8 @@ endef define Package/mountd/install $(INSTALL_DIR) $(1)/sbin/ $(1)/etc/config/ $(1)/etc/init.d/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/mountd $(1)/sbin/ - $(INSTALL_BIN) ./files/mountd.config $(1)/etc/config/mountd - $(INSTALL_DATA) ./files/mountd.init $(1)/etc/init.d/mountd + $(INSTALL_DATA) ./files/mountd.config $(1)/etc/config/mountd + $(INSTALL_BIN) ./files/mountd.init $(1)/etc/init.d/mountd endef $(eval $(call BuildPackage,mountd)) diff --git a/package/ps3-utils/Makefile b/package/ps3-utils/Makefile deleted file mode 100644 index c18aec871..000000000 --- a/package/ps3-utils/Makefile +++ /dev/null @@ -1,69 +0,0 @@ -# -# 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 - -PKG_NAME:=ps3-utils -PKG_VERSION:=6488134e48cf2d6f2d6471ced8346ac8cb1b855a -PKG_RELEASE:=1 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 -PKG_SOURCE_URL:=http://www.kernel.org/pub/scm/linux/kernel/git/geoff/ps3-utils.git -PKG_SOURCE_PROTO:=git -PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=$(PKG_VERSION) - -PKG_FIXUP:=libtool -PKG_INSTALL=1 - -include $(INCLUDE_DIR)/package.mk - -define Package/ps3-utils - SECTION:=utils - CATEGORY:=Utilities - TITLE:=PS3 Linux Utilities - URL:=http://kernel.org/pub/linux/kernel/people/geoff/cell/ps3-utils/ - MAINTAINER:=Geoff Levand - DEPENDS:=@TARGET_ps3||TARGET_ps3chk||TARGET_powerpc -endef - -define Package/ps3-utils/description - The ps3-utils package is a set of system administration utilites for the - PS3 game console. -endef - -define Build/Configure - (cd $(PKG_BUILD_DIR) && $(BASH) -x ./bootstrap) - $(call Build/Configure/Default) -endef - -define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include - $(INSTALL_DATA) \ - $(PKG_INSTALL_DIR)/usr/include/ps3*.h \ - $(1)/usr/include - - $(INSTALL_DIR) $(1)/usr/lib - $(INSTALL_BIN) \ - $(PKG_INSTALL_DIR)/usr/lib/libps3-utils.{la,a,so*} \ - $(1)/usr/lib/ -endef - -define Package/ps3-utils/install - $(INSTALL_DIR) $(1)/usr/sbin - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_DIR) $(1)/usr/lib - - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ps3-boot-game-os $(1)/usr/sbin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ps3-dump-bootloader $(1)/usr/sbin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ps3-flash-util $(1)/usr/sbin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ps3-video-mode $(1)/usr/bin - - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libps3-utils.so.* $(1)/usr/lib -endef - -$(eval $(call BuildPackage,ps3-utils)) diff --git a/scripts/metadata.pl b/scripts/metadata.pl index 70d1b4025..d76a295ee 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -162,7 +162,7 @@ sub target_config_features(@) { /squashfs/ and $ret .= "\tselect USES_SQUASHFS\n"; /jffs2/ and $ret .= "\tselect USES_JFFS2\n"; /ext2/ and $ret .= "\tselect USES_EXT2\n"; - /tgz/ and $ret .= "\tselect USES_TGZ\n"; + /targz/ and $ret .= "\tselect USES_TARGZ\n"; /cpiogz/ and $ret .= "\tselect USES_CPIOGZ\n"; /ubifs/ and $ret .= "\tselect USES_UBIFS\n"; /fpu/ and $ret .= "\tselect HAS_FPU\n"; diff --git a/target/Config.in b/target/Config.in index d522b79dd..7d21427ce 100644 --- a/target/Config.in +++ b/target/Config.in @@ -49,7 +49,7 @@ config USES_JFFS2 config USES_EXT2 bool -config USES_TGZ +config USES_TARGZ bool config USES_UBIFS diff --git a/target/linux/adm5120/router_le/config-2.6.32 b/target/linux/adm5120/router_le/config-2.6.32 index 897592874..c576af67e 100644 --- a/target/linux/adm5120/router_le/config-2.6.32 +++ b/target/linux/adm5120/router_le/config-2.6.32 @@ -250,7 +250,6 @@ CONFIG_USB_EHCI_HCD=m CONFIG_USB_OHCI_HCD=m CONFIG_USB_SUPPORT=y # CONFIG_USB_UHCI_HCD is not set -CONFIG_VLAN_8021Q=m CONFIG_VM_EVENT_COUNTERS=y CONFIG_YAFFS_9BYTE_TAGS=y # CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set diff --git a/target/linux/ar7/base-files/etc/config/network b/target/linux/ar7/base-files/etc/config/network index 88ddee028..9ba0e6d29 100644 --- a/target/linux/ar7/base-files/etc/config/network +++ b/target/linux/ar7/base-files/etc/config/network @@ -8,7 +8,7 @@ config interface loopback config interface lan option type bridge - option ifname eth0 + option ifname "eth0 eth1" option proto static option ipaddr 192.168.1.1 option netmask 255.255.255.0 diff --git a/target/linux/ar71xx/Makefile b/target/linux/ar71xx/Makefile index 74f409478..d1519feac 100644 --- a/target/linux/ar71xx/Makefile +++ b/target/linux/ar71xx/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk ARCH:=mips BOARD:=ar71xx BOARDNAME:=Atheros AR71xx/AR7240/AR913x -FEATURES:=squashfs jffs2 tgz +FEATURES:=squashfs jffs2 targz CFLAGS:=-Os -pipe -mips32r2 -mtune=mips32r2 -funit-at-a-time LINUX_VERSION:=2.6.32.10 diff --git a/target/linux/avr32/image/u-boot/Makefile b/target/linux/avr32/image/u-boot/Makefile index 2d95b8769..79bdb9f6e 100644 --- a/target/linux/avr32/image/u-boot/Makefile +++ b/target/linux/avr32/image/u-boot/Makefile @@ -20,7 +20,7 @@ PKG_CAT:=bzcat include $(INCLUDE_DIR)/package.mk -UBOOT_CONFIG=$(strip $(subst ",, $(CONFIG_AVR32_UBOOT_TARGET))) +UBOOT_CONFIG=$(call qstrip,$(CONFIG_AVR32_UBOOT_TARGET)) define Build/Compile $(MAKE) -C $(PKG_BUILD_DIR) $(UBOOT_CONFIG)_config diff --git a/target/linux/brcm-2.4/base-files/lib/preinit/05_failsafe_config_switch_brcm b/target/linux/brcm-2.4/base-files/lib/preinit/05_failsafe_config_switch_brcm new file mode 100644 index 000000000..0bfce5f1e --- /dev/null +++ b/target/linux/brcm-2.4/base-files/lib/preinit/05_failsafe_config_switch_brcm @@ -0,0 +1,10 @@ +#!/bin/sh + +failsafe_config_switch() { + [ -d /proc/switch/eth0 ] && [ "$ifname" = "eth0" ] && { + echo "0 1 2 3 4 ${cpu_port:-5u*}" > /proc/switch/eth0/vlan/0/ports + } +} + +boot_hook_add failsafe failsafe_config_switch + diff --git a/target/linux/brcm-2.4/base-files/lib/preinit/15_set_preinit_interface_brcm b/target/linux/brcm-2.4/base-files/lib/preinit/15_set_preinit_interface_brcm index 1bef26bf0..fdc7c71ca 100644 --- a/target/linux/brcm-2.4/base-files/lib/preinit/15_set_preinit_interface_brcm +++ b/target/linux/brcm-2.4/base-files/lib/preinit/15_set_preinit_interface_brcm @@ -30,9 +30,10 @@ preinit_net_echo() { echo "$port ${cpu_port:-5u*}" > /proc/switch/eth0/vlan/0/ports port_net_echo $1 }; done + + echo "0 ${cpu_port:-5u*}" > /proc/switch/eth0/vlan/0/ports + } || port_net_echo $1 - - preinit_ip_deconfig } diff --git a/target/linux/brcm-2.4/base-files/lib/preinit/20_failsafe_net_echo b/target/linux/brcm-2.4/base-files/lib/preinit/20_failsafe_net_echo new file mode 100644 index 000000000..f030cb283 --- /dev/null +++ b/target/linux/brcm-2.4/base-files/lib/preinit/20_failsafe_net_echo @@ -0,0 +1,12 @@ +#!/bin/sh + +indicate_failsafe() { + preinit_net_echo() { + port_net_echo $1 + } + echo "- failsafe -" + preinit_net_echo "Entering Failsafe!\n" + indicate_failsafe_led +} + + diff --git a/target/linux/brcm-2.4/modules.mk b/target/linux/brcm-2.4/modules.mk deleted file mode 100644 index 44f54405a..000000000 --- a/target/linux/brcm-2.4/modules.mk +++ /dev/null @@ -1,13 +0,0 @@ -define KernelPackage/lp/brcm-2.4 - FILES:= \ - $(LINUX_DIR)/drivers/parport/parport.$(LINUX_KMOD_SUFFIX) \ - $(LINUX_DIR)/drivers/parport/parport_*.$(LINUX_KMOD_SUFFIX) \ - $(LINUX_DIR)/drivers/char/lp.$(LINUX_KMOD_SUFFIX) \ - $(LINUX_DIR)/drivers/char/ppdev.$(LINUX_KMOD_SUFFIX) - AUTOLOAD:=$(call AutoLoad,50, \ - parport \ - parport_splink \ - lp \ - ) -endef - diff --git a/target/linux/brcm63xx/patches-2.6.32/260-no_ehci_over_current_check.patch b/target/linux/brcm63xx/patches-2.6.32/260-no_ehci_over_current_check.patch new file mode 100644 index 000000000..28eb78ce8 --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.32/260-no_ehci_over_current_check.patch @@ -0,0 +1,18 @@ +Index: linux-2.6.32.12/drivers/usb/host/ehci-hub.c +=================================================================== +--- linux-2.6.32.12.orig/drivers/usb/host/ehci-hub.c 2010-05-02 21:06:45.000000000 +0200 ++++ linux-2.6.32.12/drivers/usb/host/ehci-hub.c 2010-05-02 21:07:08.000000000 +0200 +@@ -741,11 +741,13 @@ + * power switching; they're allowed to just limit the + * current. khubd will turn the power back on. + */ ++#ifndef CONFIG_BCM63XX + if (HCS_PPC (ehci->hcs_params)){ + ehci_writel(ehci, + temp & ~(PORT_RWC_BITS | PORT_POWER), + status_reg); + } ++#endif + } + + /* whoever resumes must GetPortStatus to complete it!! */ diff --git a/target/linux/cobalt/Makefile b/target/linux/cobalt/Makefile index d09117764..6c0746cc2 100644 --- a/target/linux/cobalt/Makefile +++ b/target/linux/cobalt/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk ARCH:=mipsel BOARD:=cobalt BOARDNAME:=Cobalt Microservers -FEATURES:=tgz pci ext2 +FEATURES:=targz pci ext2 CFLAGS:=-O2 -pipe -mtune=r5000 -funit-at-a-time LINUX_VERSION:=2.6.32.10 diff --git a/target/linux/generic-2.4/config-default b/target/linux/generic-2.4/config-default index 8490f36b3..7871a2788 100644 --- a/target/linux/generic-2.4/config-default +++ b/target/linux/generic-2.4/config-default @@ -176,12 +176,17 @@ CONFIG_HOTPLUG=y CONFIG_IMQ=m # CONFIG_INET_ECN is not set CONFIG_INET=y -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_GAMEPORT is not set # CONFIG_INPUT is not set +# CONFIG_INPUT_DB9 is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_GAMECON is not set +# CONFIG_INPUT_GAMEPORT is not set +# CONFIG_INPUT_IFORCE_USB is not set # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_KEYBDEV is not set # CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_SERIO is not set +# CONFIG_INPUT_TURBOGRAFX is not set # CONFIG_INPUT_UINPUT is not set # CONFIG_INTERMEZZO_FS is not set CONFIG_IP6_NF_FILTER=m diff --git a/target/linux/generic-2.6/patches-2.6.30/975-hifn795x-byteswap.patch b/target/linux/generic-2.6/patches-2.6.30/975-hifn795x-byteswap.patch new file mode 100644 index 000000000..3a37c951e --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.30/975-hifn795x-byteswap.patch @@ -0,0 +1,17 @@ +--- a/drivers/crypto/hifn_795x.c ++++ b/drivers/crypto/hifn_795x.c +@@ -682,12 +682,12 @@ static inline u32 hifn_read_1(struct hif + + static inline void hifn_write_0(struct hifn_device *dev, u32 reg, u32 val) + { +- writel((__force u32)cpu_to_le32(val), dev->bar[0] + reg); ++ writel(val, dev->bar[0] + reg); + } + + static inline void hifn_write_1(struct hifn_device *dev, u32 reg, u32 val) + { +- writel((__force u32)cpu_to_le32(val), dev->bar[1] + reg); ++ writel(val, dev->bar[1] + reg); + } + + static void hifn_wait_puc(struct hifn_device *dev) diff --git a/target/linux/generic-2.6/patches-2.6.32/975-hifn795x-byteswap.patch b/target/linux/generic-2.6/patches-2.6.32/975-hifn795x-byteswap.patch new file mode 100644 index 000000000..3a37c951e --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.32/975-hifn795x-byteswap.patch @@ -0,0 +1,17 @@ +--- a/drivers/crypto/hifn_795x.c ++++ b/drivers/crypto/hifn_795x.c +@@ -682,12 +682,12 @@ static inline u32 hifn_read_1(struct hif + + static inline void hifn_write_0(struct hifn_device *dev, u32 reg, u32 val) + { +- writel((__force u32)cpu_to_le32(val), dev->bar[0] + reg); ++ writel(val, dev->bar[0] + reg); + } + + static inline void hifn_write_1(struct hifn_device *dev, u32 reg, u32 val) + { +- writel((__force u32)cpu_to_le32(val), dev->bar[1] + reg); ++ writel(val, dev->bar[1] + reg); + } + + static void hifn_wait_puc(struct hifn_device *dev) diff --git a/target/linux/kirkwood/Makefile b/target/linux/kirkwood/Makefile index a1e9e5f57..13f38af45 100644 --- a/target/linux/kirkwood/Makefile +++ b/target/linux/kirkwood/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk ARCH:=arm BOARD:=kirkwood BOARDNAME:=Marvell Kirkwood -FEATURES:=tgz usb +FEATURES:=targz usb LINUX_VERSION:=2.6.30.10 diff --git a/target/linux/rb532/Makefile b/target/linux/rb532/Makefile index 3b2716d8a..23c7e7646 100644 --- a/target/linux/rb532/Makefile +++ b/target/linux/rb532/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk ARCH:=mipsel BOARD:=rb532 BOARDNAME:=Mikrotik RouterBoard 532 -FEATURES:=jffs2 pci tgz +FEATURES:=jffs2 pci targz LINUX_VERSION:=2.6.32.10 diff --git a/target/linux/uml/config/x86_64 b/target/linux/uml/config/x86_64 index 6df42ff3a..8ef700fe6 100644 --- a/target/linux/uml/config/x86_64 +++ b/target/linux/uml/config/x86_64 @@ -54,8 +54,9 @@ CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 # CONFIG_MAC_PARTITION is not set CONFIG_MAGIC_SYSRQ=y +# CONFIG_MATOM is not set CONFIG_MCONSOLE=y -CONFIG_MCORE2=y +# CONFIG_MCORE2 is not set # CONFIG_MINI_FO is not set # CONFIG_MMAPPER is not set CONFIG_MK8=y diff --git a/target/linux/uml/patches-2.6.30/003-fix_memcpy_export_on_x86_64.patch b/target/linux/uml/patches-2.6.30/003-fix_memcpy_export_on_x86_64.patch new file mode 100644 index 000000000..7d2efe462 --- /dev/null +++ b/target/linux/uml/patches-2.6.30/003-fix_memcpy_export_on_x86_64.patch @@ -0,0 +1,11 @@ +--- a/arch/um/os-Linux/user_syms.c ++++ b/arch/um/os-Linux/user_syms.c +@@ -23,7 +23,7 @@ extern int printf(const char *, ...); + EXPORT_SYMBOL(strstr); + #endif + +-#ifndef __x86_64__ ++#if !defined(__x86_64) || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || (__GNUC__ < 4) + extern void *memcpy(void *, const void *, size_t); + EXPORT_SYMBOL(memcpy); + #endif diff --git a/target/linux/uml/patches-2.6.30/006-uml_libc_link_errors.patch b/target/linux/uml/patches-2.6.30/006-uml_libc_link_errors.patch new file mode 100644 index 000000000..d729a05c2 --- /dev/null +++ b/target/linux/uml/patches-2.6.30/006-uml_libc_link_errors.patch @@ -0,0 +1,50 @@ +--- a/arch/um/kernel/dyn.lds.S ++++ b/arch/um/kernel/dyn.lds.S +@@ -54,8 +54,21 @@ SECTIONS + .rela.got : { *(.rela.got) } + .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } + .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } +- .rel.plt : { *(.rel.plt) } +- .rela.plt : { *(.rela.plt) } ++ /* Deal with multilib libc */ ++ .rel.plt : ++ { ++ *(.rel.plt) ++ PROVIDE_HIDDEN (__rel_iplt_start = .); ++ *(.rel.iplt) ++ PROVIDE_HIDDEN (__rel_iplt_end = .); ++ } ++ .rela.plt : ++ { ++ *(.rela.plt) ++ PROVIDE_HIDDEN (__rela_iplt_start = .); ++ *(.rela.iplt) ++ PROVIDE_HIDDEN (__rela_iplt_end = .); ++ } + .init : { + KEEP (*(.init)) + } =0x90909090 +--- a/arch/um/kernel/uml.lds.S ++++ b/arch/um/kernel/uml.lds.S +@@ -39,6 +39,21 @@ SECTIONS + *(.gnu.warning) + *(.gnu.linkonce.t*) + } ++ /* Deal with multilib libc */ ++ .rel.plt : ++ { ++ *(.rel.plt) ++ PROVIDE_HIDDEN (__rel_iplt_start = .); ++ *(.rel.iplt) ++ PROVIDE_HIDDEN (__rel_iplt_end = .); ++ } ++ .rela.plt : ++ { ++ *(.rela.plt) ++ PROVIDE_HIDDEN (__rela_iplt_start = .); ++ *(.rela.iplt) ++ PROVIDE_HIDDEN (__rela_iplt_end = .); ++ } + + . = ALIGN(PAGE_SIZE); + .syscall_stub : { diff --git a/target/linux/x86/Makefile b/target/linux/x86/Makefile index 6b248f68c..2870e19ce 100644 --- a/target/linux/x86/Makefile +++ b/target/linux/x86/Makefile @@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk ARCH:=i386 BOARD:=x86 BOARDNAME:=x86 -FEATURES:=squashfs jffs2 ext2 vdi vmdk pcmcia tgz -SUBTARGETS=generic olpc xen_domu ep80579 net5501 +FEATURES:=squashfs jffs2 ext2 vdi vmdk pcmcia targz +SUBTARGETS=generic olpc xen_domu ep80579 LINUX_VERSION:=2.6.32.10 diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile index 2a6a2e336..2ba5af630 100644 --- a/target/linux/x86/image/Makefile +++ b/target/linux/x86/image/Makefile @@ -9,44 +9,37 @@ include $(INCLUDE_DIR)/image.mk export PATH=$(TARGET_PATH):/sbin -ifneq ($(CONFIG_TARGET_x86_olpc),y) -BOOTOPTS=$(strip $(subst ",, $(CONFIG_X86_GRUB_BOOTOPTS))) -ROOTPART=$(strip $(subst ",, $(CONFIG_X86_GRUB_ROOTPART))) -#"))")) # fix vim's broken syntax highlighting -endif - -ifeq ($(CONFIG_TARGET_x86_olpc),y) -ROOTPART=$(strip $(subst ",, $(CONFIG_OLPC_BOOTSCRIPT_ROOTPART))) -endif -#"))")) # fix vim's broken syntax highlighting - GRUB_TERMINALS = GRUB_SERIAL_CONFIG = GRUB_TERMINAL_CONFIG = GRUB_CONSOLE_CMDLINE = -ifeq ($(CONFIG_X86_GRUB_CONSOLE),y) -GRUB_CONSOLE_CMDLINE += console=tty0 -GRUB_TERMINALS += console +ifneq ($(CONFIG_X86_GRUB_CONSOLE),) + GRUB_CONSOLE_CMDLINE += console=tty0 + GRUB_TERMINALS += console endif ifneq ($(CONFIG_X86_GRUB_SERIAL),) -GRUB_CONSOLE_CMDLINE += console=$(strip $(subst ",, $(CONFIG_X86_GRUB_SERIAL))),$(CONFIG_X86_GRUB_BAUDRATE)n8 -GRUB_SERIAL_CONFIG = serial --unit=0 --speed=$(CONFIG_X86_GRUB_BAUDRATE) --word=8 --parity=no --stop=1 -GRUB_TERMINALS += serial + GRUB_CONSOLE_CMDLINE += console=$(call qstrip,$(CONFIG_X86_GRUB_SERIAL)),$(CONFIG_X86_GRUB_BAUDRATE)n8 + GRUB_SERIAL_CONFIG := serial --unit=0 --speed=$(CONFIG_X86_GRUB_BAUDRATE) --word=8 --parity=no --stop=1 + GRUB_TERMINALS += serial endif ifneq ($(GRUB_TERMINALS),) -GRUB_TERMINAL_CONFIG = terminal --timeout=2 $(GRUB_TERMINALS) + GRUB_TERMINAL_CONFIG := terminal --timeout=2 $(GRUB_TERMINALS) endif -ifeq ($(CONFIG_X86_GRUB_IMAGES),y) -ifneq ($(HOST_OS),Darwin) - define Image/cmdline/squashfs - block2mtd.block2mtd=$(ROOTPART),65536,rootfs root=/dev/mtdblock0 rootfstype=squashfs rootwait - endef +ifneq ($(CONFIG_X86_GRUB_IMAGES),) + ifneq ($(HOST_OS),Darwin) + BOOTOPTS:=$(call qstrip,$(CONFIG_X86_GRUB_BOOTOPTS)) + ROOTPART:=$(call qstrip,$(CONFIG_X86_GRUB_ROOTPART)) + + define Image/cmdline/ext2 + root=$(ROOTPART) rootfstype=ext2 rootwait + endef + define Image/cmdline/jffs2-64k block2mtd.block2mtd=$(ROOTPART),65536,rootfs root=/dev/mtdblock0 rootfstype=jffs2 rootwait endef @@ -55,15 +48,17 @@ ifneq ($(HOST_OS),Darwin) block2mtd.block2mtd=$(ROOTPART),131072,rootfs root=/dev/mtdblock0 rootfstype=jffs2 rootwait endef - define Image/cmdline/ext2 - root=$(ROOTPART) rootfstype=ext2 rootwait + define Image/cmdline/squashfs + block2mtd.block2mtd=$(ROOTPART),65536,rootfs root=/dev/mtdblock0 rootfstype=squashfs rootwait endef - + define Image/Build/grub # left here because the image builder doesnt need these $(INSTALL_DIR) $(KDIR)/root.grub/boot/grub $(CP) \ - $(KDIR)/*stage* \ + $(KDIR)/stage1 \ + $(KDIR)/stage2 \ + $(KDIR)/e2fs_stage1_5 \ $(KDIR)/root.grub/boot/grub/ $(CP) $(KDIR)/bzImage $(KDIR)/root.grub/boot/vmlinuz sed \ @@ -71,51 +66,43 @@ ifneq ($(HOST_OS),Darwin) -e 's#@TERMINAL_CONFIG@#$(strip $(GRUB_TERMINAL_CONFIG))#g' \ -e 's#@CMDLINE@#$(strip $(call Image/cmdline/$(1)) $(BOOTOPTS) $(GRUB_CONSOLE_CMDLINE))#g' \ ./menu.lst > $(KDIR)/root.grub/boot/grub/menu.lst - PADDING="$(CONFIG_X86_GRUB_IMAGES_PAD)" PATH="$(TARGET_PATH)" ./gen_image_x86.sh $(BIN_DIR)/$(IMG_PREFIX)-$(1).image $(CONFIG_X86_GRUB_KERNELPART) $(KDIR)/root.grub $(CONFIG_TARGET_ROOTFS_FSPART) $(KDIR)/root.$(1) + PADDING="$(CONFIG_X86_GRUB_IMAGES_PAD)" PATH="$(TARGET_PATH)" ./gen_image_x86.sh \ + $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img \ + $(CONFIG_X86_GRUB_KERNELPART) $(KDIR)/root.grub \ + $(CONFIG_TARGET_ROOTFS_FSPART) $(KDIR)/root.$(1) $(call Image/Build/grub/$(1)) endef define Image/Prepare/grub # for the image builder $(CP) \ - $(STAGING_DIR_HOST)/usr/lib/grub/i386-*/stage1 \ - $(STAGING_DIR_HOST)/usr/lib/grub/i386-*/stage2 \ - $(STAGING_DIR_HOST)/usr/lib/grub/i386-*/e2fs_stage1_5 \ + $(STAGING_DIR)/usr/lib/grub/i386-openwrt/stage1 \ + $(STAGING_DIR)/usr/lib/grub/i386-openwrt/stage2 \ + $(STAGING_DIR)/usr/lib/grub/i386-openwrt/stage2_eltorito \ + $(STAGING_DIR)/usr/lib/grub/i386-openwrt/e2fs_stage1_5 \ $(KDIR)/ endef -else + + else + define Image/Build/grub - PADDING="$(CONFIG_X86_GRUB_IMAGES_PAD)" PATH="$(TARGET_PATH)" NOGRUB=1 ./gen_image_x86.sh $(BIN_DIR)/$(IMG_PREFIX)-$(1).image $(CONFIG_X86_GRUB_KERNELPART) "" $(CONFIG_TARGET_ROOTFS_FSPART) $(KDIR)/root.$(1) + PADDING="$(CONFIG_X86_GRUB_IMAGES_PAD)" PATH="$(TARGET_PATH)" NOGRUB=1 ./gen_image_x86.sh \ + $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img \ + $(CONFIG_X86_GRUB_KERNELPART) "" \ + $(CONFIG_TARGET_ROOTFS_FSPART) $(KDIR)/root.$(1) endef -endif -endif -ifeq ($(CONFIG_X86_VDI_IMAGES),y) - define Image/Build/vdi - # left here because the image builder doesnt need these - ifeq ($(1),ext2) - rm $(BIN_DIR)/$(IMG_PREFIX)-ext2.vdi || true - VBoxManage convertfromraw -format VDI $(BIN_DIR)/$(IMG_PREFIX)-ext2.image $(BIN_DIR)/$(IMG_PREFIX)-ext2.vdi - endif - endef -endif - -ifeq ($(CONFIG_X86_VMDK_IMAGES),y) - define Image/Build/vmdk - # left here because the image builder doesnt need these - ifeq ($(1),ext2) - rm $(BIN_DIR)/$(IMG_PREFIX)-ext2.vmdk || true - qemu-img convert -f raw $(BIN_DIR)/$(IMG_PREFIX)-ext2.image \ - -O vmdk $(BIN_DIR)/$(IMG_PREFIX)-ext2.vmdk - endif - endef + endif endif ROOTDELAY=10 -ifeq ($(CONFIG_OLPC_BOOTSCRIPT_IMAGES),y) - define Image/cmdline/squashfs - block2mtd.block2mtd=$(ROOTPART),65536,rootfs root=/dev/mtdblock0 rootfstype=squashfs rootdelay=$(ROOTDELAY) +ifneq ($(CONFIG_OLPC_BOOTSCRIPT_IMAGES),) + + ROOTPART:=$(call qstrip,$(CONFIG_OLPC_BOOTSCRIPT_ROOTPART)) + + define Image/cmdline/ext2 + root=$(ROOTPART) rootfstype=ext2 rootwait endef define Image/cmdline/jffs2-64k @@ -126,8 +113,8 @@ ifeq ($(CONFIG_OLPC_BOOTSCRIPT_IMAGES),y) block2mtd.block2mtd=$(ROOTPART),131072,rootfs root=/dev/mtdblock0 rootfstype=jffs2 rootdelay=$(ROOTDELAY) endef - define Image/cmdline/ext2 - root=$(ROOTPART) rootfstype=ext2 rootwait + define Image/cmdline/squashfs + block2mtd.block2mtd=$(ROOTPART),65536,rootfs root=/dev/mtdblock0 rootfstype=squashfs rootdelay=$(ROOTDELAY) endef define Image/Build/bootscript @@ -136,28 +123,23 @@ ifeq ($(CONFIG_OLPC_BOOTSCRIPT_IMAGES),y) $(CP) $(KDIR)/bzImage $(KDIR)/root.bootscript/boot/vmlinuz sed -e 's#@CMDLINE@#$(strip $(call Image/cmdline/$(1))) $(BOOTOPTS)#g' \ ./olpc.fth > $(KDIR)/root.bootscript/boot/olpc.fth - PADDING="$(CONFIG_OLPC_BOOTSCRIPT_IMAGES_PAD)" PATH="$(TARGET_PATH)" ./gen_image_olpc.sh $(BIN_DIR)/$(IMG_PREFIX)-$(1).image $(CONFIG_OLPC_BOOTSCRIPT_KERNELPART) $(KDIR)/root.bootscript $(CONFIG_TARGET_ROOTFS_FSPART) $(KDIR)/root.$(1) + PADDING="$(CONFIG_OLPC_BOOTSCRIPT_IMAGES_PAD)" PATH="$(TARGET_PATH)" ./gen_image_olpc.sh \ + $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img \ + $(CONFIG_OLPC_BOOTSCRIPT_KERNELPART) $(KDIR)/root.bootscript \ + $(CONFIG_TARGET_ROOTFS_FSPART) $(KDIR)/root.$(1) endef -endif -define Image/Prepare - $(CP) $(LINUX_DIR)/arch/x86/boot/bzImage $(KDIR)/bzImage -ifeq ($(CONFIG_TARGET_x86_olpc),y) - $(call Image/Prepare/bootscript) -else - $(call Image/Prepare/grub) endif -endef define Image/Build/squashfs - $(call prepare_generic_squashfs,$(KDIR)/root.squashfs) + $(call prepare_generic_squashfs,$(KDIR)/root.squashfs) endef define Image/Build/iso $(INSTALL_DIR) $(KDIR)/root.grub/boot/grub $(CP) \ - $(STAGING_DIR_HOST)/usr/lib/grub/i386-openwrt/stage2_eltorito \ - $(KDIR)/root.grub/boot/grub/stage2_eltorito + $(KDIR)/stage2_eltorito \ + $(KDIR)/root.grub/boot/grub/ sed \ -e 's#@SERIAL_CONFIG@#$(strip $(GRUB_SERIAL_CONFIG))#g' \ -e 's#@TERMINAL_CONFIG@#$(strip $(GRUB_TERMINAL_CONFIG))#g' \ @@ -169,10 +151,42 @@ define Image/Build/iso -o $(KDIR)/root.iso $(KDIR)/root.grub endef +ifneq ($(CONFIG_X86_VDI_IMAGES),) + define Image/Build/vdi + # left here because the image builder doesnt need these + ifeq ($(1),ext2) + rm $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).vdi || true + VBoxManage convertfromraw -format VDI \ + $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img \ + $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).vdi + # XXX: VBoxManage insists on setting perms to 0600 + chmod 0644 $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).vdi + endif + endef +endif + +ifneq ($(CONFIG_X86_VMDK_IMAGES),) + define Image/Build/vmdk + # left here because the image builder doesnt need these + ifeq ($(1),ext2) + rm $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).vmdk || true + qemu-img convert -f raw -O vmdk \ + $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img \ + $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).vmdk + endif + endef +endif + define Image/BuildKernel $(CP) $(KDIR)/bzImage $(BIN_DIR)/$(IMG_PREFIX)-vmlinuz endef +define Image/Prepare + $(CP) $(LINUX_DIR)/arch/x86/boot/bzImage $(KDIR)/bzImage + $(call Image/Prepare/bootscript) + $(call Image/Prepare/grub) +endef + define Image/Build $(call Image/Build/$(1)) $(call Image/Build/bootscript,$(1)) @@ -181,23 +195,24 @@ define Image/Build $(call Image/Build/vdi,$(1)) $(call Image/Build/vmdk,$(1)) endif - $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).fs + $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-rootfs-$(1).img $(CP) $(KDIR)/bzImage $(BIN_DIR)/$(IMG_PREFIX)-vmlinuz ifeq ($(1),ext2) - gzip -f9 $(BIN_DIR)/$(IMG_PREFIX)-$(1).image + gzip -f9 $(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img + gzip -f9 $(BIN_DIR)/$(IMG_PREFIX)-rootfs-$(1).img endif endef $(eval $(call BuildImage)) -ifeq ($(CONFIG_X86_VDI_IMAGES),y) +ifneq ($(CONFIG_X86_VDI_IMAGES),) $(eval $(call RequireCommand,VBoxManage, \ You need VBoxManage to generate VirtualBox images. \ )) endif -ifeq ($(CONFIG_X86_VMDK_IMAGES),y) - $(eval $(call RequireCommand,qemu-img, \ +ifneq ($(CONFIG_X86_VMDK_IMAGES),) + $(eval $(call RequireCommand,qemu-img, \ You need qemu-img to generate VMware images. \ - )) + )) endif diff --git a/target/linux/x86/image/gen_image_olpc.sh b/target/linux/x86/image/gen_image_olpc.sh index 4fd6e377e..82bc4ed95 100755 --- a/target/linux/x86/image/gen_image_olpc.sh +++ b/target/linux/x86/image/gen_image_olpc.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (C) 2006 - 2007 OpenWrt.org +# Copyright (C) 2006-2010 OpenWrt.org set -x [ $# == 5 ] || { echo "SYNTAX: $0 " @@ -32,4 +32,4 @@ genext2fs -d "$KERNELDIR" -b "$BLOCKS" "$OUTPUT.kernel" dd if="$OUTPUT.kernel" of="$OUTPUT" bs=512 seek="$KERNELOFFSET" conv=notrunc [ -n "$PADDING" ] && dd if=/dev/zero of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc count="$ROOTFSSIZE" dd if="$ROOTFSIMAGE" of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc -#rm -f "$OUTPUT.kernel" +rm -f "$OUTPUT.kernel" diff --git a/target/linux/x86/image/gen_image_x86.sh b/target/linux/x86/image/gen_image_x86.sh index 5d4c0dd34..e1d1b92dd 100755 --- a/target/linux/x86/image/gen_image_x86.sh +++ b/target/linux/x86/image/gen_image_x86.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (C) 2006 OpenWrt.org +# Copyright (C) 2006-2010 OpenWrt.org set -x [ $# == 5 ] || { echo "SYNTAX: $0 " @@ -35,7 +35,7 @@ dd if="$ROOTFSIMAGE" of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc genext2fs -d "$KERNELDIR" -b "$BLOCKS" "$OUTPUT.kernel" dd if="$OUTPUT.kernel" of="$OUTPUT" bs=512 seek="$KERNELOFFSET" conv=notrunc -#rm -f "$OUTPUT.kernel" +rm -f "$OUTPUT.kernel" which chpax >/dev/null && chpax -zp $(which grub) grub --batch --no-curses --no-floppy --device-map=/dev/null <