From 9ee8333445ef0abb65e95279e899dc0f98f27bd7 Mon Sep 17 00:00:00 2001 From: "Chang.H.S" Date: Fri, 23 Nov 2012 15:13:32 +0900 Subject: [PATCH] init --- .gitignore | 11 + .gitmodules | 9 + Makefile | 248 ++ bitbake | 1 + meta-bsp/bm750/conf/layer.conf | 6 + meta-bsp/bm750/conf/machine/bm750.conf | 17 + .../bm750/recipes/linux/linux-vuplus-3.1.1/.config | 2685 +++++++++++++++++++ .../linux/linux-vuplus-3.1.1/bm750_defconfig | 2691 ++++++++++++++++++++ .../linux-vuplus-3.1.1/linux_3.1.1_bm750.patch | 181 ++ .../recipes/linux/linux-vuplus_3.1.1.bbappend | 8 + .../recipes/vuplus/vuplus-dvb-modules.bbappend | 7 + meta-bsp/common/classes/image_types_ubi.bbclass | 29 + .../common/classes/image_types_ubi_splash.bbclass | 31 + meta-bsp/common/conf/layer.conf | 10 + .../conf/machine/include/vuplus-mips32el.inc | 11 + .../conf/machine/include/vuplus-ubi-splash.inc | 4 + .../common/conf/machine/include/vuplus-ubi.inc | 4 + meta-bsp/common/conf/machine/include/vuplus.inc | 19 + .../linux/linux-vuplus-3.1.1/fix_cpu_proc.patch | 13 + .../recipes/linux/linux-vuplus-3.1.1/igmp.patch | 13 + .../linux/linux-vuplus-3.1.1/linux-sata_brcm.patch | 243 ++ .../common/recipes/linux/linux-vuplus_3.1.1.bb | 52 + .../common/recipes/tasks/task-vuplus-essential.bb | 79 + meta-bsp/common/recipes/vuplus/vuplus-bootlogo.bb | 29 + .../recipes/vuplus/vuplus-bootlogo/backdrop.mvi | Bin 0 -> 74877 bytes .../recipes/vuplus/vuplus-bootlogo/bootlogo.mvi | Bin 0 -> 74952 bytes .../vuplus/vuplus-bootlogo/bootlogo_wait.mvi | Bin 0 -> 74952 bytes .../vuplus/vuplus-bootlogo/splash_cfe_auto.bin | Bin 0 -> 1244216 bytes .../recipes/vuplus/vuplus-bootlogo/switchoff.mvi | Bin 0 -> 74951 bytes .../common/recipes/vuplus/vuplus-dvb-modules.bb | 48 + meta-openembedded | 1 + meta-openvuplus/classes/xinetd.bbclass | 98 + meta-openvuplus/conf/distro/vuplus.conf | 125 + meta-openvuplus/conf/layer.conf | 27 + .../recipes-core/base-files/base-files/filesystems | 9 + .../recipes-core/base-files/base-files/fstab | 7 + .../recipes-core/base-files/base-files/issue | 0 .../recipes-core/base-files/base-files/issue.net | 0 .../base-files/base-files_3.0.14.bbappend | 17 + ...1-ifupdown-support-post-up-pre-down-hooks.patch | 60 + .../busybox-1.19.4/0002-ifupdown-code-shrink.patch | 122 + ...move-interface-from-state_list-if-iface_u.patch | 31 + ...down-support-metric-for-static-default-gw.patch | 64 + ...fupdown-improve-compatibility-with-Debian.patch | 97 + ..._linux_version_code-don-t-fail-on-3.0-foo.patch | 43 + ...e-read_pid-to-libbb-pidfile.c-and-rename-.patch | 94 + ...cp_down-wait-until-udhcpc-has-been-killed.patch | 56 + ...ulate-broadcast-address-if-not-given-by-s.patch | 57 + .../busybox/busybox-1.19.4/busybox-telnetd.socket | 8 + .../busybox-1.19.4/busybox-telnetd.xinetd.in | 7 + .../busybox-1.19.4/busybox-telnetd@.service | 5 + .../recipes-core/busybox/busybox-1.19.4/defconfig | 1013 ++++++++ .../recipes-core/busybox/busybox_1.19.4.bbappend | 32 + .../dropbear/dropbear/dropbear.xinetd.in | 8 + .../dropbear/dropbear_2012.55.bbappend | 15 + .../initscripts/initscripts-1.0/bm750/bootup_3.1 | 36 + .../initscripts/initscripts-1.0/vuplus/halt | 29 + .../initscripts/initscripts-1.0/vuplus/hotplug_br | Bin 0 -> 77185 bytes .../initscripts-1.0/vuplus/make_mac_sector | Bin 0 -> 75327 bytes .../initscripts-1.0/vuplus/turnoff_power | Bin 0 -> 71950 bytes .../initscripts/initscripts-1.0/vusolo/bootup_3.1 | 51 + .../initscripts/initscripts-1.0/vusolo2/bootup_3.1 | 37 + .../initscripts-1.0/vuultimo/bootup_3.1 | 37 + .../initscripts/initscripts-1.0/vuuno/bootup_3.1 | 37 + .../initscripts/initscripts_1.0.bbappend | 27 + .../recipes-core/netbase/netbase/interfaces | 10 + .../recipes-core/netbase/netbase_4.47.bbappend | 3 + .../sysvinit/sysvinit-inittab_2.88dsf.bbappend | 7 + .../sysvinit/sysvinit/67_init_hddown.dpatch | 153 ++ .../sysvinit/sysvinit/92_sata-hddown.dpatch | 357 +++ .../sysvinit/sysvinit/proc_progress.patch | 16 + .../sysvinit/sysvinit_2.88dsf.bbappend | 14 + .../recipes-core/tasks/task-core-boot.bb | 7 + .../recipes-core/tasks/task-core-boot.inc | 37 + meta-openvuplus/recipes-core/udev/udev-182/init | 45 + .../recipes-core/udev/udev_182.bbappend | 18 + .../linux-libc-headers/linux-libc-headers.inc | 66 + .../connector-msg-size-fix.patch | 29 + .../linux-libc-headers/linux-libc-headers_3.1.1.bb | 7 + .../recipes-vuplus/images/vuplus-image.bb | 18 + .../recipes-vuplus/images/vuplus-image.inc | 85 + .../vuplus-makenfi-native/vuplus-makenfi-native.bb | 18 + .../vuplus-makenfi-native/vfi2 | Bin 0 -> 12613 bytes .../vuplus-makenfi-native/vfi3 | Bin 0 -> 12613 bytes openembedded-core | 1 + sources | 1 + 86 files changed, 9591 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 Makefile create mode 160000 bitbake create mode 100644 meta-bsp/bm750/conf/layer.conf create mode 100644 meta-bsp/bm750/conf/machine/bm750.conf create mode 100644 meta-bsp/bm750/recipes/linux/linux-vuplus-3.1.1/.config create mode 100644 meta-bsp/bm750/recipes/linux/linux-vuplus-3.1.1/bm750_defconfig create mode 100644 meta-bsp/bm750/recipes/linux/linux-vuplus-3.1.1/linux_3.1.1_bm750.patch create mode 100644 meta-bsp/bm750/recipes/linux/linux-vuplus_3.1.1.bbappend create mode 100644 meta-bsp/bm750/recipes/vuplus/vuplus-dvb-modules.bbappend create mode 100644 meta-bsp/common/classes/image_types_ubi.bbclass create mode 100644 meta-bsp/common/classes/image_types_ubi_splash.bbclass create mode 100644 meta-bsp/common/conf/layer.conf create mode 100644 meta-bsp/common/conf/machine/include/vuplus-mips32el.inc create mode 100644 meta-bsp/common/conf/machine/include/vuplus-ubi-splash.inc create mode 100644 meta-bsp/common/conf/machine/include/vuplus-ubi.inc create mode 100644 meta-bsp/common/conf/machine/include/vuplus.inc create mode 100644 meta-bsp/common/recipes/linux/linux-vuplus-3.1.1/fix_cpu_proc.patch create mode 100644 meta-bsp/common/recipes/linux/linux-vuplus-3.1.1/igmp.patch create mode 100644 meta-bsp/common/recipes/linux/linux-vuplus-3.1.1/linux-sata_brcm.patch create mode 100644 meta-bsp/common/recipes/linux/linux-vuplus_3.1.1.bb create mode 100644 meta-bsp/common/recipes/tasks/task-vuplus-essential.bb create mode 100644 meta-bsp/common/recipes/vuplus/vuplus-bootlogo.bb create mode 100644 meta-bsp/common/recipes/vuplus/vuplus-bootlogo/backdrop.mvi create mode 100644 meta-bsp/common/recipes/vuplus/vuplus-bootlogo/bootlogo.mvi create mode 100644 meta-bsp/common/recipes/vuplus/vuplus-bootlogo/bootlogo_wait.mvi create mode 100644 meta-bsp/common/recipes/vuplus/vuplus-bootlogo/splash_cfe_auto.bin create mode 100644 meta-bsp/common/recipes/vuplus/vuplus-bootlogo/switchoff.mvi create mode 100755 meta-bsp/common/recipes/vuplus/vuplus-dvb-modules.bb create mode 160000 meta-openembedded create mode 100644 meta-openvuplus/classes/xinetd.bbclass create mode 100644 meta-openvuplus/conf/distro/vuplus.conf create mode 100644 meta-openvuplus/conf/layer.conf create mode 100644 meta-openvuplus/recipes-core/base-files/base-files/filesystems create mode 100644 meta-openvuplus/recipes-core/base-files/base-files/fstab create mode 100644 meta-openvuplus/recipes-core/base-files/base-files/issue create mode 100644 meta-openvuplus/recipes-core/base-files/base-files/issue.net create mode 100644 meta-openvuplus/recipes-core/base-files/base-files_3.0.14.bbappend create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0001-ifupdown-support-post-up-pre-down-hooks.patch create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0002-ifupdown-code-shrink.patch create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0003-ifupdown-remove-interface-from-state_list-if-iface_u.patch create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0004-ifupdown-support-metric-for-static-default-gw.patch create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0005-ifupdown-improve-compatibility-with-Debian.patch create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0006-get_linux_version_code-don-t-fail-on-3.0-foo.patch create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0007-ifplugd-move-read_pid-to-libbb-pidfile.c-and-rename-.patch create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0008-ifupdown-dhcp_down-wait-until-udhcpc-has-been-killed.patch create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0009-udhcpc-calculate-broadcast-address-if-not-given-by-s.patch create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/busybox-telnetd.socket create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/busybox-telnetd.xinetd.in create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/busybox-telnetd@.service create mode 100644 meta-openvuplus/recipes-core/busybox/busybox-1.19.4/defconfig create mode 100644 meta-openvuplus/recipes-core/busybox/busybox_1.19.4.bbappend create mode 100644 meta-openvuplus/recipes-core/dropbear/dropbear/dropbear.xinetd.in create mode 100644 meta-openvuplus/recipes-core/dropbear/dropbear_2012.55.bbappend create mode 100755 meta-openvuplus/recipes-core/initscripts/initscripts-1.0/bm750/bootup_3.1 create mode 100755 meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuplus/halt create mode 100755 meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuplus/hotplug_br create mode 100755 meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuplus/make_mac_sector create mode 100755 meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuplus/turnoff_power create mode 100755 meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vusolo/bootup_3.1 create mode 100755 meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vusolo2/bootup_3.1 create mode 100755 meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuultimo/bootup_3.1 create mode 100755 meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuuno/bootup_3.1 create mode 100644 meta-openvuplus/recipes-core/initscripts/initscripts_1.0.bbappend create mode 100644 meta-openvuplus/recipes-core/netbase/netbase/interfaces create mode 100644 meta-openvuplus/recipes-core/netbase/netbase_4.47.bbappend create mode 100644 meta-openvuplus/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bbappend create mode 100644 meta-openvuplus/recipes-core/sysvinit/sysvinit/67_init_hddown.dpatch create mode 100644 meta-openvuplus/recipes-core/sysvinit/sysvinit/92_sata-hddown.dpatch create mode 100644 meta-openvuplus/recipes-core/sysvinit/sysvinit/proc_progress.patch create mode 100644 meta-openvuplus/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend create mode 100644 meta-openvuplus/recipes-core/tasks/task-core-boot.bb create mode 100644 meta-openvuplus/recipes-core/tasks/task-core-boot.inc create mode 100644 meta-openvuplus/recipes-core/udev/udev-182/init create mode 100644 meta-openvuplus/recipes-core/udev/udev_182.bbappend create mode 100644 meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers.inc create mode 100644 meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers/connector-msg-size-fix.patch create mode 100644 meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers_3.1.1.bb create mode 100644 meta-openvuplus/recipes-vuplus/images/vuplus-image.bb create mode 100644 meta-openvuplus/recipes-vuplus/images/vuplus-image.inc create mode 100644 meta-openvuplus/recipes-vuplus/vuplus-makenfi-native/vuplus-makenfi-native.bb create mode 100755 meta-openvuplus/recipes-vuplus/vuplus-makenfi-native/vuplus-makenfi-native/vfi2 create mode 100755 meta-openvuplus/recipes-vuplus/vuplus-makenfi-native/vuplus-makenfi-native/vfi3 create mode 160000 openembedded-core create mode 120000 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..47a8ef8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +/build/ +/.deps/ +/meta-*/ +!/meta-bsp/ +!/meta-openvuplus/ +/openembedded-core/ +/sources/ +*.swp +bblayers.conf +/tmp/ +/bitbake.env diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..5e8b44d --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "openembedded-core"] + path = openembedded-core + url = git://git.openembedded.org/openembedded-core +[submodule "meta-openembedded"] + path = meta-openembedded + url = git://git.openembedded.org/meta-openembedded +[submodule "bitbake"] + path = bitbake + url = git://git.openembedded.org/bitbake diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bf19056 --- /dev/null +++ b/Makefile @@ -0,0 +1,248 @@ +#!/usr/bin/make -f +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + +# Note: You can override all variables by storing them +# in an external file called "make.conf". +-include conf/make.conf + +# Target platform: +# vusolo, bm750, vuuno, vuultimo, vuduo2 +# +# This only sets the default value. All platforms now use a shared build +# directory. Run "MACHINE=vuultimo bitbake vuplus-image" to build an image +# for the vuultimo, if it is not the default. +MACHINE ?= vusolo2 + +MULTI_TEMPORARILY ?= + +# Adjust according to the number CPU cores to use for parallel build. +# Default: Number of processors in /proc/cpuinfo, if present, or 1. +NR_CPU := $(shell [ -f /proc/cpuinfo ] && grep -c '^processor\s*:' /proc/cpuinfo || echo 1) +BB_NUMBER_THREADS ?= $(NR_CPU) +PARALLEL_MAKE ?= -j $(NR_CPU) + +XSUM ?= md5sum + +BUILD_DIR = $(CURDIR)/build +TOPDIR = $(BUILD_DIR)/$(MACHINE) +DL_DIR = $(CURDIR)/sources + +ifeq ($(MULTI_TEMPORARILY), YES) +SSTATE_DIR = $(TOPDIR)/sstate-cache +TMPDIR = $(TOPDIR)/tmp +DEPDIR = $(TOPDIR)/.deps +else +SSTATE_DIR = $(BUILD_DIR)/sstate-cache +TMPDIR = $(BUILD_DIR)/tmp +DEPDIR = $(BUILD_DIR)/.deps +endif + +BBLAYERS ?= \ + $(CURDIR)/meta-bsp/$(MACHINE) \ + $(CURDIR)/meta-bsp/common \ + $(CURDIR)/meta-openvuplus \ + $(CURDIR)/meta-openembedded/meta-oe \ + $(CURDIR)/openembedded-core/meta + +CONFFILES = \ + bitbake.env \ + $(TOPDIR)/conf/bblayers.conf \ + $(TOPDIR)/conf/local.conf + +CONFDEPS = \ + $(DEPDIR)/.bitbake.env.$(BITBAKE_ENV_HASH) \ + $(DEPDIR)/.bblayers.conf.$(MACHINE).$(BBLAYERS_CONF_HASH) \ + $(DEPDIR)/.local.conf.$(MACHINE).$(LOCAL_CONF_HASH) + +GIT ?= git +GIT_REMOTE := $(shell $(GIT) remote) +GIT_USER_NAME := $(shell $(GIT) config user.name) +GIT_USER_EMAIL := $(shell $(GIT) config user.email) + +hash = $(shell echo $(1) | $(XSUM) | awk '{print $$1}') + +.DEFAULT_GOAL := all +all: init usage + +$(BBLAYERS): + [ -d $@ ] || $(MAKE) $(MFLAGS) update + +init: $(BBLAYERS) $(CONFFILES) + +help: + @echo "Your options:" + @echo + @echo " * Update the SDK" + @echo " $$ $(MAKE) update" + @echo + @echo " * Select a new target machine:" + @echo " $$ echo MACHINE=vuultimo >> conf/make.conf" + @echo " [Valid values: vusolo, bm750, vuuno, vuultimo, vuduo2]" + @echo + @echo " * Build a firmware image for the selected target machine:" + @echo " $$ $(MAKE) image" + @echo + @echo " * Build a firmware image for a different target machine:" + @echo " $$ $(MAKE) image MACHINE=vuultimo" + @echo " [Valid values: vusolo, bm750, vuuno, vuultimo, vuduo2]" + @echo + @echo " * Download all source files at once:" + @echo " $$ $(MAKE) download" + @echo + @echo " * Set up the environment to build recipes manually:" + @echo " $$ source bitbake.env" + @echo " $$ cd build/$(MACHINE)" + @echo " $$ bitbake " + @echo " [Replace with a recipe name, e.g. vuplus-image or enigma2]" + @echo + @echo "Your current settings:" + @echo " MACHINE = $(MACHINE)" + @echo + @echo " BB_NUMBER_THREADS = $(BB_NUMBER_THREADS)" + @echo " PARALLEL_MAKE = $(PARALLEL_MAKE)" + @echo + @echo "Trouble finding a recipe? Try ./scripts/drepo grep 'search string'" + @echo "or ./scripts/drepo find -name \"*recipe*\"." + @echo + @if [ -z "$(GIT_USER_NAME)" -o -z "$(GIT_USER_EMAIL)" ]; then \ + echo "Before doing any commits, please configure your name and email"; \ + echo "address using the following commands:"; \ + echo; \ + echo " $$ $(GIT) config user.name \"Your Name\""; \ + echo " $$ $(GIT) config user.email \"mail@example.com\""; \ + else \ + echo "Git has been configured for $(GIT_USER_NAME) <$(GIT_USER_EMAIL)>."; \ + echo "Please submit patches to ."; \ + fi + +usage: + @echo "[*] Please run '$(MAKE) help' to display further information!" + +clean: + @echo '[*] Deleting generated configuration files' + @$(RM) $(CONFFILES) $(CONFDEPS) + +distclean: clean + @echo '[*] Deleting dependencies directory' + @$(RM) -r $(DEPDIR) + @echo '[*] Deleting download directory' + @$(RM) -r $(DL_DIR) + @echo '[*] Deleting tmp directory' + @$(RM) -r $(TMPDIR) + @echo '[*] Deleting sstate directory' + @$(RM) -r $(SSTATE_DIR) + @echo '[*] Deleting build directory' + @$(RM) -r $(BUILD_DIR) + @echo '[*] Deleting git submodules' + @$(GIT) submodule foreach 'rm -rf .* * 2>/dev/null || true' + +image: init + @echo '[*] Building image for $(MACHINE)' + @. $(CURDIR)/bitbake.env && cd $(TOPDIR) && bitbake vuplus-image + +download: init + @echo '[*] Downloading sources' + @. $(CURDIR)/bitbake.env && cd $(TOPDIR) && bitbake -cfetchall -k vuplus-image + +update: + @echo '[*] Updating Git repositories...' + @HASH=`$(XSUM) $(MAKEFILE_LIST)`; \ + if [ -n "$(GIT_REMOTE)" ]; then \ + $(GIT) pull --ff-only || $(GIT) pull --rebase; \ + fi; \ + if [ "$$HASH" != "`$(XSUM) $(MAKEFILE_LIST)`" ]; then \ + echo '[*] Makefile changed. Restarting...'; \ + $(MAKE) $(MFLAGS) --no-print-directory $(MAKECMDGOALS); \ + else \ + $(GIT) submodule sync && \ + $(GIT) submodule update --init && \ + echo "[*] The Vuplus SDK is now up-to-date."; \ + fi + +.PHONY: all clean help image init update usage + +MACHINE_INCLUDE_CONF = $(CURDIR)/conf/$(basename $(@F))-$(MACHINE)-ext.conf +DISTRO_INCLUDE_CONF = $(CURDIR)/conf/$(basename $(@F))-ext.conf + +BITBAKE_ENV_HASH := $(call hash, \ + 'BITBAKE_ENV_VERSION = "0"' \ + 'CURDIR = "$(CURDIR)"' \ + ) + +bitbake.env: $(DEPDIR)/.bitbake.env.$(BITBAKE_ENV_HASH) + @echo '[*] Generating $@' + @echo '# Automatically generated file. Do not edit!' > $@ + @echo 'export PATH=$(CURDIR)/openembedded-core/scripts:$(CURDIR)/bitbake/bin:$${PATH}' >> $@ + +LOCAL_CONF_HASH := $(call hash, \ + 'LOCAL_CONF_VERSION = "0"' \ + 'CURDIR = "$(CURDIR)"' \ + 'TOPDIR = "$(TOPDIR)"' \ + 'MACHINE = "$(MACHINE)"' \ + 'OPENVUPLUS_CONF_VERSION = "1"' \ + 'CURDIR = "$(CURDIR)"' \ + 'BB_NUMBER_THREADS = "$(BB_NUMBER_THREADS)"' \ + 'PARALLEL_MAKE = "$(PARALLEL_MAKE)"' \ + 'DL_DIR = "$(DL_DIR)"' \ + 'SSTATE_DIR = "$(SSTATE_DIR)"' \ + 'TMPDIR = "$(TMPDIR)"' \ + ) + +$(TOPDIR)/conf/local.conf: $(DEPDIR)/.local.conf.$(MACHINE).$(LOCAL_CONF_HASH) + @echo '[*] Generating $@' + @test -d $(@D) || mkdir -p $(@D) + @echo '# Automatically generated file. Do not edit!' > $@ + @echo 'TOPDIR = "$(TOPDIR)"' >> $@ + @echo 'MACHINE = "$(MACHINE)"' >> $@ + @echo 'BB_NUMBER_THREADS = "$(BB_NUMBER_THREADS)"' >> $@ + @echo 'PARALLEL_MAKE = "$(PARALLEL_MAKE)"' >> $@ + @echo 'DL_DIR = "$(DL_DIR)"' >> $@ + @echo 'SSTATE_DIR = "$(SSTATE_DIR)"' >> $@ + @echo 'TMPDIR = "$(TMPDIR)"' >> $@ + @echo 'BB_GENERATE_MIRROR_TARBALLS = "0"' >> $@ + @echo 'BBINCLUDELOGS = "yes"' >> $@ + @echo 'CONF_VERSION = "1"' >> $@ + @echo 'DISTRO = "vuplus"' >> $@ + @echo 'EXTRA_IMAGE_FEATURES = "debug-tweaks"' >> $@ + @echo 'USER_CLASSES = "buildstats"' >> $@ + @echo 'include $(DISTRO_INCLUDE_CONF)' >> $@ + @echo 'include $(MACHINE_INCLUDE_CONF)' >> $@ + +BBLAYERS_CONF_HASH := $(call hash, \ + 'BBLAYERS_CONF_VERSION = "0"' \ + 'CURDIR = "$(CURDIR)"' \ + 'BBLAYERS = "$(BBLAYERS)"' \ + ) + +$(TOPDIR)/conf/bblayers.conf: $(DEPDIR)/.bblayers.conf.$(MACHINE).$(BBLAYERS_CONF_HASH) + @echo '[*] Generating $@' + @test -d $(@D) || mkdir -p $(@D) + @echo '# Automatically generated file. Do not edit!' > $@ + @echo 'LCONF_VERSION = "4"' >> $@ + @echo 'BBFILES = ""' >> $@ + @echo 'BBLAYERS = "$(BBLAYERS)"' >> $@ + @echo 'include $(DISTRO_INCLUDE_CONF)' >> $@ + @echo 'include $(MACHINE_INCLUDE_CONF)' >> $@ + +$(CONFDEPS): + @test -d $(@D) || mkdir -p $(@D) + @$(RM) $(basename $@).* + @touch $@ diff --git a/bitbake b/bitbake new file mode 160000 index 0000000..270a05b --- /dev/null +++ b/bitbake @@ -0,0 +1 @@ +Subproject commit 270a05b0b4ba0959fe0624d2a4885d7b70426da5 diff --git a/meta-bsp/bm750/conf/layer.conf b/meta-bsp/bm750/conf/layer.conf new file mode 100644 index 0000000..87ed4cb --- /dev/null +++ b/meta-bsp/bm750/conf/layer.conf @@ -0,0 +1,6 @@ +BBFILES += "${LAYERDIR}/recipes/*/*.bb" +BBFILES += "${LAYERDIR}/recipes/*/*.bbappend" +BBPATH .= ":${LAYERDIR}" +BBFILE_COLLECTIONS += "bm750" +BBFILE_PRIORITY_bm750 = "40" +BBFILE_PATTERN_bm750 := "^${LAYERDIR}/" diff --git a/meta-bsp/bm750/conf/machine/bm750.conf b/meta-bsp/bm750/conf/machine/bm750.conf new file mode 100644 index 0000000..41b4522 --- /dev/null +++ b/meta-bsp/bm750/conf/machine/bm750.conf @@ -0,0 +1,17 @@ +#@TYPE: Machine +#@NAME: Vu+ Duo +#@DESCRIPTION: Machine configuration for Vu+ Duo. + +#MACHINE_FEATURES += "kernel26" +MACHINE_FEATURES += "pci" +MACHINE_FEATURES += "alsa" +MACHINE_FEATURES += "wifi" +MACHINE_FEATURES += "vuwlan" +MACHINE_FEATURES += "display-text-vfd" +VUPLUS_FEATURES = "fan_simple" + +IMAGE_UNPACK_PATH = "vuplus/duo" +MKFS_UBI_MAX_ERASE_BLK_COUNT = "4096" + +require conf/machine/include/vuplus-ubi.inc +require conf/machine/include/vuplus-mips32el.inc diff --git a/meta-bsp/bm750/recipes/linux/linux-vuplus-3.1.1/.config b/meta-bsp/bm750/recipes/linux/linux-vuplus-3.1.1/.config new file mode 100644 index 0000000..fe8a00b --- /dev/null +++ b/meta-bsp/bm750/recipes/linux/linux-vuplus-3.1.1/.config @@ -0,0 +1,2685 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/mips 3.1.1 Kernel Configuration +# +CONFIG_MIPS=y + +# +# Machine selection +# +# CONFIG_MIPS_ALCHEMY is not set +# CONFIG_AR7 is not set +# CONFIG_ATH79 is not set +# CONFIG_BCM47XX is not set +# CONFIG_BCM63XX is not set +CONFIG_BRCMSTB=y +# CONFIG_MIPS_COBALT is not set +# CONFIG_MACH_DECSTATION is not set +# CONFIG_MACH_JAZZ is not set +# CONFIG_MACH_JZ4740 is not set +# CONFIG_LANTIQ is not set +# CONFIG_LASAT is not set +# CONFIG_MACH_LOONGSON is not set +# CONFIG_MIPS_MALTA is not set +# CONFIG_MIPS_SIM is not set +# CONFIG_NEC_MARKEINS is not set +# CONFIG_MACH_VR41XX is not set +# CONFIG_NXP_STB220 is not set +# CONFIG_NXP_STB225 is not set +# CONFIG_PNX8550_JBS is not set +# CONFIG_PNX8550_STB810 is not set +# CONFIG_PMC_MSP is not set +# CONFIG_PMC_YOSEMITE is not set +# CONFIG_POWERTV is not set +# CONFIG_SGI_IP22 is not set +# CONFIG_SGI_IP27 is not set +# CONFIG_SGI_IP28 is not set +# CONFIG_SGI_IP32 is not set +# CONFIG_SIBYTE_CRHINE is not set +# CONFIG_SIBYTE_CARMEL is not set +# CONFIG_SIBYTE_CRHONE is not set +# CONFIG_SIBYTE_RHONE is not set +# CONFIG_SIBYTE_SWARM is not set +# CONFIG_SIBYTE_LITTLESUR is not set +# CONFIG_SIBYTE_SENTOSA is not set +# CONFIG_SIBYTE_BIGSUR is not set +# CONFIG_SNI_RM is not set +# CONFIG_MACH_TX39XX is not set +# CONFIG_MACH_TX49XX is not set +# CONFIG_MIKROTIK_RB532 is not set +# CONFIG_WR_PPMC is not set +# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set +# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set +# CONFIG_NLM_XLR_BOARD is not set +# CONFIG_ALCHEMY_GPIO_INDIRECT is not set + +# +# Broadcom STB options +# +# CONFIG_BRCM_LEGACY is not set +# CONFIG_BCM3548B0 is not set +# CONFIG_BCM35125A0 is not set +# CONFIG_BCM35230C0 is not set +# CONFIG_BCM35330A0 is not set +# CONFIG_BCM7125C0 is not set +# CONFIG_BCM7135A0 is not set +# CONFIG_BCM7231A0 is not set +# CONFIG_BCM7325B0 is not set +CONFIG_BCM7335B0=y +# CONFIG_BCM7340B0 is not set +# CONFIG_BCM7342B0 is not set +# CONFIG_BCM7344A0 is not set +# CONFIG_BCM7346A0 is not set +# CONFIG_BCM7358A0 is not set +# CONFIG_BCM7405B0 is not set +# CONFIG_BCM7405D0 is not set +# CONFIG_BCM7408B0 is not set +# CONFIG_BCM7420C0 is not set +# CONFIG_BCM7422A0 is not set +# CONFIG_BCM7425A0 is not set +# CONFIG_BCM7468B0 is not set +# CONFIG_BCM7550A0 is not set +# CONFIG_BCM7550B0 is not set +# CONFIG_BCM7552A0 is not set +# CONFIG_BCM7601B0 is not set +# CONFIG_BCM7630B0 is not set +# CONFIG_BCM7631B0 is not set +# CONFIG_BCM7635A0 is not set +# CONFIG_BCM7640A0 is not set + +# +# Memory map +# +# CONFIG_BRCM_UPPER_MEMORY is not set +# CONFIG_BRCM_OVERRIDE_RAM_SIZE is not set + +# +# Onchip peripherals +# +CONFIG_BRCM_CONSOLE_DEVICE=0 +CONFIG_BRCM_FLASH=y +CONFIG_BRCM_FIXED_MTD_PARTITIONS=y +CONFIG_MTD_BRCMNAND=y +CONFIG_BRCMNAND_MTD_EXTENSION=y +# CONFIG_MTD_BRCMNAND_VERIFY_WRITE is not set +# CONFIG_MTD_BRCMNAND_CORRECTABLE_ERR_HANDLING is not set +CONFIG_BCMEMAC=y +CONFIG_SATA_BRCMSTB=y +CONFIG_BRCM_USB=y +# CONFIG_BRCM_OVERRIDE_USB is not set +CONFIG_BRCM_PM=y +CONFIG_CSRC_UPG=y + +# +# Miscellaneous options +# +# CONFIG_BRCM_FORCE_DOCSIS is not set +CONFIG_BRCM_LIBGCC=y +# CONFIG_BRCM_SCSI_NO_RW10_RETRIES is not set +# CONFIG_BRCM_DEBUG_OPTIONS is not set +CONFIG_BMIPS4380=y +CONFIG_BRCM_HAS_16550=y +CONFIG_BRCM_HAS_UARTA=y +CONFIG_BRCM_HAS_UARTB=y +CONFIG_BRCM_HAS_UARTC=y +CONFIG_BRCM_UARTA_IS_16550=y +CONFIG_BRCM_UARTB_IS_16550=y +CONFIG_BRCM_UARTC_IS_16550=y +CONFIG_BRCM_HAS_PCI23=y +CONFIG_BRCM_HAS_EMAC_0=y +CONFIG_BRCM_HAS_EMAC_1=y +CONFIG_BRCM_HAS_SATA=y +CONFIG_BRCM_HAS_SATA2=y +# CONFIG_BRCM_SATA_75MHZ_PLL is not set +# CONFIG_BRCM_SATA_SINGLE_PORT is not set +CONFIG_BRCM_HAS_NOR=y +CONFIG_BRCM_HAS_NAND_MINOR_1=y +CONFIG_BRCM_HAS_NAND_MAJOR_2=y +CONFIG_BRCMNAND_MAJOR_VERS=2 +CONFIG_BRCMNAND_MINOR_VERS=1 +CONFIG_BRCM_HAS_NAND=y +CONFIG_BRCM_CPU_DIV=y +CONFIG_BRCM_HAS_UPPER_MEMORY=y +CONFIG_BRCM_HAS_1GB_MEMC0=y +CONFIG_BRCM_PLATFORM_DEFAULTS=y +CONFIG_BCM7335=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_ARCH_SUPPORTS_OPROFILE=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_BOOT_RAW=y +CONFIG_CEVT_R4K_LIB=y +CONFIG_CEVT_R4K=y +CONFIG_CFE=y +# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set +CONFIG_DMA_NONCOHERENT=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_SYS_HAS_EARLY_PRINTK=y +# CONFIG_HOTPLUG_CPU is not set +CONFIG_SYS_SUPPORTS_HOTPLUG_CPU=y +# CONFIG_MIPS_MACHINE is not set +# CONFIG_NO_IOPORT is not set +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_LITTLE_ENDIAN=y +CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y +CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y +CONFIG_IRQ_CPU=y +CONFIG_SWAP_IO_SPACE=y +CONFIG_MIPS_L1_CACHE_SHIFT=5 + +# +# CPU selection +# +CONFIG_CPU_MIPS32_R1=y +CONFIG_SYS_HAS_CPU_MIPS32_R1=y +CONFIG_WEAK_ORDERING=y +CONFIG_CPU_MIPS32=y +CONFIG_CPU_MIPSR1=y +CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y +CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y +CONFIG_HARDWARE_WATCHPOINTS=y + +# +# Kernel type +# +CONFIG_32BIT=y +CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_16KB is not set +# CONFIG_PAGE_SIZE_64KB is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_CPU_HAS_PREFETCH=y +CONFIG_MIPS_MT_DISABLED=y +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_CPU_HAS_SYNC=y +CONFIG_CPU_SUPPORTS_HIGHMEM=y +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +CONFIG_VIRT_TO_BUS=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +# CONFIG_CLEANCACHE is not set +CONFIG_SMP=y +CONFIG_SYS_SUPPORTS_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_TICK_ONESHOT=y +# CONFIG_NO_HZ is not set +CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +# CONFIG_HZ_48 is not set +# CONFIG_HZ_100 is not set +# CONFIG_HZ_128 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_256 is not set +CONFIG_HZ_1000=y +# CONFIG_HZ_1024 is not set +CONFIG_SYS_SUPPORTS_ARBIT_HZ=y +CONFIG_HZ=1000 +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +# CONFIG_KEXEC is not set +# CONFIG_SECCOMP is not set +# CONFIG_USE_OF is not set +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_HAVE_IRQ_WORK=y + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_FHANDLE is not set +# CONFIG_TASKSTATS is not set +# CONFIG_AUDIT is not set +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_IRQ_FORCED_THREADING=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_PREEMPT_RCU is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_FANOUT_EXACT is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_CGROUPS is not set +# CONFIG_NAMESPACES is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_EXPERT=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_EMBEDDED=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +# CONFIG_PERF_EVENTS is not set +# CONFIG_PERF_COUNTERS is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_PCI_QUIRKS=y +CONFIG_COMPAT_BRK=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +# CONFIG_PROFILING is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y + +# +# GCOV-based kernel profiling +# +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +# CONFIG_IOSCHED_DEADLINE is not set +CONFIG_IOSCHED_CFQ=y +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y +# CONFIG_FREEZER is not set + +# +# Bus options (PCI, PCMCIA, EISA, ISA, TC) +# +CONFIG_HW_HAS_PCI=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_STUB is not set +# CONFIG_PCI_IOV is not set +CONFIG_MMU=y +# CONFIG_PCCARD is not set +# CONFIG_HOTPLUG_PCI is not set +# CONFIG_RAPIDIO is not set + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_HAVE_AOUT is not set +# CONFIG_BINFMT_MISC is not set +CONFIG_TRAD_SIGNALS=y + +# +# Power management options +# +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +# CONFIG_SUSPEND is not set +# CONFIG_HIBERNATION is not set +# CONFIG_PM_RUNTIME is not set +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=m +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +CONFIG_INET_TUNNEL=m +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +# CONFIG_IPV6_ROUTE_INFO is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +CONFIG_IPV6_MROUTE=y +# CONFIG_IPV6_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +# CONFIG_NETFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +# CONFIG_BRIDGE is not set +# CONFIG_NET_DSA is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_PHONET is not set +# CONFIG_IEEE802154 is not set +# CONFIG_NET_SCHED is not set +# CONFIG_DCB is not set +# CONFIG_BATMAN_ADV is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_IRDA is not set +CONFIG_BT=y +CONFIG_BT_L2CAP=y +# CONFIG_BT_SCO is not set +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +# CONFIG_BT_BNEP_MC_FILTER is not set +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=y +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +# CONFIG_BT_HCIUART_ATH3K is not set +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIVHCI=m +# CONFIG_BT_MRVL is not set +# CONFIG_BT_ATH3K is not set +# CONFIG_AF_RXRPC is not set +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=y +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_LIB80211=y +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +# CONFIG_MAC80211_MESH is not set +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUG_MENU is not set +# CONFIG_WIMAX is not set +# CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="" +# CONFIG_DEVTMPFS is not set +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_CONNECTOR is not set +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_TESTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AR7_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +CONFIG_MTD_ROM=y +CONFIG_MTD_ABSENT=y + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP=y +# CONFIG_MTD_PHYSMAP_COMPAT is not set +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +CONFIG_MTD_NAND_ECC=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +# CONFIG_MTD_NAND_DENALI is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_RICOH is not set +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_CAFE is not set +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_ALAUDA is not set +# CONFIG_MTD_ONENAND is not set + +# +# LPDDR flash memory drivers +# +# CONFIG_MTD_LPDDR is not set +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +# CONFIG_MTD_UBI_GLUEBI is not set +# CONFIG_MTD_UBI_DEBUG is not set +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set + +# +# DRBD disabled because PROC_FS, INET or CONNECTOR not selected +# +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=m +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +# CONFIG_BLK_DEV_XIP is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_BLK_DEV_HD is not set +# CONFIG_BLK_DEV_RBD is not set +# CONFIG_SENSORS_LIS3LV02D is not set +CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set +# CONFIG_PHANTOM is not set +# CONFIG_INTEL_MID_PTI is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_TIFM_CORE is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_HP_ILO is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_BMP085 is not set +# CONFIG_PCH_PHUB is not set +# CONFIG_USB_SWITCH_FSA9480 is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +CONFIG_EEPROM_93CX6=y +# CONFIG_CB710_CORE is not set + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_SENSORS_LIS3_I2C is not set +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +CONFIG_BLK_DEV_SR=y +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=y +# CONFIG_CHR_DEV_SCH is not set +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_ISCSI_BOOT_SYSFS is not set +# CONFIG_SCSI_CXGB3_ISCSI is not set +# CONFIG_SCSI_CXGB4_ISCSI is not set +# CONFIG_SCSI_BNX2_ISCSI is not set +# CONFIG_SCSI_BNX2X_FCOE is not set +# CONFIG_BE2ISCSI is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_HPSA is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_3W_SAS is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +# CONFIG_SCSI_MVSAS is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_MPT2SAS is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_LIBFC is not set +# CONFIG_LIBFCOE is not set +# CONFIG_FCOE is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_FC is not set +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_PMCRAID is not set +# CONFIG_SCSI_PM8001 is not set +# CONFIG_SCSI_SRP is not set +# CONFIG_SCSI_BFA_FC is not set +# CONFIG_SCSI_DH is not set +# CONFIG_SCSI_OSD_INITIATOR is not set +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +# CONFIG_SATA_AHCI is not set +# CONFIG_SATA_AHCI_PLATFORM is not set +# CONFIG_SATA_INIC162X is not set +# CONFIG_SATA_ACARD_AHCI is not set +# CONFIG_SATA_SIL24 is not set +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SX4 is not set +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +# CONFIG_ATA_PIIX is not set +# CONFIG_SATA_MV is not set +# CONFIG_SATA_NV is not set +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set + +# +# PATA SFF controllers with BMDMA +# +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5536 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set +# CONFIG_PATA_MARVELL is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_RDC is not set +# CONFIG_PATA_SC1200 is not set +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set + +# +# PIO-only SFF controllers +# +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_PLATFORM is not set +# CONFIG_PATA_RZ1000 is not set + +# +# Generic fallback / legacy drivers +# +# CONFIG_ATA_GENERIC is not set +# CONFIG_PATA_LEGACY is not set +# CONFIG_MD is not set +# CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_FIREWIRE_NOSY is not set +# CONFIG_I2O is not set +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set +# CONFIG_EQUALIZER is not set +CONFIG_TUN=m +# CONFIG_VETH is not set +# CONFIG_ARCNET is not set +CONFIG_MII=y +# CONFIG_PHYLIB is not set +CONFIG_NET_ETHERNET=y +# CONFIG_AX88796 is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set +# CONFIG_ETHOC is not set +# CONFIG_SMSC911X is not set +# CONFIG_DNET is not set +# CONFIG_NET_TULIP is not set +# CONFIG_HP100 is not set +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set +# CONFIG_NET_PCI is not set +# CONFIG_B44 is not set +# CONFIG_KS8851_MLL is not set +# CONFIG_ATL2 is not set +CONFIG_NETDEV_1000=y +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_E1000E is not set +# CONFIG_IP1000 is not set +# CONFIG_IGB is not set +# CONFIG_IGBVF is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SIS190 is not set +# CONFIG_SKGE is not set +# CONFIG_SKY2 is not set +# CONFIG_VIA_VELOCITY is not set +# CONFIG_TIGON3 is not set +# CONFIG_BNX2 is not set +# CONFIG_CNIC is not set +# CONFIG_QLA3XXX is not set +# CONFIG_ATL1 is not set +# CONFIG_ATL1E is not set +# CONFIG_ATL1C is not set +# CONFIG_JME is not set +# CONFIG_STMMAC_ETH is not set +# CONFIG_PCH_GBE is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_TR is not set +CONFIG_WLAN=y +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +# CONFIG_ATMEL is not set +CONFIG_AT76C50X_USB=m +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=y +# CONFIG_USB_NET_RNDIS_WLAN is not set +# CONFIG_RTL8180 is not set +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +# CONFIG_ADM8211 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_MWL8K is not set +CONFIG_ATH_COMMON=m +# CONFIG_ATH_DEBUG is not set +# CONFIG_ATH5K is not set +# CONFIG_ATH5K_PCI is not set +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K=m +# CONFIG_ATH9K_PCI is not set +# CONFIG_ATH9K_AHB is not set +CONFIG_ATH9K_RATE_CONTROL=y +CONFIG_ATH9K_HTC=m +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +# CONFIG_HOSTAP_PLX is not set +# CONFIG_HOSTAP_PCI is not set +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWLAGN is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +CONFIG_LIBERTAS=m +# CONFIG_LIBERTAS_USB is not set +# CONFIG_LIBERTAS_DEBUG is not set +# CONFIG_LIBERTAS_MESH is not set +# CONFIG_HERMES is not set +CONFIG_P54_COMMON=m +# CONFIG_P54_USB is not set +# CONFIG_P54_PCI is not set +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +# CONFIG_RT2400PCI is not set +# CONFIG_RT2500PCI is not set +# CONFIG_RT61PCI is not set +# CONFIG_RT2800PCI is not set +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +# CONFIG_RTL8192CE is not set +# CONFIG_RTL8192SE is not set +# CONFIG_RTL8192DE is not set +CONFIG_RTL8192CU=m +CONFIG_RTLWIFI=m +CONFIG_RTL8192C_COMMON=m +CONFIG_WL1251=m +# CONFIG_WL12XX_MENU is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=y + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_IPHETH is not set +# CONFIG_WAN is not set + +# +# CAIF transport drivers +# +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_NET_FC is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_VMXNET3 is not set +# CONFIG_ISDN is not set +# CONFIG_PHONE is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +CONFIG_INPUT_POLLDEV=m +# CONFIG_INPUT_SPARSEKMAP is not set + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_LM8323 is not set +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +CONFIG_INPUT_MOUSE=y +# CONFIG_MOUSE_PS2 is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_APPLETOUCH is not set +# CONFIG_MOUSE_BCM5974 is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MOUSE_SYNAPTICS_I2C is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +# CONFIG_VT is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_NOZOMI is not set +# CONFIG_N_GSM is not set +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_MFD_HSU is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_PCH_UART is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +# CONFIG_TTY_PRINTK is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +CONFIG_DEVPORT=y +# CONFIG_RAMOOPS is not set +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_MUX is not set +CONFIG_I2C_HELPER_AUTO=y + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_ISCH is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_INTEL_MID is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_PXA_PCI is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set +# CONFIG_I2C_EG20T is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_SPI is not set + +# +# PPS support +# +# CONFIG_PPS is not set + +# +# PPS generators support +# + +# +# PTP clock support +# + +# +# Enable Device Drivers -> PPS to see the PTP clock options. +# +# CONFIG_W1 is not set +# CONFIG_POWER_SUPPLY is not set +# CONFIG_HWMON is not set +# CONFIG_THERMAL is not set +# CONFIG_WATCHDOG is not set +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +# CONFIG_BCMA is not set +CONFIG_MFD_SUPPORT=y +# CONFIG_MFD_CORE is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS6507X is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_LPC_SCH is not set +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_JANZ_CMODIO is not set +# CONFIG_MFD_VX855 is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_REGULATOR is not set +CONFIG_MEDIA_SUPPORT=y + +# +# Multimedia core support +# +# CONFIG_MEDIA_CONTROLLER is not set +CONFIG_VIDEO_DEV=y +CONFIG_VIDEO_V4L2_COMMON=y +CONFIG_DVB_CORE=y +CONFIG_DVB_NET=y +CONFIG_VIDEO_MEDIA=y + +# +# Multimedia drivers +# +CONFIG_RC_CORE=y +CONFIG_LIRC=y +CONFIG_RC_MAP=y +CONFIG_IR_NEC_DECODER=y +CONFIG_IR_RC5_DECODER=y +CONFIG_IR_RC6_DECODER=y +CONFIG_IR_JVC_DECODER=y +CONFIG_IR_SONY_DECODER=y +CONFIG_IR_RC5_SZ_DECODER=y +CONFIG_IR_MCE_KBD_DECODER=y +CONFIG_IR_LIRC_CODEC=y +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_RC_LOOPBACK is not set +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_TUNER=y +CONFIG_MEDIA_TUNER_CUSTOMISE=y + +# +# Customize TV tuners +# +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_VIDEO_V4L2=y +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=y + +# +# Encoders, decoders, sensors and other helper chips +# + +# +# Audio decoders, processors and mixers +# +# CONFIG_VIDEO_TVAUDIO is not set +# CONFIG_VIDEO_TDA7432 is not set +# CONFIG_VIDEO_TDA9840 is not set +# CONFIG_VIDEO_TEA6415C is not set +# CONFIG_VIDEO_TEA6420 is not set +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_CS5345 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_WM8775 is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_VP27SMPX is not set + +# +# RDS decoders +# +# CONFIG_VIDEO_SAA6588 is not set + +# +# Video decoders +# +# CONFIG_VIDEO_ADV7180 is not set +# CONFIG_VIDEO_BT819 is not set +# CONFIG_VIDEO_BT856 is not set +# CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_KS0127 is not set +# CONFIG_VIDEO_SAA7110 is not set +# CONFIG_VIDEO_SAA711X is not set +# CONFIG_VIDEO_SAA7191 is not set +# CONFIG_VIDEO_TVP514X is not set +# CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set +# CONFIG_VIDEO_VPX3220 is not set + +# +# Video and audio decoders +# +# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_CX25840 is not set + +# +# MPEG video encoders +# +# CONFIG_VIDEO_CX2341X is not set + +# +# Video encoders +# +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_SAA7185 is not set +# CONFIG_VIDEO_ADV7170 is not set +# CONFIG_VIDEO_ADV7175 is not set +# CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_TCM825X is not set + +# +# Flash devices +# + +# +# Video improvement chips +# +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set +# CONFIG_VIDEO_BT848 is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_VIDEO_SAA7134 is not set +# CONFIG_VIDEO_MXB is not set +# CONFIG_VIDEO_HEXIUM_ORION is not set +# CONFIG_VIDEO_HEXIUM_GEMINI is not set +# CONFIG_VIDEO_CX88 is not set +# CONFIG_VIDEO_CX23885 is not set +# CONFIG_VIDEO_AU0828 is not set +# CONFIG_VIDEO_IVTV is not set +# CONFIG_VIDEO_CX18 is not set +# CONFIG_VIDEO_SAA7164 is not set +# CONFIG_VIDEO_CAFE_CCIC is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_SOC_CAMERA is not set +CONFIG_V4L_USB_DRIVERS=y +# CONFIG_USB_VIDEO_CLASS is not set +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +# CONFIG_USB_M5602 is not set +# CONFIG_USB_STV06XX is not set +# CONFIG_USB_GL860 is not set +# CONFIG_USB_GSPCA_BENQ is not set +# CONFIG_USB_GSPCA_CONEX is not set +# CONFIG_USB_GSPCA_CPIA1 is not set +# CONFIG_USB_GSPCA_ETOMS is not set +# CONFIG_USB_GSPCA_FINEPIX is not set +# CONFIG_USB_GSPCA_JEILINJ is not set +# CONFIG_USB_GSPCA_KINECT is not set +# CONFIG_USB_GSPCA_KONICA is not set +# CONFIG_USB_GSPCA_MARS is not set +# CONFIG_USB_GSPCA_MR97310A is not set +# CONFIG_USB_GSPCA_NW80X is not set +# CONFIG_USB_GSPCA_OV519 is not set +# CONFIG_USB_GSPCA_OV534 is not set +# CONFIG_USB_GSPCA_OV534_9 is not set +# CONFIG_USB_GSPCA_PAC207 is not set +# CONFIG_USB_GSPCA_PAC7302 is not set +# CONFIG_USB_GSPCA_PAC7311 is not set +# CONFIG_USB_GSPCA_SE401 is not set +# CONFIG_USB_GSPCA_SN9C2028 is not set +# CONFIG_USB_GSPCA_SN9C20X is not set +# CONFIG_USB_GSPCA_SONIXB is not set +# CONFIG_USB_GSPCA_SONIXJ is not set +# CONFIG_USB_GSPCA_SPCA500 is not set +# CONFIG_USB_GSPCA_SPCA501 is not set +# CONFIG_USB_GSPCA_SPCA505 is not set +# CONFIG_USB_GSPCA_SPCA506 is not set +# CONFIG_USB_GSPCA_SPCA508 is not set +# CONFIG_USB_GSPCA_SPCA561 is not set +# CONFIG_USB_GSPCA_SPCA1528 is not set +# CONFIG_USB_GSPCA_SQ905 is not set +# CONFIG_USB_GSPCA_SQ905C is not set +# CONFIG_USB_GSPCA_SQ930X is not set +# CONFIG_USB_GSPCA_STK014 is not set +# CONFIG_USB_GSPCA_STV0680 is not set +# CONFIG_USB_GSPCA_SUNPLUS is not set +# CONFIG_USB_GSPCA_T613 is not set +# CONFIG_USB_GSPCA_TV8532 is not set +# CONFIG_USB_GSPCA_VC032X is not set +# CONFIG_USB_GSPCA_VICAM is not set +# CONFIG_USB_GSPCA_XIRLINK_CIT is not set +# CONFIG_USB_GSPCA_ZC3XX is not set +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_HDPVR is not set +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=y +# CONFIG_VIDEO_TLG2300 is not set +# CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_USBVISION is not set +# CONFIG_USB_ET61X251 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_PWC is not set +# CONFIG_USB_ZR364XX is not set +# CONFIG_USB_STKWEBCAM is not set +# CONFIG_USB_S2255 is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set +CONFIG_RADIO_ADAPTERS=y +# CONFIG_RADIO_MAXIRADIO is not set +# CONFIG_I2C_SI4713 is not set +# CONFIG_RADIO_SI4713 is not set +# CONFIG_USB_DSBR is not set +# CONFIG_RADIO_SI470X is not set +# CONFIG_USB_MR800 is not set +# CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y +CONFIG_DVB_CAPTURE_DRIVERS=y + +# +# Supported SAA7146 based PCI Adapters +# +# CONFIG_TTPCI_EEPROM is not set +# CONFIG_DVB_AV7110 is not set +# CONFIG_DVB_BUDGET_CORE is not set + +# +# Supported USB Adapters +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_TTUSB_BUDGET=m +# CONFIG_DVB_TTUSB_DEC is not set +CONFIG_SMS_SIANO_MDTV=m + +# +# Siano module components +# +CONFIG_SMS_USB_DRV=m + +# +# Supported FlexCopII (B2C2) Adapters +# +# CONFIG_DVB_B2C2_FLEXCOP is not set + +# +# Supported BT878 Adapters +# + +# +# Supported Pluto2 Adapters +# +# CONFIG_DVB_PLUTO2 is not set + +# +# Supported SDMC DM1105 Adapters +# +# CONFIG_DVB_DM1105 is not set + +# +# Supported Earthsoft PT1 Adapters +# +# CONFIG_DVB_PT1 is not set + +# +# Supported Mantis Adapters +# +# CONFIG_MANTIS_CORE is not set + +# +# Supported nGene Adapters +# +# CONFIG_DVB_NGENE is not set + +# +# Supported ddbridge ('Octopus') Adapters +# +# CONFIG_DVB_DDBRIDGE is not set + +# +# Supported DVB Frontends +# +CONFIG_DVB_FE_CUSTOMISE=y + +# +# Customise DVB Frontends +# + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m + +# +# Multistandard (cable + terrestrial) frontends +# +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_MB86A16=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_S5H1432=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_DIB9000=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_CXD2820R=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_LGS8GL5=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_IX2505V=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set + +# +# Graphics support +# +# CONFIG_VGA_ARB is not set +# CONFIG_DRM is not set +# CONFIG_STUB_POULSBO is not set +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +# CONFIG_FB_CFB_FILLRECT is not set +# CONFIG_FB_CFB_COPYAREA is not set +# CONFIG_FB_CFB_IMAGEBLIT is not set +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +# CONFIG_FB_SYS_FILLRECT is not set +# CONFIG_FB_SYS_COPYAREA is not set +# CONFIG_FB_SYS_IMAGEBLIT is not set +# CONFIG_FB_FOREIGN_ENDIAN is not set +# CONFIG_FB_SYS_FOPS is not set +# CONFIG_FB_WMT_GE_ROPS is not set +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_UDL is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_BROADSHEET is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set +# CONFIG_LOGO is not set +CONFIG_SOUND=y +CONFIG_SOUND_OSS_CORE=y +CONFIG_SOUND_OSS_CORE_PRECLAIM=y +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_SEQUENCER=y +# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +# CONFIG_SND_PCM_OSS_PLUGINS is not set +# CONFIG_SND_SEQUENCER_OSS is not set +# CONFIG_SND_HRTIMER is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +# CONFIG_SND_RAWMIDI_SEQ is not set +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_EMU10K1_SEQ is not set +# CONFIG_SND_DRIVERS is not set +# CONFIG_SND_PCI is not set +# CONFIG_SND_MIPS is not set +# CONFIG_SND_USB is not set +# CONFIG_SND_SOC is not set +# CONFIG_SOUND_PRIME is not set +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +CONFIG_HIDRAW=y + +# +# USB Input Devices +# +CONFIG_USB_HID=y +# CONFIG_HID_PID is not set +CONFIG_USB_HIDDEV=y + +# +# Special HID drivers +# +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_ACRUX is not set +# CONFIG_HID_APPLE is not set +# CONFIG_HID_BELKIN is not set +# CONFIG_HID_CHERRY is not set +# CONFIG_HID_CHICONY is not set +# CONFIG_HID_PRODIKEYS is not set +# CONFIG_HID_CYPRESS is not set +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_HOLTEK is not set +# CONFIG_HID_KEYTOUCH is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_TWINHAN is not set +# CONFIG_HID_KENSINGTON is not set +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LOGITECH is not set +# CONFIG_HID_MAGICMOUSE is not set +# CONFIG_HID_MICROSOFT is not set +# CONFIG_HID_MONTEREY is not set +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set +# CONFIG_HID_ORTEK is not set +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PETALYNX is not set +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_QUANTA is not set +# CONFIG_HID_ROCCAT is not set +# CONFIG_HID_SAMSUNG is not set +# CONFIG_HID_SONY is not set +# CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TOPSEED is not set +# CONFIG_HID_THRUSTMASTER is not set +CONFIG_HID_WACOM=m +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_MON is not set +# CONFIG_USB_WUSB is not set +# CONFIG_USB_WUSB_CBAF is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +# CONFIG_USB_XHCI_HCD is not set +# CONFIG_USB_EHCI_HCD is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1760_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_OHCI_HCD is not set +# CONFIG_USB_UHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_WHCI_HCD is not set +# CONFIG_USB_HWA_HCD is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_REALTEK is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +# CONFIG_USB_UAS is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB port drivers +# +CONFIG_USB_SERIAL=m +CONFIG_USB_EZUSB=y +CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_AIRCABLE is not set +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +# CONFIG_USB_SERIAL_CH341 is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_CP210X is not set +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_FUNSOFT is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_IUU is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +CONFIG_USB_SERIAL_KEYSPAN=m +# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_MOTOROLA is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +# CONFIG_USB_SERIAL_OTI6858 is not set +# CONFIG_USB_SERIAL_QCAUX is not set +# CONFIG_USB_SERIAL_QUALCOMM is not set +# CONFIG_USB_SERIAL_SPCP8X5 is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIEMENS_MPI is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_OPTION=m +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set +# CONFIG_USB_SERIAL_ZIO is not set +# CONFIG_USB_SERIAL_SSU100 is not set +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +# CONFIG_USB_GADGET is not set + +# +# OTG and related infrastructure +# +# CONFIG_NOP_USB_XCEIV is not set +# CONFIG_UWB is not set +# CONFIG_MMC is not set +# CONFIG_MEMSTICK is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_LP3944 is not set +# CONFIG_LEDS_LP5521 is not set +# CONFIG_LEDS_LP5523 is not set +# CONFIG_LEDS_PCA955X is not set +# CONFIG_LEDS_BD2802 is not set +CONFIG_LEDS_TRIGGERS=y + +# +# LED Triggers +# +# CONFIG_LEDS_TRIGGER_TIMER is not set +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set +# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set + +# +# iptables trigger is under Netfilter config (LED target) +# +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +CONFIG_RTC_LIB=y +# CONFIG_RTC_CLASS is not set +# CONFIG_DMADEVICES is not set +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set + +# +# Virtio drivers +# +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_BALLOON is not set +CONFIG_STAGING=y +# CONFIG_ET131X is not set +# CONFIG_VIDEO_GO7007 is not set +# CONFIG_VIDEO_CX25821 is not set +# CONFIG_VIDEO_TM6000 is not set +# CONFIG_DVB_CXD2099 is not set +# CONFIG_USBIP_CORE is not set +CONFIG_W35UND=m +CONFIG_PRISM2_USB=m +# CONFIG_ECHO is not set +# CONFIG_BRCMUTIL is not set +# CONFIG_BRCMSMAC is not set +# CONFIG_ASUS_OLED is not set +CONFIG_R8187SE=m +CONFIG_RTL8192U=m +# CONFIG_RTL8192E is not set +CONFIG_R8712U=m +# CONFIG_R8712_AP is not set +# CONFIG_RTS_PSTOR is not set +# CONFIG_TRANZPORT is not set +# CONFIG_POHMELFS is not set +# CONFIG_IDE_PHISON is not set +# CONFIG_LINE6_USB is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set +# CONFIG_VT6655 is not set +# CONFIG_VT6656 is not set +# CONFIG_VME_BUS is not set +# CONFIG_DX_SEP is not set +# CONFIG_IIO is not set +# CONFIG_XVMALLOC is not set +# CONFIG_ZRAM is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_VIDEO_DT3155 is not set +# CONFIG_CRYSTALHD is not set +# CONFIG_FB_XGI is not set +# CONFIG_LIRC_STAGING is not set +# CONFIG_EASYCAP is not set +# CONFIG_SOLO6X10 is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_ALTERA_STAPL is not set +CONFIG_IOMMU_SUPPORT=y +# CONFIG_VIRT_DRIVERS is not set + +# +# File systems +# +CONFIG_EXT2_FS=m +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set +# CONFIG_EXT3_FS_XATTR is not set +CONFIG_EXT4_FS=y +# CONFIG_EXT4_FS_XATTR is not set +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD=y +CONFIG_JBD2=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +# CONFIG_FS_POSIX_ACL is not set +CONFIG_EXPORTFS=m +CONFIG_FILE_LOCKING=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_FANOTIFY is not set +# CONFIG_QUOTA is not set +# CONFIG_QUOTACTL is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m +# CONFIG_CUSE is not set + +# +# Caches +# +# CONFIG_FSCACHE is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +# CONFIG_ZISOFS is not set +CONFIG_UDF_FS=y +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=y +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_TMPFS_XATTR is not set +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_SUMMARY=y +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_RUBIN=y +# CONFIG_JFFS2_CMODE_NONE is not set +# CONFIG_JFFS2_CMODE_PRIORITY is not set +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_JFFS2_CMODE_FAVOURLZO=y +CONFIG_UBIFS_FS=y +# CONFIG_UBIFS_FS_XATTR is not set +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_UBIFS_FS_DEBUG is not set +# CONFIG_LOGFS is not set +# CONFIG_CRAMFS is not set +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_XATTR is not set +CONFIG_SQUASHFS_ZLIB=y +# CONFIG_SQUASHFS_LZO is not set +# CONFIG_SQUASHFS_XZ is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_MINIX_FS_NATIVE_ENDIAN is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +CONFIG_ROOT_NFS=y +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +# CONFIG_NFSD_V4 is not set +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_CEPH_FS is not set +CONFIG_CIFS=y +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-15" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=y +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=y + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +CONFIG_FRAME_WARN=0 +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set +# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_SYSCTL_SYSCALL_CHECK is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_TEST_KSTRTOX is not set +CONFIG_EARLY_PRINTK=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="" +# CONFIG_CMDLINE_OVERRIDE is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_RUNTIME_DEBUG is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +# CONFIG_CRYPTO_GF128MUL is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_PCRYPT is not set +CONFIG_CRYPTO_WORKQUEUE=y +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_AUTHENC=m +# CONFIG_CRYPTO_TEST is not set + +# +# Authenticated Encryption with Associated Data +# +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_SEQIV is not set + +# +# Block modes +# +CONFIG_CRYPTO_CBC=m +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_GHASH is not set +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +CONFIG_CRYPTO_SHA1=m +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_ARC4=y +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_TWOFISH is not set + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_ZLIB is not set +CONFIG_CRYPTO_LZO=y + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +CONFIG_CRYPTO_HW=y +# CONFIG_CRYPTO_DEV_HIFN_795X is not set +# CONFIG_BINARY_PRINTF is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +CONFIG_CRC_ITU_T=y +CONFIG_CRC32=y +CONFIG_CRC7=m +# CONFIG_LIBCRC32C is not set +# CONFIG_CRC8 is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +# CONFIG_XZ_DEC is not set +# CONFIG_XZ_DEC_BCJ is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CPU_RMAP=y +CONFIG_NLATTR=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_AVERAGE=y +# CONFIG_CORDIC is not set diff --git a/meta-bsp/bm750/recipes/linux/linux-vuplus-3.1.1/bm750_defconfig b/meta-bsp/bm750/recipes/linux/linux-vuplus-3.1.1/bm750_defconfig new file mode 100644 index 0000000..74cbf22 --- /dev/null +++ b/meta-bsp/bm750/recipes/linux/linux-vuplus-3.1.1/bm750_defconfig @@ -0,0 +1,2691 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/mips 3.1.1 Kernel Configuration +# +CONFIG_MIPS=y + +# +# Machine selection +# +# CONFIG_MIPS_ALCHEMY is not set +# CONFIG_AR7 is not set +# CONFIG_ATH79 is not set +# CONFIG_BCM47XX is not set +# CONFIG_BCM63XX is not set +CONFIG_BRCMSTB=y +# CONFIG_MIPS_COBALT is not set +# CONFIG_MACH_DECSTATION is not set +# CONFIG_MACH_JAZZ is not set +# CONFIG_MACH_JZ4740 is not set +# CONFIG_LANTIQ is not set +# CONFIG_LASAT is not set +# CONFIG_MACH_LOONGSON is not set +# CONFIG_MIPS_MALTA is not set +# CONFIG_MIPS_SIM is not set +# CONFIG_NEC_MARKEINS is not set +# CONFIG_MACH_VR41XX is not set +# CONFIG_NXP_STB220 is not set +# CONFIG_NXP_STB225 is not set +# CONFIG_PNX8550_JBS is not set +# CONFIG_PNX8550_STB810 is not set +# CONFIG_PMC_MSP is not set +# CONFIG_PMC_YOSEMITE is not set +# CONFIG_POWERTV is not set +# CONFIG_SGI_IP22 is not set +# CONFIG_SGI_IP27 is not set +# CONFIG_SGI_IP28 is not set +# CONFIG_SGI_IP32 is not set +# CONFIG_SIBYTE_CRHINE is not set +# CONFIG_SIBYTE_CARMEL is not set +# CONFIG_SIBYTE_CRHONE is not set +# CONFIG_SIBYTE_RHONE is not set +# CONFIG_SIBYTE_SWARM is not set +# CONFIG_SIBYTE_LITTLESUR is not set +# CONFIG_SIBYTE_SENTOSA is not set +# CONFIG_SIBYTE_BIGSUR is not set +# CONFIG_SNI_RM is not set +# CONFIG_MACH_TX39XX is not set +# CONFIG_MACH_TX49XX is not set +# CONFIG_MIKROTIK_RB532 is not set +# CONFIG_WR_PPMC is not set +# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set +# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set +# CONFIG_NLM_XLR_BOARD is not set +# CONFIG_ALCHEMY_GPIO_INDIRECT is not set + +# +# Broadcom STB options +# +# CONFIG_BRCM_LEGACY is not set +# CONFIG_BCM3548B0 is not set +# CONFIG_BCM35125A0 is not set +# CONFIG_BCM35230C0 is not set +# CONFIG_BCM35330A0 is not set +# CONFIG_BCM7125C0 is not set +# CONFIG_BCM7135A0 is not set +# CONFIG_BCM7231A0 is not set +# CONFIG_BCM7325B0 is not set +CONFIG_BCM7335B0=y +# CONFIG_BCM7340B0 is not set +# CONFIG_BCM7342B0 is not set +# CONFIG_BCM7344A0 is not set +# CONFIG_BCM7346A0 is not set +# CONFIG_BCM7358A0 is not set +# CONFIG_BCM7405B0 is not set +# CONFIG_BCM7405D0 is not set +# CONFIG_BCM7408B0 is not set +# CONFIG_BCM7420C0 is not set +# CONFIG_BCM7422A0 is not set +# CONFIG_BCM7425A0 is not set +# CONFIG_BCM7468B0 is not set +# CONFIG_BCM7550A0 is not set +# CONFIG_BCM7550B0 is not set +# CONFIG_BCM7552A0 is not set +# CONFIG_BCM7601B0 is not set +# CONFIG_BCM7630B0 is not set +# CONFIG_BCM7631B0 is not set +# CONFIG_BCM7635A0 is not set +# CONFIG_BCM7640A0 is not set + +# +# Memory map +# +# CONFIG_BRCM_UPPER_MEMORY is not set +# CONFIG_BRCM_OVERRIDE_RAM_SIZE is not set + +# +# Onchip peripherals +# +CONFIG_BRCM_CONSOLE_DEVICE=0 +CONFIG_BRCM_FLASH=y +CONFIG_BRCM_FIXED_MTD_PARTITIONS=y +CONFIG_MTD_BRCMNAND=y +CONFIG_BRCMNAND_MTD_EXTENSION=y +# CONFIG_MTD_BRCMNAND_VERIFY_WRITE is not set +# CONFIG_MTD_BRCMNAND_CORRECTABLE_ERR_HANDLING is not set +CONFIG_BCMEMAC=y +CONFIG_SATA_BRCMSTB=y +CONFIG_BRCM_USB=y +# CONFIG_BRCM_OVERRIDE_USB is not set +CONFIG_BRCM_PM=y +CONFIG_CSRC_UPG=y + +# +# Miscellaneous options +# +# CONFIG_BRCM_FORCE_DOCSIS is not set +CONFIG_BRCM_LIBGCC=y +# CONFIG_BRCM_SCSI_NO_RW10_RETRIES is not set +# CONFIG_BRCM_DEBUG_OPTIONS is not set +CONFIG_BMIPS4380=y +CONFIG_BRCM_HAS_16550=y +CONFIG_BRCM_HAS_UARTA=y +CONFIG_BRCM_HAS_UARTB=y +CONFIG_BRCM_HAS_UARTC=y +CONFIG_BRCM_UARTA_IS_16550=y +CONFIG_BRCM_UARTB_IS_16550=y +CONFIG_BRCM_UARTC_IS_16550=y +CONFIG_BRCM_HAS_PCI23=y +CONFIG_BRCM_HAS_EMAC_0=y +CONFIG_BRCM_HAS_EMAC_1=y +CONFIG_BRCM_HAS_SATA=y +CONFIG_BRCM_HAS_SATA2=y +# CONFIG_BRCM_SATA_75MHZ_PLL is not set +# CONFIG_BRCM_SATA_SINGLE_PORT is not set +CONFIG_BRCM_HAS_NOR=y +CONFIG_BRCM_HAS_NAND_MINOR_1=y +CONFIG_BRCM_HAS_NAND_MAJOR_2=y +CONFIG_BRCMNAND_MAJOR_VERS=2 +CONFIG_BRCMNAND_MINOR_VERS=1 +CONFIG_BRCM_HAS_NAND=y +CONFIG_BRCM_CPU_DIV=y +CONFIG_BRCM_HAS_UPPER_MEMORY=y +CONFIG_BRCM_HAS_1GB_MEMC0=y +CONFIG_BRCM_PLATFORM_DEFAULTS=y +CONFIG_BCM7335=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_ARCH_SUPPORTS_OPROFILE=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_BOOT_RAW=y +CONFIG_CEVT_R4K_LIB=y +CONFIG_CEVT_R4K=y +CONFIG_CFE=y +# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set +CONFIG_DMA_NONCOHERENT=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_SYS_HAS_EARLY_PRINTK=y +# CONFIG_HOTPLUG_CPU is not set +CONFIG_SYS_SUPPORTS_HOTPLUG_CPU=y +# CONFIG_MIPS_MACHINE is not set +# CONFIG_NO_IOPORT is not set +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_LITTLE_ENDIAN=y +CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y +CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y +CONFIG_IRQ_CPU=y +CONFIG_SWAP_IO_SPACE=y +CONFIG_MIPS_L1_CACHE_SHIFT=5 + +# +# CPU selection +# +CONFIG_CPU_MIPS32_R1=y +CONFIG_SYS_HAS_CPU_MIPS32_R1=y +CONFIG_WEAK_ORDERING=y +CONFIG_CPU_MIPS32=y +CONFIG_CPU_MIPSR1=y +CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y +CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y +CONFIG_HARDWARE_WATCHPOINTS=y + +# +# Kernel type +# +CONFIG_32BIT=y +CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_16KB is not set +# CONFIG_PAGE_SIZE_64KB is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_CPU_HAS_PREFETCH=y +CONFIG_MIPS_MT_DISABLED=y +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_CPU_HAS_SYNC=y +CONFIG_CPU_SUPPORTS_HIGHMEM=y +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +CONFIG_VIRT_TO_BUS=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +# CONFIG_CLEANCACHE is not set +CONFIG_SMP=y +CONFIG_SYS_SUPPORTS_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_TICK_ONESHOT=y +# CONFIG_NO_HZ is not set +CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +# CONFIG_HZ_48 is not set +# CONFIG_HZ_100 is not set +# CONFIG_HZ_128 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_256 is not set +CONFIG_HZ_1000=y +# CONFIG_HZ_1024 is not set +CONFIG_SYS_SUPPORTS_ARBIT_HZ=y +CONFIG_HZ=1000 +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +# CONFIG_KEXEC is not set +# CONFIG_SECCOMP is not set +# CONFIG_USE_OF is not set +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_HAVE_IRQ_WORK=y + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_FHANDLE is not set +# CONFIG_TASKSTATS is not set +# CONFIG_AUDIT is not set +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_IRQ_FORCED_THREADING=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_PREEMPT_RCU is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_FANOUT_EXACT is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_CGROUPS is not set +# CONFIG_NAMESPACES is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_EXPERT=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_EMBEDDED=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +# CONFIG_PERF_EVENTS is not set +# CONFIG_PERF_COUNTERS is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_PCI_QUIRKS=y +CONFIG_COMPAT_BRK=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +# CONFIG_PROFILING is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y + +# +# GCOV-based kernel profiling +# +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +# CONFIG_IOSCHED_DEADLINE is not set +CONFIG_IOSCHED_CFQ=y +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y +# CONFIG_FREEZER is not set + +# +# Bus options (PCI, PCMCIA, EISA, ISA, TC) +# +CONFIG_HW_HAS_PCI=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_STUB is not set +# CONFIG_PCI_IOV is not set +CONFIG_MMU=y +# CONFIG_PCCARD is not set +# CONFIG_HOTPLUG_PCI is not set +# CONFIG_RAPIDIO is not set + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_HAVE_AOUT is not set +# CONFIG_BINFMT_MISC is not set +CONFIG_TRAD_SIGNALS=y + +# +# Power management options +# +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +# CONFIG_SUSPEND is not set +# CONFIG_HIBERNATION is not set +# CONFIG_PM_RUNTIME is not set +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=m +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +CONFIG_INET_TUNNEL=m +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +# CONFIG_IPV6_ROUTE_INFO is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +CONFIG_IPV6_MROUTE=y +# CONFIG_IPV6_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +# CONFIG_NETFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +CONFIG_STP=m +CONFIG_BRIDGE=m +#CONFIG_BRIDGE_IGMP_SNOOPING is not set +# CONFIG_NET_DSA is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +CONFIG_LLC=m +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_PHONET is not set +# CONFIG_IEEE802154 is not set +# CONFIG_NET_SCHED is not set +# CONFIG_DCB is not set +# CONFIG_BATMAN_ADV is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_IRDA is not set +CONFIG_BT=m +CONFIG_BT_L2CAP=y +# CONFIG_BT_SCO is not set +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +# CONFIG_BT_BNEP_MC_FILTER is not set +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +# CONFIG_BT_HCIUART_ATH3K is not set +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIVHCI=m +# CONFIG_BT_MRVL is not set +# CONFIG_BT_ATH3K is not set +# CONFIG_AF_RXRPC is not set +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=y +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_LIB80211=y +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +# CONFIG_MAC80211_MESH is not set +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUG_MENU is not set +# CONFIG_WIMAX is not set +# CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="" +# CONFIG_DEVTMPFS is not set +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_CONNECTOR is not set +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_TESTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AR7_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +CONFIG_MTD_ROM=y +CONFIG_MTD_ABSENT=y + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP=y +# CONFIG_MTD_PHYSMAP_COMPAT is not set +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +CONFIG_MTD_NAND_ECC=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +# CONFIG_MTD_NAND_DENALI is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_RICOH is not set +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_CAFE is not set +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_ALAUDA is not set +# CONFIG_MTD_ONENAND is not set + +# +# LPDDR flash memory drivers +# +# CONFIG_MTD_LPDDR is not set +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +# CONFIG_MTD_UBI_GLUEBI is not set +# CONFIG_MTD_UBI_DEBUG is not set +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set + +# +# DRBD disabled because PROC_FS, INET or CONNECTOR not selected +# +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=m +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +# CONFIG_BLK_DEV_XIP is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_BLK_DEV_HD is not set +# CONFIG_BLK_DEV_RBD is not set +# CONFIG_SENSORS_LIS3LV02D is not set +CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set +# CONFIG_PHANTOM is not set +# CONFIG_INTEL_MID_PTI is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_TIFM_CORE is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_HP_ILO is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_BMP085 is not set +# CONFIG_PCH_PHUB is not set +# CONFIG_USB_SWITCH_FSA9480 is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +CONFIG_EEPROM_93CX6=y +# CONFIG_CB710_CORE is not set + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_SENSORS_LIS3_I2C is not set +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +CONFIG_BLK_DEV_SR=y +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=y +# CONFIG_CHR_DEV_SCH is not set +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_ISCSI_BOOT_SYSFS is not set +# CONFIG_SCSI_CXGB3_ISCSI is not set +# CONFIG_SCSI_CXGB4_ISCSI is not set +# CONFIG_SCSI_BNX2_ISCSI is not set +# CONFIG_SCSI_BNX2X_FCOE is not set +# CONFIG_BE2ISCSI is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_HPSA is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_3W_SAS is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +# CONFIG_SCSI_MVSAS is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_MPT2SAS is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_LIBFC is not set +# CONFIG_LIBFCOE is not set +# CONFIG_FCOE is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_FC is not set +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_PMCRAID is not set +# CONFIG_SCSI_PM8001 is not set +# CONFIG_SCSI_SRP is not set +# CONFIG_SCSI_BFA_FC is not set +# CONFIG_SCSI_DH is not set +# CONFIG_SCSI_OSD_INITIATOR is not set +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +# CONFIG_SATA_AHCI is not set +# CONFIG_SATA_AHCI_PLATFORM is not set +# CONFIG_SATA_INIC162X is not set +# CONFIG_SATA_ACARD_AHCI is not set +# CONFIG_SATA_SIL24 is not set +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SX4 is not set +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +# CONFIG_ATA_PIIX is not set +# CONFIG_SATA_MV is not set +# CONFIG_SATA_NV is not set +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set + +# +# PATA SFF controllers with BMDMA +# +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5536 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set +# CONFIG_PATA_MARVELL is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_RDC is not set +# CONFIG_PATA_SC1200 is not set +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set + +# +# PIO-only SFF controllers +# +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_PLATFORM is not set +# CONFIG_PATA_RZ1000 is not set + +# +# Generic fallback / legacy drivers +# +# CONFIG_ATA_GENERIC is not set +# CONFIG_PATA_LEGACY is not set +# CONFIG_MD is not set +# CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_FIREWIRE_NOSY is not set +# CONFIG_I2O is not set +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set +# CONFIG_EQUALIZER is not set +CONFIG_TUN=m +# CONFIG_VETH is not set +# CONFIG_ARCNET is not set +CONFIG_MII=y +# CONFIG_PHYLIB is not set +CONFIG_NET_ETHERNET=y +# CONFIG_AX88796 is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set +# CONFIG_ETHOC is not set +# CONFIG_SMSC911X is not set +# CONFIG_DNET is not set +# CONFIG_NET_TULIP is not set +# CONFIG_HP100 is not set +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set +# CONFIG_NET_PCI is not set +# CONFIG_B44 is not set +# CONFIG_KS8851_MLL is not set +# CONFIG_ATL2 is not set +CONFIG_NETDEV_1000=y +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_E1000E is not set +# CONFIG_IP1000 is not set +# CONFIG_IGB is not set +# CONFIG_IGBVF is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SIS190 is not set +# CONFIG_SKGE is not set +# CONFIG_SKY2 is not set +# CONFIG_VIA_VELOCITY is not set +# CONFIG_TIGON3 is not set +# CONFIG_BNX2 is not set +# CONFIG_CNIC is not set +# CONFIG_QLA3XXX is not set +# CONFIG_ATL1 is not set +# CONFIG_ATL1E is not set +# CONFIG_ATL1C is not set +# CONFIG_JME is not set +# CONFIG_STMMAC_ETH is not set +# CONFIG_PCH_GBE is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_TR is not set +CONFIG_WLAN=y +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +# CONFIG_ATMEL is not set +CONFIG_AT76C50X_USB=m +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=y +# CONFIG_USB_NET_RNDIS_WLAN is not set +# CONFIG_RTL8180 is not set +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +# CONFIG_ADM8211 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_MWL8K is not set +CONFIG_ATH_COMMON=m +# CONFIG_ATH_DEBUG is not set +# CONFIG_ATH5K is not set +# CONFIG_ATH5K_PCI is not set +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K=m +# CONFIG_ATH9K_PCI is not set +# CONFIG_ATH9K_AHB is not set +CONFIG_ATH9K_RATE_CONTROL=y +CONFIG_ATH9K_HTC=m +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +# CONFIG_HOSTAP_PLX is not set +# CONFIG_HOSTAP_PCI is not set +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWLAGN is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +CONFIG_LIBERTAS=m +# CONFIG_LIBERTAS_USB is not set +# CONFIG_LIBERTAS_DEBUG is not set +# CONFIG_LIBERTAS_MESH is not set +# CONFIG_HERMES is not set +CONFIG_P54_COMMON=m +# CONFIG_P54_USB is not set +# CONFIG_P54_PCI is not set +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +# CONFIG_RT2400PCI is not set +# CONFIG_RT2500PCI is not set +# CONFIG_RT61PCI is not set +# CONFIG_RT2800PCI is not set +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +# CONFIG_RTL8192CE is not set +# CONFIG_RTL8192SE is not set +# CONFIG_RTL8192DE is not set +CONFIG_RTL8192CU=m +CONFIG_RTLWIFI=m +CONFIG_RTL8192C_COMMON=m +CONFIG_WL1251=m +# CONFIG_WL12XX_MENU is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=y + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_IPHETH is not set +# CONFIG_WAN is not set + +# +# CAIF transport drivers +# +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_NET_FC is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_VMXNET3 is not set +# CONFIG_ISDN is not set +# CONFIG_PHONE is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +CONFIG_INPUT_POLLDEV=m +# CONFIG_INPUT_SPARSEKMAP is not set + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_LM8323 is not set +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +CONFIG_INPUT_MOUSE=y +# CONFIG_MOUSE_PS2 is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_APPLETOUCH is not set +# CONFIG_MOUSE_BCM5974 is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MOUSE_SYNAPTICS_I2C is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +# CONFIG_VT is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_NOZOMI is not set +# CONFIG_N_GSM is not set +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_MFD_HSU is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_PCH_UART is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +# CONFIG_TTY_PRINTK is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +CONFIG_DEVPORT=y +# CONFIG_RAMOOPS is not set +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_MUX is not set +CONFIG_I2C_HELPER_AUTO=y + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_ISCH is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_INTEL_MID is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_PXA_PCI is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set +# CONFIG_I2C_EG20T is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_SPI is not set + +# +# PPS support +# +# CONFIG_PPS is not set + +# +# PPS generators support +# + +# +# PTP clock support +# + +# +# Enable Device Drivers -> PPS to see the PTP clock options. +# +# CONFIG_W1 is not set +# CONFIG_POWER_SUPPLY is not set +# CONFIG_HWMON is not set +# CONFIG_THERMAL is not set +# CONFIG_WATCHDOG is not set +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +# CONFIG_BCMA is not set +CONFIG_MFD_SUPPORT=y +# CONFIG_MFD_CORE is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS6507X is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_LPC_SCH is not set +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_JANZ_CMODIO is not set +# CONFIG_MFD_VX855 is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_REGULATOR is not set +CONFIG_MEDIA_SUPPORT=y + +# +# Multimedia core support +# +# CONFIG_MEDIA_CONTROLLER is not set +CONFIG_VIDEO_DEV=y +CONFIG_VIDEO_V4L2_COMMON=y +CONFIG_DVB_CORE=y +CONFIG_DVB_NET=y +CONFIG_VIDEO_MEDIA=y + +# +# Multimedia drivers +# +CONFIG_RC_CORE=y +CONFIG_LIRC=y +CONFIG_RC_MAP=y +CONFIG_IR_NEC_DECODER=y +CONFIG_IR_RC5_DECODER=y +CONFIG_IR_RC6_DECODER=y +CONFIG_IR_JVC_DECODER=y +CONFIG_IR_SONY_DECODER=y +CONFIG_IR_RC5_SZ_DECODER=y +CONFIG_IR_MCE_KBD_DECODER=y +CONFIG_IR_LIRC_CODEC=y +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_RC_LOOPBACK is not set +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_TUNER=y +CONFIG_MEDIA_TUNER_CUSTOMISE=y + +# +# Customize TV tuners +# +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_VIDEO_V4L2=y +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=y + +# +# Encoders, decoders, sensors and other helper chips +# + +# +# Audio decoders, processors and mixers +# +# CONFIG_VIDEO_TVAUDIO is not set +# CONFIG_VIDEO_TDA7432 is not set +# CONFIG_VIDEO_TDA9840 is not set +# CONFIG_VIDEO_TEA6415C is not set +# CONFIG_VIDEO_TEA6420 is not set +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_CS5345 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_WM8775 is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_VP27SMPX is not set + +# +# RDS decoders +# +# CONFIG_VIDEO_SAA6588 is not set + +# +# Video decoders +# +# CONFIG_VIDEO_ADV7180 is not set +# CONFIG_VIDEO_BT819 is not set +# CONFIG_VIDEO_BT856 is not set +# CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_KS0127 is not set +# CONFIG_VIDEO_SAA7110 is not set +# CONFIG_VIDEO_SAA711X is not set +# CONFIG_VIDEO_SAA7191 is not set +# CONFIG_VIDEO_TVP514X is not set +# CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set +# CONFIG_VIDEO_VPX3220 is not set + +# +# Video and audio decoders +# +# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_CX25840 is not set + +# +# MPEG video encoders +# +# CONFIG_VIDEO_CX2341X is not set + +# +# Video encoders +# +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_SAA7185 is not set +# CONFIG_VIDEO_ADV7170 is not set +# CONFIG_VIDEO_ADV7175 is not set +# CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_TCM825X is not set + +# +# Flash devices +# + +# +# Video improvement chips +# +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set +# CONFIG_VIDEO_BT848 is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_VIDEO_SAA7134 is not set +# CONFIG_VIDEO_MXB is not set +# CONFIG_VIDEO_HEXIUM_ORION is not set +# CONFIG_VIDEO_HEXIUM_GEMINI is not set +# CONFIG_VIDEO_CX88 is not set +# CONFIG_VIDEO_CX23885 is not set +# CONFIG_VIDEO_AU0828 is not set +# CONFIG_VIDEO_IVTV is not set +# CONFIG_VIDEO_CX18 is not set +# CONFIG_VIDEO_SAA7164 is not set +# CONFIG_VIDEO_CAFE_CCIC is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_SOC_CAMERA is not set +CONFIG_V4L_USB_DRIVERS=y +# CONFIG_USB_VIDEO_CLASS is not set +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +# CONFIG_USB_M5602 is not set +# CONFIG_USB_STV06XX is not set +# CONFIG_USB_GL860 is not set +# CONFIG_USB_GSPCA_BENQ is not set +# CONFIG_USB_GSPCA_CONEX is not set +# CONFIG_USB_GSPCA_CPIA1 is not set +# CONFIG_USB_GSPCA_ETOMS is not set +# CONFIG_USB_GSPCA_FINEPIX is not set +# CONFIG_USB_GSPCA_JEILINJ is not set +# CONFIG_USB_GSPCA_KINECT is not set +# CONFIG_USB_GSPCA_KONICA is not set +# CONFIG_USB_GSPCA_MARS is not set +# CONFIG_USB_GSPCA_MR97310A is not set +# CONFIG_USB_GSPCA_NW80X is not set +# CONFIG_USB_GSPCA_OV519 is not set +# CONFIG_USB_GSPCA_OV534 is not set +# CONFIG_USB_GSPCA_OV534_9 is not set +# CONFIG_USB_GSPCA_PAC207 is not set +# CONFIG_USB_GSPCA_PAC7302 is not set +# CONFIG_USB_GSPCA_PAC7311 is not set +# CONFIG_USB_GSPCA_SE401 is not set +# CONFIG_USB_GSPCA_SN9C2028 is not set +# CONFIG_USB_GSPCA_SN9C20X is not set +# CONFIG_USB_GSPCA_SONIXB is not set +# CONFIG_USB_GSPCA_SONIXJ is not set +# CONFIG_USB_GSPCA_SPCA500 is not set +# CONFIG_USB_GSPCA_SPCA501 is not set +# CONFIG_USB_GSPCA_SPCA505 is not set +# CONFIG_USB_GSPCA_SPCA506 is not set +# CONFIG_USB_GSPCA_SPCA508 is not set +# CONFIG_USB_GSPCA_SPCA561 is not set +# CONFIG_USB_GSPCA_SPCA1528 is not set +# CONFIG_USB_GSPCA_SQ905 is not set +# CONFIG_USB_GSPCA_SQ905C is not set +# CONFIG_USB_GSPCA_SQ930X is not set +# CONFIG_USB_GSPCA_STK014 is not set +# CONFIG_USB_GSPCA_STV0680 is not set +# CONFIG_USB_GSPCA_SUNPLUS is not set +# CONFIG_USB_GSPCA_T613 is not set +# CONFIG_USB_GSPCA_TV8532 is not set +# CONFIG_USB_GSPCA_VC032X is not set +# CONFIG_USB_GSPCA_VICAM is not set +# CONFIG_USB_GSPCA_XIRLINK_CIT is not set +# CONFIG_USB_GSPCA_ZC3XX is not set +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_HDPVR is not set +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=y +# CONFIG_VIDEO_TLG2300 is not set +# CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_USBVISION is not set +# CONFIG_USB_ET61X251 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_PWC is not set +# CONFIG_USB_ZR364XX is not set +# CONFIG_USB_STKWEBCAM is not set +# CONFIG_USB_S2255 is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set +CONFIG_RADIO_ADAPTERS=y +# CONFIG_RADIO_MAXIRADIO is not set +# CONFIG_I2C_SI4713 is not set +# CONFIG_RADIO_SI4713 is not set +# CONFIG_USB_DSBR is not set +# CONFIG_RADIO_SI470X is not set +# CONFIG_USB_MR800 is not set +# CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y +CONFIG_DVB_CAPTURE_DRIVERS=y + +# +# Supported SAA7146 based PCI Adapters +# +# CONFIG_TTPCI_EEPROM is not set +# CONFIG_DVB_AV7110 is not set +# CONFIG_DVB_BUDGET_CORE is not set + +# +# Supported USB Adapters +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_TTUSB_BUDGET=m +# CONFIG_DVB_TTUSB_DEC is not set +CONFIG_SMS_SIANO_MDTV=m + +# +# Siano module components +# +CONFIG_SMS_USB_DRV=m + +# +# Supported FlexCopII (B2C2) Adapters +# +# CONFIG_DVB_B2C2_FLEXCOP is not set + +# +# Supported BT878 Adapters +# + +# +# Supported Pluto2 Adapters +# +# CONFIG_DVB_PLUTO2 is not set + +# +# Supported SDMC DM1105 Adapters +# +# CONFIG_DVB_DM1105 is not set + +# +# Supported Earthsoft PT1 Adapters +# +# CONFIG_DVB_PT1 is not set + +# +# Supported Mantis Adapters +# +# CONFIG_MANTIS_CORE is not set + +# +# Supported nGene Adapters +# +# CONFIG_DVB_NGENE is not set + +# +# Supported ddbridge ('Octopus') Adapters +# +# CONFIG_DVB_DDBRIDGE is not set + +# +# Supported DVB Frontends +# +CONFIG_DVB_FE_CUSTOMISE=y + +# +# Customise DVB Frontends +# + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m + +# +# Multistandard (cable + terrestrial) frontends +# +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_MB86A16=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_S5H1432=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_DIB9000=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_CXD2820R=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_LGS8GL5=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_IX2505V=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set + +# +# Graphics support +# +# CONFIG_VGA_ARB is not set +# CONFIG_DRM is not set +# CONFIG_STUB_POULSBO is not set +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +# CONFIG_FB_CFB_FILLRECT is not set +# CONFIG_FB_CFB_COPYAREA is not set +# CONFIG_FB_CFB_IMAGEBLIT is not set +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +# CONFIG_FB_SYS_FILLRECT is not set +# CONFIG_FB_SYS_COPYAREA is not set +# CONFIG_FB_SYS_IMAGEBLIT is not set +# CONFIG_FB_FOREIGN_ENDIAN is not set +# CONFIG_FB_SYS_FOPS is not set +# CONFIG_FB_WMT_GE_ROPS is not set +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_UDL is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_BROADSHEET is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set +# CONFIG_LOGO is not set +CONFIG_SOUND=y +CONFIG_SOUND_OSS_CORE=y +CONFIG_SOUND_OSS_CORE_PRECLAIM=y +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_SEQUENCER=y +# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +# CONFIG_SND_PCM_OSS_PLUGINS is not set +# CONFIG_SND_SEQUENCER_OSS is not set +# CONFIG_SND_HRTIMER is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +# CONFIG_SND_RAWMIDI_SEQ is not set +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_EMU10K1_SEQ is not set +# CONFIG_SND_DRIVERS is not set +# CONFIG_SND_PCI is not set +# CONFIG_SND_MIPS is not set +# CONFIG_SND_USB is not set +# CONFIG_SND_SOC is not set +# CONFIG_SOUND_PRIME is not set +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +CONFIG_HIDRAW=y + +# +# USB Input Devices +# +CONFIG_USB_HID=y +# CONFIG_HID_PID is not set +CONFIG_USB_HIDDEV=y + +# +# Special HID drivers +# +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m +CONFIG_HID_CHERRY=m +# CONFIG_HID_CHICONY is not set +# CONFIG_HID_PRODIKEYS is not set +# CONFIG_HID_CYPRESS is not set +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_HOLTEK is not set +# CONFIG_HID_KEYTOUCH is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_TWINHAN is not set +# CONFIG_HID_KENSINGTON is not set +# CONFIG_HID_LCPOWER is not set +CONFIG_HID_LOGITECH=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWII_FF is not set +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set +CONFIG_HID_ORTEK=m +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PETALYNX is not set +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_QUANTA is not set +# CONFIG_HID_ROCCAT is not set +# CONFIG_HID_SAMSUNG is not set +CONFIG_HID_SONY=m +# CONFIG_HID_SPEEDLINK is not set +CONFIG_HID_SUNPLUS=m +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TOPSEED is not set +# CONFIG_HID_THRUSTMASTER is not set +CONFIG_HID_WACOM=m +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +CONFIG_HID_WIIMOTE=m +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_MON is not set +# CONFIG_USB_WUSB is not set +# CONFIG_USB_WUSB_CBAF is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +# CONFIG_USB_XHCI_HCD is not set +# CONFIG_USB_EHCI_HCD is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1760_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_OHCI_HCD is not set +# CONFIG_USB_UHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_WHCI_HCD is not set +# CONFIG_USB_HWA_HCD is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_REALTEK is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +# CONFIG_USB_UAS is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB port drivers +# +CONFIG_USB_SERIAL=m +CONFIG_USB_EZUSB=y +CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_AIRCABLE is not set +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +# CONFIG_USB_SERIAL_CH341 is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_CP210X is not set +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_FUNSOFT is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_IUU is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +CONFIG_USB_SERIAL_KEYSPAN=m +# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_MOTOROLA is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +# CONFIG_USB_SERIAL_OTI6858 is not set +# CONFIG_USB_SERIAL_QCAUX is not set +# CONFIG_USB_SERIAL_QUALCOMM is not set +# CONFIG_USB_SERIAL_SPCP8X5 is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIEMENS_MPI is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_OPTION=m +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set +# CONFIG_USB_SERIAL_ZIO is not set +# CONFIG_USB_SERIAL_SSU100 is not set +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +# CONFIG_USB_GADGET is not set + +# +# OTG and related infrastructure +# +# CONFIG_NOP_USB_XCEIV is not set +# CONFIG_UWB is not set +# CONFIG_MMC is not set +# CONFIG_MEMSTICK is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_LP3944 is not set +# CONFIG_LEDS_LP5521 is not set +# CONFIG_LEDS_LP5523 is not set +# CONFIG_LEDS_PCA955X is not set +# CONFIG_LEDS_BD2802 is not set +CONFIG_LEDS_TRIGGERS=y + +# +# LED Triggers +# +# CONFIG_LEDS_TRIGGER_TIMER is not set +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set +# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set + +# +# iptables trigger is under Netfilter config (LED target) +# +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +CONFIG_RTC_LIB=y +# CONFIG_RTC_CLASS is not set +# CONFIG_DMADEVICES is not set +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set + +# +# Virtio drivers +# +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_BALLOON is not set +CONFIG_STAGING=y +# CONFIG_ET131X is not set +# CONFIG_VIDEO_GO7007 is not set +# CONFIG_VIDEO_CX25821 is not set +# CONFIG_VIDEO_TM6000 is not set +# CONFIG_DVB_CXD2099 is not set +# CONFIG_USBIP_CORE is not set +CONFIG_W35UND=m +CONFIG_PRISM2_USB=m +# CONFIG_ECHO is not set +# CONFIG_BRCMUTIL is not set +# CONFIG_BRCMSMAC is not set +# CONFIG_ASUS_OLED is not set +CONFIG_R8187SE=m +CONFIG_RTL8192U=m +# CONFIG_RTL8192E is not set +CONFIG_R8712U=m +# CONFIG_R8712_AP is not set +# CONFIG_RTS_PSTOR is not set +# CONFIG_TRANZPORT is not set +# CONFIG_POHMELFS is not set +# CONFIG_IDE_PHISON is not set +# CONFIG_LINE6_USB is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set +# CONFIG_VT6655 is not set +# CONFIG_VT6656 is not set +# CONFIG_VME_BUS is not set +# CONFIG_DX_SEP is not set +# CONFIG_IIO is not set +# CONFIG_XVMALLOC is not set +# CONFIG_ZRAM is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_VIDEO_DT3155 is not set +# CONFIG_CRYSTALHD is not set +# CONFIG_FB_XGI is not set +# CONFIG_LIRC_STAGING is not set +# CONFIG_EASYCAP is not set +# CONFIG_SOLO6X10 is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_ALTERA_STAPL is not set +CONFIG_IOMMU_SUPPORT=y +# CONFIG_VIRT_DRIVERS is not set + +# +# File systems +# +CONFIG_EXT2_FS=m +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set +# CONFIG_EXT3_FS_XATTR is not set +CONFIG_EXT4_FS=y +# CONFIG_EXT4_FS_XATTR is not set +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD=y +CONFIG_JBD2=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +# CONFIG_FS_POSIX_ACL is not set +CONFIG_EXPORTFS=m +CONFIG_FILE_LOCKING=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_FANOTIFY is not set +# CONFIG_QUOTA is not set +# CONFIG_QUOTACTL is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m +# CONFIG_CUSE is not set + +# +# Caches +# +# CONFIG_FSCACHE is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +# CONFIG_ZISOFS is not set +CONFIG_UDF_FS=y +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=y +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_TMPFS_XATTR is not set +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_SUMMARY=y +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_RUBIN=y +# CONFIG_JFFS2_CMODE_NONE is not set +# CONFIG_JFFS2_CMODE_PRIORITY is not set +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_JFFS2_CMODE_FAVOURLZO=y +CONFIG_UBIFS_FS=y +# CONFIG_UBIFS_FS_XATTR is not set +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_UBIFS_FS_DEBUG is not set +# CONFIG_LOGFS is not set +# CONFIG_CRAMFS is not set +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_XATTR is not set +CONFIG_SQUASHFS_ZLIB=y +# CONFIG_SQUASHFS_LZO is not set +# CONFIG_SQUASHFS_XZ is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_MINIX_FS_NATIVE_ENDIAN is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +CONFIG_ROOT_NFS=y +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +# CONFIG_NFSD_V4 is not set +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_CEPH_FS is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-15" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=y +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=y + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +CONFIG_FRAME_WARN=0 +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set +# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_SYSCTL_SYSCALL_CHECK is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_TEST_KSTRTOX is not set +CONFIG_EARLY_PRINTK=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="bmem=112M ubi.mtd=0 root=ubi0:rootfs rootfstype=ubifs rw rootflags=sync" +CONFIG_CMDLINE_OVERRIDE=y +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_RUNTIME_DEBUG is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +# CONFIG_CRYPTO_GF128MUL is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_PCRYPT is not set +CONFIG_CRYPTO_WORKQUEUE=y +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_AUTHENC=m +# CONFIG_CRYPTO_TEST is not set + +# +# Authenticated Encryption with Associated Data +# +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_SEQIV is not set + +# +# Block modes +# +CONFIG_CRYPTO_CBC=m +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_GHASH is not set +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +CONFIG_CRYPTO_SHA1=m +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_ARC4=y +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_TWOFISH is not set + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_ZLIB is not set +CONFIG_CRYPTO_LZO=y + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +CONFIG_CRYPTO_HW=y +# CONFIG_CRYPTO_DEV_HIFN_795X is not set +# CONFIG_BINARY_PRINTF is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +CONFIG_CRC_ITU_T=y +CONFIG_CRC32=y +CONFIG_CRC7=m +# CONFIG_LIBCRC32C is not set +# CONFIG_CRC8 is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +# CONFIG_XZ_DEC is not set +# CONFIG_XZ_DEC_BCJ is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CPU_RMAP=y +CONFIG_NLATTR=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_AVERAGE=y +# CONFIG_CORDIC is not set diff --git a/meta-bsp/bm750/recipes/linux/linux-vuplus-3.1.1/linux_3.1.1_bm750.patch b/meta-bsp/bm750/recipes/linux/linux-vuplus-3.1.1/linux_3.1.1_bm750.patch new file mode 100644 index 0000000..e624322 --- /dev/null +++ b/meta-bsp/bm750/recipes/linux/linux-vuplus-3.1.1/linux_3.1.1_bm750.patch @@ -0,0 +1,181 @@ +diff --git a/arch/mips/brcmstb/board.c b/arch/mips/brcmstb/board.c +index ab1cb65..2875cf5 100644 +--- a/arch/mips/brcmstb/board.c ++++ b/arch/mips/brcmstb/board.c +@@ -311,7 +311,7 @@ void __init board_pinmux_setup(void) + PINMUX(7, gpio_035, 1); /* UARTB RX */ + PINMUX(7, gpio_038, 1); /* UARTC TX */ + PINMUX(7, gpio_039, 1); /* UARTC RX */ +- ++#if 0 + PINMUX(9, gpio_054, 3); /* MII */ + PINMUX(9, gpio_055, 3); + PINMUX(9, gpio_056, 3); +@@ -330,6 +330,7 @@ void __init board_pinmux_setup(void) + PINMUX(10, gpio_070, 3); + PINMUX(10, gpio_071, 3); + PINMUX(10, gpio_072, 3); ++#endif + + #elif defined(CONFIG_BCM7340) + +@@ -718,15 +719,13 @@ void __init board_get_ram_size(unsigned long *dram0_mb, unsigned long *dram1_mb) + + static struct mtd_partition fixed_partition_map[] = { + /* name offset size */ +- { name: "rootfs", offset: 0, size:0x1F200000 /* DEFAULT_ROOTFS_SIZE*/ }, /* rootfs is total nand size - 6 M Bytes. referr to cfe. bcm97335_devs.c */ +- { name: "kernel", offset: 0x1F200000, size: 4<<20 }, +- { name: "boot", offset: 0x1F600000, size: 4<<20 }, +- { name: "splash", offset: 0x1FA00000, size: 2<<20 }, +- { name: "cfe", offset: 0x1FC00000, size: 1<<20 }, +- { name: "mac", offset: 0x1FD00000, size: 1<<19 }, +- { name: "env", offset: 0x1FD80000, size: 1<<19 }, +- { name: "nvm", offset: 0x1FE00000, size: 1<<20 }, +- { name: "data", offset: 0x20000000, size: 0x1FC00000 }, ++ { name: "rootfs", offset: 0, size: (128-4-2-3-1)<<20 }, /* rootfs is total nand size - 6 M Bytes. referr to cfe. bcm97335_devs.c */ ++ { name: "kernel", offset: 0x07600000, size: 4<<20 }, ++ { name: "boot", offset: 0x07a00000, size: 2<<20 }, ++ { name: "cfe", offset: 0x07C00000, size: 1<<20 }, ++ { name: "mac", offset: 0x07D00000, size: 1<<19 }, ++ { name: "env", offset: 0x07D80000, size: 1<<19 }, ++ { name: "nvm", offset: 0x07E00000, size: 1<<20 }, + /* BBT 1MB not mountable by anyone */ + /* { name: "data", offset: 0x20000000, size: 0 },*/ + /* Add 1 extra place-holder partition for splash, and a safety guard element */ +diff --git a/drivers/mtd/brcmnand/brcmnand_base.c b/drivers/mtd/brcmnand/brcmnand_base.c +index 22035af..b54bc29 100644 +--- a/drivers/mtd/brcmnand/brcmnand_base.c ++++ b/drivers/mtd/brcmnand/brcmnand_base.c +@@ -226,8 +226,8 @@ static brcmnand_chip_Id brcmnand_chips[] = { + .options = NAND_USE_FLASH_BBT, /* Use BBT on flash */ + .idOptions = 0, + //| NAND_COMPLEX_OOB_WRITE /* Write data together with OOB for write_oob */ +- .timing1 = 0, //00070000, +- .timing2 = 0, ++ .timing1 = 0x4232222D, ++ .timing2 = 0x00000D94, + .nop=8, + .ctrlVersion = 0, /* THT Verified on data-sheet 7/10/08: Allows 4 on main and 4 on OOB */ + }, +@@ -7553,10 +7553,7 @@ brcmnand_decode_config(struct brcmnand_chip* chip, uint32_t nand_config) + chip->blockSize = 2048 << 10; + break; + #endif +- case BCHP_NAND_CONFIG_BLOCK_SIZE_BK_SIZE_256KB: +- chip->blockSize = 256 << 10; +- break; +- case BCHP_NAND_CONFIG_BLOCK_SIZE_BK_SIZE_512KB: ++ case BCHP_NAND_CONFIG_BLOCK_SIZE_BK_SIZE_512KB: + chip->blockSize = 512 << 10; + break; + case BCHP_NAND_CONFIG_BLOCK_SIZE_BK_SIZE_8KB: +@@ -7772,7 +7769,7 @@ is_ecc_strong(int registerEcc, int requiredEcc) + } + + +- ++#if CONFIG_MTD_BRCMNAND_VERSION >= CONFIG_MTD_BRCMNAND_VERS_3_0 + static void + brcmnand_set_acccontrol(struct brcmnand_chip * chip , unsigned int chipSelect, + uint32_t pageSize, uint16_t oobSizePerPage, int reqEcc, int codeWorkSize, int nbrBitsPerCell) +@@ -7928,7 +7925,7 @@ PRINTK("%s: gAccControl[CS=%d]=%08x, ACC=%08lx\n", + #endif + } + } +- ++#endif + + static void + brcmnand_read_id(struct mtd_info *mtd, unsigned int chipSelect, unsigned long* dev_id) +@@ -8005,6 +8002,7 @@ printk("After: NandSelect=%08x, nandConfig=%08x\n", nandSelect, nandConfig); + } + + ++#if CONFIG_MTD_BRCMNAND_VERSION >= CONFIG_MTD_BRCMNAND_VERS_3_0 + /* + * Type-1 ID string, called from brcmnand_probe with the following condition + * if ((brcmnand_chips[i].idOptions & BRCMNAND_ID_HAS_BYTE4) && +@@ -8202,7 +8200,9 @@ PRINTK("nandConfigChipSize = %04x\n", nandConfigChipSize); + + return nand_config; + } ++#endif + ++#if CONFIG_MTD_BRCMNAND_VERSION >= CONFIG_MTD_BRCMNAND_VERS_3_0 + + /* + * Type-2 ID string, called from brcmnand_probe with the following condition +@@ -8372,8 +8372,9 @@ PRINTK("Required ECC level = %d, devIdExt=%08x, eccShift=%02x, sector Size=%d\n" + + return nand_config; + } ++#endif + +- ++#if CONFIG_MTD_BRCMNAND_VERSION >= CONFIG_MTD_BRCMNAND_VERS_3_0 + /* + * Type-2 ID string, called from brcmnand_probe with the following condition + * if ((brcmnand_chips[i].idOptions & BRCMNAND_ID_EXT_BYTES_TYPE2) == +@@ -8519,6 +8520,7 @@ PRINTK("Updating Config Reg on CS%1d: Block & Page Size: After: %08x\n", chip->c + + return nand_config; + } ++#endif + + + #if CONFIG_MTD_BRCMNAND_VERSION >= CONFIG_MTD_BRCMNAND_VERS_4_0 +@@ -9074,7 +9076,7 @@ static int brcmnand_probe(struct mtd_info *mtd, unsigned int chipSelect) + for (i=0; i < BRCMNAND_MAX_CHIPS; i++) { + if (brcmnand_dev_id == brcmnand_chips[i].chipId + && brcmnand_maf_id == brcmnand_chips[i].mafId) { +- ++#if CONFIG_MTD_BRCMNAND_VERSION >= CONFIG_MTD_BRCMNAND_VERS_3_0 + /* No ambiguity in ID#3,4,5 */ + if (brcmnand_chips[i].chipId345[0] == 0x0 + && brcmnand_chips[i].chipId345[1] == 0x0 +@@ -9113,6 +9115,15 @@ static int brcmnand_probe(struct mtd_info *mtd, unsigned int chipSelect) + } + /* Else not match */ + } ++#else ++ if (brcmnand_chips[i].chipId345[0] == 0x0 ++ && brcmnand_chips[i].chipId345[1] == 0x0 ++ && brcmnand_chips[i].chipId345[2] == 0x0) { ++ foundInIdTable = 1; ++ break; ++ } ++ ++#endif + } + } + +@@ -9312,7 +9323,7 @@ static int brcmnand_probe(struct mtd_info *mtd, unsigned int chipSelect) + printk("%s: Ecc level set to %d, sectorSize=%d from ID table\n", __FUNCTION__, chip->reqEccLevel, chip->eccSectorSize); + } + } +- ++#if CONFIG_MTD_BRCMNAND_VERSION >= CONFIG_MTD_BRCMNAND_VERS_3_0 + /* ID not in table, and no CONFIG REG was passed at command line */ + else if (!skipIdLookup && !foundInIdTable) { + uint32_t acc; +@@ -9339,6 +9350,7 @@ printk("%s: Ecc level set to %d, sectorSize=%d from ID table\n", __FUNCTION__, c + printk("Spare Area Size = %dB/512B\n", chip->eccOobSize); + + } ++#endif + } + + /* +@@ -9355,10 +9367,11 @@ printk("%s: Ecc level set to %d, sectorSize=%d from ID table\n", __FUNCTION__, c + // Also works for dummy entries, but no adjustments possible + brcmnand_adjust_timings(chip, &brcmnand_chips[i]); + ++#if CONFIG_MTD_BRCMNAND_VERSION >= CONFIG_MTD_BRCMNAND_VERS_3_0 + // Adjust perchip NAND ACC CONTROL + // updateInternalData = not ONFI .or. not in ID table + brcmnand_adjust_acccontrol(chip, isONFI, foundInIdTable, i); +- ++#endif + + /* Flash device information */ + brcmnand_print_device_info(&brcmnand_chips[i], mtd); diff --git a/meta-bsp/bm750/recipes/linux/linux-vuplus_3.1.1.bbappend b/meta-bsp/bm750/recipes/linux/linux-vuplus_3.1.1.bbappend new file mode 100644 index 0000000..994c35f --- /dev/null +++ b/meta-bsp/bm750/recipes/linux/linux-vuplus_3.1.1.bbappend @@ -0,0 +1,8 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:" + +PR .= "-bsp9" + +SRC_URI += "\ + file://linux_3.1.1_bm750.patch;patch=1;pnum=1 \ + file://linux-sata_brcm.patch;patch=1;pnum=1 \ +" diff --git a/meta-bsp/bm750/recipes/vuplus/vuplus-dvb-modules.bbappend b/meta-bsp/bm750/recipes/vuplus/vuplus-dvb-modules.bbappend new file mode 100644 index 0000000..7f2bdd8 --- /dev/null +++ b/meta-bsp/bm750/recipes/vuplus/vuplus-dvb-modules.bbappend @@ -0,0 +1,7 @@ +SRCDATE = "20120628" + +MODULES_NAME = "procmk\ndvb-bcm7335\nbrcmfb" + +SRC_URI[md5sum] = "2d117a6e5b1ade6fa93ae80218fee23c" +SRC_URI[sha256sum] = "601d82fc6cc426f2e600dd2fd3d2ee7375e451fea51f1332fbee10cf9fd186a4" + diff --git a/meta-bsp/common/classes/image_types_ubi.bbclass b/meta-bsp/common/classes/image_types_ubi.bbclass new file mode 100644 index 0000000..3f1026b --- /dev/null +++ b/meta-bsp/common/classes/image_types_ubi.bbclass @@ -0,0 +1,29 @@ +inherit image_types + +UBI_VOLNAME = "rootfs" + +MKUBIFS_ARGS = "-m 2048 -e 126976 -c ${MKFS_UBI_MAX_ERASE_BLK_COUNT} -F" +UBINIZE_ARGS = "-m 2048 -p 128KiB" + +IMAGEDIR ?= "${MACHINE}" +EXTRA_IMAGECMD_COMPAT = "--eraseblock=0x20000 -n -l" + +IMAGE_CMD_ubi_prepend = " \ + cp ${IMAGE_ROOTFS}/boot/vmlinux.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmlinux.gz; \ + rm -f ${IMAGE_ROOTFS}/boot/vmlinux.gz; \ + mkfs.jffs2 --root=${IMAGE_ROOTFS}/boot --faketime \ + --disable-compressor=lzo --compression-mode=size \ + --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.boot.jffs2 \ + ${EXTRA_IMAGECMD_COMPAT}; rm -rf ${IMAGE_ROOTFS}/boot/*; \ +" + +IMAGE_CMD_ubi_append = " \ + vfi3 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubi ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.boot.jffs2 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmlinux.gz > ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfi; \ + mkdir -p ${DEPLOY_DIR_IMAGE}/${IMAGE_UNPACK_PATH}; \ + cp ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubi ${DEPLOY_DIR_IMAGE}/${IMAGE_UNPACK_PATH}/root_cfe_auto.jffs2; \ + cp ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.boot.jffs2 ${DEPLOY_DIR_IMAGE}/${IMAGE_UNPACK_PATH}/boot_cfe_auto.jffs2; \ + cp ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmlinux.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_UNPACK_PATH}/kernel_cfe_auto.bin; \ + cd ${DEPLOY_DIR_IMAGE}; \ + zip ${IMAGE_NAME}_usb.zip ${IMAGE_UNPACK_PATH}/*; \ + rm -rf vuplus; \ +" diff --git a/meta-bsp/common/classes/image_types_ubi_splash.bbclass b/meta-bsp/common/classes/image_types_ubi_splash.bbclass new file mode 100644 index 0000000..ea07bf2 --- /dev/null +++ b/meta-bsp/common/classes/image_types_ubi_splash.bbclass @@ -0,0 +1,31 @@ +inherit image_types + +UBI_VOLNAME = "rootfs" +MKUBIFS_ARGS = "-m 2048 -e 126976 -c ${MKFS_UBI_MAX_ERASE_BLK_COUNT} -F" +UBINIZE_ARGS = "-m 2048 -p 128KiB" + +IMAGEDIR ?= "${MACHINE}" +EXTRA_IMAGECMD_COMPAT = "--eraseblock=0x20000 -n -l" + +IMAGE_CMD_ubi_prepend = " \ + cp ${IMAGE_ROOTFS}/boot/vmlinux.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmlinux.gz; \ + cp ${IMAGE_ROOTFS}/boot/splash_cfe_auto.bin ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.splash_cfe_auto.bin; \ + rm -f ${IMAGE_ROOTFS}/boot/vmlinux.gz; \ + rm -f ${IMAGE_ROOTFS}/boot/splash_cfe_auto.bin; \ + mkfs.jffs2 --root=${IMAGE_ROOTFS}/boot --faketime \ + --disable-compressor=lzo --compression-mode=size \ + --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.boot.jffs2 \ + ${EXTRA_IMAGECMD_COMPAT}; rm -rf ${IMAGE_ROOTFS}/boot/*; \ +" + +IMAGE_CMD_ubi_append = " \ + vfi3 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubi ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.boot.jffs2 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmlinux.gz > ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfi; \ + mkdir -p ${DEPLOY_DIR_IMAGE}/${IMAGE_UNPACK_PATH}; \ + cp ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubi ${DEPLOY_DIR_IMAGE}/${IMAGE_UNPACK_PATH}/root_cfe_auto.jffs2; \ + cp ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.boot.jffs2 ${DEPLOY_DIR_IMAGE}/${IMAGE_UNPACK_PATH}/boot_cfe_auto.jffs2; \ + cp ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmlinux.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_UNPACK_PATH}/kernel_cfe_auto.bin; \ + cp ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.splash_cfe_auto.bin ${DEPLOY_DIR_IMAGE}/${IMAGE_UNPACK_PATH}/splash_cfe_auto.bin; \ + cd ${DEPLOY_DIR_IMAGE}; \ + zip ${IMAGE_NAME}_usb.zip ${IMAGE_UNPACK_PATH}/*; \ + rm -rf vuplus; \ +" diff --git a/meta-bsp/common/conf/layer.conf b/meta-bsp/common/conf/layer.conf new file mode 100644 index 0000000..b5d52e3 --- /dev/null +++ b/meta-bsp/common/conf/layer.conf @@ -0,0 +1,10 @@ +BBFILES += "${LAYERDIR}/recipes/*/*.bb" +#BBFILES += "${LAYERDIR}/recipes/*/*.bbappend" +BBPATH .= ":${LAYERDIR}" +BBFILE_COLLECTIONS += "bsp-common" +BBFILE_PRIORITY_bsp-common = "30" +BBFILE_PATTERN_bsp-common := "^${LAYERDIR}/" + +SIGGEN_EXCLUDERECIPES_ABISAFE += " \ + vuplus-bootlogo \ +" diff --git a/meta-bsp/common/conf/machine/include/vuplus-mips32el.inc b/meta-bsp/common/conf/machine/include/vuplus-mips32el.inc new file mode 100644 index 0000000..1204152 --- /dev/null +++ b/meta-bsp/common/conf/machine/include/vuplus-mips32el.inc @@ -0,0 +1,11 @@ +# vuplus-mips32el.inc + +VUPLUS_KERNEL_VERSION = "3.1.1" +LINUXLIBCVERSION = "3.1.1" +#OLDEST_KERNEL = "3.1.1" + +TARGET_ARCH = "mipsel" +DEFAULTTUNE = "mips32el" + +require conf/machine/include/vuplus.inc +require conf/machine/include/tune-mips32.inc diff --git a/meta-bsp/common/conf/machine/include/vuplus-ubi-splash.inc b/meta-bsp/common/conf/machine/include/vuplus-ubi-splash.inc new file mode 100644 index 0000000..6a12348 --- /dev/null +++ b/meta-bsp/common/conf/machine/include/vuplus-ubi-splash.inc @@ -0,0 +1,4 @@ +inherit image_types_ubi_splash + +IMAGE_FSTYPES ?= "ubi" + diff --git a/meta-bsp/common/conf/machine/include/vuplus-ubi.inc b/meta-bsp/common/conf/machine/include/vuplus-ubi.inc new file mode 100644 index 0000000..9207e42 --- /dev/null +++ b/meta-bsp/common/conf/machine/include/vuplus-ubi.inc @@ -0,0 +1,4 @@ +inherit image_types_ubi + +IMAGE_FSTYPES ?= "ubi" + diff --git a/meta-bsp/common/conf/machine/include/vuplus.inc b/meta-bsp/common/conf/machine/include/vuplus.inc new file mode 100644 index 0000000..1a5080b --- /dev/null +++ b/meta-bsp/common/conf/machine/include/vuplus.inc @@ -0,0 +1,19 @@ +# vuplus.inc + +GLIBC_EXTRA_OECONF = "--with-tls --with-__thread" + +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel" +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "vuplus-bootlogo" +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "vuplus-dvb-modules" +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "task-vuplus-essential" +MACHINE_FEATURES += "alsa kernel26 wifi" + +PREFERRED_PROVIDER_virtual/kernel = "linux-vuplus" + +PREFERRED_VERSION_linux-vuplus = "${VUPLUS_KERNEL_VERSION}" + +KERNEL_IMAGETYPE = "vmlinux" +KERNEL_OUTPUT = "${KERNEL_IMAGETYPE}" + +EXTRA_IMAGEDEPENDS += "vuplus-makenfi-native" + diff --git a/meta-bsp/common/recipes/linux/linux-vuplus-3.1.1/fix_cpu_proc.patch b/meta-bsp/common/recipes/linux/linux-vuplus-3.1.1/fix_cpu_proc.patch new file mode 100644 index 0000000..3025fec --- /dev/null +++ b/meta-bsp/common/recipes/linux/linux-vuplus-3.1.1/fix_cpu_proc.patch @@ -0,0 +1,13 @@ +diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c +index ebc0cd2..35f32ae 100644 +--- a/arch/mips/kernel/cpu-probe.c ++++ b/arch/mips/kernel/cpu-probe.c +@@ -941,7 +941,7 @@ static inline void cpu_probe_broadcom(struct cpuinfo_mips *c, unsigned int cpu) + if (rev >= PRID_REV_BMIPS4380_LO && + rev <= PRID_REV_BMIPS4380_HI) { + c->cputype = CPU_BMIPS4380; +- __cpu_name[cpu] = "Broadcom BMIPS4380"; ++ __cpu_name[cpu] = "Brcm4380"; + set_elf_platform(cpu, "bmips4380"); + } else { + c->cputype = CPU_BMIPS4350; diff --git a/meta-bsp/common/recipes/linux/linux-vuplus-3.1.1/igmp.patch b/meta-bsp/common/recipes/linux/linux-vuplus-3.1.1/igmp.patch new file mode 100644 index 0000000..e2e648c --- /dev/null +++ b/meta-bsp/common/recipes/linux/linux-vuplus-3.1.1/igmp.patch @@ -0,0 +1,13 @@ +diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c +index d577199..e0d42db 100644 +--- a/net/ipv4/igmp.c ++++ b/net/ipv4/igmp.c +@@ -875,6 +875,8 @@ static void igmp_heard_query(struct in_device *in_dev, struct sk_buff *skb, + * to be intended in a v3 query. + */ + max_delay = IGMPV3_MRC(ih3->code)*(HZ/IGMP_TIMER_SCALE); ++ if (!max_delay) ++ max_delay = 1; /* can't mod w/ 0 */ + } else { /* v3 */ + if (!pskb_may_pull(skb, sizeof(struct igmpv3_query))) + return; diff --git a/meta-bsp/common/recipes/linux/linux-vuplus-3.1.1/linux-sata_brcm.patch b/meta-bsp/common/recipes/linux/linux-vuplus-3.1.1/linux-sata_brcm.patch new file mode 100644 index 0000000..9216bad --- /dev/null +++ b/meta-bsp/common/recipes/linux/linux-vuplus-3.1.1/linux-sata_brcm.patch @@ -0,0 +1,243 @@ +diff --git a/drivers/ata/sata_brcmstb.c b/drivers/ata/sata_brcmstb.c +index 7ba20e0..ca02cdf 100644 +--- a/drivers/ata/sata_brcmstb.c ++++ b/drivers/ata/sata_brcmstb.c +@@ -53,9 +53,7 @@ + #include + #include + #include +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32) + #include +-#endif + + #ifdef CONFIG_PPC_OF + #include +@@ -127,7 +125,7 @@ enum { + K2_SATA_TF_LBAM_OFFSET = 0x10, + K2_SATA_TF_LBAH_OFFSET = 0x14, + K2_SATA_TF_DEVICE_OFFSET = 0x18, +- K2_SATA_TF_CMDSTAT_OFFSET = 0x1c, ++ K2_SATA_TF_CMDSTAT_OFFSET = 0x1c, + K2_SATA_TF_CTL_OFFSET = 0x20, + + /* DMA base */ +@@ -142,7 +140,7 @@ enum { + /* Others */ + K2_SATA_SICR1_OFFSET = 0x80, + K2_SATA_SICR2_OFFSET = 0x84, +- K2_SATA_SIMR_OFFSET = 0x88, /* SATA interrupt mask register */ ++ K2_SATA_SIMR_OFFSET = 0x88, /* SATA intr mask register */ + K2_SATA_MDIO_OFFSET = 0x8c, /* SATA MDIO access register */ + K2_SATA_SCQR_OFFSET = 0x94, /* SATA command queue depth */ + K2_SATA_QAL_OFFSET = 0xa0, /* QDMA ring address lower */ +@@ -330,6 +328,22 @@ static void brcm_EnableOOBWindowFix(void __iomem *mmio_base, int port) + mdio_write_reg(mmio_base, port, 0x0D, sval); + } + ++static void brcm_Enable256AlignDetection(void __iomem *mmio_base, int port) ++{ ++ uint32_t tmp32; ++ void __iomem *port_mmio; ++ ++ port_mmio = PORT_BASE(mmio_base, port); ++ ++ tmp32 = readl(port_mmio + K2_SATA_SICR1_OFFSET); ++ tmp32 |= 0x08000000; ++ writel(tmp32, port_mmio + K2_SATA_SICR1_OFFSET); ++ ++ tmp32 = readl(port_mmio + K2_SATA_SICR2_OFFSET); ++ tmp32 |= 0x00800000; ++ writel(tmp32, port_mmio + K2_SATA_SICR2_OFFSET); ++} ++ + static void brcm_AnalogReset(void __iomem *mmio_base, int port) + { + /* do analog reset */ +@@ -385,6 +399,8 @@ static void brcm_InitSata_1_5Gb(void __iomem *mmio_base, int port) + brcm_SetPllTxRxCtrl(mmio_base, port); + brcm_EnableOOBWindowFix(mmio_base, port); + ++ brcm_Enable256AlignDetection(mmio_base, port); ++ + if (!port) { + #ifdef CONFIG_BRCM_SATA_75MHZ_PLL + /* use 75Mhz PLL clock */ +@@ -446,6 +462,8 @@ static void brcm_InitSata2_3Gb(void __iomem *mmio_base, int port) + brcm_SetPllTxRxCtrl(mmio_base, port); + brcm_EnableOOBWindowFix(mmio_base, port); + ++ brcm_Enable256AlignDetection(mmio_base, port); ++ + if (!port) { + #ifdef CONFIG_BRCM_SATA_75MHZ_PLL + /* use 75Mhz PLL clock */ +@@ -758,11 +776,7 @@ static void k2_bmdma_setup_mmio(struct ata_queued_cmd *qc) + void __iomem *mmio = (void __iomem *) ap->ioaddr.bmdma_addr; + /* load PRD table addr. */ + mb(); /* make sure PRD table writes are visible to controller */ +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) + writel(ap->bmdma_prd_dma, mmio + ATA_DMA_TABLE_OFS); +-#else +- writel(ap->prd_dma, mmio + ATA_DMA_TABLE_OFS); +-#endif + + /* specify data direction, triple-check start bit is clear */ + dmactl = readb(mmio + ATA_DMA_CMD); +@@ -819,11 +833,7 @@ static void k2_bmdma_start_mmio(struct ata_queued_cmd *qc) + + static int k2_sata_port_start(struct ata_port *ap) + { +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) + ata_bmdma_port_start(ap); +-#else +- ata_port_start(ap); +-#endif + return 0; + } + +@@ -848,8 +858,7 @@ static irqreturn_t k2_sata_interrupt(int irq, void *dev_instance) + + ap = host->ports[i]; + +- ata_for_each_link(link, ap, EDGE) +- { ++ ata_for_each_link(link, ap, EDGE) { + int rc; + unsigned int serror; + +@@ -887,11 +896,7 @@ static irqreturn_t k2_sata_interrupt(int irq, void *dev_instance) + if (handled & IRQ_HANDLED) + return handled; + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) + return ata_bmdma_interrupt(irq, dev_instance); +-#else +- return ata_sff_interrupt(irq, dev_instance); +-#endif + } + + /* +@@ -1044,10 +1049,7 @@ static void k2_sata_remove_one(struct pci_dev *pdev) + struct k2_host_priv *hp = host->private_data; + + brcm_pm_unregister_cb("sata"); +- +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32) + pm_runtime_get_noresume(&pdev->dev); +-#endif + + K2_POWER_ON(host); + ata_pci_remove_one(pdev); +@@ -1135,7 +1137,9 @@ static int k2_sata_resume(struct device *dev) + ap = host->ports[i]; + + ata_for_each_link(link, ap, EDGE) { ++ spin_unlock_irqrestore(&hp->lock, flags); + sata_std_hardreset(link, NULL, 1000); ++ spin_lock_irqsave(&hp->lock, flags); + } + } + +@@ -1144,7 +1148,6 @@ static int k2_sata_resume(struct device *dev) + return 0; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32) + static int k2_sata_runtime_suspend(struct device *dev) + { + return k2_sata_suspend(dev); +@@ -1162,8 +1165,6 @@ static int k2_sata_runtime_idle(struct device *dev) + return 0; /* ignored by pm core */ + } + +-#endif +- + /* + * Driver initialization + */ +@@ -1206,25 +1207,25 @@ static struct ata_port_operations k2_sata_ops = { + }; + + static const struct ata_port_info k2_port_info[] = { +- /* chip_sata1 */ +- { +- .flags = ATA_FLAG_SATA | +- K2_FLAG_NO_ATAPI_DMA, +- .pio_mask = 0x1f, +- .mwdma_mask = 0x07, +- .udma_mask = ATA_UDMA7, +- .port_ops = &k2_sata_ops, +- }, +- /* chip_sata2 */ +- { +- .flags = ATA_FLAG_SATA | +- K2_FLAG_NO_ATAPI_DMA | +- K2_FLAG_BRCM_SATA2, +- .pio_mask = 0x1f, +- .mwdma_mask = 0x07, +- .udma_mask = ATA_UDMA7, +- .port_ops = &k2_sata_ops, +- }, ++ /* chip_sata1 */ ++ { ++ .flags = ATA_FLAG_SATA | ++ K2_FLAG_NO_ATAPI_DMA, ++ .pio_mask = 0x1f, ++ .mwdma_mask = 0x07, ++ .udma_mask = ATA_UDMA7, ++ .port_ops = &k2_sata_ops, ++ }, ++ /* chip_sata2 */ ++ { ++ .flags = ATA_FLAG_SATA | ++ K2_FLAG_NO_ATAPI_DMA | ++ K2_FLAG_BRCM_SATA2, ++ .pio_mask = 0x1f, ++ .mwdma_mask = 0x07, ++ .udma_mask = ATA_UDMA7, ++ .port_ops = &k2_sata_ops, ++ }, + }; + + static void k2_sata_setup_port(struct ata_ioports *port, void __iomem *base) +@@ -1250,8 +1251,8 @@ static int k2_sata_init_one(struct pci_dev *pdev, + const struct pci_device_id *ent) + { + static int printed_version; +- const struct ata_port_info *ppi[] = +- { &k2_port_info[ent->driver_data], NULL }; ++ const struct ata_port_info *ppi[] = { ++ &k2_port_info[ent->driver_data], NULL }; + struct ata_host *host; + void __iomem *mmio_base; + int n_ports, i, rc, bar_pos; +@@ -1358,13 +1359,10 @@ static int k2_sata_init_one(struct pci_dev *pdev, + + brcm_pm_register_cb("sata", k2_sata_pm_cb, host); + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32) + /* pci core incremented pm counter before calling probe, + * we are decrementing it to enable runtime pm */ + pm_runtime_put_noidle(&pdev->dev); + +-#endif +- + return 0; + } + +@@ -1374,14 +1372,12 @@ static const struct pci_device_id k2_sata_pci_tbl[] = { + { } + }; + +-static struct dev_pm_ops k2_sata_pm_ops = { ++static const struct dev_pm_ops k2_sata_pm_ops = { + .suspend_noirq = k2_sata_suspend, + .resume_noirq = k2_sata_resume, +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32) + .runtime_suspend = k2_sata_runtime_suspend, + .runtime_resume = k2_sata_runtime_resume, + .runtime_idle = k2_sata_runtime_idle, +-#endif + }; + + static struct pci_driver k2_sata_pci_driver = { diff --git a/meta-bsp/common/recipes/linux/linux-vuplus_3.1.1.bb b/meta-bsp/common/recipes/linux/linux-vuplus_3.1.1.bb new file mode 100644 index 0000000..f63da3e --- /dev/null +++ b/meta-bsp/common/recipes/linux/linux-vuplus_3.1.1.bb @@ -0,0 +1,52 @@ +DESCRIPTION = "Linux kernel for vuplus" +SECTION = "kernel" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" + +KV = "3.1.1" +SRCREV = "r2" + +MODULE = "linux-3.1.1" + +SRC_URI += "http://archive.vuplus.com/download/kernel/linux-${KV}_${SRCREV}.tar.bz2 \ + file://fix_cpu_proc.patch;patch=1;pnum=1 \ + file://${MACHINE}_defconfig \ + file://igmp.patch;patch=1;pnum=1 \ +" + +SRC_URI[md5sum] = "4dc3ac322453abbfaade7020cddea205" +SRC_URI[sha256sum] = "1d18eb39677a23eace6b27ee25656c25f21b57be7e77a2adcdd15c76d1c3e875" + +S = "${WORKDIR}/linux-${KV}" + +inherit kernel + +FILES_kernel-vmlinux = "/boot/vmlinux-3.1.1" +FILES_kernel-image = "/boot/vmlinux.gz" + +export OS = "Linux" +KERNEL_IMAGETYPE = "vmlinux" +KERNEL_OUTPUT = "vmlinux" +KERNEL_OBJECT_SUFFIX = "ko" + + +do_configure_prepend() { + oe_machinstall -m 0644 ${WORKDIR}/${MACHINE}_defconfig ${S}/.config + oe_runmake oldconfig +} + +kernel_do_install_append() { + install -d ${D}/${KERNEL_IMAGEDEST} + install -m 0755 ${KERNEL_OUTPUT} ${D}/${KERNEL_IMAGEDEST} + gzip ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} +} + +pkg_postinst_kernel-image () { + if [ -d /proc/stb ] ; then + flash_eraseall -j /dev/mtd1 + nandwrite -p /dev/mtd1 /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}.gz + fi + rm -f /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}.gz + true +} + diff --git a/meta-bsp/common/recipes/tasks/task-vuplus-essential.bb b/meta-bsp/common/recipes/tasks/task-vuplus-essential.bb new file mode 100644 index 0000000..74070a8 --- /dev/null +++ b/meta-bsp/common/recipes/tasks/task-vuplus-essential.bb @@ -0,0 +1,79 @@ +SUMMARY = "Vuplus: Essential packages" +SECTION = "vuplus/base" +LICENSE = "CLOSED" +DEPENDS = "virtual/kernel" +RDEPENDS_${PN} = '${ESSENTIAL_RDEPENDS}' + +RRECOMMENDS_${PN} = '${ESSENTIAL_RRECOMMENDS}' + +#RDEPENDS_${PN} += '${KERNEL_3G_MODULES}' +RDEPENDS_${PN} += '${KERNEL_DVB_MODULES}' + +PR = "r0" + +inherit task + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +ESSENTIAL_RDEPENDS = " \ + kernel-module-stv0299 \ +" + +ESSENTIAL_RRECOMMENDS = " \ + kernel-module-autofs4 \ + kernel-module-cdrom \ + kernel-module-cifs \ + kernel-module-nls-cp850 \ + kernel-module-nls-iso8859-1 \ + kernel-module-nls-iso8859-15 \ + kernel-module-ntfs \ + kernel-module-reiserfs \ + kernel-module-sr-mod \ + kernel-module-usbhid \ + kernel-module-ext2 \ +" + +KERNEL_3G_MODULES = " \ + kernel-module-ppp-async \ + kernel-module-ppp-deflate \ + kernel-module-ppp-synctty \ + kernel-module-ppp-generic \ + kernel-module-slhc \ + kernel-module-usbserial \ +" + +KERNEL_DVB_MODULES = " \ + kernel-module-em28xx-dvb \ + kernel-module-dvb-usb-a800 \ + kernel-module-dvb-usb-af9005 \ + kernel-module-af9013 kernel-module-mt2060 kernel-module-qt1010 kernel-module-tda18271 kernel-module-mxl5005s kernel-module-mc44s803 kernel-module-tda18218 kernel-module-mxl5007t kernel-module-dvb-usb-af9015 \ + kernel-module-mxl5007t kernel-module-tda18218 \ + kernel-module-tda10021 kernel-module-tda10023 kernel-module-mt352 kernel-module-zl10353 kernel-module-tda18212 kernel-module-cx24116 kernel-module-stv0900 kernel-module-stv6110 kernel-module-stv6110x kernel-module-isl6423 kernel-module-dvb-usb-anysee \ + kernel-module-zl10353 kernel-module-qt1010 kernel-module-dvb-usb-au6610 \ + kernel-module-dvb-usb-az6027 \ + kernel-module-zl10353 kernel-module-mxl5005s kernel-module-dvb-usb-ce6230 \ + kernel-module-lgdt330x kernel-module-mt352 kernel-module-zl10353 kernel-module-tuner-xc2028 kernel-module-tuner-simple kernel-module-mxl5005s kernel-module-max2165 kernel-module-lgs8gxx kernel-module-atbm8830 kernel-module-dvb-usb-cxusb kernel-module-drxd \ + kernel-module-dvb-usb-cinergyt2 \ + kernel-module-mt352 kernel-module-nxt6000 kernel-module-dvb-usb-digitv \ + kernel-module-mt2060 kernel-module-mt2266 kernel-module-tuner-xc2028 kernel-module-xc5000 kernel-module-xc4000 kernel-module-s5h1411 kernel-module-lgdt3305 kernel-module-mxl5007t kernel-module-dvb-usb-dib0700 \ + kernel-module-dvb-usb-dibusb-mb \ + kernel-module-dvb-usb-dibusb-mc \ + kernel-module-zl10353 kernel-module-qt1010 kernel-module-dvb-usb-dtv5100 \ + kernel-module-dvb-usb-dtt200u \ + kernel-module-si21xx kernel-module-stv0299 kernel-module-stv0288 kernel-module-stb6000 kernel-module-cx24116 \ + kernel-module-mt312 kernel-module-zl10039 kernel-module-ds3000 kernel-module-stv0900 kernel-module-stv6110 kernel-module-dvb-usb-dw2102 \ + kernel-module-ec100 kernel-module-mxl5005s kernel-module-dvb-usb-ec168 \ + kernel-module-zl10353 kernel-module-qt1010 kernel-module-dvb-usb-gl861 \ + kernel-module-dvb-usb-gp8psk \ + kernel-module-mt352 kernel-module-qt1010 kernel-module-tda1004x kernel-module-tda827x kernel-module-dvb-usb-m920x \ + kernel-module-stv0299 kernel-module-dvb-usb-opera \ + kernel-module-stv090x kernel-module-dvb-usb-technisat-usb2 \ + kernel-module-tda826x kernel-module-tda10086 kernel-module-tda827x kernel-module-lnbp21 kernel-module-dvb-usb-ttusb2 \ + kernel-module-dvb-ttusb-budget \ + kernel-module-dvb-usb-nova-t-usb2 \ + kernel-module-mt352 kernel-module-dvb-usb-umt-010 \ + kernel-module-dvb-usb-vp702x \ + kernel-module-dvb-usb-vp7045 \ + kernel-module-smsdvb kernel-module-smsusb \ +" + diff --git a/meta-bsp/common/recipes/vuplus/vuplus-bootlogo.bb b/meta-bsp/common/recipes/vuplus/vuplus-bootlogo.bb new file mode 100644 index 0000000..c57e440 --- /dev/null +++ b/meta-bsp/common/recipes/vuplus/vuplus-bootlogo.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "Bootlogo support" +SECTION = "base" +PRIORITY = "required" +LICENSE = "proprietary" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Proprietary;md5=0557f9d92cf58f2ccdd50f62f8ac0b28" + +IMAGES_VERSION = "1" +BINARY_VERSION = "7" + +PV = "${BINARY_VERSION}.${IMAGES_VERSION}" +PR = "r5" + +SRC_URI = "file://bootlogo.mvi file://backdrop.mvi file://bootlogo_wait.mvi file://switchoff.mvi" + +S = "${WORKDIR}/" + +MVI = "bootlogo backdrop bootlogo_wait" + +do_install() { + install -d ${D}/boot + install -d ${D}/usr/share + for i in ${MVI}; do + install -m 0755 ${S}/$i.mvi ${D}/usr/share/$i.mvi; + ln -sf /usr/share/$i.mvi ${D}/boot/$i.mvi; + done; +} + +PACKAGE_ARCH := "${MACHINE_ARCH}" +FILES_${PN} = "/boot /usr/share" diff --git a/meta-bsp/common/recipes/vuplus/vuplus-bootlogo/backdrop.mvi b/meta-bsp/common/recipes/vuplus/vuplus-bootlogo/backdrop.mvi new file mode 100644 index 0000000000000000000000000000000000000000..36f88cb127fc7f3b03aa38b782cbaa679ef33d8f GIT binary patch literal 74877 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 literal 0 HcmV?d00001 diff --git a/meta-bsp/common/recipes/vuplus/vuplus-bootlogo/bootlogo.mvi b/meta-bsp/common/recipes/vuplus/vuplus-bootlogo/bootlogo.mvi new file mode 100644 index 0000000000000000000000000000000000000000..004c839ca53ba3b50770c0d9bbc5bf148656d7f9 GIT binary patch literal 74952 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
O(C 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 EFS$1p<^TWy literal 0 HcmV?d00001 diff --git a/meta-bsp/common/recipes/vuplus/vuplus-bootlogo/bootlogo_wait.mvi b/meta-bsp/common/recipes/vuplus/vuplus-bootlogo/bootlogo_wait.mvi new file mode 100644 index 0000000000000000000000000000000000000000..004c839ca53ba3b50770c0d9bbc5bf148656d7f9 GIT binary patch literal 74952 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
O(C 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 EFS$1p<^TWy literal 0 HcmV?d00001 diff --git a/meta-bsp/common/recipes/vuplus/vuplus-bootlogo/splash_cfe_auto.bin b/meta-bsp/common/recipes/vuplus/vuplus-bootlogo/splash_cfe_auto.bin new file mode 100644 index 0000000000000000000000000000000000000000..11c6ccc40105b3bc5eaf7b694f835e696b22c5f0 GIT binary patch literal 1244216 zcmeF)2YgiLnLqmHoHKn!(rDCs@4X|`K|(?TArJ@w5~6p}F<`*h*hw76jve>jFm_@m z*x1?WJ+-TS%!yG8eR=9Pw#M9OvItR4R*li}!;_ni64pU?Z~ zdE2zvQ~t{*=Bpb2&&B`W)kT`|e@$Y|-J;{T&n^D{`*-kz0u-PC1t>rP3Q&Lo6rcbF zC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epy zpa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+ zfC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O z0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC z1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo z6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)U zP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZ zKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt z00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun z0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP z3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbF zC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epy zpa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+ zfC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O z0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC z1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo z6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)U zP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZ zKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt z00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun z0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP z3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbF zC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epy zpa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+ zfC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O z0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC z1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo z6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)U zP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZ zKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt z00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun z0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP z3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbF zC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epy 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 literal 0 HcmV?d00001 diff --git a/meta-bsp/common/recipes/vuplus/vuplus-bootlogo/switchoff.mvi b/meta-bsp/common/recipes/vuplus/vuplus-bootlogo/switchoff.mvi new file mode 100644 index 0000000000000000000000000000000000000000..15d50b8d234f4d7790788a129d72c9f6395a5ebd GIT binary patch literal 74951 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 literal 0 HcmV?d00001 diff --git a/meta-bsp/common/recipes/vuplus/vuplus-dvb-modules.bb b/meta-bsp/common/recipes/vuplus/vuplus-dvb-modules.bb new file mode 100755 index 0000000..2bccc28 --- /dev/null +++ b/meta-bsp/common/recipes/vuplus/vuplus-dvb-modules.bb @@ -0,0 +1,48 @@ +DESCRIPTION = "Hardware drivers for VuPlus" +SECTION = "base" +PRIORITY = "required" +LICENSE = "CLOSED" + +KV = "${@base_contains('PREFERRED_VERSION_linux-vuplus', '2.6.18', '2.6.18', '3.1.1', d)}" +PV = "${KV}" + +RDEPENDS_2.6.18 = "kernel (${KV}) kernel-module-firmware-class kernel-module-input kernel-module-evdev kernel-module-i2c-core kernel-module-snd kernel-module-snd-pcm" +RDEPENDS_3.1 = "kernel (${KV})" + +RDEPENDS = "\ + ${@base_contains('PREFERRED_VERSION_linux-vuplus', '2.6.18', '${RDEPENDS_2.6.18}', '${RDEPENDS_3.1}', d)} \ +" + +PR = "r19-${SRCDATE}" + +#hack +DEPENDS = " module-init-tools" +RDEPENDS_append_vuplus = " module-init-tools-depmod" + +PREFERRED_GCC_VERSION = "4.4.3" + +SRC_URI = "http://archive.vuplus.com/download/drivers/vuplus-dvb-modules-${MACHINE}-${PV}-${PREFERRED_GCC_VERSION}-${SRCDATE}.tar.gz " + +S = "${WORKDIR}" + +do_install() { + install -d ${D}/lib/modules/${KV}/extra + for f in *.ko; do + install -m 0644 ${WORKDIR}/$f ${D}/lib/modules/${KV}/extra/$f; + done + if [ "${KV}" = "3.1.1" ]; then + install -d ${D}/etc/modules-load.d + echo -e "${MODULES_NAME}" > ${D}/etc/modules-load.d/${PN}.conf + echo -e "${MODULES_NAME}" > ${D}/etc/modules + fi +} + +pkg_postinst_vuplus-dvb-modules () { + if [ -d /proc/stb ]; then + depmod -ae + fi + true +} + +PACKAGE_ARCH := "${MACHINE_ARCH}" +FILES_${PN} = "/" diff --git a/meta-openembedded b/meta-openembedded new file mode 160000 index 0000000..e77646b --- /dev/null +++ b/meta-openembedded @@ -0,0 +1 @@ +Subproject commit e77646bc2cf905fd671fc5c19ab6fd17f9b94b3f diff --git a/meta-openvuplus/classes/xinetd.bbclass b/meta-openvuplus/classes/xinetd.bbclass new file mode 100644 index 0000000..b6eebd5 --- /dev/null +++ b/meta-openvuplus/classes/xinetd.bbclass @@ -0,0 +1,98 @@ +# +# xinetd.bbclass +# + +DEPENDS += "xinetd" + +XINETD_PACKAGES ??= "${PN}-xinetd" + +do_install_append() { + install -d ${D}${sysconfdir}/xinetd.d + for srcfile in ${WORKDIR}/*.xinetd.in; do + dstfile=`basename $srcfile .xinetd.in` + sed -e 's,@BINDIR@,${bindir},' \ + -e 's,@SBINDIR@,${sbindir},' \ + $srcfile > ${D}${sysconfdir}/xinetd.d/$dstfile + chmod 644 ${D}${sysconfdir}/xinetd.d/$dstfile + done +} + +xinetd_reload() { +[ -z "$D" ] && PID=`pidof xinetd` && kill -HUP $PID || true +} + +def xinetd_after_parse(d): + def xinetd_create_package(pkg): + packages = d.getVar('PACKAGES', True).split() + if not pkg in packages: + packages.insert(0, pkg) + d.setVar('PACKAGES', ' '.join(packages)) + + bpn = d.getVar('BPN', 1) + if bpn + "-native" != d.getVar('PN', 1) and \ + bpn + "-cross" != d.getVar('PN', 1) and \ + bpn + "-nativesdk" != d.getVar('PN', 1): + for pkg in d.getVar('XINETD_PACKAGES', True).split(): + xinetd_create_package(pkg) + +python __anonymous() { + xinetd_after_parse(d) +} + +python populate_packages_prepend () { + def xinetd_generate_package_scripts(pkg): + bb.note('adding xinetd postinst and postrm scripts to %s' % pkg) + + postinst = d.getVar('pkg_postinst_%s' % pkg, True) or d.getVar('pkg_postinst', True) + if not postinst: + postinst = '#!/bin/sh\n' + postinst += d.getVar('xinetd_reload', True) + d.setVar('pkg_postinst_%s' % pkg, postinst) + + postrm = d.getVar('pkg_postrm_%s' % pkg, True) or d.getVar('pkg_postrm', True) + if not postrm: + postrm = '#!/bin/sh\n' + postrm += d.getVar('xinetd_reload', True) + d.setVar('pkg_postrm_%s' % pkg, postrm) + + def xinetd_add_rdepends(pkg): + bb.note("adding xinetd dependency to %s" % pkg) + + rdepends = (d.getVar('RDEPENDS_%s' % pkg, True) or "").split() + if pkg.endswith('-xinetd'): + basepkg = pkg[:-len('-xinetd')] + if not basepkg in rdepends: + rdepends.append(basepkg) + if not 'xinetd' in rdepends: + rdepends.append('xinetd') + d.setVar('RDEPENDS_%s' % pkg, ' '.join(rdepends)) + + def xinetd_add_rconflicts(pkg): + bb.note("adding xinetd conflicts to %s" % pkg) + + if pkg.endswith('-xinetd'): + rconflicts = (d.getVar('RCONFLICTS_%s' % pkg, True) or "").split() + conflictpkg = pkg[:-len('-xinetd')] + '-systemd' + if not conflictpkg in rconflicts: + rconflicts.append(conflictpkg) + d.setVar('RCONFLICTS_%s' % pkg, ' '.join(rconflicts)) + + # run all modifications once when creating package + xinetd_dir = '%s/xinetd.d' % d.getVar('sysconfdir', True) + if os.path.exists('${D}' + xinetd_dir): + for pkg in d.getVar('XINETD_PACKAGES', True).split(): + services = d.getVar('XINETD_SERVICE_%s' % pkg, True) or d.getVar('XINETD_SERVICE', True) or "" + if services: + xinetd_generate_package_scripts(pkg) + xinetd_add_rdepends(pkg) + xinetd_add_rconflicts(pkg) + + for service in services.split(): + file_append = '%s/%s' % (xinetd_dir, service) + if os.path.exists('${D}' + file_append): + var_name = 'FILES_%s' % pkg + files = (d.getVar(var_name, False) or "").split() + if file_append not in files: + files.append(file_append) + d.setVar(var_name, ' '.join(files)) +} diff --git a/meta-openvuplus/conf/distro/vuplus.conf b/meta-openvuplus/conf/distro/vuplus.conf new file mode 100644 index 0000000..3a0e6b3 --- /dev/null +++ b/meta-openvuplus/conf/distro/vuplus.conf @@ -0,0 +1,125 @@ +#@TYPE: Distribution +#@NAME: OpenDreambox +#@DESCRIPTION: Distribution configuration for OpenDreambox + +QA_LOG = "1" +#USER_CLASSES += "image-prelink" +INHERIT += "buildhistory recipe_sanity testlab" +BUILDHISTORY_COMMIT = "1" + +DISTRO = "vuplus" +DISTRO_NAME = "vuplus" +DISTRO_VERSION = "2.2.0" +DISTRO_PR ?= "" + +# meta/conf/distro/include/default-distrovars.inc +DISTRO_FEATURES += "3g alsa bluetooth directfb gtk-directfb ext2 largefile mplt nfs pci ppp smbfs usbhost zeroconf pci ${DISTRO_FEATURES_LIBC}" +DISTRO_FEATURES_BACKFILL_CONSIDERED = "pulseaudio" + +# extra packages needed if opkg is used +DISTRO_FEED_PREFIX ?= "official" +DISTRO_FEED_URI = "http://archive.vuplus.com/openembedded/${DISTRO_VERSION}/vuplus/feeds/stable" +EXTRAOPKGCONFIG = "distro-feed-configs" + +# meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb +SYSVINIT_ENABLED_GETTYS = "" + +# meta/classes/image_types.bbclass +IMAGE_FSTYPES =+ "tar.bz2" + + +# package versions +PREFERRED_VERSION_pango ?= "1.28.4" + +PREFERRED_VERSION_wpa-supplicant ?= "0.7.3" + +#PREFERRED_VERSION_linux-libc-headers = "2.6.31" +#PREFERRED_VERSION_linux-libc-headers-nativesdk = "2.6.31" +PREFERRED_VERSION_linux-libc-headers = "3.1.1" +PREFERRED_VERSION_linux-libc-headers-nativesdk = "3.1.1" + +# chang : udev_182 is not working with linux-libc-headers_2.6.31. +#PREFERRED_VERSION_udev ?= "124" + +PREFERRED_PROVIDER_jpeg = "jpeg" +PREFERRED_PROVIDER_jpeg-native = "jpeg-native" +PREFERRED_PROVIDER_libfribidi = "libfribidi" + +PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial" +PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate" +PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc:gcc-cross" +PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}g++:gcc-cross" + +LICENSE_FLAGS_WHITELIST = "commercial_gst-plugins-ugly commercial_lame commercial_libmad commercial_mpeg2dec" +COMMERCIAL_AUDIO_PLUGINS ?= "gst-plugins-ugly-mad gst-plugins-ugly-mpegaudioparse" +COMMERCIAL_VIDEO_PLUGINS ?= "gst-plugins-ugly-mpeg2dec gst-plugins-ugly-mpegstream gst-plugins-bad-mpegvideoparse" + +FULL_OPTIMIZATION = "-Os -pipe ${DEBUG_FLAGS}" +# build some core libs with better compiler optimization for better performance +O3_OPT = "-O3 -pipe ${DEBUG_FLAGS}" +FULL_OPTIMIZATION_pn-flac = "${O3_OPT}" +FULL_OPTIMIZATION_pn-jpeg = "${O3_OPT}" +FULL_OPTIMIZATION_pn-lame = "${O3_OPT}" +FULL_OPTIMIZATION_pn-liba52 = "${O3_OPT}" +FULL_OPTIMIZATION_pn-libdca = "${O3_OPT}" +FULL_OPTIMIZATION_pn-libgcrypt = "${O3_OPT}" +FULL_OPTIMIZATION_pn-libmad = "${O3_OPT}" +FULL_OPTIMIZATION_pn-libogg = "${O3_OPT}" +FULL_OPTIMIZATION_pn-libpng = "${O3_OPT}" +FULL_OPTIMIZATION_pn-libsamplerate = "${O3_OPT}" +FULL_OPTIMIZATION_pn-libvorbis = "${O3_OPT}" +FULL_OPTIMIZATION_pn-tremor = "${O3_OPT}" +FULL_OPTIMIZATION_pn-zlib = "${O3_OPT}" +PR_append_pn-flac = "-opt1" +PR_append_pn-jpeg = "-opt1" +PR_append_pn-lame = "-opt1" +PR_append_pn-liba52 = "-opt1" +PR_append_pn-libdca = "-opt1" +PR_append_pn-libgcrypt = "-opt1" +PR_append_pn-libmad = "-opt1" +PR_append_pn-libogg = "-opt1" +PR_append_pn-libpng = "-opt1" +PR_append_pn-libsamplerate = "-opt1" +PR_append_pn-libvorbis = "-opt1" +PR_append_pn-tremor = "-opt1" +PR_append_pn-zlib = "-opt1" + +# Disable installing ldconfig +USE_LDCONFIG = "0" + +TCLIBC = "eglibc" +TCLIBCAPPEND = "" + +# Drop unused PACKAGE_EXTRA_ARCHS +PACKAGE_EXTRA_ARCHS = "${TUNE_PKGARCH}" + +QEMU_TARGETS ?= "mipsel" + +PREMIRRORS ?= "\ +bzr://.*/.* http://dreamboxupdate.com/sources-mirror/ \n \ +cvs://.*/.* http://dreamboxupdate.com/sources-mirror/ \n \ +git://.*/.* http://dreamboxupdate.com/sources-mirror/ \n \ +hg://.*/.* http://dreamboxupdate.com/sources-mirror/ \n \ +osc://.*/.* http://dreamboxupdate.com/sources-mirror/ \n \ +p4://.*/.* http://dreamboxupdate.com/sources-mirror/ \n \ +svk://.*/.* http://dreamboxupdate.com/sources-mirror/ \n \ +svn://.*/.* http://dreamboxupdate.com/sources-mirror/ \n \ +bzr://.*/.* http://autobuilder.yoctoproject.org/sources/ \n \ +cvs://.*/.* http://autobuilder.yoctoproject.org/sources/ \n \ +git://.*/.* http://autobuilder.yoctoproject.org/sources/ \n \ +hg://.*/.* http://autobuilder.yoctoproject.org/sources/ \n \ +osc://.*/.* http://autobuilder.yoctoproject.org/sources/ \n \ +p4://.*/.* http://autobuilder.yoctoproject.org/sources/ \n \ +svk://.*/.* http://autobuilder.yoctoproject.org/sources/ \n \ +svn://.*/.* http://autobuilder.yoctoproject.org/sources/ \n" + +MIRRORS =+ "\ +ftp://.*/.* http://dreamboxupdate.com/sources-mirror/ \n \ +http://.*/.* http://dreamboxupdate.com/sources-mirror/ \n \ +https://.*/.* http://dreamboxupdate.com/sources-mirror/ \n \ +ftp://.*/.* http://autobuilder.yoctoproject.org/sources/ \n \ +http://.*/.* http://autobuilder.yoctoproject.org/sources/ \n \ +https://.*/.* http://autobuilder.yoctoproject.org/sources/ \n" + +# for compatibility with rm_old_work.bbclass +WORKDIR = "${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${PF}" diff --git a/meta-openvuplus/conf/layer.conf b/meta-openvuplus/conf/layer.conf new file mode 100644 index 0000000..8098eab --- /dev/null +++ b/meta-openvuplus/conf/layer.conf @@ -0,0 +1,27 @@ +# It really depends on order of the layers appearing in BBLAYERS +# variable in toplevel bblayers.conf file, where bitbake will search +# for .inc files and others where bitbake uses BBPATH since it will +# search the directories from first to last as specified in BBPATH +# Therefore if you want a given layer to be considered high priority +# for the .inc and .conf etc. then consider it adding at the beginning +# of BBPATH. For bblayers bitbake will use BBFILES_PRIORITY to resolve +# the recipe contention so the order of directories in BBFILES does +# not matter. + +# We have a conf and classes directory, append to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a recipes directory, add to BBFILESS +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "openvuplus-layer" +BBFILE_PATTERN_openvuplus-layer := "^${LAYERDIR}/" + +# Define the priority for recipes (.bb files) from this layer, +# choosing carefully how this layer interacts with all of the +# other layers. + +BBFILE_PRIORITY_openvuplus-layer = "20" + +OPENVUPLUS_BASE := '${@os.path.normpath("${LAYERDIR}/../")}' + diff --git a/meta-openvuplus/recipes-core/base-files/base-files/filesystems b/meta-openvuplus/recipes-core/base-files/base-files/filesystems new file mode 100644 index 0000000..ef3c746 --- /dev/null +++ b/meta-openvuplus/recipes-core/base-files/base-files/filesystems @@ -0,0 +1,9 @@ +ext3 +ext2 +ext4 +vfat +fat +udf +iso9660 +cdfs +* diff --git a/meta-openvuplus/recipes-core/base-files/base-files/fstab b/meta-openvuplus/recipes-core/base-files/base-files/fstab new file mode 100644 index 0000000..36cf376 --- /dev/null +++ b/meta-openvuplus/recipes-core/base-files/base-files/fstab @@ -0,0 +1,7 @@ +/dev/root / rootfs noatime 0 1 +tmpfs /proc proc nodev,noexec,nosuid 0 0 +tmpfs /proc/bus/usb usbfs nodev,noexec,nosuid 0 0 +tmpfs /sys sysfs nodev,noexec,nosuid 0 0 +tmpfs /dev/pts devpts noexec,nosuid,mode=0620,gid=5 0 0 +tmpfs /dev/shm tmpfs nosuid,nodev 0 0 +tmpfs /var/volatile tmpfs mode=0755 0 0 diff --git a/meta-openvuplus/recipes-core/base-files/base-files/issue b/meta-openvuplus/recipes-core/base-files/base-files/issue new file mode 100644 index 0000000..e69de29 diff --git a/meta-openvuplus/recipes-core/base-files/base-files/issue.net b/meta-openvuplus/recipes-core/base-files/base-files/issue.net new file mode 100644 index 0000000..e69de29 diff --git a/meta-openvuplus/recipes-core/base-files/base-files_3.0.14.bbappend b/meta-openvuplus/recipes-core/base-files/base-files_3.0.14.bbappend new file mode 100644 index 0000000..ac85086 --- /dev/null +++ b/meta-openvuplus/recipes-core/base-files/base-files_3.0.14.bbappend @@ -0,0 +1,17 @@ +PR .= "-vuplus0" + +do_install_append() { + ln -s media/hdd ${D}/hdd + + rm -r ${D}/mnt + ln -s media ${D}/mnt + + rmdir ${D}/tmp + ln -s var/tmp ${D}/tmp + + ln -s var/run ${D}/run +} + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + + diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0001-ifupdown-support-post-up-pre-down-hooks.patch b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0001-ifupdown-support-post-up-pre-down-hooks.patch new file mode 100644 index 0000000..150cd1d --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0001-ifupdown-support-post-up-pre-down-hooks.patch @@ -0,0 +1,60 @@ +From b58a1a06ca695aed6a4f6e5039e2de0e5a3df111 Mon Sep 17 00:00:00 2001 +From: Peter Korsgaard +Date: Wed, 19 Oct 2011 02:35:54 +0200 +Subject: [PATCH 1/9] ifupdown: support post-up / pre-down hooks + +function old new delta +set_environ 330 371 +41 +ifupdown_main 2156 2194 +38 +iface_up 97 113 +16 +iface_down 97 113 +16 +------------------------------------------------------------------------------ +(add/remove: 0/0 grow/shrink: 4/0 up/down: 111/0) Total: 111 bytes + +Signed-off-by: Peter Korsgaard +Signed-off-by: Denys Vlasenko +--- + networking/ifupdown.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/networking/ifupdown.c b/networking/ifupdown.c +index 3820330..abc6b58 100644 +--- a/networking/ifupdown.c ++++ b/networking/ifupdown.c +@@ -891,6 +891,8 @@ static struct interfaces_file_t *read_interfaces(const char *filename) + if (strcmp(first_word, "up") != 0 + && strcmp(first_word, "down") != 0 + && strcmp(first_word, "pre-up") != 0 ++ && strcmp(first_word, "pre-down") != 0 ++ && strcmp(first_word, "post-up") != 0 + && strcmp(first_word, "post-down") != 0 + ) { + int i; +@@ -987,6 +989,8 @@ static void set_environ(struct interface_defn_t *iface, const char *mode) + if (strcmp(iface->option[i].name, "up") == 0 + || strcmp(iface->option[i].name, "down") == 0 + || strcmp(iface->option[i].name, "pre-up") == 0 ++ || strcmp(iface->option[i].name, "pre-down") == 0 ++ || strcmp(iface->option[i].name, "post-up") == 0 + || strcmp(iface->option[i].name, "post-down") == 0 + ) { + continue; +@@ -1056,6 +1060,7 @@ static int iface_up(struct interface_defn_t *iface) + if (!execute_all(iface, "pre-up")) return 0; + if (!iface->method->up(iface, doit)) return 0; + if (!execute_all(iface, "up")) return 0; ++ if (!execute_all(iface, "post-up")) return 0; + return 1; + } + +@@ -1063,6 +1068,7 @@ static int iface_down(struct interface_defn_t *iface) + { + if (!iface->method->down(iface,check)) return -1; + set_environ(iface, "stop"); ++ if (!execute_all(iface, "pre-down")) return 0; + if (!execute_all(iface, "down")) return 0; + if (!iface->method->down(iface, doit)) return 0; + if (!execute_all(iface, "post-down")) return 0; +-- +1.7.9.5 + diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0002-ifupdown-code-shrink.patch b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0002-ifupdown-code-shrink.patch new file mode 100644 index 0000000..75015e3 --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0002-ifupdown-code-shrink.patch @@ -0,0 +1,122 @@ +From e5221a142e8ee4509734c17584f898a1f4ac86cc Mon Sep 17 00:00:00 2001 +From: Denys Vlasenko +Date: Wed, 19 Oct 2011 02:37:08 +0200 +Subject: [PATCH 2/9] ifupdown: code shrink + +function old new delta +keywords_up_down - 43 +43 +set_environ 371 259 -112 +ifupdown_main 2194 2073 -121 +------------------------------------------------------------------------------ +(add/remove: 1/0 grow/shrink: 0/2 up/down: 43/-233) Total: -190 bytes + +Signed-off-by: Denys Vlasenko +--- + networking/ifupdown.c | 42 +++++++++++++++--------------------------- + 1 file changed, 15 insertions(+), 27 deletions(-) + +diff --git a/networking/ifupdown.c b/networking/ifupdown.c +index abc6b58..5946323 100644 +--- a/networking/ifupdown.c ++++ b/networking/ifupdown.c +@@ -87,7 +87,6 @@ struct mapping_defn_t { + + char *script; + +- int max_mappings; + int n_mappings; + char **mapping; + }; +@@ -102,7 +101,6 @@ struct interface_defn_t { + const struct method_t *method; + + char *iface; +- int max_options; + int n_options; + struct variable_t *option; + }; +@@ -138,6 +136,16 @@ struct globals { + #define INIT_G() do { } while (0) + + ++static const char keywords_up_down[] ALIGN1 = ++ "up\0" ++ "down\0" ++ "pre-up\0" ++ "pre-down\0" ++ "post-up\0" ++ "post-down\0" ++; ++ ++ + #if ENABLE_FEATURE_IFUPDOWN_IPV4 || ENABLE_FEATURE_IFUPDOWN_IPV6 + + static void addstr(char **bufp, const char *str, size_t str_length) +@@ -803,7 +811,6 @@ static struct interfaces_file_t *read_interfaces(const char *filename) + currmap->match = xrealloc_vector(currmap->match, 4, currmap->n_matches); + currmap->match[currmap->n_matches++] = xstrdup(first_word); + } +- /*currmap->max_mappings = 0; - done by xzalloc */ + /*currmap->n_mappings = 0;*/ + /*currmap->mapping = NULL;*/ + /*currmap->script = NULL;*/ +@@ -888,25 +895,16 @@ static struct interfaces_file_t *read_interfaces(const char *filename) + if (rest_of_line[0] == '\0') + bb_error_msg_and_die("option with empty value \"%s\"", buf); + +- if (strcmp(first_word, "up") != 0 +- && strcmp(first_word, "down") != 0 +- && strcmp(first_word, "pre-up") != 0 +- && strcmp(first_word, "pre-down") != 0 +- && strcmp(first_word, "post-up") != 0 +- && strcmp(first_word, "post-down") != 0 +- ) { ++ /* If not one of "up", "down",... words... */ ++ if (index_in_strings(keywords_up_down, first_word) < 0) { + int i; + for (i = 0; i < currif->n_options; i++) { + if (strcmp(currif->option[i].name, first_word) == 0) + bb_error_msg_and_die("duplicate option \"%s\"", buf); + } + } +- if (currif->n_options >= currif->max_options) { +- currif->max_options += 10; +- currif->option = xrealloc(currif->option, +- sizeof(*currif->option) * currif->max_options); +- } + debug_noise("\t%s=%s\n", first_word, rest_of_line); ++ currif->option = xrealloc_vector(currif->option, 4, currif->n_options); + currif->option[currif->n_options].name = xstrdup(first_word); + currif->option[currif->n_options].value = xstrdup(rest_of_line); + currif->n_options++; +@@ -918,11 +916,7 @@ static struct interfaces_file_t *read_interfaces(const char *filename) + bb_error_msg_and_die("duplicate script in mapping \"%s\"", buf); + currmap->script = xstrdup(next_word(&rest_of_line)); + } else if (strcmp(first_word, "map") == 0) { +- if (currmap->n_mappings >= currmap->max_mappings) { +- currmap->max_mappings = currmap->max_mappings * 2 + 1; +- currmap->mapping = xrealloc(currmap->mapping, +- sizeof(char *) * currmap->max_mappings); +- } ++ currmap->mapping = xrealloc_vector(currmap->mapping, 2, currmap->n_mappings); + currmap->mapping[currmap->n_mappings] = xstrdup(next_word(&rest_of_line)); + currmap->n_mappings++; + } else { +@@ -986,13 +980,7 @@ static void set_environ(struct interface_defn_t *iface, const char *mode) + pp = G.my_environ; + + for (i = 0; i < iface->n_options; i++) { +- if (strcmp(iface->option[i].name, "up") == 0 +- || strcmp(iface->option[i].name, "down") == 0 +- || strcmp(iface->option[i].name, "pre-up") == 0 +- || strcmp(iface->option[i].name, "pre-down") == 0 +- || strcmp(iface->option[i].name, "post-up") == 0 +- || strcmp(iface->option[i].name, "post-down") == 0 +- ) { ++ if (index_in_strings(keywords_up_down, iface->option[i].name) >= 0) { + continue; + } + *pp++ = setlocalenv("IF_%s=%s", iface->option[i].name, iface->option[i].value); +-- +1.7.9.5 + diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0003-ifupdown-remove-interface-from-state_list-if-iface_u.patch b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0003-ifupdown-remove-interface-from-state_list-if-iface_u.patch new file mode 100644 index 0000000..787fcb4 --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0003-ifupdown-remove-interface-from-state_list-if-iface_u.patch @@ -0,0 +1,31 @@ +From a7b406ba64b7a4d9c9610726cb72568fc9848f5d Mon Sep 17 00:00:00 2001 +From: Lauri Hintsala +Date: Wed, 14 Dec 2011 16:49:58 +0200 +Subject: [PATCH 3/9] ifupdown: remove interface from state_list if iface_up + fails + +Fix the issue where interface is set to the configured state even if +configuration has failed. Add error check to state setting logic. + +Signed-off-by: Lauri Hintsala +Signed-off-by: Denys Vlasenko +--- + networking/ifupdown.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/networking/ifupdown.c b/networking/ifupdown.c +index 5946323..9c2cad2 100644 +--- a/networking/ifupdown.c ++++ b/networking/ifupdown.c +@@ -1311,7 +1311,7 @@ int ifupdown_main(int argc UNUSED_PARAM, char **argv) + llist_t *state_list = read_iface_state(); + llist_t *iface_state = find_iface_state(state_list, iface); + +- if (cmds == iface_up) { ++ if (cmds == iface_up && !any_failures) { + char * const newiface = xasprintf("%s=%s", iface, liface); + if (iface_state == NULL) { + llist_add_to_end(&state_list, newiface); +-- +1.7.9.5 + diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0004-ifupdown-support-metric-for-static-default-gw.patch b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0004-ifupdown-support-metric-for-static-default-gw.patch new file mode 100644 index 0000000..2b244af --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0004-ifupdown-support-metric-for-static-default-gw.patch @@ -0,0 +1,64 @@ +From fecb0cbff5ca703f8fc00a8e0e93f1f2e3ae942b Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Fri, 17 Feb 2012 19:36:26 +0000 +Subject: [PATCH 4/9] ifupdown: support metric for static default gw + +This is useful when you have multiple ISPs with failover. It allows +setting the priority of the static gateway and makes it possible +to specify multiple static gateways. + +The ubuntu ifupdown supports it. + +function old new delta +.rodata 116725 116797 +72 +------------------------------------------------------------------------------ +(add/remove: 0/0 grow/shrink: 1/0 up/down: 72/0) Total: 72 bytes + text data bss dec hex filename + 953343 7313 8984 969640 ecba8 busybox_old + 953415 7313 8984 969712 ecbf0 busybox_unstripped + +Signed-off-by: Natanael Copa +Signed-off-by: Denys Vlasenko +--- + networking/ifupdown.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/networking/ifupdown.c b/networking/ifupdown.c +index 9c2cad2..9f49619 100644 +--- a/networking/ifupdown.c ++++ b/networking/ifupdown.c +@@ -403,11 +403,11 @@ static int FAST_FUNC static_up6(struct interface_defn_t *ifd, execfn *exec) + result = execute("ip addr add %address%/%netmask% dev %iface%[[ label %label%]]", ifd, exec); + result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec); + /* Was: "[[ ip ....%gateway% ]]". Removed extra spaces w/o checking */ +- result += execute("[[ip route add ::/0 via %gateway%]]", ifd, exec); ++ result += execute("[[ip route add ::/0 via %gateway%]][[ prio %metric%]]", ifd, exec); + # else + result = execute("ifconfig %iface%[[ media %media%]][[ hw %hwaddress%]][[ mtu %mtu%]] up", ifd, exec); + result += execute("ifconfig %iface% add %address%/%netmask%", ifd, exec); +- result += execute("[[route -A inet6 add ::/0 gw %gateway%]]", ifd, exec); ++ result += execute("[[route -A inet6 add ::/0 gw %gateway%[[ metric %metric%]]]]", ifd, exec); + # endif + return ((result == 3) ? 3 : 0); + } +@@ -490,7 +490,7 @@ static int FAST_FUNC static_up(struct interface_defn_t *ifd, execfn *exec) + result = execute("ip addr add %address%/%bnmask%[[ broadcast %broadcast%]] " + "dev %iface%[[ peer %pointopoint%]][[ label %label%]]", ifd, exec); + result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec); +- result += execute("[[ip route add default via %gateway% dev %iface%]]", ifd, exec); ++ result += execute("[[ip route add default via %gateway% dev %iface%[[ prio %metric%]]]]", ifd, exec); + return ((result == 3) ? 3 : 0); + # else + /* ifconfig said to set iface up before it processes hw %hwaddress%, +@@ -500,7 +500,7 @@ static int FAST_FUNC static_up(struct interface_defn_t *ifd, execfn *exec) + result += execute("ifconfig %iface% %address% netmask %netmask%" + "[[ broadcast %broadcast%]][[ pointopoint %pointopoint%]] ", + ifd, exec); +- result += execute("[[route add default gw %gateway% %iface%]]", ifd, exec); ++ result += execute("[[route add default gw %gateway%[[ metric %metric%]] %iface%]]", ifd, exec); + return ((result == 3) ? 3 : 0); + # endif + } +-- +1.7.9.5 + diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0005-ifupdown-improve-compatibility-with-Debian.patch b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0005-ifupdown-improve-compatibility-with-Debian.patch new file mode 100644 index 0000000..698e0e6 --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0005-ifupdown-improve-compatibility-with-Debian.patch @@ -0,0 +1,97 @@ +From 7ec30bf273cbdf5f0ae335684939a883182e493e Mon Sep 17 00:00:00 2001 +From: Andreas Oberritter +Date: Mon, 23 Apr 2012 22:08:39 +0200 +Subject: [PATCH 5/9] ifupdown: improve compatibility with Debian + +Set environment variable 'PHASE'. +Treat post-up and pre-down as aliases for up and down. +Uses the same logic as ifupdown.nw from ifupdown-0.6.16. +Makes it possible to execute Debian's ifupdown script for +wpa-supplicant. + +Signed-off-by: Andreas Oberritter +Signed-off-by: Denys Vlasenko +--- + networking/ifupdown.c | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +diff --git a/networking/ifupdown.c b/networking/ifupdown.c +index 9f49619..5c3dcec 100644 +--- a/networking/ifupdown.c ++++ b/networking/ifupdown.c +@@ -140,8 +140,6 @@ static const char keywords_up_down[] ALIGN1 = + "up\0" + "down\0" + "pre-up\0" +- "pre-down\0" +- "post-up\0" + "post-down\0" + ; + +@@ -895,6 +893,11 @@ static struct interfaces_file_t *read_interfaces(const char *filename) + if (rest_of_line[0] == '\0') + bb_error_msg_and_die("option with empty value \"%s\"", buf); + ++ if (strcmp(first_word, "post-up") == 0) ++ first_word += 5; /* "up" */ ++ else if (strcmp(first_word, "pre-down") == 0) ++ first_word += 4; /* "down" */ ++ + /* If not one of "up", "down",... words... */ + if (index_in_strings(keywords_up_down, first_word) < 0) { + int i; +@@ -963,7 +966,7 @@ static char *setlocalenv(const char *format, const char *name, const char *value + return result; + } + +-static void set_environ(struct interface_defn_t *iface, const char *mode) ++static void set_environ(struct interface_defn_t *iface, const char *mode, const char *opt) + { + int i; + char **pp; +@@ -976,7 +979,7 @@ static void set_environ(struct interface_defn_t *iface, const char *mode) + } + + /* note: last element will stay NULL: */ +- G.my_environ = xzalloc(sizeof(char *) * (iface->n_options + 6)); ++ G.my_environ = xzalloc(sizeof(char *) * (iface->n_options + 7)); + pp = G.my_environ; + + for (i = 0; i < iface->n_options; i++) { +@@ -990,6 +993,7 @@ static void set_environ(struct interface_defn_t *iface, const char *mode) + *pp++ = setlocalenv("%s=%s", "ADDRFAM", iface->address_family->name); + *pp++ = setlocalenv("%s=%s", "METHOD", iface->method->name); + *pp++ = setlocalenv("%s=%s", "MODE", mode); ++ *pp++ = setlocalenv("%s=%s", "PHASE", opt); + if (G.startup_PATH) + *pp++ = setlocalenv("%s=%s", "PATH", G.startup_PATH); + } +@@ -1044,21 +1048,21 @@ static int check(char *str) + static int iface_up(struct interface_defn_t *iface) + { + if (!iface->method->up(iface, check)) return -1; +- set_environ(iface, "start"); ++ set_environ(iface, "start", "pre-up"); + if (!execute_all(iface, "pre-up")) return 0; + if (!iface->method->up(iface, doit)) return 0; ++ set_environ(iface, "start", "post-up"); + if (!execute_all(iface, "up")) return 0; +- if (!execute_all(iface, "post-up")) return 0; + return 1; + } + + static int iface_down(struct interface_defn_t *iface) + { + if (!iface->method->down(iface,check)) return -1; +- set_environ(iface, "stop"); +- if (!execute_all(iface, "pre-down")) return 0; ++ set_environ(iface, "stop", "pre-down"); + if (!execute_all(iface, "down")) return 0; + if (!iface->method->down(iface, doit)) return 0; ++ set_environ(iface, "stop", "post-down"); + if (!execute_all(iface, "post-down")) return 0; + return 1; + } +-- +1.7.9.5 + diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0006-get_linux_version_code-don-t-fail-on-3.0-foo.patch b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0006-get_linux_version_code-don-t-fail-on-3.0-foo.patch new file mode 100644 index 0000000..6c4699a --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0006-get_linux_version_code-don-t-fail-on-3.0-foo.patch @@ -0,0 +1,43 @@ +From c011ab2fb52c2ee03aa9544b0d242683ee4362e1 Mon Sep 17 00:00:00 2001 +From: Andreas Oberritter +Date: Fri, 27 Apr 2012 01:40:25 +0200 +Subject: [PATCH 6/9] get_linux_version_code: don't fail on 3.0-foo + +Fixes segmentation fault in mount (nfs): + + #0 __GI_____strtol_l_internal (nptr=0x0, endptr=0x0, base=10, group=, loc=0x77f6f3c8) at strtol_l.c:298 + #1 __GI_strtol (nptr=, endptr=, base=) at strtol.c:110 + #2 get_linux_version_code () at libbb/kernel_version.c:34 + #3 find_kernel_nfs_mount_version () at util-linux/mount.c:979 + +Signed-off-by: Andreas Oberritter +--- + libbb/kernel_version.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/libbb/kernel_version.c b/libbb/kernel_version.c +index a168a1e..12f1146 100644 +--- a/libbb/kernel_version.c ++++ b/libbb/kernel_version.c +@@ -20,7 +20,7 @@ + int FAST_FUNC get_linux_version_code(void) + { + struct utsname name; +- char *s; ++ char *s, *t; + int i, r; + + if (uname(&name) == -1) { +@@ -31,7 +31,8 @@ int FAST_FUNC get_linux_version_code(void) + s = name.release; + r = 0; + for (i = 0; i < 3; i++) { +- r = r * 256 + atoi(strtok(s, ".")); ++ t = strtok(s, "."); ++ r = r * 256 + (t ? atoi(t) : 0); + s = NULL; + } + return r; +-- +1.7.9.5 + diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0007-ifplugd-move-read_pid-to-libbb-pidfile.c-and-rename-.patch b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0007-ifplugd-move-read_pid-to-libbb-pidfile.c-and-rename-.patch new file mode 100644 index 0000000..c95b729 --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0007-ifplugd-move-read_pid-to-libbb-pidfile.c-and-rename-.patch @@ -0,0 +1,94 @@ +From 4119652f74ce6f8f370df3c80076792d509bc941 Mon Sep 17 00:00:00 2001 +From: Andreas Oberritter +Date: Mon, 14 May 2012 16:15:50 +0200 +Subject: [PATCH 7/9] ifplugd: move read_pid to libbb/pidfile.c and rename it + to read_pidfile + +Signed-off-by: Andreas Oberritter +--- + include/libbb.h | 2 ++ + libbb/pidfile.c | 14 ++++++++++++++ + networking/ifplugd.c | 18 +----------------- + 3 files changed, 17 insertions(+), 17 deletions(-) + +diff --git a/include/libbb.h b/include/libbb.h +index 63d0419..e9538e7 100644 +--- a/include/libbb.h ++++ b/include/libbb.h +@@ -1031,10 +1031,12 @@ llist_t *llist_find_str(llist_t *first, const char *str) FAST_FUNC; + #if ENABLE_FEATURE_PIDFILE || defined(WANT_PIDFILE) + /* True only if we created pidfile which is *file*, not /dev/null etc */ + extern smallint wrote_pidfile; ++pid_t read_pidfile(const char *path) FAST_FUNC; + void write_pidfile(const char *path) FAST_FUNC; + #define remove_pidfile(path) do { if (wrote_pidfile) unlink(path); } while (0) + #else + enum { wrote_pidfile = 0 }; ++#define read_pidfile(path) ((void)0) + #define write_pidfile(path) ((void)0) + #define remove_pidfile(path) ((void)0) + #endif +diff --git a/libbb/pidfile.c b/libbb/pidfile.c +index a48dfc3..6734a2d 100644 +--- a/libbb/pidfile.c ++++ b/libbb/pidfile.c +@@ -13,6 +13,20 @@ + + smallint wrote_pidfile; + ++pid_t FAST_FUNC read_pidfile(const char *filename) ++{ ++ int len; ++ char buf[128]; ++ ++ len = open_read_close(filename, buf, 127); ++ if (len > 0) { ++ buf[len] = '\0'; ++ /* returns ULONG_MAX on error => -1 */ ++ return bb_strtoul(buf, NULL, 10); ++ } ++ return 0; ++} ++ + void FAST_FUNC write_pidfile(const char *path) + { + int pid_fd; +diff --git a/networking/ifplugd.c b/networking/ifplugd.c +index d8358cd..9a15576 100644 +--- a/networking/ifplugd.c ++++ b/networking/ifplugd.c +@@ -510,22 +510,6 @@ static NOINLINE int check_existence_through_netlink(void) + return G.iface_exists; + } + +-#if ENABLE_FEATURE_PIDFILE +-static NOINLINE pid_t read_pid(const char *filename) +-{ +- int len; +- char buf[128]; +- +- len = open_read_close(filename, buf, 127); +- if (len > 0) { +- buf[len] = '\0'; +- /* returns ULONG_MAX on error => -1 */ +- return bb_strtoul(buf, NULL, 10); +- } +- return 0; +-} +-#endif +- + int ifplugd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; + int ifplugd_main(int argc UNUSED_PARAM, char **argv) + { +@@ -552,7 +536,7 @@ int ifplugd_main(int argc UNUSED_PARAM, char **argv) + + #if ENABLE_FEATURE_PIDFILE + pidfile_name = xasprintf(_PATH_VARRUN"ifplugd.%s.pid", G.iface); +- pid_from_pidfile = read_pid(pidfile_name); ++ pid_from_pidfile = read_pidfile(pidfile_name); + + if (opts & FLAG_KILL) { + if (pid_from_pidfile > 0) +-- +1.7.9.5 + diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0008-ifupdown-dhcp_down-wait-until-udhcpc-has-been-killed.patch b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0008-ifupdown-dhcp_down-wait-until-udhcpc-has-been-killed.patch new file mode 100644 index 0000000..9df63cb --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0008-ifupdown-dhcp_down-wait-until-udhcpc-has-been-killed.patch @@ -0,0 +1,56 @@ +From 517f8da0345752d3cc5e2c99b8acd88c60355373 Mon Sep 17 00:00:00 2001 +From: Andreas Oberritter +Date: Mon, 14 May 2012 16:20:36 +0200 +Subject: [PATCH 8/9] ifupdown: dhcp_down: wait until udhcpc has been killed + +* Otherwise there's a race condition between ifdown and udhcpc, + which executes deconfig scripts in /etc/udhcpc.d. + +Signed-off-by: Andreas Oberritter +--- + networking/ifupdown.c | 23 +++++++++++++++++------ + 1 file changed, 17 insertions(+), 6 deletions(-) + +diff --git a/networking/ifupdown.c b/networking/ifupdown.c +index 5c3dcec..35e5035 100644 +--- a/networking/ifupdown.c ++++ b/networking/ifupdown.c +@@ -618,18 +618,29 @@ static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd, execfn *exec) + static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd, execfn *exec) + { + int result; +- result = execute( +- "test -f /var/run/udhcpc.%iface%.pid && " +- "kill `cat /var/run/udhcpc.%iface%.pid` 2>/dev/null", +- ifd, exec); ++ char *pidfile_name; ++ pid_t pid_from_pidfile; ++ ++ pidfile_name = xasprintf(_PATH_VARRUN "udhcpc.%s.pid", ifd->iface); ++ pid_from_pidfile = read_pidfile(pidfile_name); ++ result = (pid_from_pidfile > 0); + /* Also bring the hardware interface down since + killing the dhcp client alone doesn't do it. + This enables consecutive ifup->ifdown->ifup */ + /* Sleep a bit, otherwise static_down tries to bring down interface too soon, + and it may come back up because udhcpc is still shutting down */ +- usleep(100000); ++ if (result && kill(pid_from_pidfile, SIGTERM) == 0) { ++ unsigned int i; ++ for (i = 0; i < 100; i++) { ++ if (kill(pid_from_pidfile, 0) < 0) { ++ result++; ++ break; ++ } ++ usleep(100000); ++ } ++ } + result += static_down(ifd, exec); +- return ((result == 3) ? 3 : 0); ++ return ((result == 4) ? 4 : 0); + } + # else + static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd UNUSED_PARAM, +-- +1.7.9.5 + diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0009-udhcpc-calculate-broadcast-address-if-not-given-by-s.patch b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0009-udhcpc-calculate-broadcast-address-if-not-given-by-s.patch new file mode 100644 index 0000000..c2a50e6 --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/0009-udhcpc-calculate-broadcast-address-if-not-given-by-s.patch @@ -0,0 +1,57 @@ +From 7f3d0f0e58602e8d96988736d80ba28d31338ea2 Mon Sep 17 00:00:00 2001 +From: Andreas Oberritter +Date: Mon, 14 May 2012 17:32:16 +0200 +Subject: [PATCH 9/9] udhcpc: calculate broadcast address if not given by + server + +* This is more efficient than doing it in the scripts + +Signed-off-by: Andreas Oberritter +--- + networking/udhcp/common.h | 2 +- + networking/udhcp/dhcpc.c | 16 ++++++++++++++++ + 2 files changed, 17 insertions(+), 1 deletion(-) + +diff --git a/networking/udhcp/common.h b/networking/udhcp/common.h +index ad6991c..1517498 100644 +--- a/networking/udhcp/common.h ++++ b/networking/udhcp/common.h +@@ -122,7 +122,7 @@ enum { + //#define DHCP_ROOT_PATH 0x11 + //#define DHCP_IP_TTL 0x17 + //#define DHCP_MTU 0x1a +-//#define DHCP_BROADCAST 0x1c ++#define DHCP_BROADCAST 0x1c + //#define DHCP_ROUTES 0x21 + //#define DHCP_NIS_DOMAIN 0x28 + //#define DHCP_NIS_SERVER 0x29 +diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c +index 4d755e6..9fbd3b3 100644 +--- a/networking/udhcp/dhcpc.c ++++ b/networking/udhcp/dhcpc.c +@@ -399,6 +399,22 @@ static char **fill_envp(struct dhcp_packet *packet) + } + i++; + } ++ /* Calculate the broadcast address, if it wasn't provided ++ * by the server, but a subnet mask of /30 or lower was given. ++ */ ++ if (udhcp_get_option(packet, DHCP_BROADCAST) == NULL) { ++ temp = udhcp_get_option(packet, DHCP_SUBNET); ++ if (temp) { ++ uint32_t subnet; ++ move_from_unaligned32(subnet, temp); ++ if (ntohl(subnet) <= 0xfffffffc) { ++ uint32_t broadcast = packet->yiaddr | ~subnet; ++ *curr = xmalloc(sizeof("broadcast=255.255.255.255")); ++ sprint_nip(*curr, "broadcast=", (uint8_t *)&broadcast); ++ putenv(*curr++); ++ } ++ } ++ } + return envp; + } + +-- +1.7.9.5 + diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/busybox-telnetd.socket b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/busybox-telnetd.socket new file mode 100644 index 0000000..88b2189 --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/busybox-telnetd.socket @@ -0,0 +1,8 @@ +[Unit] + +[Socket] +ListenStream=23 +Accept=yes + +[Install] +WantedBy=sockets.target diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/busybox-telnetd.xinetd.in b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/busybox-telnetd.xinetd.in new file mode 100644 index 0000000..86e1e5e --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/busybox-telnetd.xinetd.in @@ -0,0 +1,7 @@ +service telnet +{ + socket_type = stream + user = root + server = @SBINDIR@/telnetd + wait = no +} diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/busybox-telnetd@.service b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/busybox-telnetd@.service new file mode 100644 index 0000000..a493a9e --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/busybox-telnetd@.service @@ -0,0 +1,5 @@ +[Unit] + +[Service] +ExecStart=-/usr/sbin/telnetd +StandardInput=socket diff --git a/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/defconfig b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/defconfig new file mode 100644 index 0000000..52bd62b --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox-1.19.4/defconfig @@ -0,0 +1,1013 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.19.4 +# Thu Nov 15 19:28:47 2012 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +# CONFIG_DESKTOP is not set +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_INCLUDE_SUSv2 is not set +# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_PLATFORM_LINUX=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +# CONFIG_FEATURE_INSTALLER is not set +# CONFIG_INSTALL_NO_USR is not set +# CONFIG_LOCALE_SUPPORT is not set +CONFIG_UNICODE_SUPPORT=y +# CONFIG_UNICODE_USING_LOCALE is not set +CONFIG_FEATURE_CHECK_UNICODE_IN_ENV=y +CONFIG_SUBST_WCHAR=0 +CONFIG_LAST_SUPPORTED_WCHAR=0 +# CONFIG_UNICODE_COMBINING_WCHARS is not set +# CONFIG_UNICODE_WIDE_WCHARS is not set +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set +CONFIG_LONG_OPTS=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_FEATURE_PIDFILE=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +CONFIG_FEATURE_HAVE_RPC=y + +# +# Build Options +# +# CONFIG_STATIC is not set +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="mipsel-oe-linux-" +CONFIG_EXTRA_CFLAGS=" -Os -pipe -g -feliminate-unused-debug-types" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Installation Options ("make install" behavior) +# +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_FEATURE_SYSTEMD=y +CONFIG_FEATURE_RTMINMAX=y +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SIZE_VS_SPEED=2 +CONFIG_FEATURE_FAST_TOP=y +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=63 +CONFIG_FEATURE_EDITING_SAVEHISTORY=y +CONFIG_FEATURE_REVERSE_SEARCH=y +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_EDITING_ASK_TERMINAL=y +# CONFIG_FEATURE_NON_POSIX_CP is not set +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_COPYBUF_KB=64 +CONFIG_FEATURE_SKIP_ROOTFS=y +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +# CONFIG_FEATURE_HWIB is not set + +# +# Applets +# + +# +# Archival Utilities +# +CONFIG_FEATURE_SEAMLESS_XZ=y +CONFIG_FEATURE_SEAMLESS_LZMA=y +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +CONFIG_AR=y +# CONFIG_FEATURE_AR_LONG_FILENAMES is not set +# CONFIG_FEATURE_AR_CREATE is not set +CONFIG_BUNZIP2=y +CONFIG_BZIP2=y +CONFIG_CPIO=y +# CONFIG_FEATURE_CPIO_O is not set +# CONFIG_FEATURE_CPIO_P is not set +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +CONFIG_GUNZIP=y +CONFIG_GZIP=y +# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set +# CONFIG_LZOP is not set +# CONFIG_LZOP_COMPR_HIGH is not set +# CONFIG_RPM2CPIO is not set +# CONFIG_RPM is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set +# CONFIG_FEATURE_TAR_TO_COMMAND is not set +# CONFIG_FEATURE_TAR_UNAME_GNAME is not set +# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set +# CONFIG_FEATURE_TAR_SELINUX is not set +# CONFIG_UNCOMPRESS is not set +CONFIG_UNLZMA=y +# CONFIG_FEATURE_LZMA_FAST is not set +# CONFIG_LZMA is not set +CONFIG_UNXZ=y +# CONFIG_XZ is not set +CONFIG_UNZIP=y + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +# CONFIG_FEATURE_DATE_NANO is not set +CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_ID=y +CONFIG_GROUPS=y +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +# CONFIG_FEATURE_TR_EQUIV is not set +CONFIG_BASE64=y +CONFIG_WHO=y +CONFIG_USERS=y +# CONFIG_CAL is not set +# CONFIG_CATV is not set +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set +CONFIG_CHROOT=y +# CONFIG_CKSUM is not set +# CONFIG_COMM is not set +CONFIG_CP=y +# CONFIG_FEATURE_CP_LONG_OPTIONS is not set +CONFIG_CUT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_FANCY=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +# CONFIG_EXPAND is not set +# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +# CONFIG_FOLD is not set +# CONFIG_FSYNC is not set +CONFIG_HEAD=y +# CONFIG_FEATURE_FANCY_HEAD is not set +# CONFIG_HOSTID is not set +# CONFIG_INSTALL is not set +# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +# CONFIG_FEATURE_MV_LONG_OPTIONS is not set +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +# CONFIG_PRINTENV is not set +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA512SUM=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +CONFIG_FEATURE_FLOAT_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +# CONFIG_SPLIT is not set +# CONFIG_FEATURE_SPLIT_FANCY is not set +# CONFIG_STAT is not set +# CONFIG_FEATURE_STAT_FORMAT is not set +CONFIG_STTY=y +# CONFIG_SUM is not set +CONFIG_SYNC=y +# CONFIG_TAC is not set +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +# CONFIG_UNEXPAND is not set +# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set +CONFIG_UNIQ=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +# CONFIG_FEATURE_WC_LARGE is not set +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum, sha256sum, sha512sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +# CONFIG_FGCONSOLE is not set +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +# CONFIG_RESIZE is not set +# CONFIG_FEATURE_RESIZE_PRINT is not set +CONFIG_SETCONSOLE=y +# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set +CONFIG_SETFONT=y +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set +CONFIG_DEFAULT_SETFONT_DIR="" +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y +CONFIG_SHOWKEY=y + +# +# Common options for loadfont and setfont +# +# CONFIG_FEATURE_LOADFONT_PSF2 is not set +# CONFIG_FEATURE_LOADFONT_RAW is not set + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +# CONFIG_PIPE_PROGRESS is not set +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +# CONFIG_FEATURE_RUN_PARTS_FANCY is not set +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_PATCH=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=4096 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_REGEX_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_ASK_TERMINAL=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +CONFIG_AWK=y +# CONFIG_FEATURE_AWK_LIBM is not set +CONFIG_CMP=y +CONFIG_DIFF=y +# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set +CONFIG_FEATURE_DIFF_DIR=y +# CONFIG_ED is not set +CONFIG_SED=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +CONFIG_FEATURE_FIND_DELETE=y +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_FEATURE_FIND_LINKS=y +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y + +# +# Init Utilities +# +# CONFIG_BOOTCHARTD is not set +# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set +# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set +CONFIG_HALT=y +CONFIG_FEATURE_CALL_TELINIT=y +CONFIG_TELINIT_PATH="/sbin/telinit" +# CONFIG_INIT is not set +# CONFIG_FEATURE_USE_INITTAB is not set +# CONFIG_FEATURE_KILL_REMOVED is not set +CONFIG_FEATURE_KILL_DELAY=0 +# CONFIG_FEATURE_INIT_SCTTY is not set +# CONFIG_FEATURE_INIT_SYSLOG is not set +# CONFIG_FEATURE_EXTRA_QUIET is not set +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_INIT_TERMINAL_TYPE="" +# CONFIG_MESG is not set +# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set + +# +# Login/Password Management Utilities +# +# CONFIG_ADD_SHELL is not set +# CONFIG_REMOVE_SHELL is not set +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +# CONFIG_USE_BB_CRYPT is not set +# CONFIG_USE_BB_CRYPT_SHA is not set +CONFIG_ADDUSER=y +CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y +# CONFIG_FEATURE_CHECK_NAMES is not set +CONFIG_FIRST_SYSTEM_ID=100 +CONFIG_LAST_SYSTEM_ID=999 +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_DELUSER=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_GETTY=y +CONFIG_LOGIN=y +# CONFIG_PAM is not set +# CONFIG_LOGIN_SCRIPTS is not set +# CONFIG_FEATURE_NOLOGIN is not set +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set +# CONFIG_CRYPTPW is not set +# CONFIG_CHPASSWD is not set +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set +CONFIG_SULOGIN=y +# CONFIG_VLOCK is not set + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +CONFIG_LSATTR=y +CONFIG_TUNE2FS=y + +# +# Linux Module Utilities +# +CONFIG_MODINFO=y +# CONFIG_MODPROBE_SMALL is not set +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +CONFIG_INSMOD=y +CONFIG_RMMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_BLACKLIST=y +CONFIG_DEPMOD=y + +# +# Options common to multiple modutils +# +# CONFIG_FEATURE_2_4_MODULES is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_MODUTILS_ALIAS=y +CONFIG_FEATURE_MODUTILS_SYMBOLS=y +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" + +# +# Linux System Utilities +# +# CONFIG_BLOCKDEV is not set +# CONFIG_REV is not set +# CONFIG_ACPID is not set +# CONFIG_FEATURE_ACPID_COMPAT is not set +CONFIG_BLKID=y +CONFIG_FEATURE_BLKID_TYPE=y +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +# CONFIG_FDFLUSH is not set +# CONFIG_FDFORMAT is not set +CONFIG_FDISK=y +# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +# CONFIG_FEATURE_OSF_LABEL is not set +CONFIG_FEATURE_GPT_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +CONFIG_FINDFS=y +CONFIG_FLOCK=y +# CONFIG_FREERAMDISK is not set +# CONFIG_FSCK_MINIX is not set +# CONFIG_MKFS_EXT2 is not set +# CONFIG_MKFS_MINIX is not set +# CONFIG_FEATURE_MINIX2 is not set +# CONFIG_MKFS_REISER is not set +CONFIG_MKFS_VFAT=y +CONFIG_GETOPT=y +CONFIG_FEATURE_GETOPT_LONG=y +CONFIG_HEXDUMP=y +# CONFIG_FEATURE_HEXDUMP_REVERSE is not set +CONFIG_HD=y +# CONFIG_HWCLOCK is not set +# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set +# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set +# CONFIG_IPCRM is not set +# CONFIG_IPCS is not set +CONFIG_LOSETUP=y +CONFIG_LSPCI=y +CONFIG_LSUSB=y +# CONFIG_MDEV is not set +# CONFIG_FEATURE_MDEV_CONF is not set +# CONFIG_FEATURE_MDEV_RENAME is not set +# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set +# CONFIG_FEATURE_MDEV_EXEC is not set +# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_UUID=y +CONFIG_MORE=y +CONFIG_MOUNT=y +# CONFIG_FEATURE_MOUNT_FAKE is not set +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +# CONFIG_PIVOT_ROOT is not set +CONFIG_RDATE=y +CONFIG_RDEV=y +CONFIG_READPROFILE=y +# CONFIG_RTCWAKE is not set +# CONFIG_SCRIPT is not set +# CONFIG_SCRIPTREPLAY is not set +# CONFIG_SETARCH is not set +CONFIG_SWAPONOFF=y +# CONFIG_FEATURE_SWAPON_PRI is not set +CONFIG_SWITCH_ROOT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MOUNT_LOOP_CREATE=y +# CONFIG_FEATURE_MTAB_SUPPORT is not set +CONFIG_VOLUMEID=y + +# +# Filesystem/Volume identification +# +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_BTRFS=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +CONFIG_FEATURE_VOLUMEID_HFS=y +CONFIG_FEATURE_VOLUMEID_JFS=y +CONFIG_FEATURE_VOLUMEID_XFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +CONFIG_FEATURE_VOLUMEID_ISO9660=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_ROMFS=y +CONFIG_FEATURE_VOLUMEID_SYSV=y +CONFIG_FEATURE_VOLUMEID_OCFS2=y +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y + +# +# Miscellaneous Utilities +# +# CONFIG_CONSPY is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +# CONFIG_FEATURE_LESS_MARKS is not set +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_FEATURE_LESS_WINCH=y +CONFIG_FEATURE_LESS_ASK_TERMINAL=y +# CONFIG_FEATURE_LESS_DASHCMD is not set +# CONFIG_FEATURE_LESS_LINENUMS is not set +CONFIG_NANDWRITE=y +# CONFIG_NANDDUMP is not set +CONFIG_SETSERIAL=y +# CONFIG_UBIATTACH is not set +# CONFIG_UBIDETACH is not set +# CONFIG_UBIMKVOL is not set +# CONFIG_UBIRMVOL is not set +# CONFIG_UBIRSVOL is not set +# CONFIG_UBIUPDATEVOL is not set +# CONFIG_ADJTIMEX is not set +CONFIG_BBCONFIG=y +CONFIG_FEATURE_COMPRESS_BBCONFIG=y +# CONFIG_BEEP is not set +CONFIG_FEATURE_BEEP_FREQ=0 +CONFIG_FEATURE_BEEP_LENGTH_MS=0 +# CONFIG_CHAT is not set +# CONFIG_FEATURE_CHAT_NOFAIL is not set +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +CONFIG_CHRT=y +CONFIG_CROND=y +# CONFIG_FEATURE_CROND_D is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_FEATURE_CROND_DIR="/etc/cron" +CONFIG_CRONTAB=y +CONFIG_DC=y +# CONFIG_FEATURE_DC_LIBM is not set +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_DEVMEM=y +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +# CONFIG_FBSPLASH is not set +# CONFIG_FLASHCP is not set +# CONFIG_FLASH_LOCK is not set +# CONFIG_FLASH_UNLOCK is not set +CONFIG_FLASH_ERASEALL=y +CONFIG_IONICE=y +CONFIG_INOTIFYD=y +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_SMALL is not set +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_HDPARM=y +CONFIG_FEATURE_HDPARM_GET_IDENTITY=y +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y +# CONFIG_MAKEDEVS is not set +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +# CONFIG_FEATURE_MAKEDEVS_TABLE is not set +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +# CONFIG_MOUNTPOINT is not set +# CONFIG_MT is not set +# CONFIG_RAIDAUTORUN is not set +CONFIG_READAHEAD=y +# CONFIG_RFKILL is not set +# CONFIG_RUNLEVEL is not set +# CONFIG_RX is not set +CONFIG_SETSID=y +CONFIG_STRINGS=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_TIME=y +CONFIG_TIMEOUT=y +# CONFIG_TTYSIZE is not set +CONFIG_VOLNAME=y +# CONFIG_WALL is not set +# CONFIG_WATCHDOG is not set + +# +# Networking Utilities +# +CONFIG_NAMEIF=y +CONFIG_FEATURE_NAMEIF_EXTENDED=y +CONFIG_NBDCLIENT=y +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +# CONFIG_NC_110_COMPAT is not set +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_WHOIS=y +CONFIG_FEATURE_IPV6=y +# CONFIG_FEATURE_UNIX_LOCAL is not set +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_ARP=y +# CONFIG_ARPING is not set +CONFIG_BRCTL=y +CONFIG_FEATURE_BRCTL_FANCY=y +CONFIG_FEATURE_BRCTL_SHOW=y +# CONFIG_DNSD is not set +CONFIG_ETHER_WAKE=y +# CONFIG_FAKEIDENTD is not set +# CONFIG_FTPD is not set +# CONFIG_FEATURE_FTP_WRITE is not set +# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set +# CONFIG_FTPGET is not set +# CONFIG_FTPPUT is not set +# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +# CONFIG_FEATURE_HTTPD_GZIP is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +# CONFIG_FEATURE_IFCONFIG_SLIP is not set +# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set +CONFIG_FEATURE_IFCONFIG_HW=y +# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set +# CONFIG_IFENSLAVE is not set +CONFIG_IFPLUGD=y +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +# CONFIG_FEATURE_IP_SHORT_FORMS is not set +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +# CONFIG_IPADDR is not set +# CONFIG_IPLINK is not set +# CONFIG_IPROUTE is not set +# CONFIG_IPTUNNEL is not set +# CONFIG_IPRULE is not set +# CONFIG_IPCALC is not set +# CONFIG_FEATURE_IPCALC_FANCY is not set +# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set +CONFIG_NETSTAT=y +CONFIG_FEATURE_NETSTAT_WIDE=y +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +# CONFIG_NTPD is not set +# CONFIG_FEATURE_NTPD_SERVER is not set +# CONFIG_PSCAN is not set +CONFIG_ROUTE=y +# CONFIG_SLATTACH is not set +# CONFIG_TCPSVD is not set +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_TELNETD=y +# CONFIG_FEATURE_TELNETD_STANDALONE is not set +# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set +CONFIG_TFTP=y +# CONFIG_TFTPD is not set + +# +# Common options for tftp/tftpd +# +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set +# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set +# CONFIG_TFTP_DEBUG is not set +CONFIG_TRACEROUTE=y +CONFIG_TRACEROUTE6=y +CONFIG_FEATURE_TRACEROUTE_VERBOSE=y +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y +CONFIG_TUNCTL=y +CONFIG_FEATURE_TUNCTL_UG=y +# CONFIG_UDHCPD is not set +# CONFIG_DHCPRELAY is not set +# CONFIG_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +CONFIG_DHCPD_LEASES_FILE="" +CONFIG_UDHCPC=y +CONFIG_FEATURE_UDHCPC_ARPING=y +# CONFIG_FEATURE_UDHCP_PORT is not set +CONFIG_UDHCP_DEBUG=0 +# CONFIG_FEATURE_UDHCP_RFC3397 is not set +CONFIG_FEATURE_UDHCP_8021Q=y +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -b -T3 -A10" +# CONFIG_UDPSVD is not set +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_TIMEOUT=y +# CONFIG_ZCIP is not set + +# +# Print Utilities +# +# CONFIG_LPD is not set +# CONFIG_LPR is not set +# CONFIG_LPQ is not set + +# +# Mail Utilities +# +# CONFIG_MAKEMIME is not set +CONFIG_FEATURE_MIME_CHARSET="us-ascii" +# CONFIG_POPMAILDIR is not set +# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set +# CONFIG_REFORMIME is not set +# CONFIG_FEATURE_REFORMIME_COMPAT is not set +CONFIG_SENDMAIL=y + +# +# Process Utilities +# +CONFIG_IOSTAT=y +CONFIG_MPSTAT=y +CONFIG_NMETER=y +# CONFIG_PMAP is not set +CONFIG_POWERTOP=y +# CONFIG_PSTREE is not set +# CONFIG_PWDX is not set +CONFIG_SMEMCAP=y +CONFIG_UPTIME=y +# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set +CONFIG_FREE=y +# CONFIG_FUSER is not set +CONFIG_KILL=y +CONFIG_KILLALL=y +# CONFIG_KILLALL5 is not set +# CONFIG_PGREP is not set +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +# CONFIG_PKILL is not set +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +# CONFIG_FEATURE_PS_TIME is not set +# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_SMP_CPU=y +# CONFIG_FEATURE_TOP_DECIMALS is not set +# CONFIG_FEATURE_TOP_SMP_PROCESS is not set +CONFIG_FEATURE_TOPMEM=y +CONFIG_FEATURE_SHOW_THREADS=y +# CONFIG_WATCH is not set + +# +# Runit Utilities +# +# CONFIG_RUNSV is not set +# CONFIG_RUNSVDIR is not set +# CONFIG_FEATURE_RUNSVDIR_LOG is not set +# CONFIG_SV is not set +CONFIG_SV_DEFAULT_SERVICE_DIR="" +# CONFIG_SVLOGD is not set +# CONFIG_CHPST is not set +# CONFIG_SETUIDGID is not set +# CONFIG_ENVUIDGID is not set +# CONFIG_ENVDIR is not set +# CONFIG_SOFTLIMIT is not set +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_SETSEBOOL is not set +# CONFIG_SESTATUS is not set + +# +# Shells +# +CONFIG_ASH=y +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_IDLE_TIMEOUT=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +# CONFIG_ASH_CMDCMD is not set +# CONFIG_ASH_MAIL is not set +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_CTTYHACK is not set +# CONFIG_HUSH is not set +# CONFIG_HUSH_BASH_COMPAT is not set +# CONFIG_HUSH_BRACE_EXPANSION is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_SAVEHISTORY is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_HUSH_FUNCTIONS is not set +# CONFIG_HUSH_LOCAL is not set +# CONFIG_HUSH_RANDOM_SUPPORT is not set +# CONFIG_HUSH_EXPORT_N is not set +# CONFIG_HUSH_MODE_X is not set +# CONFIG_MSH is not set +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +CONFIG_FEATURE_BASH_IS_ASH=y +# CONFIG_FEATURE_BASH_IS_HUSH is not set +# CONFIG_FEATURE_BASH_IS_NONE is not set +CONFIG_SH_MATH_SUPPORT=y +# CONFIG_SH_MATH_SUPPORT_64 is not set +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_FEATURE_SH_HISTFILESIZE=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +CONFIG_FEATURE_SYSLOGD_DUP=y +CONFIG_FEATURE_SYSLOGD_CFG=y +CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_KLOGD=y +CONFIG_FEATURE_KLOGD_KLOGCTL=y +CONFIG_LOGGER=y diff --git a/meta-openvuplus/recipes-core/busybox/busybox_1.19.4.bbappend b/meta-openvuplus/recipes-core/busybox/busybox_1.19.4.bbappend new file mode 100644 index 0000000..94155cb --- /dev/null +++ b/meta-openvuplus/recipes-core/busybox/busybox_1.19.4.bbappend @@ -0,0 +1,32 @@ +PR .= "-vuplus1" + +SRC_URI += "file://busybox-telnetd.xinetd.in \ + file://busybox-telnetd@.service \ + file://busybox-telnetd.socket \ + file://0001-ifupdown-support-post-up-pre-down-hooks.patch \ + file://0002-ifupdown-code-shrink.patch \ + file://0003-ifupdown-remove-interface-from-state_list-if-iface_u.patch \ + file://0004-ifupdown-support-metric-for-static-default-gw.patch \ + file://0005-ifupdown-improve-compatibility-with-Debian.patch \ + file://0006-get_linux_version_code-don-t-fail-on-3.0-foo.patch \ + file://0007-ifplugd-move-read_pid-to-libbb-pidfile.c-and-rename-.patch \ + file://0008-ifupdown-dhcp_down-wait-until-udhcpc-has-been-killed.patch \ + file://0009-udhcpc-calculate-broadcast-address-if-not-given-by-s.patch" + +inherit systemd xinetd + +do_install_append() { + if grep -q "CONFIG_CRONTAB=y" ${WORKDIR}/defconfig; then + install -d ${D}${sysconfdir}/cron/crontabs + fi + install -d ${D}${systemd_unitdir}/system + ln -sf /dev/null ${D}${systemd_unitdir}/system/busybox-telnetd.service +} + +FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:" + +SYSTEMD_PACKAGES += "${PN}-systemd" +SYSTEMD_SERVICE_${PN}-systemd = "busybox-telnetd.socket" + +XINETD_PACKAGES = "${PN}-xinetd" +XINETD_SERVICE_${PN}-xinetd = "busybox-telnetd" diff --git a/meta-openvuplus/recipes-core/dropbear/dropbear/dropbear.xinetd.in b/meta-openvuplus/recipes-core/dropbear/dropbear/dropbear.xinetd.in new file mode 100644 index 0000000..7e3e247 --- /dev/null +++ b/meta-openvuplus/recipes-core/dropbear/dropbear/dropbear.xinetd.in @@ -0,0 +1,8 @@ +service ssh +{ + socket_type = stream + user = root + server = @SBINDIR@/dropbear + server_args = -i + wait = no +} diff --git a/meta-openvuplus/recipes-core/dropbear/dropbear_2012.55.bbappend b/meta-openvuplus/recipes-core/dropbear/dropbear_2012.55.bbappend new file mode 100644 index 0000000..21b00d1 --- /dev/null +++ b/meta-openvuplus/recipes-core/dropbear/dropbear_2012.55.bbappend @@ -0,0 +1,15 @@ +PR .= "-vuplus0" + +SRC_URI += "file://dropbear.xinetd.in" + +inherit xinetd + +do_install_append() { + install -d ${D}${sysconfdir}/default + echo 'DAEMON="${base_bindir}/true"' >> ${D}${sysconfdir}/default/dropbear +} + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +XINETD_PACKAGES = "${PN}-xinetd" +XINETD_SERVICE_${PN}-xinetd = "dropbear" diff --git a/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/bm750/bootup_3.1 b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/bm750/bootup_3.1 new file mode 100755 index 0000000..2bff27d --- /dev/null +++ b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/bm750/bootup_3.1 @@ -0,0 +1,36 @@ +#double check driver +if lsmod | grep -q 'brcmfb'; then + echo driver is installed +else + for mod in procmk dvb-bcm7335 brcmfb; do + modprobe $mod + done +fi + +depmod -Ae + +# sleep after 10min +hdparm -S 120 /dev/sda + +# accustic management +hdparm -M 128 /dev/sda + +if [ ! -h /boot/bootlogo.mvi ]; then + ln -sf /usr/share/bootlogo.mvi /boot/bootlogo.mvi +fi + +if [ ! -h /boot/bootlogo_wait.mvi ]; then + ln -sf /usr/share/bootlogo_wait.mvi /boot/bootlogo_wait.mvi +fi + +if [ ! -h /boot/backdrop.mvi ]; then + ln -sf /usr/share/backdrop.mvi /boot/backdrop.mvi +fi + +[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi + +ipkg-cl configure + +if [ -f /usr/local/bin/vucamd ]; then + /usr/local/bin/vucamd & +fi diff --git a/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuplus/halt b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuplus/halt new file mode 100755 index 0000000..e31ef66 --- /dev/null +++ b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuplus/halt @@ -0,0 +1,29 @@ +#! /bin/sh +# +# halt Execute the halt command. +# +# Version: @(#)halt 2.84-2 07-Jan-2002 miquels@cistron.nl +# + +PATH=/sbin:/bin:/usr/sbin:/usr/bin + +# See if we need to cut the power. +if test -x /etc/init.d/ups-monitor +then + /etc/init.d/ups-monitor poweroff +fi + +# Don't shut down drives if we're using RAID. +hddown="-h" +if grep -qs '^md.*active' /proc/mdstat +then + hddown="" +fi + +showiframe /usr/share/switchoff.mvi + +/usr/bin/turnoff_power + +halt -d -f -i -p $hddown + +: exit 0 diff --git a/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuplus/hotplug_br b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuplus/hotplug_br new file mode 100755 index 0000000000000000000000000000000000000000..442d25f29391a19be6460f28fab8c5f116b5ccae GIT binary patch literal 77185 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 IRt*;a2S~rlVgLXD literal 0 HcmV?d00001 diff --git a/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuplus/make_mac_sector b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuplus/make_mac_sector new file mode 100755 index 0000000000000000000000000000000000000000..34affcce5d0502ed7086c20b46dda23774a59609 GIT binary patch literal 75327 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 F{4b5S5?25K literal 0 HcmV?d00001 diff --git a/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vusolo/bootup_3.1 b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vusolo/bootup_3.1 new file mode 100755 index 0000000..572e96a --- /dev/null +++ b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vusolo/bootup_3.1 @@ -0,0 +1,51 @@ +#double check driver +if lsmod | grep -q 'brcmfb'; then + echo driver is installed +else + for mod in procmk dvb-bcm7325 brcmfb; do + modprobe $mod + done +fi + +depmod -Ae + +#Solo has only usb port. Needs a delay for usb pvr +count=1 +while [ $count -le 5 ] +do + let count=$count+1 + if [ -e /dev/sda1 ]; then + echo count, $count + echo "External USB HDD will be mounted on /media/hdd" + break; + fi; + sleep 1 +done + +# sleep after 10min +hdparm -S 120 /dev/sda + +# accustic management +hdparm -M 128 /dev/sda + +if [ ! -h /boot/bootlogo.mvi ]; then + ln -sf /usr/share/bootlogo.mvi /boot/bootlogo.mvi +fi + +if [ ! -h /boot/bootlogo_wait.mvi ]; then + ln -sf /usr/share/bootlogo_wait.mvi /boot/bootlogo_wait.mvi +fi + +if [ ! -h /boot/backdrop.mvi ]; then + ln -sf /usr/share/backdrop.mvi /boot/backdrop.mvi +fi + +[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi + +ipkg-cl configure + +if [ -f /usr/local/bin/vucamd ]; then + /usr/local/bin/vucamd & +fi + + diff --git a/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vusolo2/bootup_3.1 b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vusolo2/bootup_3.1 new file mode 100755 index 0000000..daf9c63 --- /dev/null +++ b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vusolo2/bootup_3.1 @@ -0,0 +1,37 @@ +#Double check driver existence +if lsmod | grep -q 'brcmfb'; then + echo driver is installed +else + for mod in procmk dvb-bcm7413 brcmfb fpga_directc; do + modprobe $mod + done +fi + +depmod -Ae + +# sleep after 10min +hdparm -S 120 /dev/sda + +# accustic management +hdparm -M128 /dev/sda + +if [ ! -h /boot/bootlogo.mvi ]; then + ln -sf /usr/share/bootlogo.mvi /boot/bootlogo.mvi +fi + +if [ ! -h /boot/bootlogo_wait.mvi ]; then + ln -sf /usr/share/bootlogo_wait.mvi /boot/bootlogo_wait.mvi +fi + +if [ ! -h /boot/backdrop.mvi ]; then + ln -sf /usr/share/backdrop.mvi /boot/backdrop.mvi +fi + +[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi + +ipkg-cl configure + +if [ -f /usr/local/bin/vucamd ]; then + /usr/local/bin/vucamd & +fi + diff --git a/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuultimo/bootup_3.1 b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuultimo/bootup_3.1 new file mode 100755 index 0000000..daf9c63 --- /dev/null +++ b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuultimo/bootup_3.1 @@ -0,0 +1,37 @@ +#Double check driver existence +if lsmod | grep -q 'brcmfb'; then + echo driver is installed +else + for mod in procmk dvb-bcm7413 brcmfb fpga_directc; do + modprobe $mod + done +fi + +depmod -Ae + +# sleep after 10min +hdparm -S 120 /dev/sda + +# accustic management +hdparm -M128 /dev/sda + +if [ ! -h /boot/bootlogo.mvi ]; then + ln -sf /usr/share/bootlogo.mvi /boot/bootlogo.mvi +fi + +if [ ! -h /boot/bootlogo_wait.mvi ]; then + ln -sf /usr/share/bootlogo_wait.mvi /boot/bootlogo_wait.mvi +fi + +if [ ! -h /boot/backdrop.mvi ]; then + ln -sf /usr/share/backdrop.mvi /boot/backdrop.mvi +fi + +[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi + +ipkg-cl configure + +if [ -f /usr/local/bin/vucamd ]; then + /usr/local/bin/vucamd & +fi + diff --git a/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuuno/bootup_3.1 b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuuno/bootup_3.1 new file mode 100755 index 0000000..52819bf --- /dev/null +++ b/meta-openvuplus/recipes-core/initscripts/initscripts-1.0/vuuno/bootup_3.1 @@ -0,0 +1,37 @@ +#double check driver +if lsmod | grep -q 'brcmfb'; then + echo driver is installed +else + for mod in procmk dvb-bcm7413 brcmfb fpga_directc; do + modprobe $mod + done +fi + +depmod -Ae + +# sleep after 10min +hdparm -S 120 /dev/sda + +# accustic management +hdparm -M128 /dev/sda + +if [ ! -h /boot/bootlogo.mvi ]; then + ln -sf /usr/share/bootlogo.mvi /boot/bootlogo.mvi +fi + +if [ ! -h /boot/bootlogo_wait.mvi ]; then + ln -sf /usr/share/bootlogo_wait.mvi /boot/bootlogo_wait.mvi +fi + +if [ ! -h /boot/backdrop.mvi ]; then + ln -sf /usr/share/backdrop.mvi /boot/backdrop.mvi +fi + +[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi + +ipkg-cl configure + +if [ -f /usr/local/bin/vucamd ]; then + /usr/local/bin/vucamd & +fi + diff --git a/meta-openvuplus/recipes-core/initscripts/initscripts_1.0.bbappend b/meta-openvuplus/recipes-core/initscripts/initscripts_1.0.bbappend new file mode 100644 index 0000000..d434fe7 --- /dev/null +++ b/meta-openvuplus/recipes-core/initscripts/initscripts_1.0.bbappend @@ -0,0 +1,27 @@ +PR .= "-vuplus0" + +#BOOTUP = "${@base_contains('PREFERRED_VERSION_linux-vuplus', '3.1.1', 'bootup_3.1', ' ', d)}" +#BOOTUP_vusolo2 = "${@base_contains('PREFERRED_VERSION_linux-vuplus', '3.3.6', 'bootup_3.1', ' ', d)}" +BOOTUP = "bootup_3.1" + +SRC_URI_append = " \ + file://turnoff_power \ + file://hotplug_br \ + file://make_mac_sector \ + file://${BOOTUP} \ +" + +do_install_append() { + rm ${D}${sysconfdir}/*.d/*save-rtc.sh + + install -d ${D}/usr/bin + install -m 0755 ${WORKDIR}/turnoff_power ${D}/usr/bin + install -m 0755 ${WORKDIR}/hotplug_br ${D}/usr/bin + install -m 0755 ${WORKDIR}/make_mac_sector ${D}/usr/bin + install -m 0755 ${WORKDIR}/${BOOTUP} ${D}${sysconfdir}/init.d/bootup + ln -sf ../init.d/bootup ${D}${sysconfdir}/rcS.d/S05bootup +} + +FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:" + +PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/meta-openvuplus/recipes-core/netbase/netbase/interfaces b/meta-openvuplus/recipes-core/netbase/netbase/interfaces new file mode 100644 index 0000000..673618f --- /dev/null +++ b/meta-openvuplus/recipes-core/netbase/netbase/interfaces @@ -0,0 +1,10 @@ +# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) + +# The loopback interface +auto lo +iface lo inet loopback + +# Ethernet +auto eth0 +iface eth0 inet dhcp + diff --git a/meta-openvuplus/recipes-core/netbase/netbase_4.47.bbappend b/meta-openvuplus/recipes-core/netbase/netbase_4.47.bbappend new file mode 100644 index 0000000..429c37f --- /dev/null +++ b/meta-openvuplus/recipes-core/netbase/netbase_4.47.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +PR .= "-vuplus0" diff --git a/meta-openvuplus/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bbappend b/meta-openvuplus/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bbappend new file mode 100644 index 0000000..791ef52 --- /dev/null +++ b/meta-openvuplus/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bbappend @@ -0,0 +1,7 @@ +PR .= "-dream3" + +do_install_append() { + sed -e 's,^id:5:initdefault:$,id:3:initdefault:,' -i ${D}${sysconfdir}/inittab + echo "S:5:respawn:${base_sbindir}/getty ttyS0 115200" >> ${D}${sysconfdir}/inittab + echo "e2:3:respawn:${bindir}/enigma2.sh" >> ${D}${sysconfdir}/inittab +} diff --git a/meta-openvuplus/recipes-core/sysvinit/sysvinit/67_init_hddown.dpatch b/meta-openvuplus/recipes-core/sysvinit/sysvinit/67_init_hddown.dpatch new file mode 100644 index 0000000..dcd32d6 --- /dev/null +++ b/meta-openvuplus/recipes-core/sysvinit/sysvinit/67_init_hddown.dpatch @@ -0,0 +1,153 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +# 67_init_hddown.dpatch by Sebastian Reichelt +# +# Make sure SATA disks are powered down as well as IDE disks. This +# patch could use some more work to make it more dynamic when +# detecting SATA/SCSI disks. Closes: #348172 + +@DPATCH@ +--- sysvinit-2.86.ds1/src/hddown.c 2004-06-09 14:47:45.000000000 +0200 ++++ sysvinit-2.86.ds1-new/src/hddown.c 2006-01-16 18:05:48.000000000 +0100 +@@ -25,18 +25,17 @@ + /* + * Find all IDE disks through /proc. + */ +-static int find_idedisks(char **dev, int maxdev) ++static int find_idedisks(const char **dev, int maxdev, int *count) + { + DIR *dd; + FILE *fp; + struct dirent *d; + char buf[256]; +- int i = 0; + + if ((dd = opendir(PROC_IDE)) == NULL) + return -1; + +- while ((d = readdir(dd)) != NULL) { ++ while (*count < maxdev && (d = readdir(dd)) != NULL) { + if (strncmp(d->d_name, "hd", 2) != 0) + continue; + buf[0] = 0; +@@ -50,21 +49,58 @@ + } + fclose(fp); + snprintf(buf, sizeof(buf), DEV_BASE "/%s", d->d_name); +- dev[i++] = strdup(buf); +- if (i >= maxdev) +- break; ++ dev[(*count)++] = strdup(buf); + } + closedir(dd); +- if (i < maxdev) dev[i] = NULL; + + return 0; + } + + /* +- * Put an IDE disk in standby mode. ++ * Find all SCSI/SATA disks. ++ */ ++static int find_scsidisks(const char **dev, int maxdev, int *count) ++{ ++ if (*count < maxdev) dev[(*count)++] = DEV_BASE "/sda"; ++ if (*count < maxdev) dev[(*count)++] = DEV_BASE "/sdb"; ++ if (*count < maxdev) dev[(*count)++] = DEV_BASE "/sdc"; ++ if (*count < maxdev) dev[(*count)++] = DEV_BASE "/sdd"; ++ if (*count < maxdev) dev[(*count)++] = DEV_BASE "/sde"; ++ if (*count < maxdev) dev[(*count)++] = DEV_BASE "/sdf"; ++ if (*count < maxdev) dev[(*count)++] = DEV_BASE "/sdg"; ++ if (*count < maxdev) dev[(*count)++] = DEV_BASE "/sdh"; ++ ++ return 0; ++} ++ ++/* ++ * Open the device node of a disk. ++ */ ++static int open_disk(const char *device) ++{ ++ return open(device, O_RDWR); ++} ++ ++/* ++ * Open device nodes of all disks, and store the file descriptors in fds. ++ * This has to be done in advance because accessing the device nodes ++ * might cause a disk to spin back up. ++ */ ++static int open_disks(const char **disks, int *fds, int count) ++{ ++ int i; ++ ++ for (i = 0; i < count; i++) ++ fds[i] = open_disk(disks[i]); ++ ++ return 0; ++} ++ ++/* ++ * Put an IDE/SCSI/SATA disk in standby mode. + * Code stolen from hdparm.c + */ +-static int do_standby_idedisk(char *device) ++static int do_standby_disk(int fd) + { + #ifndef WIN_STANDBYNOW1 + #define WIN_STANDBYNOW1 0xE0 +@@ -74,9 +110,8 @@ + #endif + unsigned char args1[4] = {WIN_STANDBYNOW1,0,0,0}; + unsigned char args2[4] = {WIN_STANDBYNOW2,0,0,0}; +- int fd; + +- if ((fd = open(device, O_RDWR)) < 0) ++ if (fd < 0) + return -1; + + if (ioctl(fd, HDIO_DRIVE_CMD, &args1) && +@@ -87,22 +122,37 @@ + } + + /* +- * First find all IDE disks, then put them in standby mode. ++ * Put all specified disks in standby mode. ++ */ ++static int do_standby_disks(const int *fds, int count) ++{ ++ int i; ++ ++ for (i = 0; i < count; i++) ++ do_standby_disk(fds[i]); ++ ++ return 0; ++} ++ ++/* ++ * First find all IDE/SCSI/SATA disks, then put them in standby mode. + * This has the side-effect of flushing the writecache, + * which is exactly what we want on poweroff. + */ + int hddown(void) + { +- char *disks[MAX_DISKS+1]; +- int i; ++ const char *disks[MAX_DISKS]; ++ int fds[MAX_DISKS]; ++ int count = 0; ++ int result1, result2; + +- if (find_idedisks(disks, MAX_DISKS) < 0) +- return -1; ++ result1 = find_idedisks(disks, MAX_DISKS, &count); ++ result2 = find_scsidisks(disks, MAX_DISKS, &count); + +- for (i = 0; disks[i] && i < MAX_DISKS; i++) +- do_standby_idedisk(disks[i]); ++ open_disks(disks, fds, count); ++ do_standby_disks(fds, count); + +- return 0; ++ return (result1 ? result1 : result2); + } + + #else /* __linux__ */ diff --git a/meta-openvuplus/recipes-core/sysvinit/sysvinit/92_sata-hddown.dpatch b/meta-openvuplus/recipes-core/sysvinit/sysvinit/92_sata-hddown.dpatch new file mode 100644 index 0000000..2f618fc --- /dev/null +++ b/meta-openvuplus/recipes-core/sysvinit/sysvinit/92_sata-hddown.dpatch @@ -0,0 +1,357 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 92_sata-hddown.dpatch by Werner Fink and SuSe +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Make sure to shut down SATA disks properly, and handle each +## DP: disk individually. See also http://linux-ata.org/shutdown.html + +@DPATCH@ +diff -urNad trunk~/src/hddown.c trunk/src/hddown.c +--- trunk~/src/hddown.c 2008-03-26 09:32:51.000000000 +0100 ++++ trunk/src/hddown.c 2008-03-26 09:32:51.000000000 +0100 +@@ -5,6 +5,9 @@ + */ + char *v_hddown = "@(#)hddown.c 1.02 22-Apr-2003 miquels@cistron.nl"; + ++#ifndef _GNU_SOURCE ++#define _GNU_SOURCE ++#endif + #include + #include + #include +@@ -18,6 +21,326 @@ + #include + #include + ++#define USE_SYSFS ++#ifdef USE_SYSFS ++/* ++ * sysfs part Find all disks on the system, list out IDE and unmanaged ++ * SATA disks, flush the cache of those and shut them down. ++ * Author: Werner Fink , 2007/06/12 ++ * ++ */ ++#include ++#include ++#include ++#include ++#ifdef WORDS_BIGENDIAN ++#include ++#endif ++ ++#define SYS_BLK "/sys/block" ++#define SYS_CLASS "/sys/class/scsi_disk" ++#define DEV_BASE "/dev" ++#define ISSPACE(c) (((c)==' ')||((c)=='\n')||((c)=='\t')||((c)=='\v')||((c)=='\r')||((c)=='\f')) ++ ++/* Used in flush_cache_ext(), compare with */ ++#define IDBYTES 512 ++#define MASK_EXT 0xE000 /* Bit 15 shall be zero, bit 14 shall be one, bit 13 flush cache ext */ ++#define TEST_EXT 0x6000 ++ ++/* Maybe set in list_disks() and used in do_standby_idedisk() */ ++#define DISK_IS_IDE 0x00000001 ++#define DISK_IS_SATA 0x00000002 ++#define DISK_EXTFLUSH 0x00000004 ++ ++static char *strstrip(char *str); ++static FILE *hdopen(const char* const format, const char* const name); ++static int flush_cache_ext(const char *device); ++ ++/* ++ * Find all disks through /sys/block. ++ */ ++static char *list_disks(DIR* blk, unsigned int* flags) ++{ ++ struct dirent *d; ++ ++ while ((d = readdir(blk))) { ++ *flags = 0; ++ if (d->d_name[1] == 'd' && (d->d_name[0] == 'h' || d->d_name[0] == 's')) { ++ char buf[NAME_MAX+1], lnk[NAME_MAX+1], *ptr; ++ struct stat st; ++ FILE *fp; ++ int ret; ++ ++ fp = hdopen(SYS_BLK "/%s/removable", d->d_name); ++ if ((long)fp <= 0) { ++ if ((long)fp < 0) ++ goto empty; /* error */ ++ continue; /* no entry `removable' */ ++ } ++ ++ ret = getc(fp); ++ fclose(fp); ++ ++ if (ret != '0') ++ continue; /* not a hard disk */ ++ ++ if (d->d_name[0] == 'h') { ++ (*flags) |= DISK_IS_IDE; ++ if ((ret = flush_cache_ext(d->d_name))) { ++ if (ret < 0) ++ goto empty; ++ (*flags) |= DISK_EXTFLUSH; ++ } ++ break; /* old IDE disk not managed by kernel, out here */ ++ } ++ ++ ret = snprintf(buf, sizeof(buf), SYS_BLK "/%s/device", d->d_name); ++ if ((ret >= sizeof(buf)) || (ret < 0)) ++ goto empty; /* error */ ++ ++ ret = readlink(buf, lnk, sizeof(lnk)); ++ if (ret >= sizeof(lnk)) ++ goto empty; /* error */ ++ if (ret < 0) { ++ if (errno != ENOENT) ++ goto empty; /* error */ ++ continue; /* no entry `device' */ ++ } ++ lnk[ret] = '\0'; ++ ++ ptr = basename(lnk); ++ if (!ptr || !*ptr) ++ continue; /* should not happen */ ++ ++ ret = snprintf(buf, sizeof(buf), SYS_CLASS "/%s/manage_start_stop", ptr); ++ if ((ret >= sizeof(buf)) || (ret < 0)) ++ goto empty; /* error */ ++ ++ ret = stat(buf, &st); ++ if (ret == 0) ++ continue; /* disk found but managed by kernel */ ++ ++ if (errno != ENOENT) ++ goto empty; /* error */ ++ ++ fp = hdopen(SYS_BLK "/%s/device/vendor", d->d_name); ++ if ((long)fp <= 0) { ++ if ((long)fp < 0) ++ goto empty; /* error */ ++ continue; /* no entry `device/vendor' */ ++ } ++ ++ ptr = fgets(buf, sizeof(buf), fp); ++ fclose(fp); ++ if (ptr == (char*)0) ++ continue; /* should not happen */ ++ ++ ptr = strstrip(buf); ++ if (*ptr == '\0') ++ continue; /* should not happen */ ++ ++ if (strncmp(buf, "ATA", sizeof(buf))) ++ continue; /* no SATA but a real SCSI disk */ ++ ++ (*flags) |= (DISK_IS_IDE|DISK_IS_SATA); ++ if ((ret = flush_cache_ext(d->d_name))) { ++ if (ret < 0) ++ goto empty; ++ (*flags) |= DISK_EXTFLUSH; ++ } ++ break; /* new SATA disk to shutdown, out here */ ++ } ++ } ++ if (d == (struct dirent*)0) ++ goto empty; ++ return d->d_name; ++empty: ++ return (char*)0; ++} ++ ++/* ++ * Put an disk in standby mode. ++ * Code stolen from hdparm.c ++ */ ++static int do_standby_idedisk(char *device, unsigned int flags) ++{ ++#ifndef WIN_STANDBYNOW1 ++#define WIN_STANDBYNOW1 0xE0 ++#endif ++#ifndef WIN_STANDBYNOW2 ++#define WIN_STANDBYNOW2 0x94 ++#endif ++#ifndef WIN_FLUSH_CACHE_EXT ++#define WIN_FLUSH_CACHE_EXT 0xEA ++#endif ++#ifndef WIN_FLUSH_CACHE ++#define WIN_FLUSH_CACHE 0xE7 ++#endif ++ unsigned char flush1[4] = {WIN_FLUSH_CACHE_EXT,0,0,0}; ++ unsigned char flush2[4] = {WIN_FLUSH_CACHE,0,0,0}; ++ unsigned char stdby1[4] = {WIN_STANDBYNOW1,0,0,0}; ++ unsigned char stdby2[4] = {WIN_STANDBYNOW2,0,0,0}; ++ char buf[NAME_MAX+1]; ++ int fd, ret; ++ ++ ret = snprintf(buf, sizeof(buf), DEV_BASE "/%s", device); ++ if ((ret >= sizeof(buf)) || (ret < 0)) ++ return -1; ++ ++ if ((fd = open(buf, O_RDWR)) < 0) ++ return -1; ++ ++ switch (flags & DISK_EXTFLUSH) { ++ case DISK_EXTFLUSH: ++ if (ioctl(fd, HDIO_DRIVE_CMD, &flush1) == 0) ++ break; ++ /* Extend flush rejected, try standard flush */ ++ default: ++ ioctl(fd, HDIO_DRIVE_CMD, &flush2); ++ break; ++ } ++ ++ ret = ioctl(fd, HDIO_DRIVE_CMD, &stdby1) && ++ ioctl(fd, HDIO_DRIVE_CMD, &stdby2); ++ close(fd); ++ ++ if (ret) ++ return -1; ++ return 0; ++} ++ ++/* ++ * List all disks and put them in standby mode. ++ * This has the side-effect of flushing the writecache, ++ * which is exactly what we want on poweroff. ++ */ ++int hddown(void) ++{ ++ unsigned int flags; ++ char *disk; ++ DIR *blk; ++ ++ if ((blk = opendir(SYS_BLK)) == (DIR*)0) ++ return -1; ++ ++ while ((disk = list_disks(blk, &flags))) ++ do_standby_idedisk(disk, flags); ++ ++ return closedir(blk); ++} ++ ++/* ++ * Strip off trailing white spaces ++ */ ++static char *strstrip(char *str) ++{ ++ const size_t len = strlen(str); ++ if (len) { ++ char* end = str + len - 1; ++ while ((end != str) && ISSPACE(*end)) ++ end--; ++ *(end + 1) = '\0'; /* remove trailing white spaces */ ++ } ++ return str; ++} ++ ++/* ++ * Open a sysfs file without getting a controlling tty ++ * and return FILE* pointer. ++ */ ++static FILE *hdopen(const char* const format, const char* const name) ++{ ++ char buf[NAME_MAX+1]; ++ FILE *fp = (FILE*)-1; ++ int fd, ret; ++ ++ ret = snprintf(buf, sizeof(buf), format, name); ++ if ((ret >= sizeof(buf)) || (ret < 0)) ++ goto error; /* error */ ++ ++ fd = open(buf, O_RDONLY|O_NOCTTY); ++ if (fd < 0) { ++ if (errno != ENOENT) ++ goto error; /* error */ ++ fp = (FILE*)0; ++ goto error; /* no entry `removable' */ ++ } ++ ++ fp = fdopen(fd, "r"); ++ if (fp == (FILE*)0) ++ close(fd); /* should not happen */ ++error: ++ return fp; ++} ++ ++/* ++ * Check IDE/(S)ATA hard disk identity for ++ * the FLUSH CACHE EXT bit set. ++ */ ++static int flush_cache_ext(const char *device) ++{ ++#ifndef WIN_IDENTIFY ++#define WIN_IDENTIFY 0xEC ++#endif ++ unsigned char args[4+IDBYTES]; ++ unsigned short *id = (unsigned short*)(&args[4]); ++ char buf[NAME_MAX+1], *ptr; ++ int fd = -1, ret = 0; ++ FILE *fp; ++ ++ fp = hdopen(SYS_BLK "/%s/size", device); ++ if ((long)fp <= 0) { ++ if ((long)fp < 0) ++ return -1; /* error */ ++ goto out; /* no entry `size' */ ++ } ++ ++ ptr = fgets(buf, sizeof(buf), fp); ++ fclose(fp); ++ if (ptr == (char*)0) ++ goto out; /* should not happen */ ++ ++ ptr = strstrip(buf); ++ if (*ptr == '\0') ++ goto out; /* should not happen */ ++ ++ if ((size_t)atoll(buf) < (1<<28)) ++ goto out; /* small disk */ ++ ++ ret = snprintf(buf, sizeof(buf), DEV_BASE "/%s", device); ++ if ((ret >= sizeof(buf)) || (ret < 0)) ++ return -1; /* error */ ++ ++ if ((fd = open(buf, O_RDONLY|O_NONBLOCK)) < 0) ++ goto out; ++ ++ memset(&args[0], 0, sizeof(args)); ++ args[0] = WIN_IDENTIFY; ++ args[3] = 1; ++ if (ioctl(fd, HDIO_DRIVE_CMD, &args)) ++ goto out; ++#ifdef WORDS_BIGENDIAN ++# if 0 ++ { ++ const unsigned short *end = id + IDBYTES/2; ++ const unsigned short *from = id; ++ unsigned short *to = id; ++ ++ while (from < end) ++ *to++ = bswap_16(*from++); ++ } ++# else ++ id[83] = bswap_16(id[83]); ++# endif ++#endif ++ if ((id[83] & MASK_EXT) == TEST_EXT) ++ ret = 1; ++out: ++ if (fd >= 0) ++ close(fd); ++ return ret; ++} ++#else /* ! USE_SYSFS */ + #define MAX_DISKS 64 + #define PROC_IDE "/proc/ide" + #define DEV_BASE "/dev" +@@ -154,7 +477,7 @@ + + return (result1 ? result1 : result2); + } +- ++#endif /* ! USE_SYSFS */ + #else /* __linux__ */ + + int hddown(void) diff --git a/meta-openvuplus/recipes-core/sysvinit/sysvinit/proc_progress.patch b/meta-openvuplus/recipes-core/sysvinit/sysvinit/proc_progress.patch new file mode 100644 index 0000000..338f9e6 --- /dev/null +++ b/meta-openvuplus/recipes-core/sysvinit/sysvinit/proc_progress.patch @@ -0,0 +1,16 @@ +--- a/rc 2012-03-06 01:33:16.778221585 +0100 ++++ b/rc 2012-03-06 01:34:49.482223958 +0100 +@@ -26,11 +26,8 @@ + progress=$progress_size + fi + #echo "PROGRESS is $progress $runlevel $first_step + ($step of $num_steps) $step_change $progress_size" +- #if type psplash-write >/dev/null 2>&1; then +- # TMPDIR=/mnt/.psplash psplash-write "PROGRESS $progress" || true +- #fi +- if [ -e /mnt/.psplash/psplash_fifo ]; then +- echo "PROGRESS $progress" > /mnt/.psplash/psplash_fifo ++ if [ $progress -gt 0 -a -e /proc/progress ]; then ++ echo $(($progress / 2)) > /proc/progress + fi + } + diff --git a/meta-openvuplus/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend b/meta-openvuplus/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend new file mode 100644 index 0000000..d1b16dd --- /dev/null +++ b/meta-openvuplus/recipes-core/sysvinit/sysvinit_2.88dsf.bbappend @@ -0,0 +1,14 @@ +PR .= "-vuplus0" + +SRC_URI += " \ + file://67_init_hddown.dpatch \ + file://92_sata-hddown.dpatch \ + file://proc_progress.patch;apply=no \ +" + +do_install_append() { + rm ${D}${sysconfdir}/rc*.d/*bootlogd + patch -d ${D}${sysconfdir}/init.d -p1 -i ${WORKDIR}/proc_progress.patch +} + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/meta-openvuplus/recipes-core/tasks/task-core-boot.bb b/meta-openvuplus/recipes-core/tasks/task-core-boot.bb new file mode 100644 index 0000000..a4c390b --- /dev/null +++ b/meta-openvuplus/recipes-core/tasks/task-core-boot.bb @@ -0,0 +1,7 @@ +PR = "${INC_PR}.1" + +RDEPENDS_${PN} = " \ + busybox-xinetd \ + " + +require task-core-boot.inc diff --git a/meta-openvuplus/recipes-core/tasks/task-core-boot.inc b/meta-openvuplus/recipes-core/tasks/task-core-boot.inc new file mode 100644 index 0000000..2594b5f --- /dev/null +++ b/meta-openvuplus/recipes-core/tasks/task-core-boot.inc @@ -0,0 +1,37 @@ +SUMMARY = "minimal bootable image" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +inherit task + +PACKAGE_ARCH = "${MACHINE_ARCH}" +PR = "r0" + +# +# Set by the machine configuration with packages essential for device bootup +# +MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "" +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" + +# Distro can override the following VIRTUAL-RUNTIME providers: +VIRTUAL-RUNTIME_dev_manager ?= "udev" +VIRTUAL-RUNTIME_init_manager ?= "sysvinit" +VIRTUAL-RUNTIME_initscripts ?= "initscripts" +VIRTUAL-RUNTIME_keymaps ?= "keymaps" + +RDEPENDS_${PN} += " \ + base-files \ + base-passwd \ + busybox \ + ${VIRTUAL-RUNTIME_initscripts} \ + ${@base_contains("MACHINE_FEATURES", "keyboard", "${VIRTUAL-RUNTIME_keymaps}", "", d)} \ + modutils-initscripts \ + netbase \ + ${VIRTUAL-RUNTIME_init_manager} \ + ${VIRTUAL-RUNTIME_dev_manager} \ + ${VIRTUAL-RUNTIME_update-alternatives} \ + ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" + +RRECOMMENDS_${PN} += "${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" + diff --git a/meta-openvuplus/recipes-core/udev/udev-182/init b/meta-openvuplus/recipes-core/udev/udev-182/init new file mode 100644 index 0000000..45e1fc3 --- /dev/null +++ b/meta-openvuplus/recipes-core/udev/udev-182/init @@ -0,0 +1,45 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides: udev +# Required-Start: mountvirtfs +# Required-Stop: +# Default-Start: S +# Default-Stop: +# Short-Description: Start udevd, populate /dev (symlinks only) and load drivers. +### END INIT INFO + +export TZ=/etc/localtime + +[ -d /sys/class ] || exit 1 +[ -r /proc/mounts ] || exit 1 +[ -x /lib/udev/udevd ] || exit 1 +[ -f /etc/default/udev ] && . /etc/default/udev +[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf + +kill_udevd() { + pid=`pidof -x udevd` + [ -n "$pid" ] && kill $pid +} + +export ACTION=add + +echo "Starting udev" + +if [ ! -e "/lib/modules/$(uname -r)"/modules.dep ] ; then + mkdir -p /lib/modules/$(uname -r) + depmod -ae +fi + +# make_extra_nodes +kill_udevd > "/dev/null" 2>&1 + +# trigger the sorted events +echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug +/lib/udev/udevd -d + +/usr/bin/udevadm control --env STARTUP=1 +/usr/bin/udevadm trigger --action=add +#/usr/bin/udevadm settle + +exit 0 diff --git a/meta-openvuplus/recipes-core/udev/udev_182.bbappend b/meta-openvuplus/recipes-core/udev/udev_182.bbappend new file mode 100644 index 0000000..7f533e4 --- /dev/null +++ b/meta-openvuplus/recipes-core/udev/udev_182.bbappend @@ -0,0 +1,18 @@ +PR .= "-dream1" + +SRC_URI += " \ + file://init \ +" + +inherit update-rc.d + +INITSCRIPT_NAME = "udev" +INITSCRIPT_PARAMS = "start 03 S ." + +do_install_append () { + rm ${D}${sysconfdir}/udev/rules.d/*.rules || /bin/true + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev +} + +FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:" diff --git a/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers.inc new file mode 100644 index 0000000..83b4604 --- /dev/null +++ b/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers.inc @@ -0,0 +1,66 @@ +DESCRIPTION = "Sanitized set of kernel headers for the C library's use." +SECTION = "devel" +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" + +python __anonymous () { + major = d.getVar("PV",True).split('.')[0] + if major == "3": + d.setVar("HEADER_FETCH_VER", "3.0") + else: + d.setVar("HEADER_FETCH_VER", "2.6") +} + +SRC_URI = "http://archive.vuplus.com/download/kernel/linux-${KV}_${SRCREV}.tar.bz2" + +S = "${WORKDIR}/linux-${PV}" + +set_arch() { + case ${TARGET_ARCH} in + alpha*) ARCH=alpha ;; + arm*) ARCH=arm ;; + cris*) ARCH=cris ;; + hppa*) ARCH=parisc ;; + i*86*) ARCH=i386 ;; + ia64*) ARCH=ia64 ;; + mips*) ARCH=mips ;; + m68k*) ARCH=m68k ;; + powerpc*) ARCH=powerpc ;; + s390*) ARCH=s390 ;; + sh*) ARCH=sh ;; + sparc64*) ARCH=sparc64 ;; + sparc*) ARCH=sparc ;; + x86_64*) ARCH=x86_64 ;; + avr32*) ARCH=avr32 ;; + bfin*) ARCH=blackfin ;; + microblaze*) ARCH=microblaze ;; + esac +} + +do_configure() { + set_arch + oe_runmake allnoconfig ARCH=$ARCH +} + +do_compile () { +} + +do_install() { + set_arch + oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH + # Kernel should not be exporting this header + rm -f ${D}${exec_prefix}/include/scsi/scsi.h + + # The ..install.cmd conflicts between various configure runs + find ${D}${includedir} -name ..install.cmd | xargs rm -f +} + +BBCLASSEXTEND = "nativesdk" + +#DEPENDS = "cross-linkage" +RDEPENDS_${PN}-dev = "" +RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" + +INHIBIT_DEFAULT_DEPS = "1" +DEPENDS += "unifdef-native" diff --git a/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers/connector-msg-size-fix.patch b/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers/connector-msg-size-fix.patch new file mode 100644 index 0000000..5d531d6 --- /dev/null +++ b/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers/connector-msg-size-fix.patch @@ -0,0 +1,29 @@ +Upstream-Status: Inappropriate [embedded specific] + +Currently default header is linux-libc-header, which leads the dismatch +with wrs kernel. + +The different headers for same file cause trouble between kerenl module and +user level binary. E.g. segfault in v86d due to different +CONNECTOR_MAX_MSG_SIZE in connector.h from the one used by uvesafb. + +This fix is work around to sync with wrs kernel headers, and should be removed +after switching to linux-libc-headers-wrs. + +[BUGID #279] fixed by this. + +Signed-off-by: Zhai Edwin + +Index: linux-2.6.34/include/linux/connector.h +=================================================================== +--- linux-2.6.34.orig/include/linux/connector.h 2010-09-30 14:15:25.000000000 +0800 ++++ linux-2.6.34/include/linux/connector.h 2010-09-30 14:15:43.000000000 +0800 +@@ -48,7 +48,7 @@ + /* + * Maximum connector's message size. + */ +-#define CONNECTOR_MAX_MSG_SIZE 16384 ++#define CONNECTOR_MAX_MSG_SIZE 65536 + + /* + * idx and val are unique identifiers which diff --git a/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers_3.1.1.bb b/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers_3.1.1.bb new file mode 100644 index 0000000..4806ec5 --- /dev/null +++ b/meta-openvuplus/recipes-kernel/linux-libc-headers/linux-libc-headers_3.1.1.bb @@ -0,0 +1,7 @@ +require linux-libc-headers.inc + +KV = "3.1.1" +SRCREV = "r2" + +SRC_URI[md5sum] = "4dc3ac322453abbfaade7020cddea205" +SRC_URI[sha256sum] = "1d18eb39677a23eace6b27ee25656c25f21b57be7e77a2adcdd15c76d1c3e875" diff --git a/meta-openvuplus/recipes-vuplus/images/vuplus-image.bb b/meta-openvuplus/recipes-vuplus/images/vuplus-image.bb new file mode 100644 index 0000000..c996728 --- /dev/null +++ b/meta-openvuplus/recipes-vuplus/images/vuplus-image.bb @@ -0,0 +1,18 @@ +require vuplus-image.inc + +do_rootfs_append() { + if [ -e ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfi ]; then + VER=`grep ^Version: ${IMAGE_ROOTFS}${opkglibdir}/info/enigma2.control | cut -d ' ' -f 2` + DATE=`date -r ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfi -u '+%F %R'` + MD5=`md5sum ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfi | cut -d ' ' -f 1` + SHA256=`sha256sum ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfi | cut -d ' ' -f 1` + # In addition to the fields below, you may add 'Issuer' and 'Description'. + echo "Date: $DATE" > ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfo + echo "Dvbapp2: $VER" >> ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfo + echo "Distro: ${DISTRO_NAME} ${DISTRO_VERSION}" >> ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfo + echo "Machine: Vuplus ${MACHINE}" >> ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfo + echo "Link: ${DISTRO_FEED_URI}" >> ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfo + echo "MD5: $MD5" >> ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfo + echo "SHA256: $SHA256" >> ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfo + fi +} diff --git a/meta-openvuplus/recipes-vuplus/images/vuplus-image.inc b/meta-openvuplus/recipes-vuplus/images/vuplus-image.inc new file mode 100644 index 0000000..47f32cf --- /dev/null +++ b/meta-openvuplus/recipes-vuplus/images/vuplus-image.inc @@ -0,0 +1,85 @@ +SUMMARY = "A Vuplus firmware image" + +# packages to build for the feed +#DEPENDS = " \ +# gdb \ +# lsof \ +# ltrace \ +# strace \ +#" + +#BAD_RECOMMENDATIONS += "libnss-mdns wpa-supplicant-passphrase" +BAD_RECOMMENDATIONS += "libnss-mdns" + +TASK_CORE_BOOT ?= "task-core-boot" +TASK_VUPLUS_BASE ?= "task-vuplus-base" +#TASK_VUPLUS_DVBAPI ?= "task-vuplus-dvbapi3" +#TASK_VUPLUS_ENIGMA ?= "task-vuplus-enigma2" + +# packages to drag into the image +#IMAGE_INSTALL = " \ +# ${TASK_CORE_BOOT} ${ROOTFS_PKGMANAGE} \ +# ${TASK_VUPLUS_BASE} \ +# ${TASK_VUPLUS_DVBAPI} \ +# ${TASK_VUPLUS_ENIGMA} \ +#" + +IMAGE_INSTALL = " \ + ${TASK_CORE_BOOT} \ +" + +IMAGE_PKGTYPE = "ipk" + +# enable online package management +IMAGE_FEATURES += "package-management" + +# we don't want any locales, at least not in the common way. +IMAGE_LINGUAS = "" + +inherit image + +vuplus_rootfs_postprocess() { + curdir=$PWD + cd ${IMAGE_ROOTFS} + + # generate /etc/image-version + IMAGE_VERSION="000" + IMAGE_DATE=`date +%Y%m%d%H%M` + IMAGE_TYPE="1" + echo "version=${IMAGE_TYPE}${IMAGE_VERSION}${IMAGE_DATE}" > ${IMAGE_ROOTFS}/etc/image-version + echo "comment=${DISTRO_NAME}" >> ${IMAGE_ROOTFS}/etc/image-version + echo "target=9" >> ${IMAGE_ROOTFS}/etc/image-version + echo "creator=OpenEmbedded " >> ${IMAGE_ROOTFS}/etc/image-version + echo "url=http://www.vuplus.com/" >> ${IMAGE_ROOTFS}/etc/image-version + echo "catalog=http://www.vuplus.com/" >> ${IMAGE_ROOTFS}/etc/image-version + + # because we're so used to it + ln -s opkg usr/bin/ipkg || true + ln -s opkg-cl usr/bin/ipkg-cl || true + + cd $curdir +} + +ROOTFS_POSTPROCESS_COMMAND += "vuplus_rootfs_postprocess; " + +export NFO = '${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfo' + +generate_nfo() { + VER=`grep Version: "${IMAGE_ROOTFS}/usr/lib/ipkg/info/enigma2.control" | cut -b 10-26` + echo "DvbApp2: ${VER}" > ${NFO} + echo "Machine: Vuplus ${MACHINE}" >> ${NFO} + DATE=`date +%Y-%m-%d' '%H':'%M` + echo "Date: ${DATE}" >> ${NFO} + echo "Issuer: Vuplus" >> ${NFO} + echo "Link: ${DISTRO_FEED_URI}" >> ${NFO} + if [ "${DESC}" != "" ]; then + echo "Description: ${DESC}" >> ${NFO} + echo "${DESC}" >> ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.desc + fi + MD5SUM=`md5sum ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfi | cut -b 1-32` + echo "MD5: ${MD5SUM}" >> ${NFO} +} + +do_rootfs_append() { + generate_nfo +} diff --git a/meta-openvuplus/recipes-vuplus/vuplus-makenfi-native/vuplus-makenfi-native.bb b/meta-openvuplus/recipes-vuplus/vuplus-makenfi-native/vuplus-makenfi-native.bb new file mode 100644 index 0000000..00515d7 --- /dev/null +++ b/meta-openvuplus/recipes-vuplus/vuplus-makenfi-native/vuplus-makenfi-native.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "create vuplus NAND images" +SECTION = "utils" +LICENSE = "CLOSED" +PV = "1.0" +PR = "r1" + +SRC_URI = "file://vfi2 \ + file://vfi3" + +do_compile() { + cp ${WORKDIR}/vfi2 . + cp ${WORKDIR}/vfi3 . +} + +do_populate_sysroot() { + install -m 0755 ${S}/vfi2 ${STAGING_BINDIR_NATIVE}/ + install -m 0755 ${S}/vfi3 ${STAGING_BINDIR_NATIVE}/ +} diff --git a/meta-openvuplus/recipes-vuplus/vuplus-makenfi-native/vuplus-makenfi-native/vfi2 b/meta-openvuplus/recipes-vuplus/vuplus-makenfi-native/vuplus-makenfi-native/vfi2 new file mode 100755 index 0000000000000000000000000000000000000000..a5a50d4cb1176ccc2a2914483d3355b5253267bd GIT binary patch literal 12613 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 Z9d@AuE78R literal 0 HcmV?d00001 diff --git a/meta-openvuplus/recipes-vuplus/vuplus-makenfi-native/vuplus-makenfi-native/vfi3 b/meta-openvuplus/recipes-vuplus/vuplus-makenfi-native/vuplus-makenfi-native/vfi3 new file mode 100755 index 0000000000000000000000000000000000000000..6e1bc62a43520d57de3551c35bf91412532ea3fd GIT binary patch literal 12613 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