Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Felix Kaechele 2015-03-17 11:00:20 +01:00
commit 83f57c8889
37 changed files with 833 additions and 20396 deletions

120
Makefile
View File

@ -20,10 +20,6 @@ TOPDIR:=$(GLUON_ORIGOPENWRTDIR)
export TOPDIR
GLUON_TARGET ?= ar71xx-generic
export GLUON_TARGET
update: FORCE
$(GLUONDIR)/scripts/update.sh
$(GLUONDIR)/scripts/patch.sh
@ -52,25 +48,12 @@ export OPENWRT_BUILD GLUON_TOOLS GREP_OPTIONS
-include $(TOPDIR)/include/depends.mk
include $(GLUONDIR)/include/toplevel.mk
define GluonProfile
image/$(1): FORCE
+@$$(GLUONMAKE) $$@
endef
define GluonProfileFactorySuffix
endef
define GluonProfileSysupgradeSuffix
endef
define GluonProfileExtraSuffix
endef
define GluonModel
endef
include $(GLUONDIR)/targets/targets.mk
include $(GLUONDIR)/targets/$(GLUON_TARGET)/profiles.mk
CheckTarget := [ -n '$(GLUON_TARGET)' -a -n '$(GLUON_TARGET_$(GLUON_TARGET)_BOARD)' -a -n '$(GLUON_TARGET_$(GLUON_TARGET)_SUBTARGET)' ] \
|| (echo -e 'Please set GLUON_TARGET to a valid target. Gluon supports the following targets:$(subst $(space),\n * ,$(GLUON_TARGETS))'; false)
CheckExternal := test -d $(GLUON_ORIGOPENWRTDIR) || (echo 'You don'"'"'t seem to have obtained the external repositories needed by Gluon; please call `make update` first!'; false)
@ -78,6 +61,7 @@ CheckExternal := test -d $(GLUON_ORIGOPENWRTDIR) || (echo 'You don'"'"'t seem to
prepare-target: FORCE
@$(CheckExternal)
@$(CheckTarget)
+@$(GLUONMAKE_EARLY) prepare-target
@ -88,22 +72,41 @@ all: prepare-target
prepare: prepare-target
+@$(GLUONMAKE) $@
clean dirclean download images: FORCE
clean download images: FORCE
@$(CheckExternal)
@$(CheckTarget)
+@$(GLUONMAKE_EARLY) maybe-prepare-target
+@$(GLUONMAKE) $@
toolchain/% package/% target/%: FORCE
toolchain/% package/% target/% image/%: FORCE
@$(CheckExternal)
@$(CheckTarget)
+@$(GLUONMAKE_EARLY) maybe-prepare-target
+@$(GLUONMAKE) $@
manifest: FORCE
[ -n '$(GLUON_BRANCH)' ] || (echo 'Please set GLUON_BRANCH to create a manifest.'; false)
echo '$(GLUON_PRIORITY)' | grep -qE '^([0-9]*\.)?[0-9]+$$' || (echo 'Please specify a numeric value for GLUON_PRIORITY to create a manifest.'; false)
@[ -n '$(GLUON_BRANCH)' ] || (echo 'Please set GLUON_BRANCH to create a manifest.'; false)
@echo '$(GLUON_PRIORITY)' | grep -qE '^([0-9]*\.)?[0-9]+$$' || (echo 'Please specify a numeric value for GLUON_PRIORITY to create a manifest.'; false)
@$(CheckExternal)
+@$(GLUONMAKE_EARLY) maybe-prepare-target
+@$(GLUONMAKE) $@
mkdir -p $(GLUON_IMAGEDIR)/sysupgrade
( \
echo 'BRANCH=$(GLUON_BRANCH)' && \
echo 'DATE=$(shell $(GLUON_ORIGOPENWRTDIR)/staging_dir/host/bin/lua $(GLUONDIR)/scripts/rfc3339date.lua)' && \
echo 'PRIORITY=$(GLUON_PRIORITY)' && \
echo \
) > $(GLUON_IMAGEDIR)/sysupgrade/$(GLUON_BRANCH).manifest
+($(foreach GLUON_TARGET,$(GLUON_TARGETS), \
( [ ! -e $(BOARD_BUILDDIR)/prepared ] || ( $(GLUONMAKE) manifest GLUON_TARGET='$(GLUON_TARGET)' V=s$(OPENWRT_VERBOSE) ) ) && \
) :)
dirclean : FORCE
for dir in build_dir dl staging_dir tmp; do \
rm -rf $(GLUON_ORIGOPENWRTDIR)/$$dir; \
done
rm -rf $(GLUON_BUILDDIR) $(GLUON_IMAGEDIR)
else
@ -136,22 +139,21 @@ define GluonProfile
PROFILES += $(1)
PROFILE_PACKAGES += $(filter-out -%,$(2) $(GLUON_$(1)_SITE_PACKAGES))
GLUON_$(1)_DEFAULT_PACKAGES := $(2)
GLUON_$(1)_FACTORY_SUFFIX := .bin
GLUON_$(1)_SYSUPGRADE_SUFFIX := .bin
GLUON_$(1)_EXTRA_SUFFIX :=
GLUON_$(1)_FACTORY_SUFFIX := -squashfs-factory
GLUON_$(1)_SYSUPGRADE_SUFFIX := -squashfs-sysupgrade
GLUON_$(1)_FACTORY_EXT := .bin
GLUON_$(1)_SYSUPGRADE_EXT := .bin
GLUON_$(1)_MODELS :=
endef
define GluonProfileFactorySuffix
GLUON_$(1)_FACTORY_SUFFIX := $(2)
GLUON_$(1)_FACTORY_EXT := $(3)
endef
define GluonProfileSysupgradeSuffix
GLUON_$(1)_SYSUPGRADE_SUFFIX := $(2)
endef
define GluonProfileExtraSuffix
GLUON_$(1)_EXTRA_SUFFIX := $(2)
GLUON_$(1)_SYSUPGRADE_EXT := $(3)
endef
define GluonModel
@ -240,12 +242,6 @@ clean: FORCE
+$(SUBMAKE) clean
rm -f $(gluon_prepared_stamp)
dirclean: FORCE
for dir in build_dir dl staging_dir tmp; do \
rm -rf $(GLUON_ORIGOPENWRTDIR)/$$dir; \
done
rm -rf $(GLUON_BUILDDIR)
export MD5SUM := $(GLUONDIR)/scripts/md5sum.sh
export SHA512SUM := $(GLUONDIR)/scripts/sha512sum.sh
@ -304,7 +300,8 @@ BIN_DIR = $(PROFILE_BUILDDIR)/images
TMP_DIR = $(PROFILE_BUILDDIR)/tmp
TARGET_DIR = $(PROFILE_BUILDDIR)/root
IMAGE_PREFIX = gluon-$(GLUON_SITE_CODE)-$$(cat $(gluon_prepared_stamp))
PREPARED_RELEASE = $$(cat $(gluon_prepared_stamp))
IMAGE_PREFIX = gluon-$(GLUON_SITE_CODE)-$(PREPARED_RELEASE)
OPKG:= \
IPKG_TMP="$(TMP_DIR)/ipkgtmp" \
@ -369,17 +366,13 @@ image: FORCE
PROFILE="$(PROFILE)" KDIR="$(PROFILE_KDIR)" TARGET_DIR="$(TARGET_DIR)" BIN_DIR="$(BIN_DIR)" TMP_DIR="$(TMP_DIR)"
$(foreach model,$(GLUON_$(PROFILE)_MODELS), \
$(if $(GLUON_$(PROFILE)_SYSUPGRADE_SUFFIX), \
rm -f $(GLUON_IMAGEDIR)/sysupgrade/gluon-*-$(model)-sysupgrade$(GLUON_$(PROFILE)_SYSUPGRADE_SUFFIX) && \
cp $(BIN_DIR)/gluon-$(GLUON_$(PROFILE)_MODEL_$(model))-sysupgrade$(GLUON_$(PROFILE)_SYSUPGRADE_SUFFIX) $(GLUON_IMAGEDIR)/sysupgrade/$(IMAGE_PREFIX)-$(model)-sysupgrade$(GLUON_$(PROFILE)_SYSUPGRADE_SUFFIX) && \
$(if $(GLUON_$(PROFILE)_SYSUPGRADE_EXT), \
rm -f $(GLUON_IMAGEDIR)/sysupgrade/gluon-*-$(model)-sysupgrade$(GLUON_$(PROFILE)_SYSUPGRADE_EXT) && \
cp $(BIN_DIR)/gluon-$(GLUON_$(PROFILE)_MODEL_$(model))$(GLUON_$(PROFILE)_SYSUPGRADE_SUFFIX)$(GLUON_$(PROFILE)_SYSUPGRADE_EXT) $(GLUON_IMAGEDIR)/sysupgrade/$(IMAGE_PREFIX)-$(model)-sysupgrade$(GLUON_$(PROFILE)_SYSUPGRADE_EXT) && \
) \
$(if $(GLUON_$(PROFILE)_FACTORY_SUFFIX), \
rm -f $(GLUON_IMAGEDIR)/factory/gluon-*-$(model)$(GLUON_$(PROFILE)_FACTORY_SUFFIX) && \
cp $(BIN_DIR)/gluon-$(GLUON_$(PROFILE)_MODEL_$(model))-factory$(GLUON_$(PROFILE)_FACTORY_SUFFIX) $(GLUON_IMAGEDIR)/factory/$(IMAGE_PREFIX)-$(model)$(GLUON_$(PROFILE)_FACTORY_SUFFIX) && \
) \
$(if $(GLUON_$(PROFILE)_EXTRA_SUFFIX), \
rm -f $(GLUON_IMAGEDIR)/factory/gluon-*-$(model)$(GLUON_$(PROFILE)_EXTRA_SUFFIX) && \
cp $(BIN_DIR)/gluon-$(GLUON_$(PROFILE)_MODEL_$(model))$(GLUON_$(PROFILE)_EXTRA_SUFFIX) $(GLUON_IMAGEDIR)/factory/$(IMAGE_PREFIX)-$(model)$(GLUON_$(PROFILE)_EXTRA_SUFFIX) && \
$(if $(GLUON_$(PROFILE)_FACTORY_EXT), \
rm -f $(GLUON_IMAGEDIR)/factory/gluon-*-$(model)$(GLUON_$(PROFILE)_FACTORY_EXT) && \
cp $(BIN_DIR)/gluon-$(GLUON_$(PROFILE)_MODEL_$(model))$(GLUON_$(PROFILE)_FACTORY_SUFFIX)$(GLUON_$(PROFILE)_FACTORY_EXT) $(GLUON_IMAGEDIR)/factory/$(IMAGE_PREFIX)-$(model)$(GLUON_$(PROFILE)_FACTORY_EXT) && \
) \
) :
@ -392,26 +385,17 @@ call_image/%: FORCE
images: $(patsubst %,call_image/%,$(PROFILES)) ;
manifest: FORCE
mkdir -p $(GLUON_IMAGEDIR)/sysupgrade
(cd $(GLUON_IMAGEDIR)/sysupgrade && \
echo 'BRANCH=$(GLUON_BRANCH)' && \
echo 'DATE=$(shell $(STAGING_DIR_HOST)/bin/lua $(GLUONDIR)/scripts/rfc3339date.lua)' && \
echo 'PRIORITY=$(GLUON_PRIORITY)' && \
echo && \
($(foreach profile,$(PROFILES), \
( \
cd $(GLUON_IMAGEDIR)/sysupgrade; \
$(foreach profile,$(PROFILES), \
$(foreach model,$(GLUON_$(profile)_MODELS), \
for file in gluon-*-'$(model)-sysupgrade.bin'; do \
[ -e "$$file" ] && echo \
'$(model)' \
"$$(echo "$$file" | sed -n -r -e 's/^gluon-$(call regex-escape,$(GLUON_SITE_CODE))-(.*)-$(call regex-escape,$(model))-sysupgrade\.bin$$/\1/p')" \
"$$($(SHA512SUM) "$$file")" \
"$$file" && break; \
done; \
file="$(IMAGE_PREFIX)-$(model)-sysupgrade$(GLUON_$(profile)_SYSUPGRADE_EXT)"; \
[ -e "$$file" ] && echo '$(model)' "$(PREPARED_RELEASE)" "$$($(SHA512SUM) "$$file")" "$$file"; \
) \
) :) \
) > $(GLUON_IMAGEDIR)/sysupgrade/$(GLUON_BRANCH).manifest
) : \
) >> $(GLUON_IMAGEDIR)/sysupgrade/$(GLUON_BRANCH).manifest
.PHONY: all images prepare clean gluon-tools
.PHONY: all images prepare clean gluon-tools manifest
endif

View File

@ -73,30 +73,23 @@ won't run correctly without some adjustments, so better double check that everyt
Add support to the build system
'''''''''''''''''''''''''''''''
A directory for the new target must be created under ``targets``, and it must be added
to ``targets/targets.mk``. In the new target directory, four files must be created:
to ``targets/targets.mk``. In the new target directory, three files must be created:
* config
* kernel-config
* kernel-vermagic
* profiles.mk
* vermagic
The file ``config`` can be used to add additional, target-specific options to the OpenWrt config. If such options
aren't necessary, it can be left empty. For ``profiles.mk``, see :ref:`hardware-adding-profiles`.
The file ``config`` can be used to add additional, target-specific options to the OpenWrt config. It
must at least select the correct target and subtarget. For ``profiles.mk``, see :ref:`hardware-adding-profiles`.
The files ``kernel-config`` and ``kernel-vermagic`` must have the correct content so kernel modules from the upstream repositories
can be easily installed. The OpenWrt version a Gluon release is based on is defined by the upstream package repo URL in ``include/gluon.mk``
(in the variable ``CONFIG_VERSION_REPO``); at the time this documentation was written, this was ``barrier_breaker/14.07-rc3``; whenever
the package repo is updated, all ``kernel-config`` and ``kernel-vermagic`` files must be updated as well.
The files ``vermagic`` must have the correct content so kernel modules from the upstream repositories
can be installed without dependency issues. The OpenWrt version a Gluon release is based on is defined by the upstream package repo URL in ``include/gluon.mk``
(in the variable ``CONFIG_VERSION_REPO``); at the time this documentation was written, this was ``barrier_breaker/14.07``; whenever
the package repo is updated, all ``vermagic`` files must be updated as well.
The file ``kernel-vermagic`` just contains a hash which is part of the version number of the kernel package. So in the case of ``ar71xx-generic`` on
``barrier_breaker/14.07-rc3``, we look in the directory ``https://downloads.openwrt.org/barrier_breaker/14.07-rc3/ar71xx/generic/packages/`` and
find that the kernel package is called ``kernel_3.10.49-1-94831e5bcf361d1c03e87a15e152b0e8_ar71xx.ipk``. This makes the ``kernel-vermagic`` the
string ``94831e5bcf361d1c03e87a15e152b0e8``.
For ``kernel-config``, the OpenWrt image builder must be downloaded. Again, for ``ar71xx-generic`` on
``barrier_breaker/14.07-rc3``, we download ``OpenWrt-SDK-ar71xx-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2``
from ``https://downloads.openwrt.org/barrier_breaker/14.07-rc3/ar71xx/generic/``. After unpacking it, we use the file
``OpenWrt-ImageBuilder-ar71xx_generic-for-linux-x86_64/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.10.49/.config``
as our ``kernel-config``.
The content is a hash which is part of the version number of the kernel package. So in the case of ``ar71xx-generic`` on
``barrier_breaker``, we look for the kernel package in the directory ``https://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/``.
As the kernel package is called ``kernel_3.10.49-1-0114c71ed85677c9c1e4911437af4743_ar71xx.ipk``, the correct ``vermagic`` string
is ``0114c71ed85677c9c1e4911437af4743``.
After this, is should be sufficient to call ``make GLUON_TARGET=<target>-<subtarget>`` to build the images for the new target.

View File

@ -28,13 +28,12 @@ A fully automated nightly build could use the following commands:
(cd site && git pull)
make update
make clean
make -j5 GLUON_BRANCH=experimental
make -j5 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental
make manifest GLUON_BRANCH=experimental
contrib/sign.sh $SECRETKEY images/sysupgrade/experimental.manifest
rm -rf /where/to/put/this/experimental
cp -r images /where/to/put/this/experimental
ln -s experimental.manifest /where/to/put/this/experimental/sysupgrade/manifest
Infrastructure
@ -55,10 +54,6 @@ We suggest to have following directory tree accessible via http:
sysupgrade/
factory/
The last level is generated by the Gluon build process. Do not forget
to create symlinks from ``manifest`` to ``<branch>.manifest`` in the
sysupgrade directories to allow upgrades from Gluon versions before 2014.3.
The server should be available via IPv6.
Command Line

View File

@ -63,16 +63,14 @@ directory and build Gluon:
::
cd ..
make update # Get other repositories used by Gluon
make # Build Gluon
make update # Get other repositories used by Gluon
make GLUON_TARGET=ar71xx-generic # Build Gluon
When calling make, the OpenWRT build environment is prepared/updated.
When calling make, the OpenWrt build environment is prepared/updated.
In case of errors read the messages carefully and try to fix the stated issues (e.g. install tools not available yet).
To rebuild the images only, just use:
::
make images
``ar71xx-generic`` is the most common target and will generated images for most of the supported hardware.
To see a complete list of supported targets, call ``make`` without setting ``GLUON_TARGET``.
The built images can be found in the directory `images`. Of these, the factory
images are to be used when flashing from the original firmware a device came with,
@ -88,9 +86,9 @@ There are two levels of `make clean`:
::
make clean
make clean GLUON_TARGET=ar71xx-generic
will ensure all packages are rebuilt; this is what you normally want to do after an update.
will ensure all packages are rebuilt for a single target; this is what you normally want to do after an update.
::
@ -115,12 +113,13 @@ GLUON_BUILDDIR
Working directory during build. Defaults to ``build/``.
So all in all, to update and rebuild a Gluon build tree, the following commands should be used:
So all in all, to update and rebuild a Gluon build tree, the following commands should be used (repeat the
``make clean`` and ``make`` for all targets you want to build):
::
git pull
(cd site && git pull)
make update
make clean
make
make clean GLUON_TARGET=ar71xx-generic
make GLUON_TARGET=ar71xx-generic

View File

@ -1,10 +1,6 @@
override define Kernel/Configure
cp $(GLUONDIR)/targets/$(GLUON_TARGET)/kernel-config $(LINUX_DIR)/.config
+$(MAKE) $(KERNEL_MAKEOPTS) oldnoconfig
$(call Kernel/SetInitramfs)
rm -rf $(KERNEL_BUILD_DIR)/modules
+[ -d $(LINUX_DIR)/user_headers ] || $(MAKE) $(KERNEL_MAKEOPTS) INSTALL_HDR_PATH=$(LINUX_DIR)/user_headers headers_install
cp $(GLUONDIR)/targets/$(GLUON_TARGET)/kernel-vermagic $(LINUX_DIR)/.vermagic
$(call Kernel/Configure/Default)
cp $(GLUONDIR)/targets/$(GLUON_TARGET)/vermagic $(LINUX_DIR)/.vermagic
endef
# The Makefile included here is $(TOPDIR)/target/linux/$(BOARD)/Makefile

View File

@ -1,3 +1,5 @@
CONFIG_ALL_KMODS=y
CONFIG_IMAGEOPT=y
# CONFIG_PER_FEED_REPO is not set

View File

@ -8,12 +8,14 @@ GLUON_BUILDDIR ?= $(GLUONDIR)/build
GLUON_ORIGOPENWRTDIR := $(GLUONDIR)/openwrt
GLUON_SITE_CONFIG := $(GLUON_SITEDIR)/site.conf
GLUON_OPENWRTDIR = $(GLUON_BUILDDIR)/$(GLUON_TARGET)/openwrt
export GLUONDIR GLUON_SITEDIR GLUON_SITE_CONFIG GLUON_IMAGEDIR GLUON_BUILDDIR
BOARD_BUILDDIR = $(GLUON_BUILDDIR)/$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
BOARD_BUILDDIR = $(GLUON_BUILDDIR)/$(GLUON_TARGET)
BOARD_KDIR = $(BOARD_BUILDDIR)/kernel
export GLUONDIR GLUON_SITEDIR GLUON_SITE_CONFIG GLUON_IMAGEDIR GLUON_OPENWRTDIR GLUON_BUILDDIR
GLUON_OPENWRTDIR = $(BOARD_BUILDDIR)/openwrt
$(GLUON_SITEDIR)/site.mk:
$(error There was no site configuration found. Please check out a site configuration to $(GLUON_SITEDIR))
@ -58,8 +60,6 @@ GLUON_TARGET_$$(gluon_target)_BOARD := $(1)
GLUON_TARGET_$$(gluon_target)_SUBTARGET := $(2)
endef
regex-escape = $(shell echo '$(1)' | sed -e 's/[]\/()$*.^|[]/\\&/g')
GLUON_DEFAULT_PACKAGES := gluon-core kmod-ipv6 firewall ip6tables -uboot-envtools
override DEFAULT_PACKAGES.router :=

View File

@ -8,7 +8,7 @@ PACKAGES_OPENWRT_COMMIT=01fcd1f29174a56d6ddb59901ed8c67ea42c3a8f
PACKAGES_OPENWRT_BRANCH=for-14.07
PACKAGES_GLUON_REPO=git://github.com/freifunk-gluon/packages.git
PACKAGES_GLUON_COMMIT=8ee69212a3b27a9fc5ef6d25016d82ea80ec1a7d
PACKAGES_GLUON_COMMIT=2d0f8b38dbf6b01f77c780c7c80a995116e3eca8
PACKAGES_ROUTING_REPO=git://github.com/openwrt-routing/packages.git
PACKAGES_ROUTING_COMMIT=5d4ad63897b435d5df0f39a49bd58962c22c33b8

View File

@ -481,10 +481,10 @@ index 0000000..d0c1bbd
++#endif /* SPECTRAL_COMMON_H */
diff --git a/package/kernel/mac80211/patches/919-update-ath10k.patch b/package/kernel/mac80211/patches/919-update-ath10k.patch
new file mode 100644
index 0000000..0f5d87a
index 0000000..45fccb8
--- /dev/null
+++ b/package/kernel/mac80211/patches/919-update-ath10k.patch
@@ -0,0 +1,32869 @@
@@ -0,0 +1,33023 @@
+--- a/drivers/net/wireless/ath/ath10k/Kconfig
++++ b/drivers/net/wireless/ath/ath10k/Kconfig
+@@ -26,13 +26,15 @@ config ATH10K_DEBUG
@ -27862,7 +27862,7 @@ index 0000000..0f5d87a
++
++ /* Avoid linking error on devm_hwmon_device_register_with_groups, I
++ * guess linux/hwmon.h is missing proper stubs. */
++ if (!config_enabled(CONFIG_HWMON))
++ if (!config_enabled(CPTCFG_HWMON))
++ return 0;
++
++ hwmon_dev = devm_hwmon_device_register_with_groups(ar->dev,
@ -33354,6 +33354,160 @@ index 0000000..0f5d87a
++} __packed;
++
+ #endif /* SPECTRAL_COMMON_H */
+--- a/compat/backport-3.13.c
++++ b/compat/backport-3.13.c
+@@ -12,6 +12,10 @@
+ #include <linux/version.h>
+ #include <linux/kernel.h>
+ #include <net/genetlink.h>
++#include <linux/delay.h>
++#include <linux/pci.h>
++#include <linux/device.h>
++#include <linux/hwmon.h>
+
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
+ #ifdef CPTCFG_REGULATOR
+@@ -200,3 +204,103 @@ bool __net_get_random_once(void *buf, in
+ }
+ EXPORT_SYMBOL_GPL(__net_get_random_once);
+ #endif /* __BACKPORT_NET_GET_RANDOM_ONCE */
++
++#ifdef CPTCFG_PCI
++#define pci_bus_read_dev_vendor_id LINUX_BACKPORT(pci_bus_read_dev_vendor_id)
++static bool pci_bus_read_dev_vendor_id(struct pci_bus *bus, int devfn, u32 *l,
++ int crs_timeout)
++{
++ int delay = 1;
++
++ if (pci_bus_read_config_dword(bus, devfn, PCI_VENDOR_ID, l))
++ return false;
++
++ /* some broken boards return 0 or ~0 if a slot is empty: */
++ if (*l == 0xffffffff || *l == 0x00000000 ||
++ *l == 0x0000ffff || *l == 0xffff0000)
++ return false;
++
++ /*
++ * Configuration Request Retry Status. Some root ports return the
++ * actual device ID instead of the synthetic ID (0xFFFF) required
++ * by the PCIe spec. Ignore the device ID and only check for
++ * (vendor id == 1).
++ */
++ while ((*l & 0xffff) == 0x0001) {
++ if (!crs_timeout)
++ return false;
++
++ msleep(delay);
++ delay *= 2;
++ if (pci_bus_read_config_dword(bus, devfn, PCI_VENDOR_ID, l))
++ return false;
++ /* Card hasn't responded in 60 seconds? Must be stuck. */
++ if (delay > crs_timeout) {
++ printk(KERN_WARNING "pci %04x:%02x:%02x.%d: not responding\n",
++ pci_domain_nr(bus), bus->number, PCI_SLOT(devfn),
++ PCI_FUNC(devfn));
++ return false;
++ }
++ }
++
++ return true;
++}
++
++bool pci_device_is_present(struct pci_dev *pdev)
++{
++ u32 v;
++
++ return pci_bus_read_dev_vendor_id(pdev->bus, pdev->devfn, &v, 0);
++}
++EXPORT_SYMBOL_GPL(pci_device_is_present);
++#endif /* CPTCFG_PCI */
++
++#ifdef CPTCFG_HWMON
++struct device*
++hwmon_device_register_with_groups(struct device *dev, const char *name,
++ void *drvdata,
++ const struct attribute_group **groups)
++{
++ struct device *hwdev;
++
++ hwdev = hwmon_device_register(dev);
++ hwdev->groups = groups;
++ dev_set_drvdata(hwdev, drvdata);
++ return hwdev;
++}
++
++static void devm_hwmon_release(struct device *dev, void *res)
++{
++ struct device *hwdev = *(struct device **)res;
++
++ hwmon_device_unregister(hwdev);
++}
++
++struct device *
++devm_hwmon_device_register_with_groups(struct device *dev, const char *name,
++ void *drvdata,
++ const struct attribute_group **groups)
++{
++ struct device **ptr, *hwdev;
++
++ if (!dev)
++ return ERR_PTR(-EINVAL);
++
++ ptr = devres_alloc(devm_hwmon_release, sizeof(*ptr), GFP_KERNEL);
++ if (!ptr)
++ return ERR_PTR(-ENOMEM);
++
++ hwdev = hwmon_device_register_with_groups(dev, name, drvdata, groups);
++ if (IS_ERR(hwdev))
++ goto error;
++
++ *ptr = hwdev;
++ devres_add(dev, ptr);
++ return hwdev;
++
++error:
++ devres_free(ptr);
++ return hwdev;
++}
++EXPORT_SYMBOL_GPL(devm_hwmon_device_register_with_groups);
++#endif
+--- /dev/null
++++ b/backport-include/linux/hwmon.h
+@@ -0,0 +1,34 @@
++#ifndef __BACKPORT_LINUX_HWMON_H
++#define __BACKPORT_LINUX_HWMON_H
++#include_next <linux/hwmon.h>
++#include <linux/version.h>
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0)
++/*
++ * Backports
++ *
++ * commit bab2243ce1897865e31ea6d59b0478391f51812b
++ * Author: Guenter Roeck <linux@roeck-us.net>
++ * Date: Sat Jul 6 13:57:23 2013 -0700
++ *
++ * hwmon: Introduce hwmon_device_register_with_groups
++ *
++ * hwmon_device_register_with_groups() lets callers register a hwmon device
++ * together with all sysfs attributes in a single call.
++ *
++ * When using hwmon_device_register_with_groups(), hwmon attributes are attached
++ * to the hwmon device directly and no longer with its parent device.
++ *
++ * Signed-off-by: Guenter Roeck <linux@roeck-us.net>
++ */
++struct device *
++hwmon_device_register_with_groups(struct device *dev, const char *name,
++ void *drvdata,
++ const struct attribute_group **groups);
++struct device *
++devm_hwmon_device_register_with_groups(struct device *dev, const char *name,
++ void *drvdata,
++ const struct attribute_group **groups);
++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0) */
++
++#endif /* __BACKPORT_LINUX_HWMON_H */
diff --git a/package/kernel/mac80211/patches/920-ath10k_allow_fallback_to_board_bin_on_empty_otp_stream.patch b/package/kernel/mac80211/patches/920-ath10k_allow_fallback_to_board_bin_on_empty_otp_stream.patch
index 6a5c766..6a3d2a4 100644
--- a/package/kernel/mac80211/patches/920-ath10k_allow_fallback_to_board_bin_on_empty_otp_stream.patch

View File

@ -0,0 +1,24 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Wed, 11 Mar 2015 18:30:54 +0100
Subject: uClibc: fix syscall() for syscalls with 6 arguments on PowerPC
Patch from the uClibc master.
Fixes the package fastd on PowerPC.
diff --git a/toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch b/toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch
new file mode 100644
index 0000000..9511dcc
--- /dev/null
+++ b/toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch
@@ -0,0 +1,10 @@
+--- a/libc/sysdeps/linux/powerpc/syscall.S
++++ b/libc/sysdeps/linux/powerpc/syscall.S
+@@ -30,6 +30,7 @@ syscall:
+ mr 5,6
+ mr 6,7
+ mr 7,8
++ mr 8,9
+ sc
+ bnslr;
+

View File

@ -0,0 +1,35 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Thu, 12 Mar 2015 16:57:32 +0100
Subject: ar71xx: Add build profile for the gl-inet 6416A and 6408A
Patch to add the buildprofile for the GL-Init-6408A-v1 and the GL-Inet-6416A-v1
Both devices are identical, only difference is one comes with 8MB flash and
the other with 16MB flash
Official website: http://www.gl-inet.com/w/?page_id=241&lang=en
Comprehensive list of specs: https://revspace.nl/GL-Inet
Signed-off-by: Martijn Zilverschoon <martijn@friedzombie.com>
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index 8505ac4..fc59c33 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -1216,7 +1216,8 @@ $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,ARCHERC7V1,archer-c7-v1,ARCHER-C7
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,ARCHERC7V2,archer-c7-v2,ARCHER-C7,ttyS0,115200,0xc7000002,1,16Mlzma))
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,ELM150,el-m150,EL-M150,ttyATH0,115200,0x01500101,1,8Mlzma))
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,ELMINI,el-mini,EL-MINI,ttyATH0,115200,0x01530001,1,8Mlzma))
-$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,GLINET,gl-inet-v1,GL-INET,ttyATH0,115200,0x08000001,1,8Mlzma))
+$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,GLINET6408A,gl-inet-6408A-v1,GL-INET,ttyATH0,115200,0x08000001,1,8Mlzma))
+$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,GLINET6416A,gl-inet-6416A-v1,GL-INET,ttyATH0,115200,0x08000001,1,16Mlzma))
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR10U,tl-mr10u-v1,TL-MR10U,ttyATH0,115200,0x00100101,1,4Mlzma))
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR11UV1,tl-mr11u-v1,TL-MR11U,ttyATH0,115200,0x00110101,1,4Mlzma))
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR11UV2,tl-mr11u-v2,TL-MR11U,ttyATH0,115200,0x00110102,1,4Mlzma))
@@ -1304,6 +1305,7 @@ $(eval $(call MultiProfile,AP136,AP136_010 AP136_020))
$(eval $(call MultiProfile,ARCHERC7, ARCHERC5 ARCHERC7V1 ARCHERC7V2))
$(eval $(call MultiProfile,EWDORIN, EWDORINAP EWDORINRT EWDORIN16M))
$(eval $(call MultiProfile,OPENMESH,OM2P OM5P MR600))
+$(eval $(call MultiProfile,GLINET,GLINET6408A GLINET6416A))
$(eval $(call MultiProfile,TEW652BRP,TEW652BRP_FW TEW652BRP_RECOVERY))
$(eval $(call MultiProfile,TLMR11U,TLMR11UV1 TLMR11UV2))
$(eval $(call MultiProfile,TLMR3040,TLMR3040V1 TLMR3040V2))

View File

@ -0,0 +1,39 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Fri, 13 Mar 2015 11:59:58 +0100
Subject: ar71xx: detect GL.iNet model
There are two versions of the GL.iNet, the 6408A and the 6416A. The only
difference is the flash size.
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 9e70397..ac7f787 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -262,6 +262,19 @@ tplink_pharos_board_detect() {
[ -n "$model" ] && AR71XX_MODEL="$model v$2"
}
+gl_inet_board_detect() {
+ local size="$(mtd_get_part_size 'firmware')"
+
+ case "$size" in
+ 8192000)
+ AR71XX_MODEL='GL-iNet 6408A v1'
+ ;;
+ 16580608)
+ AR71XX_MODEL='GL-iNet 6416A v1'
+ ;;
+ esac
+}
+
ar71xx_board_detect() {
local machine
local name
@@ -380,6 +393,7 @@ ar71xx_board_detect() {
;;
*"GL-CONNECT INET v1")
name="gl-inet"
+ gl_inet_board_detect
;;
*"EnGenius ESR1750")
name="esr1750"

View File

@ -0,0 +1,70 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 15 Mar 2015 18:06:49 +0100
Subject: firmware-utils: allow passing a specific MBR signature to ptgen
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
diff --git a/tools/firmware-utils/src/ptgen.c b/tools/firmware-utils/src/ptgen.c
index 0247fd0..6379ed7 100644
--- a/tools/firmware-utils/src/ptgen.c
+++ b/tools/firmware-utils/src/ptgen.c
@@ -28,6 +28,7 @@
#include <stdio.h>
#include <ctype.h>
#include <fcntl.h>
+#include <stdint.h>
#if __BYTE_ORDER == __BIG_ENDIAN
#define cpu_to_le16(x) bswap_16(x)
@@ -124,7 +125,7 @@ static inline unsigned long round_to_kb(long sect) {
}
/* check the partition sizes and write the partition table */
-static int gen_ptable(int nr)
+static int gen_ptable(uint32_t signature, int nr)
{
struct pte pte[4];
unsigned long sect = 0;
@@ -159,6 +160,12 @@ static int gen_ptable(int nr)
return -1;
}
+ lseek(fd, 440, SEEK_SET);
+ if (write(fd, &signature, sizeof(signature)) != sizeof(signature)) {
+ fprintf(stderr, "write failed.\n");
+ goto fail;
+ }
+
lseek(fd, 446, SEEK_SET);
if (write(fd, pte, sizeof(struct pte) * 4) != sizeof(struct pte) * 4) {
fprintf(stderr, "write failed.\n");
@@ -187,8 +194,9 @@ int main (int argc, char **argv)
char type = 0x83;
int ch;
int part = 0;
+ uint32_t signature = 0x5452574F; /* 'OWRT' */
- while ((ch = getopt(argc, argv, "h:s:p:a:t:o:vl:")) != -1) {
+ while ((ch = getopt(argc, argv, "h:s:p:a:t:o:vl:S:")) != -1) {
switch (ch) {
case 'o':
filename = optarg;
@@ -221,6 +229,9 @@ int main (int argc, char **argv)
case 'l':
kb_align = (int) strtoul(optarg, NULL, 0) * 2;
break;
+ case 'S':
+ signature = strtoul(optarg, NULL, 0);
+ break;
case '?':
default:
usage(argv[0]);
@@ -229,6 +240,6 @@ int main (int argc, char **argv)
argc -= optind;
if (argc || (heads <= 0) || (sectors <= 0) || !filename)
usage(argv[0]);
-
- return gen_ptable(part);
+
+ return gen_ptable(signature, part);
}

View File

@ -0,0 +1,180 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 15 Mar 2015 17:01:32 +0100
Subject: x86: use PARTUUID instead explicitly specifying the device by default
This changes the x86 image generation to match x86_64, using the PARTUUID for
the rootfs instead of explicitly configuring the device.
It unbreaks KVM with VirtIO, which uses /dev/vda2 instead of /dev/sda2.
Tested in QEMU/KVM with VirtIO, VirtualBox and VMware.
diff --git a/config/Config-images.in b/config/Config-images.in
index 39e51e4..f44ec73 100644
--- a/config/Config-images.in
+++ b/config/Config-images.in
@@ -267,8 +267,6 @@ menu "Target Images"
config TARGET_ROOTFS_PARTNAME
string "Root partition on target device"
depends on OLPC_BOOTSCRIPT_IMAGES || GRUB_IMAGES
- default "/dev/xvda2" if TARGET_x86_xen_domu
- default "/dev/sda2" if ! TARGET_x86_xen_domu
help
The root partition on the final device. If you don't know,
you probably want the default (/dev/sda2).
diff --git a/target/linux/x86/base-files/lib/preinit/79_move_config b/target/linux/x86/base-files/lib/preinit/79_move_config
index 0bffbab..1d4873d 100644
--- a/target/linux/x86/base-files/lib/preinit/79_move_config
+++ b/target/linux/x86/base-files/lib/preinit/79_move_config
@@ -1,21 +1,14 @@
#!/bin/sh
-# Copyright (C) 2012 OpenWrt.org
+# Copyright (C) 2012-2015 OpenWrt.org
move_config() {
- local rootfsdev
- local rootfstype
-
- rootfstype="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "rootfstype") { print $2 }' < /proc/cmdline)"
- case "$rootfstype" in
- squashfs|jffs2)
- rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "block2mtd.block2mtd") { print substr($2,1,index($2, ",")-1) }' < /proc/cmdline)";;
- ext4)
- rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "root") { print $2 }' < /proc/cmdline)";;
- esac
+ . /lib/upgrade/platform.sh
- mount -t ext4 -o rw,noatime "${rootfsdev%[0-9]}1" /mnt
- mv -f /mnt/sysupgrade.tgz /
- umount /mnt
+ if platform_export_bootpart; then
+ mount -t ext4 -o rw,noatime "$BOOTPART" /mnt
+ mv -f /mnt/sysupgrade.tgz /
+ umount /mnt
+ fi
}
boot_hook_add preinit_mount_root move_config
diff --git a/target/linux/x86/base-files/lib/upgrade/platform.sh b/target/linux/x86/base-files/lib/upgrade/platform.sh
index a2dd20a..73ab5ef 100644
--- a/target/linux/x86/base-files/lib/upgrade/platform.sh
+++ b/target/linux/x86/base-files/lib/upgrade/platform.sh
@@ -1,16 +1,38 @@
-x86_get_rootfs() {
- local rootfsdev
- local rootfstype
-
- rootfstype="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "rootfstype") { print $2 }' < /proc/cmdline)"
- case "$rootfstype" in
- squashfs|jffs2)
- rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "block2mtd.block2mtd") { print substr($2,1,index($2, ",")-1) }' < /proc/cmdline)";;
- ext4)
- rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "root") { print $2 }' < /proc/cmdline)";;
- esac
-
- echo "$rootfstype:$rootfsdev"
+platform_export_bootpart() {
+ local cmdline uuid disk
+
+ if read cmdline < /proc/cmdline; then
+ case "$cmdline" in
+ *block2mtd=*)
+ disk="${cmdline##*block2mtd=}"
+ disk="${disk%%,*}"
+ ;;
+ *root=*)
+ disk="${cmdline##*root=}"
+ disk="${disk%% *}"
+ ;;
+ esac
+
+ case "$disk" in
+ PARTUUID=[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-02)
+ uuid="${disk#PARTUUID=}"
+ uuid="${uuid%-02}"
+ for disk in /dev/[hsv]d[a-z]; do
+ set -- $(dd if=$disk bs=1 skip=440 count=4 2>/dev/null | hexdump -v -e '4/1 "%02x "')
+ if [ "$4$3$2$1" = "$uuid" ]; then
+ export BOOTPART="${disk}1"
+ return 0
+ fi
+ done
+ ;;
+ /dev/*)
+ export BOOTPART="${disk%[0-9]}1"
+ return 0
+ ;;
+ esac
+ fi
+
+ return 1
}
platform_check_image() {
@@ -26,19 +48,19 @@ platform_check_image() {
}
platform_copy_config() {
- local rootfs="$(x86_get_rootfs)"
- local rootfsdev="${rootfs##*:}"
-
- mount -t ext4 -o rw,noatime "${rootfsdev%[0-9]}1" /mnt
- cp -af "$CONF_TAR" /mnt/
- umount /mnt
+ if [ -b "$BOOTPART" ]; then
+ mount -t ext4 -o rw,noatime "$BOOTPART" /mnt
+ cp -af "$CONF_TAR" /mnt/
+ umount /mnt
+ fi
}
platform_do_upgrade() {
- local rootfs="$(x86_get_rootfs)"
- local rootfsdev="${rootfs##*:}"
+ platform_export_bootpart
- sync
- [ -b ${rootfsdev%[0-9]} ] && get_image "$@" | dd of=${rootfsdev%[0-9]} bs=4096 conv=fsync
- sleep 1
+ if [ -b "${BOOTPART%[0-9]}" ]; then
+ sync
+ get_image "$@" | dd of="${BOOTPART%[0-9]}" bs=4096 conv=fsync
+ sleep 1
+ fi
}
diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile
index 5983718..a0045a7 100644
--- a/target/linux/x86/image/Makefile
+++ b/target/linux/x86/image/Makefile
@@ -40,7 +40,9 @@ ifneq ($(GRUB_TERMINALS),)
GRUB_TERMINAL_CONFIG := terminal_input $(GRUB_TERMINALS); terminal_output $(GRUB_TERMINALS)
endif
+SIGNATURE:=$(shell dd if=/dev/urandom bs=4 count=1 2>/dev/null | hexdump -v -e '"%02x"')
ROOTPART:=$(call qstrip,$(CONFIG_TARGET_ROOTFS_PARTNAME))
+ROOTPART:=$(if $(ROOTPART),$(ROOTPART),PARTUUID=$(SIGNATURE)-02)
GRUB_TIMEOUT:=$(call qstrip,$(CONFIG_GRUB_TIMEOUT))
@@ -82,7 +84,7 @@ ifneq ($(CONFIG_GRUB_IMAGES),)
-e 's#@CMDLINE@#$(strip $(call Image/cmdline/$(1)) $(BOOTOPTS) $(GRUB_CONSOLE_CMDLINE))#g' \
-e 's#@TIMEOUT@#$(GRUB_TIMEOUT)#g' \
./grub.cfg > $(KDIR)/root.grub/boot/grub/grub.cfg
- PADDING="$(CONFIG_TARGET_IMAGES_PAD)" PATH="$(TARGET_PATH)" ./gen_image_generic.sh \
+ PADDING="$(CONFIG_TARGET_IMAGES_PAD)" SIGNATURE="$(SIGNATURE)" PATH="$(TARGET_PATH)" ./gen_image_generic.sh \
$(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img \
$(CONFIG_TARGET_KERNEL_PARTSIZE) $(KDIR)/root.grub \
$(CONFIG_TARGET_ROOTFS_PARTSIZE) $(KDIR)/root.$(1) \
diff --git a/target/linux/x86/image/gen_image_generic.sh b/target/linux/x86/image/gen_image_generic.sh
index 9d11efb..3fb31f6 100755
--- a/target/linux/x86/image/gen_image_generic.sh
+++ b/target/linux/x86/image/gen_image_generic.sh
@@ -20,7 +20,7 @@ sect=63
cyl=$(( ($KERNELSIZE + $ROOTFSSIZE) * 1024 * 1024 / ($head * $sect * 512)))
# create partition table
-set `ptgen -o "$OUTPUT" -h $head -s $sect -p ${KERNELSIZE}m -p ${ROOTFSSIZE}m ${ALIGN:+-l $ALIGN}`
+set `ptgen -o "$OUTPUT" -h $head -s $sect -p ${KERNELSIZE}m -p ${ROOTFSSIZE}m ${ALIGN:+-l $ALIGN} ${SIGNATURE:+-S 0x$SIGNATURE}`
KERNELOFFSET="$(($1 / 512))"
KERNELSIZE="$(($2 / 512))"

View File

@ -0,0 +1,52 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 15 Mar 2015 19:51:15 +0100
Subject: ar71xx: fix model string detection on NETGEAR WNDR3700/3800/WNDRMAC
There were a few issues with the existing code to detect the model string:
* Always using the string starting with byte 56 would cut off the W of WNDR when
the ID starts with 29763654+16+128 instead of 29763654+16+64
* The string contained garbage after the zero byte instead of cutting it off
after the zero (which wasn't always visible using busybox tools, but could
confuse other scripts)
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index ac7f787..f50a236 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -37,16 +37,28 @@ wndr3700_board_detect() {
machine="NETGEAR WNDR3700"
;;
"33373031")
- local model
- model=$(ar71xx_get_mtd_offset_size_format art 56 10 %c)
- if [ -z "$model" ] || [ "$model" = $'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' ]; then
+ case "$(ar71xx_get_mtd_offset_size_format art 56 10 %c)" in
+ $'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff')
machine="NETGEAR WNDR3700v2"
- elif [ -z "$model" ] || [ "$model" = $'\xff\xff\xff\xff\xff\xff\xff\xff\xffN' ]; then
+ ;;
+ $'\xff\xff\xff\xff\xff\xff\xff\xff\xffN')
machine="NETGEAR WNDRMAC"
- else
- machine="NETGEAR $model"
- fi
- ;;
+ ;;
+ *)
+ # Use awk to remove everything after the first zero byte
+ model="$(ar71xx_get_mtd_offset_size_format art 41 32 %c | awk 'BEGIN{FS="[[:cntrl:]]"} {print $1; exit}')"
+ case $model in
+ '29763654+16+64'*)
+ machine="NETGEAR ${model:14}"
+ ;;
+ '29763654+16+128'*)
+ machine="NETGEAR ${model:15}"
+ ;;
+ *)
+ # Unknown ID
+ machine="NETGEAR $model"
+ esac
+ esac
esac
AR71XX_BOARD_NAME="$name"

View File

@ -0,0 +1,22 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 15 Mar 2015 21:03:25 +0100
Subject: ar71xx: fix TP-LINK TL-WDR3600/4300 RFKILL switch positions
While the switch positions aren't explicitly labeled as on and off, we've heard
complaints about them being wrong. This patch changes the handling to match the
stock firmware.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wdr4300.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wdr4300.c
index 99ae80d..3afc714 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wdr4300.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wdr4300.c
@@ -103,6 +103,7 @@ static struct gpio_keys_button wdr4300_gpio_keys[] __initdata = {
.code = KEY_RFKILL,
.debounce_interval = WDR4300_KEYS_DEBOUNCE_INTERVAL,
.gpio = WDR4300_GPIO_BTN_RFKILL,
+ .active_low = 1,
},
};

View File

@ -0,0 +1,57 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Mon, 16 Mar 2015 13:23:34 +0100
Subject: buildroot: make it easier to build all kmods
Split out kmods from ALL to make it easier to create local builds that
are compatible kmod-wise with releases.
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
diff --git a/config/Config-build.in b/config/Config-build.in
index 371ae76..8b0ebbf 100644
--- a/config/Config-build.in
+++ b/config/Config-build.in
@@ -6,8 +6,12 @@
menu "Global build settings"
+ config ALL_KMODS
+ bool "Select all kernel module packages by default"
+ default ALL
+
config ALL
- bool "Select all packages by default"
+ bool "Select all userspace packages by default"
default n
comment "General build options"
diff --git a/include/version.mk b/include/version.mk
index 2fd605f..f6c0fe2 100644
--- a/include/version.mk
+++ b/include/version.mk
@@ -50,7 +50,7 @@ $(lastword $(subst :, ,$(1)))
endef
VERSION_TAINT_SPECS := \
- -ALL:no-all \
+ -ALL_KMODS:no-all \
-IPV6:no-ipv6 \
+USE_EGLIBC:eglibc \
+USE_MKLIBS:mklibs \
diff --git a/scripts/metadata.pl b/scripts/metadata.pl
index 79f930c..4eecb0c 100755
--- a/scripts/metadata.pl
+++ b/scripts/metadata.pl
@@ -574,7 +574,11 @@ sub print_package_config_category($) {
print "\t\t".($pkg->{tristate} ? 'tristate' : 'bool')." $title\n";
print "\t\tdefault y if DEFAULT_".$pkg->{name}."\n";
unless ($pkg->{hidden}) {
- $pkg->{default} ||= "m if ALL";
+ if ($pkg->{name} =~ /^kmod-/) {
+ $pkg->{default} ||= "m if ALL_KMODS";
+ } else {
+ $pkg->{default} ||= "m if ALL";
+ }
}
if ($pkg->{default}) {
foreach my $default (split /\s*,\s*/, $pkg->{default}) {

File diff suppressed because it is too large Load Diff

View File

@ -4,145 +4,145 @@
# CPE210/220/510/520
$(eval $(call GluonProfile,CPE510,rssileds))
$(eval $(call GluonModel,CPE510,cpe210-220-510-520-squashfs,tp-link-cpe210-v1.0))
$(eval $(call GluonModel,CPE510,cpe210-220-510-520-squashfs,tp-link-cpe220-v1.0))
$(eval $(call GluonModel,CPE510,cpe210-220-510-520-squashfs,tp-link-cpe510-v1.0))
$(eval $(call GluonModel,CPE510,cpe210-220-510-520-squashfs,tp-link-cpe520-v1.0))
$(eval $(call GluonModel,CPE510,cpe210-220-510-520,tp-link-cpe210-v1.0))
$(eval $(call GluonModel,CPE510,cpe210-220-510-520,tp-link-cpe220-v1.0))
$(eval $(call GluonModel,CPE510,cpe210-220-510-520,tp-link-cpe510-v1.0))
$(eval $(call GluonModel,CPE510,cpe210-220-510-520,tp-link-cpe520-v1.0))
# TL-WA701N/ND v1, v2
$(eval $(call GluonProfile,TLWA701))
$(eval $(call GluonModel,TLWA701,tl-wa701n-v1-squashfs,tp-link-tl-wa701n-nd-v1))
$(eval $(call GluonModel,TLWA701,tl-wa701n-v1,tp-link-tl-wa701n-nd-v1))
ifeq ($(BROKEN),1)
$(eval $(call GluonModel,TLWA701,tl-wa701nd-v2-squashfs,tp-link-tl-wa701n-nd-v2)) # BROKEN: untested
$(eval $(call GluonModel,TLWA701,tl-wa701nd-v2,tp-link-tl-wa701n-nd-v2)) # BROKEN: untested
endif
# TL-WR703N v1
$(eval $(call GluonProfile,TLWR703))
$(eval $(call GluonModel,TLWR703,tl-wr703n-v1-squashfs,tp-link-tl-wr703n-v1))
$(eval $(call GluonModel,TLWR703,tl-wr703n-v1,tp-link-tl-wr703n-v1))
# TL-WR710N v1
$(eval $(call GluonProfile,TLWR710))
$(eval $(call GluonModel,TLWR710,tl-wr710n-v1-squashfs,tp-link-tl-wr710n-v1))
$(eval $(call GluonModel,TLWR710,tl-wr710n-v1,tp-link-tl-wr710n-v1))
# TL-WR740N v1, v3, v4
$(eval $(call GluonProfile,TLWR740))
$(eval $(call GluonModel,TLWR740,tl-wr740n-v1-squashfs,tp-link-tl-wr740n-nd-v1))
$(eval $(call GluonModel,TLWR740,tl-wr740n-v3-squashfs,tp-link-tl-wr740n-nd-v3))
$(eval $(call GluonModel,TLWR740,tl-wr740n-v4-squashfs,tp-link-tl-wr740n-nd-v4))
$(eval $(call GluonModel,TLWR740,tl-wr740n-v1,tp-link-tl-wr740n-nd-v1))
$(eval $(call GluonModel,TLWR740,tl-wr740n-v3,tp-link-tl-wr740n-nd-v3))
$(eval $(call GluonModel,TLWR740,tl-wr740n-v4,tp-link-tl-wr740n-nd-v4))
# TL-WR741N/ND v1, v2, v4
$(eval $(call GluonProfile,TLWR741))
$(eval $(call GluonModel,TLWR741,tl-wr741nd-v1-squashfs,tp-link-tl-wr741n-nd-v1))
$(eval $(call GluonModel,TLWR741,tl-wr741nd-v2-squashfs,tp-link-tl-wr741n-nd-v2))
$(eval $(call GluonModel,TLWR741,tl-wr741nd-v4-squashfs,tp-link-tl-wr741n-nd-v4))
$(eval $(call GluonModel,TLWR741,tl-wr741nd-v1,tp-link-tl-wr741n-nd-v1))
$(eval $(call GluonModel,TLWR741,tl-wr741nd-v2,tp-link-tl-wr741n-nd-v2))
$(eval $(call GluonModel,TLWR741,tl-wr741nd-v4,tp-link-tl-wr741n-nd-v4))
# TL-WR743N/ND v1, v1.1, v2
$(eval $(call GluonProfile,TLWR743))
$(eval $(call GluonModel,TLWR743,tl-wr743nd-v1-squashfs,tp-link-tl-wr743n-nd-v1))
$(eval $(call GluonModel,TLWR743,tl-wr743nd-v2-squashfs,tp-link-tl-wr743n-nd-v2))
$(eval $(call GluonModel,TLWR743,tl-wr743nd-v1,tp-link-tl-wr743n-nd-v1))
$(eval $(call GluonModel,TLWR743,tl-wr743nd-v2,tp-link-tl-wr743n-nd-v2))
# TL-WR801N/ND v2
$(eval $(call GluonProfile,TLWA801))
$(eval $(call GluonModel,TLWA801,tl-wa801nd-v2-squashfs,tp-link-tl-wa801n-nd-v2))
$(eval $(call GluonModel,TLWA801,tl-wa801nd-v2,tp-link-tl-wa801n-nd-v2))
# TL-WR841N/ND v3, v5, v7, v8, v9
$(eval $(call GluonProfile,TLWR841))
$(eval $(call GluonModel,TLWR841,tl-wr841nd-v3-squashfs,tp-link-tl-wr841n-nd-v3))
$(eval $(call GluonModel,TLWR841,tl-wr841nd-v5-squashfs,tp-link-tl-wr841n-nd-v5))
$(eval $(call GluonModel,TLWR841,tl-wr841nd-v7-squashfs,tp-link-tl-wr841n-nd-v7))
$(eval $(call GluonModel,TLWR841,tl-wr841n-v8-squashfs,tp-link-tl-wr841n-nd-v8))
$(eval $(call GluonModel,TLWR841,tl-wr841n-v9-squashfs,tp-link-tl-wr841n-nd-v9))
$(eval $(call GluonModel,TLWR841,tl-wr841nd-v3,tp-link-tl-wr841n-nd-v3))
$(eval $(call GluonModel,TLWR841,tl-wr841nd-v5,tp-link-tl-wr841n-nd-v5))
$(eval $(call GluonModel,TLWR841,tl-wr841nd-v7,tp-link-tl-wr841n-nd-v7))
$(eval $(call GluonModel,TLWR841,tl-wr841n-v8,tp-link-tl-wr841n-nd-v8))
$(eval $(call GluonModel,TLWR841,tl-wr841n-v9,tp-link-tl-wr841n-nd-v9))
# TL-WR842N/ND v1, v2
$(eval $(call GluonProfile,TLWR842))
$(eval $(call GluonModel,TLWR842,tl-wr842n-v1-squashfs,tp-link-tl-wr842n-nd-v1))
$(eval $(call GluonModel,TLWR842,tl-wr842n-v2-squashfs,tp-link-tl-wr842n-nd-v2))
$(eval $(call GluonModel,TLWR842,tl-wr842n-v1,tp-link-tl-wr842n-nd-v1))
$(eval $(call GluonModel,TLWR842,tl-wr842n-v2,tp-link-tl-wr842n-nd-v2))
# TL-WR941N/ND v2, v3, v4, v5, v6
$(eval $(call GluonProfile,TLWR941))
$(eval $(call GluonModel,TLWR941,tl-wr941nd-v2-squashfs,tp-link-tl-wr941n-nd-v2))
$(eval $(call GluonModel,TLWR941,tl-wr941nd-v3-squashfs,tp-link-tl-wr941n-nd-v3))
$(eval $(call GluonModel,TLWR941,tl-wr941nd-v4-squashfs,tp-link-tl-wr941n-nd-v4))
$(eval $(call GluonModel,TLWR941,tl-wr941nd-v5-squashfs,tp-link-tl-wr941n-nd-v5))
$(eval $(call GluonModel,TLWR941,tl-wr941nd-v2,tp-link-tl-wr941n-nd-v2))
$(eval $(call GluonModel,TLWR941,tl-wr941nd-v3,tp-link-tl-wr941n-nd-v3))
$(eval $(call GluonModel,TLWR941,tl-wr941nd-v4,tp-link-tl-wr941n-nd-v4))
$(eval $(call GluonModel,TLWR941,tl-wr941nd-v5,tp-link-tl-wr941n-nd-v5))
ifeq ($(BROKEN),1)
$(eval $(call GluonModel,TLWR941,tl-wr941nd-v6-squashfs,tp-link-tl-wr941n-nd-v6)) # BROKEN: untested
$(eval $(call GluonModel,TLWR941,tl-wr941nd-v6,tp-link-tl-wr941n-nd-v6)) # BROKEN: untested
endif
# TL-WR1043N/ND v1, v2
$(eval $(call GluonProfile,TLWR1043))
$(eval $(call GluonModel,TLWR1043,tl-wr1043nd-v1-squashfs,tp-link-tl-wr1043n-nd-v1))
$(eval $(call GluonModel,TLWR1043,tl-wr1043nd-v2-squashfs,tp-link-tl-wr1043n-nd-v2))
$(eval $(call GluonModel,TLWR1043,tl-wr1043nd-v1,tp-link-tl-wr1043n-nd-v1))
$(eval $(call GluonModel,TLWR1043,tl-wr1043nd-v2,tp-link-tl-wr1043n-nd-v2))
# TL-WDR3500/3600/4300 v1
$(eval $(call GluonProfile,TLWDR4300))
$(eval $(call GluonModel,TLWDR4300,tl-wdr3500-v1-squashfs,tp-link-tl-wdr3500-v1))
$(eval $(call GluonModel,TLWDR4300,tl-wdr3600-v1-squashfs,tp-link-tl-wdr3600-v1))
$(eval $(call GluonModel,TLWDR4300,tl-wdr4300-v1-squashfs,tp-link-tl-wdr4300-v1))
$(eval $(call GluonModel,TLWDR4300,tl-wdr3500-v1,tp-link-tl-wdr3500-v1))
$(eval $(call GluonModel,TLWDR4300,tl-wdr3600-v1,tp-link-tl-wdr3600-v1))
$(eval $(call GluonModel,TLWDR4300,tl-wdr4300-v1,tp-link-tl-wdr4300-v1))
# TL-WA750RE v1
$(eval $(call GluonProfile,TLWA750))
$(eval $(call GluonModel,TLWA750,tl-wa750re-v1-squashfs,tp-link-tl-wa750re-v1))
$(eval $(call GluonModel,TLWA750,tl-wa750re-v1,tp-link-tl-wa750re-v1))
ifeq ($(BROKEN),1)
# TL-WA830RE v2
$(eval $(call GluonProfile,TLWA830))
$(eval $(call GluonModel,TLWA830,tl-wa830re-v2-squashfs,tp-link-tl-wa830re-v2))
$(eval $(call GluonModel,TLWA830,tl-wa830re-v2,tp-link-tl-wa830re-v2))
endif
# TL-WA850RE v1
$(eval $(call GluonProfile,TLWA850))
$(eval $(call GluonModel,TLWA850,tl-wa850re-v1-squashfs,tp-link-tl-wa850re-v1))
$(eval $(call GluonModel,TLWA850,tl-wa850re-v1,tp-link-tl-wa850re-v1))
# TL-WA860RE v1
$(eval $(call GluonProfile,TLWA860))
$(eval $(call GluonModel,TLWA860,tl-wa860re-v1-squashfs,tp-link-tl-wa860re-v1))
$(eval $(call GluonModel,TLWA860,tl-wa860re-v1,tp-link-tl-wa860re-v1))
# TL-WA901N/ND v2
$(eval $(call GluonProfile,TLWA901))
$(eval $(call GluonModel,TLWA901,tl-wa901nd-v2-squashfs,tp-link-tl-wa901n-nd-v2))
$(eval $(call GluonModel,TLWA901,tl-wa901nd-v3-squashfs,tp-link-tl-wa901n-nd-v3))
$(eval $(call GluonModel,TLWA901,tl-wa901nd-v2,tp-link-tl-wa901n-nd-v2))
$(eval $(call GluonModel,TLWA901,tl-wa901nd-v3,tp-link-tl-wa901n-nd-v3))
# TL-MR3020 v1
$(eval $(call GluonProfile,TLMR3020))
$(eval $(call GluonModel,TLMR3020,tl-mr3020-v1-squashfs,tp-link-tl-mr3020-v1))
$(eval $(call GluonModel,TLMR3020,tl-mr3020-v1,tp-link-tl-mr3020-v1))
# TL-MR3040 v1, v2
$(eval $(call GluonProfile,TLMR3040))
$(eval $(call GluonModel,TLMR3040,tl-mr3040-v1-squashfs,tp-link-tl-mr3040-v1))
$(eval $(call GluonModel,TLMR3040,tl-mr3040-v2-squashfs,tp-link-tl-mr3040-v2))
$(eval $(call GluonModel,TLMR3040,tl-mr3040-v1,tp-link-tl-mr3040-v1))
$(eval $(call GluonModel,TLMR3040,tl-mr3040-v2,tp-link-tl-mr3040-v2))
# TL-MR3220 v1
$(eval $(call GluonProfile,TLMR3220))
$(eval $(call GluonModel,TLMR3220,tl-mr3220-v1-squashfs,tp-link-tl-mr3220-v1))
$(eval $(call GluonModel,TLMR3220,tl-mr3220-v1,tp-link-tl-mr3220-v1))
# TL-MR3420 v1, v2
$(eval $(call GluonProfile,TLMR3420))
$(eval $(call GluonModel,TLMR3420,tl-mr3420-v1-squashfs,tp-link-tl-mr3420-v1))
$(eval $(call GluonModel,TLMR3420,tl-mr3420-v2-squashfs,tp-link-tl-mr3420-v2))
$(eval $(call GluonModel,TLMR3420,tl-mr3420-v1,tp-link-tl-mr3420-v1))
$(eval $(call GluonModel,TLMR3420,tl-mr3420-v2,tp-link-tl-mr3420-v2))
# TL-WR2543N/ND v1
$(eval $(call GluonProfile,TLWR2543))
$(eval $(call GluonModel,TLWR2543,tl-wr2543-v1-squashfs,tp-link-tl-wr2543n-nd-v1))
$(eval $(call GluonModel,TLWR2543,tl-wr2543-v1,tp-link-tl-wr2543n-nd-v1))
ifeq ($(BROKEN),1)
# Archer C5 v1, C7 v2
$(eval $(call GluonProfile,ARCHERC7,kmod-ath10k))
$(eval $(call GluonModel,ARCHERC7,archer-c5-squashfs,tp-link-archer-c5-v1)) # BROKEN: ath10k
$(eval $(call GluonModel,ARCHERC7,archer-c7-v2-squashfs,tp-link-archer-c7-v2)) # BROKEN: ath10k
$(eval $(call GluonModel,ARCHERC7,archer-c5,tp-link-archer-c5-v1)) # BROKEN: ath10k
$(eval $(call GluonModel,ARCHERC7,archer-c7-v2,tp-link-archer-c7-v2)) # BROKEN: ath10k
endif
## Ubiquiti (everything)
$(eval $(call GluonProfile,UBNT))
$(eval $(call GluonModel,UBNT,ubnt-bullet-m-squashfs,ubiquiti-bullet-m))
$(eval $(call GluonModel,UBNT,ubnt-loco-m-xw-squashfs,ubiquiti-loco-m-xw))
$(eval $(call GluonModel,UBNT,ubnt-nano-m-squashfs,ubiquiti-nanostation-m))
$(eval $(call GluonModel,UBNT,ubnt-nano-m-xw-squashfs,ubiquiti-nanostation-m-xw))
$(eval $(call GluonModel,UBNT,ubnt-unifi-squashfs,ubiquiti-unifi))
$(eval $(call GluonModel,UBNT,ubnt-unifi-outdoor-squashfs,ubiquiti-unifiap-outdoor))
$(eval $(call GluonModel,UBNT,ubnt-bullet-m,ubiquiti-bullet-m))
$(eval $(call GluonModel,UBNT,ubnt-loco-m-xw,ubiquiti-loco-m-xw))
$(eval $(call GluonModel,UBNT,ubnt-nano-m,ubiquiti-nanostation-m))
$(eval $(call GluonModel,UBNT,ubnt-nano-m-xw,ubiquiti-nanostation-m-xw))
$(eval $(call GluonModel,UBNT,ubnt-unifi,ubiquiti-unifi))
$(eval $(call GluonModel,UBNT,ubnt-unifi-outdoor,ubiquiti-unifiap-outdoor))
ifeq ($(BROKEN),1)
$(eval $(call GluonModel,UBNT,ubnt-ls-sr71-squashfs,ubiquiti-ls-sr71)) # BROKEN: Untested
$(eval $(call GluonModel,UBNT,ubnt-uap-pro-squashfs,ubiquiti-unifi-ap-pro)) # BROKEN: not properly tested; probably issues with WLAN adapter detection
$(eval $(call GluonModel,UBNT,ubnt-unifi-outdoor-plus-squashfs,ubiquiti-unifiap-outdoor+)) # BROKEN: WLAN doesn't work correctly (high packet loss)
$(eval $(call GluonModel,UBNT,ubnt-ls-sr71,ubiquiti-ls-sr71)) # BROKEN: Untested
$(eval $(call GluonModel,UBNT,ubnt-uap-pro,ubiquiti-unifi-ap-pro)) # BROKEN: not properly tested; probably issues with WLAN adapter detection
$(eval $(call GluonModel,UBNT,ubnt-unifi-outdoor-plus,ubiquiti-unifiap-outdoor+)) # BROKEN: WLAN doesn't work correctly (high packet loss)
endif
@ -150,45 +150,52 @@ endif
# D-Link DIR-615 rev. C1
$(eval $(call GluonProfile,DIR615C1))
$(eval $(call GluonModel,DIR615C1,dir-615-c1-squashfs,d-link-dir-615-rev-c1))
$(eval $(call GluonModel,DIR615C1,dir-615-c1,d-link-dir-615-rev-c1))
# D-Link DIR-825 rev. B1
$(eval $(call GluonProfile,DIR825B1))
$(eval $(call GluonModel,DIR825B1,dir-825-b1-squashfs,d-link-dir-825-rev-b1))
$(eval $(call GluonModel,DIR825B1,dir-825-b1,d-link-dir-825-rev-b1))
## Linksys by Cisco
# WRT160NL
$(eval $(call GluonProfile,WRT160NL))
$(eval $(call GluonModel,WRT160NL,wrt160nl-squashfs,linksys-wrt160nl))
$(eval $(call GluonModel,WRT160NL,wrt160nl,linksys-wrt160nl))
## Buffalo
# WZR-HP-G450H
$(eval $(call GluonProfile,WZRHPG450H))
$(eval $(call GluonModel,WZRHPG450H,wzr-hp-g450h-squashfs,buffalo-wzr-hp-g450h))
$(eval $(call GluonModel,WZRHPG450H,wzr-hp-g450h,buffalo-wzr-hp-g450h))
# WZR-HP-AG300H/WZR-600DHP
$(eval $(call GluonProfile,WZRHPAG300H))
$(eval $(call GluonModel,WZRHPAG300H,wzr-hp-ag300h-squashfs,buffalo-wzr-hp-ag300h-wzr-600dhp))
$(eval $(call GluonModel,WZRHPAG300H,wzr-hp-ag300h,buffalo-wzr-hp-ag300h-wzr-600dhp))
## Netgear
# WNDR3700 (v1, v2) / WNDR3800 / WNDRMAC (v1, v2)
$(eval $(call GluonProfile,WNDR3700))
$(eval $(call GluonProfileFactorySuffix,WNDR3700,.img))
$(eval $(call GluonModel,WNDR3700,wndr3700-squashfs,netgear-wndr3700))
$(eval $(call GluonModel,WNDR3700,wndr3700v2-squashfs,netgear-wndr3700v2))
$(eval $(call GluonModel,WNDR3700,wndr3800-squashfs,netgear-wndr3800))
$(eval $(call GluonProfileFactorySuffix,WNDR3700,-squashfs-factory,.img))
$(eval $(call GluonModel,WNDR3700,wndr3700,netgear-wndr3700))
$(eval $(call GluonModel,WNDR3700,wndr3700v2,netgear-wndr3700v2))
$(eval $(call GluonModel,WNDR3700,wndr3800,netgear-wndr3800))
ifeq ($(BROKEN),1)
$(eval $(call GluonModel,WNDR3700,wndrmac-squashfs,netgear-wndrmac)) # BROKEN: untested
$(eval $(call GluonModel,WNDR3700,wndrmacv2-squashfs,netgear-wndrmacv2)) # BROKEN: untested
$(eval $(call GluonModel,WNDR3700,wndrmac,netgear-wndrmac)) # BROKEN: untested
$(eval $(call GluonModel,WNDR3700,wndrmacv2,netgear-wndrmacv2)) # BROKEN: untested
endif
## Allnet
# ALL0315N
$(eval $(call GluonProfile,ALL0315N,uboot-envtools rssileds))
$(eval $(call GluonProfileFactorySuffix,ALL0315N,))
$(eval $(call GluonModel,ALL0315N,all0315n-squashfs,allnet-all0315n))
$(eval $(call GluonProfileFactorySuffix,ALL0315N))
$(eval $(call GluonModel,ALL0315N,all0315n,allnet-all0315n))
## GL-iNet
# GL-iNet 1.0
$(eval $(call GluonProfile,GLINET))
$(eval $(call GluonModel,GLINET,gl-inet-6408A-v1,gl-inet-6408a-v1))
$(eval $(call GluonModel,GLINET,gl-inet-6416A-v1,gl-inet-6416a-v1))

View File

@ -0,0 +1,2 @@
CONFIG_TARGET_ar71xx=y
CONFIG_TARGET_ar71xx_nand=y

View File

@ -0,0 +1,10 @@
# List of hardware profiles
## NETGEAR
# WNDR3700 v4, WNDR4300 v1
$(eval $(call GluonProfile,WNDR4300))
$(eval $(call GluonProfileFactorySuffix,WNDR4300,-ubi-factory,.img))
$(eval $(call GluonProfileSysupgradeSuffix,WNDR4300,-squashfs-sysupgrade,.tar))
$(eval $(call GluonModel,WNDR4300,wndr3700v4,netgear-wndr3700v4))
$(eval $(call GluonModel,WNDR4300,wndr4300,netgear-wndr4300))

View File

@ -0,0 +1 @@
41123e63bc43f61af09d064504300966

File diff suppressed because it is too large Load Diff

View File

@ -4,4 +4,4 @@
# TL-WDR4900 v1
$(eval $(call GluonProfile,TLWDR4900))
$(eval $(call GluonModel,TLWDR4900,tl-wdr4900-v1-squashfs,tp-link-tl-wdr4900-v1))
$(eval $(call GluonModel,TLWDR4900,tl-wdr4900-v1,tp-link-tl-wdr4900-v1))

File diff suppressed because it is too large Load Diff

View File

@ -2,5 +2,5 @@
# VoCore
$(eval $(call GluonProfile,VOCORE))
$(eval $(call GluonProfileFactorySuffix,VOCORE,))
$(eval $(call GluonModel,VOCORE,vocore-squashfs,vocore))
$(eval $(call GluonProfileFactorySuffix,VOCORE))
$(eval $(call GluonModel,VOCORE,vocore,vocore))

View File

@ -1,4 +1,5 @@
$(eval $(call GluonTarget,ar71xx,generic))
$(eval $(call GluonTarget,ar71xx,nand))
$(eval $(call GluonTarget,mpc85xx,generic))
$(eval $(call GluonTarget,x86,generic))
$(eval $(call GluonTarget,x86,kvm_guest))

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,17 @@
$(eval $(call GluonProfile,GENERIC,kmod-3c59x kmod-e100 kmod-e1000 kmod-natsemi kmod-ne2k-pci kmod-pcnet32 kmod-8139too kmod-r8169 kmod-sis900 kmod-tg3 kmod-via-rhine kmod-via-velocity))
$(eval $(call GluonProfileFactorySuffix,GENERIC))
$(eval $(call GluonProfileSysupgradeSuffix,GENERIC))
$(eval $(call GluonProfileExtraSuffix,GENERIC,.img.gz))
$(eval $(call GluonModel,GENERIC,combined-ext4,x86-generic))
X86_GENERIC_NETWORK_MODULES := kmod-3c59x kmod-e100 kmod-e1000 kmod-natsemi kmod-ne2k-pci kmod-pcnet32 kmod-8139too kmod-r8169 kmod-sis900 kmod-tg3 kmod-via-rhine kmod-via-velocity
$(eval $(call GluonProfile,VDI,kmod-pcnet32 kmod-e1000))
$(eval $(call GluonProfileFactorySuffix,VDI))
$(eval $(call GluonProfile,GENERIC,$(X86_GENERIC_NETWORK_MODULES)))
$(eval $(call GluonProfileFactorySuffix,GENERIC,-ext4,.img.gz))
$(eval $(call GluonProfileSysupgradeSuffix,GENERIC,-ext4,.img.gz))
$(eval $(call GluonModel,GENERIC,combined,x86-generic))
$(eval $(call GluonProfile,VDI,$(X86_GENERIC_NETWORK_MODULES)))
$(eval $(call GluonProfileFactorySuffix,VDI,-ext4,.vdi))
$(eval $(call GluonProfileSysupgradeSuffix,VDI))
$(eval $(call GluonProfileExtraSuffix,VDI,.vdi))
$(eval $(call GluonModel,VDI,combined-ext4,x86-virtualbox))
$(eval $(call GluonModel,VDI,combined,x86-virtualbox))
$(eval $(call GluonProfile,VMDK,kmod-pcnet32))
$(eval $(call GluonProfileFactorySuffix,VMDK))
$(eval $(call GluonProfile,VMDK,$(X86_GENERIC_NETWORK_MODULES)))
$(eval $(call GluonProfileFactorySuffix,VMDK,-ext4,.vmdk))
$(eval $(call GluonProfileSysupgradeSuffix,VMDK))
$(eval $(call GluonProfileExtraSuffix,VMDK,.vmdk))
$(eval $(call GluonModel,VMDK,combined-ext4,x86-vmware))
$(eval $(call GluonModel,VMDK,combined,x86-vmware))

View File

@ -1,3 +1,2 @@
CONFIG_TARGET_x86=y
CONFIG_TARGET_x86_kvm_guest=y
CONFIG_TARGET_ROOTFS_PARTNAME="/dev/vda2"

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,4 @@
$(eval $(call GluonProfile,KVM,kmod-virtio-balloon kmod-virtio-net kmod-virtio-random))
$(eval $(call GluonProfileFactorySuffix,KVM))
$(eval $(call GluonProfileSysupgradeSuffix,KVM))
$(eval $(call GluonProfileExtraSuffix,KVM,.img.gz))
$(eval $(call GluonModel,KVM,combined-ext4,x86-kvm))
$(eval $(call GluonProfileFactorySuffix,KVM,-ext4,.img.gz))
$(eval $(call GluonProfileSysupgradeSuffix,KVM,-ext4,.img.gz))
$(eval $(call GluonModel,KVM,combined,x86-kvm))