Merge commit 'openwrt-backfire/master' into xburst
Conflicts: package/mac80211/patches/120-compat_rcu_dereference.patch package/mac80211/patches/130-tracepoint_include_linux_version_h.patch target/linux/x86/Makefile
490
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 <M>)
|
||||
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 <M>)
|
||||
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"
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
172
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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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))
|
@ -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
|
||||
};
|
@ -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 @<name> as a special exception meaning
|
||||
- * '-avd <name>'
|
||||
- */
|
||||
- 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, "<dir>", "search for system disk images in <dir>" )
|
||||
-CFG_PARAM( system, "<file>", "read initial system image from <file>" )
|
||||
-CFG_PARAM( datadir, "<dir>", "write user data into <dir>" )
|
||||
-CFG_PARAM( kernel, "<file>", "use specific emulated kernel" )
|
||||
-CFG_PARAM( ramdisk, "<file>", "ramdisk image (default <system>/ramdisk.img" )
|
||||
-CFG_PARAM( image, "<file>", "obsolete, use -system <file> instead" )
|
||||
-CFG_PARAM( init_data, "<file>", "initial data image (default <system>/userdata.img" )
|
||||
-CFG_PARAM( initdata, "<file>", "same as '-init-data <file>'" )
|
||||
-CFG_PARAM( data, "<file>", "data image (default <datadir>/userdata-qemu.img" )
|
||||
+CFG_PARAM( system, "<file>", "read system image from <file>, default: <system>/system.img" )
|
||||
+CFG_PARAM( data, "<file>", "data image, default: <system>/data.img" )
|
||||
+CFG_PARAM( kernel, "<file>", "use specific emulated kernel, default: kernel.bin" )
|
||||
+CFG_PARAM( ramdisk, "<file>", "ramdisk image (default <system>/ramdisk.bin" )
|
||||
CFG_PARAM( partition_size, "<size>", "system/data partition size in MBs" )
|
||||
CFG_PARAM( cache, "<file>", "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, "<file>", "SD card image (default <system>/sdcard.img")
|
||||
OPT_FLAG ( wipe_data, "reset the use data image (copy it from initdata)" )
|
||||
-CFG_PARAM( avd, "<name>", "use a specific android virtual device" )
|
||||
CFG_PARAM( skindir, "<dir>", "search skins in <dir> (default <system>/skins)" )
|
||||
CFG_PARAM( skin, "<name>", "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 <dir> and -image <file>
|
||||
- * instead of -sysdir <dir> and -system <file>, 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 <path> -system <file>'.\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 <path> -system <file>' 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 <path>' 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 <name>' option. Read -help-avd for more information.\n\n"
|
||||
-
|
||||
- "If you *really* want to *NOT* run an AVD, consider using '-data <file>'\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
|
||||
**/
|
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 11 KiB |
@ -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
|
||||
}
|
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 3.8 KiB |
@ -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))
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
21
package/hostapd/patches/001-nl80211_sync.patch
Normal file
@ -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,
|
@ -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");
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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");
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
108
package/hostapd/patches/380-ap_isolate.patch
Normal file
@ -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;
|
||||
}
|
109
package/hostapd/patches/390-nl80211_fixes.patch
Normal file
@ -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);
|
19
package/hostapd/patches/400-nl80211_sta_auth.patch
Normal file
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
|
@ -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"; }
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/config.mk
|
||||
+++ b/config.mk
|
||||
@@ -269,8 +269,8 @@ endif
|
||||
@@ -256,8 +256,8 @@ endif
|
||||
|
||||
CONFIG_P54_PCI=m
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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),)
|
||||
|
@ -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),)
|
||||
|
||||
|
@ -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
|
||||
|
@ -1,33 +0,0 @@
|
||||
commit b7d48ccc687c44213121b1b565dccdc4488f5d9a
|
||||
Author: Pavel Roskin <proski@gnu.org>
|
||||
Date: Wed Mar 24 17:23:37 2010 -0400
|
||||
|
||||
compat: add compat-2.6.35.h and IW_HANDLER
|
||||
|
||||
Signed-off-by: Pavel Roskin <proski@gnu.org>
|
||||
|
||||
--- /dev/null
|
||||
+++ b/include/linux/compat-2.6.35.h
|
||||
@@ -0,0 +1,13 @@
|
||||
+#ifndef LINUX_26_35_COMPAT_H
|
||||
+#define LINUX_26_35_COMPAT_H
|
||||
+
|
||||
+#include <linux/version.h>
|
||||
+
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35))
|
||||
+
|
||||
+#define IW_HANDLER(id, func) \
|
||||
+ [IW_IOCTL_IDX(id)] = func
|
||||
+
|
||||
+#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)) */
|
||||
+
|
||||
+#endif /* LINUX_26_35_COMPAT_H */
|
||||
--- a/include/linux/compat-2.6.h
|
||||
+++ b/include/linux/compat-2.6.h
|
||||
@@ -27,5 +27,6 @@
|
||||
#include <linux/compat-2.6.32.h>
|
||||
#include <linux/compat-2.6.33.h>
|
||||
#include <linux/compat-2.6.34.h>
|
||||
+#include <linux/compat-2.6.35.h>
|
||||
|
||||
#endif /* LINUX_26_COMPAT_H */
|
@ -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
|
||||
|
@ -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)
|
||||
+
|
||||
|
@ -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 <linux/version.h>
|
||||
|
||||
+#include <linux/version.h>
|
||||
+
|
||||
|
@ -1,45 +0,0 @@
|
||||
From 181ce6f71d907f42ab73376ce154015a835a6d8a Mon Sep 17 00:00:00 2001
|
||||
From: Javier Cardona <javier@cozybit.com>
|
||||
Date: Mon, 29 Mar 2010 11:00:20 -0700
|
||||
Subject: [PATCH] mac80211: Handle mesh action frames in ieee80211_rx_h_action
|
||||
|
||||
This fixes the problem introduced in commit
|
||||
8404080568613d93ad7cf0a16dfb68 which broke mesh peer link establishment.
|
||||
|
||||
changes:
|
||||
v2 Added missing break (Johannes)
|
||||
v3 Broke original patch into two (Johannes)
|
||||
|
||||
Signed-off-by: Javier Cardona <javier@cozybit.com>
|
||||
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
---
|
||||
net/mac80211/mesh.c | 3 ---
|
||||
net/mac80211/rx.c | 5 +++++
|
||||
2 files changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/net/mac80211/mesh.c
|
||||
+++ b/net/mac80211/mesh.c
|
||||
@@ -749,9 +749,6 @@ ieee80211_mesh_rx_mgmt(struct ieee80211_
|
||||
|
||||
switch (fc & IEEE80211_FCTL_STYPE) {
|
||||
case IEEE80211_STYPE_ACTION:
|
||||
- if (skb->len < IEEE80211_MIN_ACTION_SIZE)
|
||||
- return RX_DROP_MONITOR;
|
||||
- /* fall through */
|
||||
case IEEE80211_STYPE_PROBE_RESP:
|
||||
case IEEE80211_STYPE_BEACON:
|
||||
skb_queue_tail(&ifmsh->skb_queue, skb);
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -1964,6 +1964,11 @@ ieee80211_rx_h_action(struct ieee80211_r
|
||||
goto handled;
|
||||
}
|
||||
break;
|
||||
+ case MESH_PLINK_CATEGORY:
|
||||
+ case MESH_PATH_SEL_CATEGORY:
|
||||
+ if (ieee80211_vif_is_mesh(&sdata->vif))
|
||||
+ return ieee80211_mesh_rx_mgmt(sdata, rx->skb);
|
||||
+ break;
|
||||
}
|
||||
|
||||
/*
|
@ -1,14 +1,14 @@
|
||||
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/hw.c
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
#include <linux/io.h>
|
||||
#include <linux/slab.h>
|
||||
+#include <linux/etherdevice.h>
|
||||
#include <asm/unaligned.h>
|
||||
|
||||
#include "hw.h"
|
||||
@@ -441,8 +442,16 @@ static int ath9k_hw_init_macaddr(struct
|
||||
@@ -456,8 +457,16 @@ static int ath9k_hw_init_macaddr(struct
|
||||
common->macaddr[2 * i] = eeval >> 8;
|
||||
common->macaddr[2 * i + 1] = eeval & 0xff;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/regd.c
|
||||
+++ b/drivers/net/wireless/ath/regd.c
|
||||
@@ -19,6 +19,9 @@
|
||||
@@ -18,6 +18,9 @@
|
||||
#include <net/cfg80211.h>
|
||||
#include <net/mac80211.h>
|
||||
#include "regd.h"
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -1,17 +1,17 @@
|
||||
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/hw.c
|
||||
@@ -16,8 +16,10 @@
|
||||
|
||||
@@ -17,8 +17,10 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/etherdevice.h>
|
||||
+#include <linux/ath9k_platform.h>
|
||||
#include <asm/unaligned.h>
|
||||
|
||||
+#include "ath9k.h"
|
||||
#include "hw.h"
|
||||
#include "hw-ops.h"
|
||||
#include "rc.h"
|
||||
#include "initvals.h"
|
||||
@@ -428,17 +430,23 @@ static int ath9k_hw_rf_claim(struct ath_
|
||||
@@ -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",
|
||||
|
@ -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) {
|
||||
|
@ -1,14 +1,14 @@
|
||||
--- a/drivers/net/wireless/ath/ath9k/init.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/init.c
|
||||
@@ -14,6 +14,7 @@
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
#include <linux/slab.h>
|
||||
|
||||
+#include "linux/ath9k_platform.h"
|
||||
#include "ath9k.h"
|
||||
|
||||
static char *dev_info = "ath9k";
|
||||
@@ -546,6 +547,8 @@ static int ath9k_init_softc(u16 devid, s
|
||||
@@ -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 */
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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 <nbd@openwrt.org>
|
||||
+ *
|
||||
@ -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 <nbd@openwrt.org>
|
||||
+ *
|
||||
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
@ -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)
|
@ -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 */
|
||||
|
@ -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.
|
||||
*/
|
||||
|
@ -1,59 +1,29 @@
|
||||
From f18d4463d092162f34a8bd226505627ceeac3e8a Mon Sep 17 00:00:00 2001
|
||||
From: Luis Correia <luis.f.correia@gmail.com>
|
||||
Date: Sat, 3 Apr 2010 12:49:53 +0100
|
||||
Subject: [PATCH] rt2x00: remove MCU requests for SoC platforms
|
||||
|
||||
The ralink SoC platforms do not have an MCU.
|
||||
|
||||
Signed-off-by: Luis Correia <luis.f.correia@gmail.com>
|
||||
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
|
||||
Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
|
||||
---
|
||||
drivers/net/wireless/rt2x00/rt2800pci.c | 6 ++++++
|
||||
1 files changed, 6 insertions(+), 0 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
|
||||
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
|
||||
@@ -221,9 +221,9 @@ void rt2800_mcu_request(struct rt2x00_de
|
||||
u32 reg;
|
||||
|
||||
/*
|
||||
- * SOC devices don't support MCU requests.
|
||||
+ * some devices don't support MCU requests.
|
||||
*/
|
||||
- if (rt2x00_is_soc(rt2x00dev))
|
||||
+ if (!test_bit(DRIVER_REQUIRE_MCU, &rt2x00dev->flags))
|
||||
return;
|
||||
|
||||
mutex_lock(&rt2x00dev->csr_mutex);
|
||||
--- a/drivers/net/wireless/rt2x00/rt2800pci.c
|
||||
+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
|
||||
@@ -60,6 +60,12 @@ static void rt2800pci_mcu_status(struct
|
||||
unsigned int i;
|
||||
u32 reg;
|
||||
@@ -66,6 +66,12 @@ static void rt2800pci_mcu_status(struct
|
||||
if (rt2x00_is_soc(rt2x00dev))
|
||||
return;
|
||||
|
||||
+ /*
|
||||
+ * some devices don't support MCU requests.
|
||||
+ * SOC devices don't support MCU requests.
|
||||
+ */
|
||||
+ if (!test_bit(DRIVER_REQUIRE_MCU, &rt2x00dev->flags))
|
||||
+ if (rt2x00_is_soc(rt2x00dev))
|
||||
+ return;
|
||||
+
|
||||
for (i = 0; i < 200; i++) {
|
||||
rt2800_register_read(rt2x00dev, H2M_MAILBOX_CID, ®);
|
||||
|
||||
@@ -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,
|
||||
|
@ -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, },
|
@ -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))
|
||||
|
@ -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 <geoffrey.levand@am.sony.com>
|
||||
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))
|
@ -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";
|
||||
|
@ -49,7 +49,7 @@ config USES_JFFS2
|
||||
config USES_EXT2
|
||||
bool
|
||||
|
||||
config USES_TGZ
|
||||
config USES_TARGZ
|
||||
bool
|
||||
|
||||
config USES_UBIFS
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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!! */
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
@ -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)
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|