openwrt-20.x: add support for latest 20.x

This is opt-in and we continue to use the 19.07 tree as the default.

Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
John Crispin
2020-10-24 17:44:35 +02:00
parent cded4ebf9a
commit a6a28f5aab
71 changed files with 23061 additions and 4 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,2 @@
/openwrt
/keys
/cloud/app/log/
/openwrt-20.x

7
config-20.x.yml Normal file
View File

@@ -0,0 +1,7 @@
repo: https://github.com/openwrt/openwrt.git
branch: master
revision: 36db12b883e581c9cdbb79395c2d9316d820cbbd
output_dir: ./output
patch_folders:
- patches-20.x/

View File

@@ -0,0 +1,53 @@
#
# Copyright (C) 2016 Nordic Semiconductor ASA.
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=bluetooth-6lowpand
PKG_VERSION:=0.0.1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=https://github.com/NordicSemiconductor/Linux-ble-6lowpan-joiner.git
PKG_SOURCE_VERSION:=5ce5b248846a6d4ac4a609eb0e8d023cf920b247
PKG_SOURCE_PROTO:=git
BLUEZ_DIR:=$(wildcard $(BUILD_DIR)/bluez-*)
TARGET_CFLAGS += -I$(BLUEZ_DIR)
TARGET_LDFLAGS += -L$(BLUEZ_DIR)/lib/.libs/ -L$(BLUEZ_DIR)/src/.libs/ -lshared-mainloop -lbluetooth-internal
include $(INCLUDE_DIR)/package.mk
define Package/bluetooth-6lowpand
SECTION:=base
CATEGORY:=Network
TITLE:=Bluetooth LE 6lowpan joiner daemon
URL:=http://www.nordicsemi.com/
DEPENDS:=+libusb-1.0 +bluez-libs
endef
define Package/bluetooth-6lowpand/description
Bluetooth Low Energy IPSP device scanner and connection daemon.
The Daemon can be used to whitelist certain IPSP Bluetooth LE MAC
addresses, or autoconnect using SSID and Key derived from Wifi AP
setup to authenticate the devices in order to connect. Also, manual
configuration of software SSID and Key can be used.
endef
define Package/bluetooth-6lowpand/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/bluetooth_6lowpand.init $(1)/etc/init.d/bluetooth_6lowpand
$(INSTALL_DIR) $(1)/etc/bluetooth
$(INSTALL_DATA) ./files/bluetooth_6lowpand.conf $(1)/etc/bluetooth
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/bluetooth_6lowpand $(1)/usr/sbin
endef
$(eval $(call BuildPackage,bluetooth-6lowpand))

View File

@@ -0,0 +1,24 @@
#!/bin/sh /etc/rc.common
START=63
PROG=/usr/sbin/bluetooth_6lowpand
HCICONFIG=/usr/bin/hciconfig
start() {
config_load btle
config_get enable bluetooth_6lowpand enable 0
[ "$enable" -eq 1 ] || return
echo "start bluetooth_6lowpand"
sleep 1
echo 1 > /sys/kernel/debug/bluetooth/6lowpan_enable
sleep 1
killall bluetoothd
sleep 1
$HCICONFIG hci0 reset
$PROG -w 3 -t 5 -a -d
}
stop() {
echo "stop bluetooth_6lowpand"
killall -9 bluetooth_6lowpand
}

View File

@@ -0,0 +1,33 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bluez-ibeacon
PKG_RELEASE:=1
PKG_SOURCE_URL=https://github.com/blogic/bluez-ibeacon
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2022-10-31
PKG_SOURCE_VERSION:=07c082bf3e139ce061ff62a42b7876860256f4ea
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
PKG_LICENSE:=MIT
include $(INCLUDE_DIR)/package.mk
define Package/bluez-ibeacon
SECTION:=utils
CATEGORY:=Utilities
TITLE:=bluez-ibeacon
DEPENDS:=+bluez-libs
endef
define Build/Compile
$(MAKE_VARS) $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/bluez-beacon $(MAKE_FLAGS)
endef
define Package/bluez-ibeacon/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bluez-beacon/ibeacon $(1)/usr/sbin/
$(INSTALL_BIN) ./files/ibeacon $(1)/etc/init.d/ibeacon
endef
$(eval $(call BuildPackage,bluez-ibeacon))

View File

@@ -0,0 +1,25 @@
#!/bin/sh /etc/rc.common
START=80
USE_PROCD=1
PROG=/usr/sbin/ibeacon
service_triggers() {
procd_add_reload_trigger btle
}
start_service() {
config_load btle
config_get enable ibeacon enable 0
config_get uuid ibeacon uuid 0
config_get major ibeacon major 0
config_get minor ibeacon minor 0
[ "$enable" -eq 1 ] || return
procd_open_instance
procd_set_param command "$PROG" 200 "${uuid}" "${major}" "${minor}" -29
procd_set_param respawn
procd_close_instance
}

View File

@@ -0,0 +1,32 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ubtled
PKG_RELEASE:=1
PKG_SOURCE_URL=https://github.com/blogic/ubtled.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2022-10-31
PKG_SOURCE_VERSION:=7e01ab86c562fc8ab3777d04e60b8dce596a4c5f
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
PKG_LICENSE:=GPL-2.0
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/ubtled
SECTION:=utils
CATEGORY:=Utilities
TITLE:=OpenWrt BTLE daemon
DEPENDS:=+libubox +libubus +bluez-libs
endef
define Package/ubtled/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/{config,init.d,uci-defaults}
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ubtled $(1)/usr/sbin/
$(INSTALL_BIN) ./files/ubtled.init $(1)/etc/init.d/ubtled
$(INSTALL_DATA) ./files/btle.config $(1)/etc/config/btle
$(INSTALL_DATA) ./files/99-btle $(1)/etc/uci-defaults/
endef
$(eval $(call BuildPackage,ubtled))

View File

@@ -0,0 +1,8 @@
#!/bin/sh
cat >> /etc/bluetooth/main.conf <<EOF
[General]
Name = TIP AP
[GATT]
[Policy]
EOF

View File

@@ -0,0 +1,11 @@
config ubtled ubtled
option enable 0
config bluetooth_6lowpand bluetooth_6lowpand
option enable 0
config ubtled ibeacon
option enable 0
option uuid 0
option major 0
option minor 0

View File

@@ -0,0 +1,24 @@
#!/bin/sh /etc/rc.common
START=80
USE_PROCD=1
PROG=/usr/sbin/ubtled
service_triggers() {
procd_add_reload_trigger btle
}
start_service() {
config_load btle
config_get enable ubtled enable 0
[ "$enable" -eq 1 ] || return
hciconfig hci0 up
procd_open_instance
procd_set_param command "$PROG"
procd_set_param respawn
procd_close_instance
}

View File

@@ -0,0 +1,67 @@
#
# Copyright (C) 2011 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libprotobuf-c
PKG_VERSION:=1.3.1
PKG_RELEASE:=2
PKG_SOURCE:=protobuf-c-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/protobuf-c/protobuf-c/releases/download/v$(PKG_VERSION)
PKG_HASH:=51472d3a191d6d7b425e32b612e477c06f73fe23e07f6a6a839b11808e9d2267
PKG_BUILD_DIR:=$(BUILD_DIR)/protobuf-c-$(PKG_VERSION)
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/protobuf-c-$(PKG_VERSION)
PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
PKG_LICENSE:=BSD-2c
PKG_BUILD_DEPENDS:=protobuf-c/host
HOST_BUILD_DEPENDS:=protobuf/host
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
define Package/libprotobuf-c
TITLE:=Protocol Buffers library
SECTION:=libs
CATEGORY:=Libraries
URL:=https://github.com/protobuf-c/protobuf-c
endef
define Package/libprotobuf-c/description
Runtime library to use Google Protocol Buffers from C applications.
Protocol Buffers are a way of encoding structured data in an efficient yet
extensible format. Google uses Protocol Buffers for almost all of its
internal RPC protocols and file formats.
endef
CONFIGURE_ARGS += \
--enable-shared \
--enable-static \
--disable-protoc
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libprotobuf-c.{a,la,so*} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
endef
define Package/libprotobuf-c/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libprotobuf-c.so.* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libprotobuf-c))
$(eval $(call HostBuild))

View File

@@ -0,0 +1,13 @@
Index: protobuf-c-1.3.1/t/generated-code2/cxx-generate-packed-data.cc
===================================================================
--- protobuf-c-1.3.1.orig/t/generated-code2/cxx-generate-packed-data.cc
+++ protobuf-c-1.3.1/t/generated-code2/cxx-generate-packed-data.cc
@@ -998,7 +998,7 @@ static void dump_test_packed_repeated_en
static void dump_test_unknown_fields (void)
{
EmptyMess mess;
- const google::protobuf::Message::Reflection *reflection = mess.GetReflection();
+ const google::protobuf::Reflection *reflection = mess.GetReflection();
google::protobuf::UnknownFieldSet *fs = reflection->MutableUnknownFields(&mess);
#if GOOGLE_PROTOBUF_VERSION >= 2001000

View File

@@ -0,0 +1,39 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python3-jinja2
PKG_RELEASE:=1
PKG_VERSION:=2.11.2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/pallets/jinja.git
PKG_SOURCE_VERSION:=737a4cd41d09878e7e6c584a2062f5853dc30150
PKG_BUILD_DIR:=$(BUILD_DIR)/python3-jinja2-$(PKG_VERSION)
HOST_BUILD_DEPENDS:=python3/host
include $(TOPDIR)/feeds/packages/lang/python/pypi.mk
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/feeds/packages/lang/python/python3-package.mk
define Package/python3-jinja2
SECTION:=language-python
CATEGORY:=Languages
SUBMENU:=Python
TITLE:=jinja2
URL:=https://github.com/ulfalizer/Kconfiglib
endef
define Package/python3-jinja2/description
Jinja is a modern and designer-friendly templating language for Python, modelled after Djangos templates. It is fast, widely used and secure with the optional sandboxed template execution environment:
endef
define Host/Compile
$(call HostPython3/ModSetup,,install --prefix="" --root="$(STAGING_DIR_HOSTPKG)")
endef
Host/Install:=
$(eval $(call HostBuild))
$(eval $(call Py3Package,python3-jinja2))
$(eval $(call BuildPackage,python3-jinja2))

View File

@@ -0,0 +1,38 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python3-kconfiglib
PKG_RELEASE:=1
PKG_VERSION:=13.1.1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ulfalizer/Kconfiglib.git
PKG_SOURCE_VERSION:=bf01114a0ce09b891ed04609ea7e9cc6f3ef3df2
PKG_BUILD_DIR:=$(BUILD_DIR)/python3-kconfiglib-$(PKG_VERSION)
HOST_BUILD_DEPENDS:=python3/host
include $(TOPDIR)/feeds/packages/lang/python/pypi.mk
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/feeds/packages/lang/python/python3-package.mk
define Package/python3-kconfiglib
SECTION:=language-python
CATEGORY:=Languages
SUBMENU:=Python
TITLE:=kconfiglib
URL:=https://github.com/ulfalizer/Kconfiglib
endef
define Package/python3-kconfiglib/description
Kconfiglib is a Kconfig implementation in Python 2/3.
endef
define Host/Compile
$(call HostPython3/ModSetup,,install --prefix="" --root="$(STAGING_DIR_HOSTPKG)")
endef
Host/Install:=
$(eval $(call HostBuild))
$(eval $(call Py3Package,python3-kconfiglib))
$(eval $(call BuildPackage,python3-kconfiglib))

View File

@@ -0,0 +1,49 @@
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=MarkupSafe
PKG_VERSION:=1.1.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/M/MarkupSafe
PKG_HASH:=29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b
PKG_BUILD_DEPENDS:=python python3
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-$(PKG_NAME)-$(PKG_VERSION)
PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
HOST_BUILD_DEPENDS:=python3/host
include $(TOPDIR)/feeds/packages/lang/python/pypi.mk
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/feeds/packages/lang/python/python3-package.mk
define Package/python3-markupsafe
SECTION:=lang
CATEGORY:=Languages
SUBMENU:=Python
URL:=https://github.com/pallets/markupsafe/
TITLE:=python3-markupsafe
endef
define Package/python3-markupsafe/description
MarkupSafe implements a XML/HTML/XHTML Markup safe string for Python
endef
define Host/Compile
$(call HostPython3/ModSetup,,install --prefix="" --root="$(STAGING_DIR_HOSTPKG)")
endef
Host/Install:=
$(eval $(call HostBuild))
$(eval $(call Py3Package,python3-markupsafe))
$(eval $(call BuildPackage,python3-markupsafe))

View File

@@ -0,0 +1,25 @@
From b0975ab27207c7bb7eaca62412a625e9e9cb9538 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Tue, 22 Sep 2020 18:02:55 +0200
Subject: [PATCH 01/25] .gitignore: add the /profiles folder
Signed-off-by: John Crispin <john@phrozen.org>
---
.gitignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.gitignore b/.gitignore
index b6bfe1a525..a2a910ef13 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,6 +16,7 @@
/overlay
/package/feeds
/package/openwrt-packages
+/profiles
/*.patch
key-build*
*.orig
--
2.25.1

View File

@@ -0,0 +1,210 @@
From 3496a3b2b77a86caa5a689555192627922917836 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Fri, 19 Jun 2020 10:45:22 +0200
Subject: [PATCH 02/25] pending: scripts: add gen_config.py
This script is used to setup the tree based on the profiles/.
Signed-off-by: John Crispin <john@phrozen.org>
---
scripts/gen_config.py | 188 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 188 insertions(+)
create mode 100755 scripts/gen_config.py
diff --git a/scripts/gen_config.py b/scripts/gen_config.py
new file mode 100755
index 0000000000..5bc7068ae7
--- /dev/null
+++ b/scripts/gen_config.py
@@ -0,0 +1,188 @@
+#!/usr/bin/env python3
+
+from os import getenv
+from pathlib import Path
+from shutil import rmtree
+from subprocess import run
+import sys
+import yaml
+
+profile_folder = Path(getenv("PROFILES", "./profiles")).absolute()
+
+
+def die(msg: str):
+ """Quit script with error message
+
+ msg (str): Error message to print
+ """
+ print(msg)
+ sys.exit(1)
+
+
+def usage(code: int = 0):
+ """Print script usage
+
+ Args:
+ code (int): exit code
+ """
+ print(
+ f"""Usage: {sys.argv[0]} <profile> [options...]
+
+ clean Remove feeds before setup
+ list List available profiles
+ help Print this message
+ """
+ )
+ sys.exit(code)
+
+
+def load_yaml(fname: str, profile: dict, include = True):
+ profile_file = (profile_folder / fname).with_suffix(".yml")
+
+ if not profile_file.is_file():
+ die(f"Profile {fname} not found")
+
+ new = yaml.safe_load(profile_file.read_text())
+ for n in new:
+ if n in {"profile", "target", "subtarget", "external_target"}:
+ if profile.get(n):
+ die(f"Duplicate tag found {n}")
+ profile.update({n: new.get(n)})
+ elif n in {"description"}:
+ profile["description"].append(new.get(n))
+ elif n in {"packages"}:
+ profile["packages"].extend(new.get(n))
+ elif n in {"diffconfig"}:
+ profile["diffconfig"] += new.get(n)
+ elif n in {"feeds"}:
+ for f in new.get(n):
+ if f.get("name", "") == "" or (f.get("uri", "") == "" and f.get("path", "") == ""):
+ die(f"Found bad feed {f}")
+ profile["feeds"][f.get("name")] = f
+
+ if "include" in new and include:
+ for i in range(len(new["include"])):
+ profile = load_yaml(new["include"][i], profile, False)
+ return profile
+
+
+def clean_tree():
+ print("Cleaning tree")
+ rmtree("./tmp", ignore_errors=True)
+ rmtree("./packages/feeds/", ignore_errors=True)
+ rmtree("./tmp/", ignore_errors=True)
+ rmtree(".git/rebase-apply/", ignore_errors=True)
+ if Path("./feeds.conf").is_file():
+ Path("./feeds.conf").unlink()
+ if Path("./.config").is_file():
+ Path("./.config").unlink()
+
+
+def merge_profiles(profiles):
+ profile = {"packages": [], "description": [], "diffconfig": "", "feeds": {}}
+
+ for p in profiles:
+ profile = load_yaml(p, profile)
+
+ return profile
+
+
+def setup_feeds(profile):
+ feeds_conf = Path("feeds.conf")
+ if feeds_conf.is_file():
+ feeds_conf.unlink()
+
+ feeds = []
+ for p in profile.get("feeds", []):
+ try:
+ f = profile["feeds"].get(p)
+ if all(k in f for k in ("branch", "revision", "path")):
+ die(f"Please specify either a branch, a revision or a path: {f}")
+ if "path" in f:
+ feeds.append(
+ f'{f.get("method", "src-link")},{f["name"]},{f["path"]}'
+ )
+ elif "revision" in f:
+ feeds.append(
+ f'{f.get("method", "src-git")},{f["name"]},{f["uri"]}^{f.get("revision")}'
+ )
+ else:
+ feeds.append(
+ f'{f.get("method", "src-git")},{f["name"]},{f["uri"]};{f.get("branch", "master")}'
+ )
+
+ except:
+ print(f"Badly configured feed: {f}")
+
+ if run(["./scripts/feeds", "setup", "-b", *feeds]).returncode:
+ die(f"Error setting up feeds")
+
+ if run(["./scripts/feeds", "update"]).returncode:
+ die(f"Error updating feeds")
+
+ for p in profile.get("feeds", []):
+ f = profile["feeds"].get(p)
+ if run(
+ ["./scripts/feeds", "install", "-a", "-f", "-p", f.get("name")]
+ ).returncode:
+ die(f"Error installing {feed}")
+
+ packages = ["./scripts/feeds", "install" ]
+ for package in profile.get("packages", []):
+ packages.append(package)
+ if len(packages) > 2:
+ if run(packages).returncode:
+ die(f"Error installing packages")
+
+ if profile.get("external_target", False):
+ if run(["./scripts/feeds", "install", profile["target"]]).returncode:
+ die(f"Error installing external target {profile['target']}")
+
+
+def generate_config(profile):
+ config_output = f"""CONFIG_TARGET_{profile["target"]}=y
+CONFIG_TARGET_{profile["target"]}_{profile["subtarget"]}=y
+CONFIG_TARGET_{profile["target"]}_{profile["subtarget"]}_DEVICE_{profile["profile"]}=y
+"""
+
+ config_output += f"{profile.get('diffconfig', '')}"
+
+ for package in profile.get("packages", []):
+ print(f"Add package to .config: {package}")
+ config_output += f"CONFIG_PACKAGE_{package}=y\n"
+
+ Path(".config").write_text(config_output)
+ print("Configuration written to .config")
+
+
+if __name__ == "__main__":
+ if "list" in sys.argv:
+ print(f"Profiles in {profile_folder}")
+
+ print("\n".join(map(lambda p: str(p.stem), profile_folder.glob("*.yml"))))
+ quit(0)
+
+ if "help" in sys.argv:
+ usage()
+
+ if len(sys.argv) < 2:
+ usage(1)
+
+ if "clean" in sys.argv:
+ clean_tree()
+ print("Tree is now clean")
+ quit(0)
+
+ profile = merge_profiles(sys.argv[1:])
+
+ print("Using the following profiles:")
+ for d in profile.get("description"):
+ print(f" - {d}")
+
+ clean_tree()
+ setup_feeds(profile)
+ generate_config(profile)
+
+ print("Running make defconfig")
+ if run(["make", "defconfig"]).returncode:
+ die(f"Error running make defconfig")
--
2.25.1

View File

@@ -0,0 +1,131 @@
From 7789c276f05f514f2cb447d615d913a45301b189 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Fri, 19 Jun 2020 13:25:27 +0200
Subject: [PATCH 03/25] scripts: update feed script
gen_config.py requires the latest version of the feeds script.
Signed-off-by: John Crispin <john@phrozen.org>
---
scripts/feeds | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)
diff --git a/scripts/feeds b/scripts/feeds
index 22d4f8e8f4..7afdda98e8 100755
--- a/scripts/feeds
+++ b/scripts/feeds
@@ -644,6 +644,35 @@ sub refresh_config {
}
}
+sub install_profiles {
+ my $feed = shift;
+ my $dir = sprintf('feeds/%s/', $feed->[1]);
+
+ -d "./feeds/profiles" or mkdir "./feeds/profiles" or return 1;
+
+ opendir (DIR, $dir) or return 0;
+ while (my $file = readdir(DIR)) {
+ next unless (-f "$dir/$file");
+ next unless ($file =~ m/\.profile$/);
+ -e "./feeds/profiles/$file" or system("ln -s ../$feed->[1]/$file ./feeds/profiles/");
+ }
+ closedir(DIR);
+}
+
+sub install_dl {
+ my $feed = shift;
+ my $dir = sprintf('feeds/%s/dl/', $feed->[1]);
+
+ -d "./dl" or mkdir "./dl" or return 1;
+
+ opendir (DIR, $dir) or return 0;
+ while (my $file = readdir(DIR)) {
+ next unless (-f "$dir/$file");
+ -e "./dl/$file" or system("ln -s ../feeds/$feed->[1]/dl/$file ./dl/");
+ }
+ closedir(DIR);
+}
+
sub install {
my $name;
my %opts;
@@ -676,6 +705,8 @@ sub install {
install_src($feed, $name, exists($opts{f})) == 0 or $ret = 1;
get_feed($f->[1]);
}
+ install_profiles($f);
+ install_dl($f);
}
}
} else {
@@ -846,6 +877,47 @@ sub update {
return $failed;
}
+sub setup {
+ my %opts;
+
+ getopts('bh', \%opts);
+
+ if ($opts{h}) {
+ usage();
+ return 0;
+ }
+
+ if (-e "feeds.conf") {
+ warn "The file feeds.conf already exists.\n";
+ return 1;
+ }
+
+ open(my $fd, ">>feeds.conf");
+
+ if ($opts{b}) {
+ printf $fd "src-include defaults feeds.conf.default\n";
+ }
+
+ while (my $entry = shift @ARGV) {
+ my ($type, $name, $src) = split /,/, $entry;
+
+ $update_method{$type} or do {
+ warn "Unknown type '$type' in parameter $entry\n";
+ unlink "feeds.conf";
+ return 1;
+ };
+
+ if ($name =~ /[\s-]/) {
+ warn "Feed names or sources may not contain whitespace or - characters in parameter $entry\n";
+ unlink "feeds.conf";
+ return 1;
+ }
+ printf $fd "%s %s %s\n", $type, $name, $src;
+ }
+
+ return 0;
+}
+
sub feed_config() {
foreach my $feed (@feeds) {
my $installed = (-f "feeds/$feed->[1].index");
@@ -897,6 +969,10 @@ Commands:
-i : Recreate the index only. No feed update from repository is performed.
-f : Force updating feeds even if there are changed, uncommitted files.
+ setup [options] <type,name,link> <type,name,link> ...: generate feeds.conf
+ Options:
+ -b : Use feeds.conf.default as base for new feeds.conf.
+
clean: Remove downloaded/generated files.
EOF
@@ -910,6 +986,7 @@ my %commands = (
'search' => \&search,
'uninstall' => \&uninstall,
'feed_config' => \&feed_config,
+ 'setup' => \&setup,
'clean' => sub {
system("rm -rf ./feeds ./package/feeds");
}
--
2.25.1

View File

@@ -0,0 +1,63 @@
From 2b4912c779e24a5b90eb56333bacc9589b8cd7ec Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Sun, 9 Aug 2020 20:58:52 +0200
Subject: [PATCH 04/25] scripts/ubinize-image.sh: allow setting the rootfs name
This patch allows us to use a different rootfs name. Some QCA boards will
require the in ubi rfs to be called ubi_rootfs.
Signed-off-by: John Crispin <john@phrozen.org>
---
include/image-commands.mk | 1 +
scripts/ubinize-image.sh | 9 ++++++++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/include/image-commands.mk b/include/image-commands.mk
index 979eafb157..1a2a67c07d 100644
--- a/include/image-commands.mk
+++ b/include/image-commands.mk
@@ -82,6 +82,7 @@ define Build/append-ubi
sh $(TOPDIR)/scripts/ubinize-image.sh \
$(if $(UBOOTENV_IN_UBI),--uboot-env) \
$(if $(KERNEL_IN_UBI),--kernel $(IMAGE_KERNEL)) \
+ $(if $(ROOTFSNAME_IN_UBI),--rootfs_name $(ROOTFSNAME_IN_UBI)) \
$(foreach part,$(UBINIZE_PARTS),--part $(part)) \
$(IMAGE_ROOTFS) \
$@.tmp \
diff --git a/scripts/ubinize-image.sh b/scripts/ubinize-image.sh
index c6f8bcefe5..707cd38d47 100755
--- a/scripts/ubinize-image.sh
+++ b/scripts/ubinize-image.sh
@@ -7,6 +7,7 @@ ubootenv=""
ubinize_param=""
kernel=""
rootfs=""
+rootfs_name="rootfs"
outfile=""
err=""
ubinize_seq=""
@@ -76,7 +77,7 @@ ubilayout() {
rootsize="$( round_up "$( stat -c%s "$2" )" 1024 )"
;;
esac
- ubivol $vol_id rootfs "$2" "$autoresize" "$rootsize"
+ ubivol $vol_id $rootfs_name "$2" "$autoresize" "$rootsize"
vol_id=$(( $vol_id + 1 ))
[ "$rootfs_type" = "ubifs" ] || ubivol $vol_id rootfs_data "" 1
@@ -101,6 +102,12 @@ while [ "$1" ]; do
shift
continue
;;
+ "--rootfs_name")
+ rootfs_name="$2"
+ shift
+ shift
+ continue
+ ;;
"--part")
parts="$parts $2"
shift
--
2.25.1

View File

@@ -0,0 +1,34 @@
From f57f34015e7e7bd50974fc6c93a4ea5f6c658d50 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Thu, 25 Jun 2020 09:03:16 +0200
Subject: [PATCH 05/25] include/prereq-build.mk: add ovsdb-tool dependency
OpenSync requires a host installation of ovsdb-tool. Add this to the
required commands.
If the tool is missing, users will be presented witht he following line.
-> Build dependency: Please install the 'ovsdb-tool' package
Signed-off-by: John Crispin <john@phrozen.org>
---
include/prereq-build.mk | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
index e7314b253b..047a23074b 100644
--- a/include/prereq-build.mk
+++ b/include/prereq-build.mk
@@ -170,6 +170,9 @@ $(eval $(call SetupHostCommand,git,Please install Git (git-core) >= 1.7.12.2, \
$(eval $(call SetupHostCommand,file,Please install the 'file' package, \
file --version 2>&1 | grep file))
+$(eval $(call SetupHostCommand,ovsdb-tool,Please install the 'ovsdb-tool' package, \
+ ovsdb-tool -V 2>&1 | grep vSwitch))
+
$(STAGING_DIR_HOST)/bin/mkhash: $(SCRIPT_DIR)/mkhash.c
mkdir -p $(dir $@)
$(CC) -O2 -I$(TOPDIR)/tools/include -o $@ $<
--
2.25.1

View File

@@ -0,0 +1,49 @@
From 27a302d59b8b0e29b82ca8b46a883f10705225ac Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Thu, 30 Jul 2020 16:51:04 +0200
Subject: [PATCH 06/25] base-files: set default password to "openwifi"
Signed-off-by: John Crispin <john@phrozen.org>
---
package/base-files/files/bin/config_generate | 2 +-
package/base-files/files/etc/shadow | 2 +-
package/base-files/files/usr/libexec/login.sh | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate
index ee3958e733..66b11c8a2e 100755
--- a/package/base-files/files/bin/config_generate
+++ b/package/base-files/files/bin/config_generate
@@ -282,7 +282,7 @@ generate_static_system() {
add system system
set system.@system[-1].hostname='OpenWrt'
set system.@system[-1].timezone='UTC'
- set system.@system[-1].ttylogin='0'
+ set system.@system[-1].ttylogin='1'
set system.@system[-1].log_size='64'
set system.@system[-1].urandom_seed='0'
diff --git a/package/base-files/files/etc/shadow b/package/base-files/files/etc/shadow
index 4b4154f21f..5b3f32ce64 100644
--- a/package/base-files/files/etc/shadow
+++ b/package/base-files/files/etc/shadow
@@ -1,4 +1,4 @@
-root::0:0:99999:7:::
+root:$1$Ev771IIe$RHpqhCLW3U6c5tg9MrkQD/:18473:0:99999:7:::
daemon:*:0:0:99999:7:::
ftp:*:0:0:99999:7:::
network:*:0:0:99999:7:::
diff --git a/package/base-files/files/usr/libexec/login.sh b/package/base-files/files/usr/libexec/login.sh
index 1fff39c6a0..2e8dbc0d90 100755
--- a/package/base-files/files/usr/libexec/login.sh
+++ b/package/base-files/files/usr/libexec/login.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-[ "$(uci -q get system.@system[0].ttylogin)" = 1 ] || exec /bin/ash --login
+[ "$(uci -q get system.@system[0].ttylogin)" = 0 ] && exec /bin/ash --login
exec /bin/login
--
2.25.1

View File

@@ -0,0 +1,34 @@
From c51c30ff7318a5c219c820ff182398865a0b7585 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Fri, 31 Jul 2020 17:15:13 +0200
Subject: [PATCH 07/25] base-files: update banner
Use OpenWiFi for the banner.
Signed-off-by: John Crispin <john@phrozen.org>
---
package/base-files/files/etc/banner | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/package/base-files/files/etc/banner b/package/base-files/files/etc/banner
index f3af3c014f..f73423bad4 100644
--- a/package/base-files/files/etc/banner
+++ b/package/base-files/files/etc/banner
@@ -1,8 +1,8 @@
- _______ ________ __
- | |.-----.-----.-----.| | | |.----.| |_
- | - || _ | -__| || | | || _|| _|
- |_______|| __|_____|__|__||________||__| |____|
+ _______ ________ __ ______ __
+ | |.-----.-----.-----.| | | |__| ___|__|
+ | - || _ | -__| || | | | | ___| |
+ |_______|| __|_____|__|__||________|__|__| |__|
|__| W I R E L E S S F R E E D O M
- -----------------------------------------------------
+ ---------------------------------------------------
%D %V, %C
- -----------------------------------------------------
+ ---------------------------------------------------
--
2.25.1

View File

@@ -0,0 +1,84 @@
From 3861a33c489fa66f22d54bb97c705d02bfffd3aa Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Sat, 29 Aug 2020 08:25:41 +0200
Subject: [PATCH 08/25] base-files: add the wlan-ap repo hash
currently the banner will show the revision of the build tree.
This patch adds the hash of the wlan-ap tree.
Signed-off-by: John Crispin <john@phrozen.org>
---
include/version.mk | 3 +++
package/base-files/files/etc/banner | 1 +
package/base-files/files/etc/openwrt_release | 1 +
package/base-files/files/etc/openwrt_version | 1 +
scripts/getver.sh | 6 ++++++
5 files changed, 12 insertions(+)
diff --git a/include/version.mk b/include/version.mk
index b7f42e13bb..87d884e3fa 100644
--- a/include/version.mk
+++ b/include/version.mk
@@ -59,6 +59,8 @@ VERSION_PRODUCT:=$(if $(VERSION_PRODUCT),$(VERSION_PRODUCT),Generic)
VERSION_HWREV:=$(call qstrip,$(CONFIG_VERSION_HWREV))
VERSION_HWREV:=$(if $(VERSION_HWREV),$(VERSION_HWREV),v0)
+VERSION_TIP:=$(shell $(TOPDIR)/scripts/getver.sh wlan-ap)
+
define taint2sym
$(CONFIG_$(firstword $(subst :, ,$(subst +,,$(subst -,,$(1))))))
endef
@@ -107,5 +109,6 @@ VERSION_SED_SCRIPT:=$(SED) 's,%U,$(call sed_escape,$(VERSION_REPO)),g' \
-e 's,%u,$(call sed_escape,$(VERSION_HOME_URL)),g' \
-e 's,%s,$(call sed_escape,$(VERSION_SUPPORT_URL)),g' \
-e 's,%P,$(call sed_escape,$(VERSION_PRODUCT)),g' \
+ -e 's,%a,$(call sed_escape,$(VERSION_TIP)),g' \
-e 's,%h,$(call sed_escape,$(VERSION_HWREV)),g'
diff --git a/package/base-files/files/etc/banner b/package/base-files/files/etc/banner
index f73423bad4..53e3cfcf4a 100644
--- a/package/base-files/files/etc/banner
+++ b/package/base-files/files/etc/banner
@@ -4,5 +4,6 @@
|_______|| __|_____|__|__||________|__|__| |__|
|__| W I R E L E S S F R E E D O M
---------------------------------------------------
+ ApNos-%a
%D %V, %C
---------------------------------------------------
diff --git a/package/base-files/files/etc/openwrt_release b/package/base-files/files/etc/openwrt_release
index d03400ca05..11eb7f0361 100644
--- a/package/base-files/files/etc/openwrt_release
+++ b/package/base-files/files/etc/openwrt_release
@@ -5,3 +5,4 @@ DISTRIB_TARGET='%S'
DISTRIB_ARCH='%A'
DISTRIB_DESCRIPTION='%D %V %C'
DISTRIB_TAINTS='%t'
+DISTRIB_TIP='%a'
diff --git a/package/base-files/files/etc/openwrt_version b/package/base-files/files/etc/openwrt_version
index 48157ed97f..bb0ef233ac 100644
--- a/package/base-files/files/etc/openwrt_version
+++ b/package/base-files/files/etc/openwrt_version
@@ -1 +1,2 @@
+ApNos-%a
%C
diff --git a/scripts/getver.sh b/scripts/getver.sh
index 49260a2260..10b4db7a84 100755
--- a/scripts/getver.sh
+++ b/scripts/getver.sh
@@ -3,6 +3,12 @@ export LANG=C
export LC_ALL=C
[ -n "$TOPDIR" ] && cd $TOPDIR
+[ "$1" = "wlan-ap" ] && {
+ cd ..
+ git log -n 1 --format="%h"
+ exit 0
+}
+
GET_REV=$1
try_version() {
--
2.25.1

View File

@@ -0,0 +1,255 @@
From 6087d66d437693b8ab9575ec730e65b0b77b0acd Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Mon, 22 Jun 2020 14:32:45 +0200
Subject: [PATCH 09/25] base-files: make sysupgrade work on qcom AX
The qsdk v4.4 ubi layer does not detach the rootfs properly during
sysupgrade. Pull in the ubu force detach patch from owrt-15.05.
Signed-off-by: John Crispin <john@phrozen.org>
---
package/base-files/files/lib/upgrade/nand.sh | 12 +-
.../patches/131-add_ubi_force_detach.patch | 185 ++++++++++++++++++
2 files changed, 194 insertions(+), 3 deletions(-)
create mode 100644 package/utils/mtd-utils/patches/131-add_ubi_force_detach.patch
diff --git a/package/base-files/files/lib/upgrade/nand.sh b/package/base-files/files/lib/upgrade/nand.sh
index ad04bbc753..370ab1d7ce 100644
--- a/package/base-files/files/lib/upgrade/nand.sh
+++ b/package/base-files/files/lib/upgrade/nand.sh
@@ -13,6 +13,9 @@ CI_UBIPART="${CI_UBIPART:-ubi}"
# 'rootfs' partition on NAND contains the rootfs
CI_ROOTPART="${CI_ROOTPART:-rootfs}"
+# ipq807x qsdk kernel misbehaves
+CI_IPQ807X=0
+
ubi_mknod() {
local dir="$1"
local dev="/dev/$(basename $dir)"
@@ -127,6 +130,8 @@ nand_upgrade_prepare_ubi() {
return 1
fi
+ [ "$CI_IPQ807X" = 1 ] && ubidetach -f -m $mtdnum
+
local ubidev="$( nand_find_ubi "$CI_UBIPART" )"
if [ ! "$ubidev" ]; then
ubiattach -m "$mtdnum"
@@ -197,7 +202,6 @@ nand_upgrade_prepare_ubi() {
nand_do_upgrade_success() {
local conf_tar="/tmp/sysupgrade.tgz"
-
sync
[ -f "$conf_tar" ] && nand_restore_config "$conf_tar"
echo "sysupgrade successful"
@@ -257,10 +261,12 @@ nand_upgrade_tar() {
local has_kernel=1
local has_env=0
- [ "$kernel_length" != 0 -a -n "$kernel_mtd" ] && {
+ [ "$CI_IPQ807X" = 0 -a "$kernel_length" != 0 -a -n "$kernel_mtd" ] && {
tar xf $tar_file ${board_dir}/kernel -O | mtd write - $CI_KERNPART
}
- [ "$kernel_length" = 0 -o ! -z "$kernel_mtd" ] && has_kernel=0
+ [ "$CI_IPQ807X" = 0 ] && {
+ [ "$kernel_length" = 0 -o ! -z "$kernel_mtd" ] && has_kernel=0
+ }
nand_upgrade_prepare_ubi "$rootfs_length" "$rootfs_type" "$has_kernel" "$has_env"
diff --git a/package/utils/mtd-utils/patches/131-add_ubi_force_detach.patch b/package/utils/mtd-utils/patches/131-add_ubi_force_detach.patch
new file mode 100644
index 0000000000..f3cd6a6b28
--- /dev/null
+++ b/package/utils/mtd-utils/patches/131-add_ubi_force_detach.patch
@@ -0,0 +1,185 @@
+--- a/include/mtd/ubi-user.h
++++ b/include/mtd/ubi-user.h
+@@ -176,6 +176,7 @@
+ #define UBI_IOCATT _IOW(UBI_CTRL_IOC_MAGIC, 64, struct ubi_attach_req)
+ /* Detach an MTD device */
+ #define UBI_IOCDET _IOW(UBI_CTRL_IOC_MAGIC, 65, int32_t)
++#define UBI_IOCFDET _IOW(UBI_CTRL_IOC_MAGIC, 99, int32_t)
+
+ /* ioctl commands of UBI volume character devices */
+
+--- a/include/libubi.h
++++ b/include/libubi.h
+@@ -48,6 +48,7 @@ typedef void * libubi_t;
+ * number)
+ * @mtd_num: MTD device number to attach (used if @mtd_dev_node is %NULL)
+ * @mtd_dev_node: path to MTD device node to attach
++ * @force: set if the device should be removed even if it's busy
+ * @vid_hdr_offset: VID header offset (%0 means default offset and this is what
+ * most of the users want)
+ * @max_beb_per1024: Maximum expected bad eraseblocks per 1024 eraseblocks
+@@ -240,29 +241,33 @@ int ubi_attach(libubi_t desc, const char
+ * corresponding UBI device is removed. Returns zero in case of success and %-1
+ * in case of failure.
+ */
+-int ubi_detach_mtd(libubi_t desc, const char *node, int mtd_num);
++int ubi_detach_mtd(libubi_t desc, const char *node, int mtd_num, int force);
+
+ /**
+ * ubi_detach - detach an MTD device by its node path.
+ * @desc: UBI library descriptor
+ * @node: name of the UBI control character device node
+ * @mtd_dev_node: path to an MTD device node
++ * @force: set if the device should be removed even if it's busy
+ *
+ * This function detaches an MTD device @mtd_dev_node from UBI. Returns zero in
+ * case of success and %-1 in case of failure.
+ */
+-int ubi_detach(libubi_t desc, const char *node, const char *mtd_dev_node);
++int ubi_detach(libubi_t desc, const char *node, const char *mtd_dev_node,
++ int force);
+
+ /**
+ * ubi_remove_dev - remove an UBI device.
+ * @desc: UBI library descriptor
+ * @node: name of the UBI control character device node
+ * @ubi_dev: UBI device number to remove
++ * @force: set if the device should be removed even if it's busy
+ *
+ * This function removes UBI device number @ubi_dev and returns zero in case of
+ * success and %-1 in case of failure.
+ */
+-int ubi_remove_dev(libubi_t desc, const char *node, int ubi_dev);
++int ubi_remove_dev(libubi_t desc, const char *node, int ubi_dev,
++ int force);
+
+ /**
+ * ubi_mkvol - create an UBI volume.
+--- a/lib/libubi.c
++++ b/lib/libubi.c
+@@ -808,7 +808,7 @@ int ubi_attach(libubi_t desc, const char
+ return ret;
+ }
+
+-int ubi_detach_mtd(libubi_t desc, const char *node, int mtd_num)
++int ubi_detach_mtd(libubi_t desc, const char *node, int mtd_num, int force)
+ {
+ int ret, ubi_dev;
+
+@@ -818,10 +818,11 @@ int ubi_detach_mtd(libubi_t desc, const
+ return ret;
+ }
+
+- return ubi_remove_dev(desc, node, ubi_dev);
++ return ubi_remove_dev(desc, node, ubi_dev, force);
+ }
+
+-int ubi_detach(libubi_t desc, const char *node, const char *mtd_dev_node)
++int ubi_detach(libubi_t desc, const char *node, const char *mtd_dev_node,
++ int force)
+ {
+ int mtd_num;
+
+@@ -834,10 +835,10 @@ int ubi_detach(libubi_t desc, const char
+ if (mtd_num == -1)
+ return -1;
+
+- return ubi_detach_mtd(desc, node, mtd_num);
++ return ubi_detach_mtd(desc, node, mtd_num, force);
+ }
+
+-int ubi_remove_dev(libubi_t desc, const char *node, int ubi_dev)
++int ubi_remove_dev(libubi_t desc, const char *node, int ubi_dev, int force)
+ {
+ int fd, ret;
+
+@@ -847,6 +848,10 @@ int ubi_remove_dev(libubi_t desc, const
+ if (fd == -1)
+ return sys_errmsg("cannot open \"%s\"", node);
+ ret = ioctl(fd, UBI_IOCDET, &ubi_dev);
++ if (force)
++ ret = ioctl(fd, UBI_IOCFDET, &ubi_dev);
++ else
++ ret = ioctl(fd, UBI_IOCDET, &ubi_dev);
+ if (ret == -1)
+ goto out_close;
+
+--- a/ubi-utils/ubidetach.c
++++ b/ubi-utils/ubidetach.c
+@@ -40,6 +40,7 @@ struct args {
+ int mtdn;
+ const char *node;
+ const char *dev;
++ int force;
+ };
+
+ static struct args args = {
+@@ -47,6 +48,7 @@ static struct args args = {
+ .mtdn = -1,
+ .node = NULL,
+ .dev = NULL,
++ .force = 0,
+ };
+
+ static const char doc[] = PROGRAM_NAME " version " VERSION
+@@ -56,13 +58,14 @@ static const char optionsstr[] =
+ "-d, --devn=<UBI device number> UBI device number to delete\n"
+ "-p, --dev-path=<path to device> or alternatively, MTD device node path to detach\n"
+ "-m, --mtdn=<MTD device number> or alternatively, MTD device number to detach\n"
++"-f, --force Force UBI detach even if it is still busy\n"
+ "-h, --help print help message\n"
+ "-V, --version print program version";
+
+ static const char usage[] =
+ "Usage: " PROGRAM_NAME " [<UBI control device node file name>]\n"
+ "\t[-d <UBI device number>] [-m <MTD device number>] [-p <path to device>]\n"
+-"\t[--devn=<UBI device number>] [--mtdn=<MTD device number>]\n"
++"\t[--devn=<UBI device number>] [--mtdn=<MTD device number>] [-f]\n"
+ "\t[--dev-path=<path to device>]\n"
+ "UBI control device defaults to " DEFAULT_CTRL_DEV " if not supplied.\n"
+ "Example 1: " PROGRAM_NAME " -p /dev/mtd0 - detach MTD device /dev/mtd0\n"
+@@ -83,7 +86,7 @@ static int parse_opt(int argc, char * co
+ while (1) {
+ int key, error = 0;
+
+- key = getopt_long(argc, argv, "p:m:d:hV", long_options, NULL);
++ key = getopt_long(argc, argv, "p:m:d:fhV", long_options, NULL);
+ if (key == -1)
+ break;
+
+@@ -104,6 +107,9 @@ static int parse_opt(int argc, char * co
+ return errmsg("bad MTD device number: \"%s\"", optarg);
+
+ break;
++ case 'f':
++ args.force = 1;
++ break;
+
+ case 'h':
+ printf("%s\n\n", doc);
+@@ -176,20 +182,22 @@ int main(int argc, char * const argv[])
+ }
+
+ if (args.devn != -1) {
+- err = ubi_remove_dev(libubi, args.node, args.devn);
++ err = ubi_remove_dev(libubi, args.node, args.devn, args.force);
+ if (err) {
+ sys_errmsg("cannot remove ubi%d", args.devn);
+ goto out_libubi;
+ }
+ } else {
+ if (args.dev != NULL) {
+- err = ubi_detach(libubi, args.node, args.dev);
++ err = ubi_detach(libubi, args.node, args.dev,
++ args.force);
+ if (err) {
+ sys_errmsg("cannot detach \"%s\"", args.dev);
+ goto out_libubi;
+ }
+ } else {
+- err = ubi_detach_mtd(libubi, args.node, args.mtdn);
++ err = ubi_detach_mtd(libubi, args.node, args.mtdn,
++ args.force);
+ if (err) {
+ sys_errmsg("cannot detach mtd%d", args.mtdn);
+ goto out_libubi;
--
2.25.1

View File

@@ -0,0 +1,30 @@
From 4ed88f32c55b1fe591d765818b7e28241a6ac0db Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Wed, 23 Sep 2020 17:34:44 +0200
Subject: [PATCH 10/25] base-files: add support for v4.4 style netdev led
triggers
Current owrt scripting cant handle the old v4.4 style sysfs API of led
netdev triggers.
Signed-off-by: John Crispin <john@phrozen.org>
---
package/base-files/files/etc/init.d/led | 2 ++
1 file changed, 2 insertions(+)
diff --git a/package/base-files/files/etc/init.d/led b/package/base-files/files/etc/init.d/led
index 277fb4e76f..8d97515d52 100755
--- a/package/base-files/files/etc/init.d/led
+++ b/package/base-files/files/etc/init.d/led
@@ -71,6 +71,8 @@ load_led() {
"netdev")
[ -n "$dev" ] && {
echo $dev > /sys/class/leds/${sysfs}/device_name
+ [ -e "/sys/class/leds/${sysfs}/mode" ] && \
+ echo $mode > /sys/class/leds/${sysfs}/mode
for m in $mode; do
[ -e "/sys/class/leds/${sysfs}/$m" ] && \
echo 1 > /sys/class/leds/${sysfs}/$m
--
2.25.1

View File

@@ -0,0 +1,29 @@
From 386d5ac9b6c5fde2e04a94f78fccfb94216a0a73 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Tue, 28 Jul 2020 09:21:04 +0200
Subject: [PATCH 11/25] busybox: enable the watchdog tool
procd can currently only handle the main wdt. Enable the busybox
applet until procd can handle multiple devices.
Signed-off-by: John Crispin <john@phrozen.org>
---
package/utils/busybox/Config-defaults.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in
index 8d237ad181..4408c5d3d0 100644
--- a/package/utils/busybox/Config-defaults.in
+++ b/package/utils/busybox/Config-defaults.in
@@ -2167,7 +2167,7 @@ config BUSYBOX_DEFAULT_VOLNAME
default n
config BUSYBOX_DEFAULT_WATCHDOG
bool
- default n
+ default y
config BUSYBOX_DEFAULT_FEATURE_IPV6
bool
default y if IPV6
--
2.25.1

View File

@@ -0,0 +1,25 @@
From b2a4d864c87ad86a3119716f4a563341f261a1eb Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Tue, 6 Oct 2020 16:39:16 +0200
Subject: [PATCH 12/25] dnsmasq: turn the base uci section into a named one
Handling this section from opensync is complicated if it is unnamed.
Signed-off-by: John Crispin <john@phrozen.org>
---
package/network/services/dnsmasq/files/dhcp.conf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package/network/services/dnsmasq/files/dhcp.conf b/package/network/services/dnsmasq/files/dhcp.conf
index 8c42ef782e..ef8901aad2 100644
--- a/package/network/services/dnsmasq/files/dhcp.conf
+++ b/package/network/services/dnsmasq/files/dhcp.conf
@@ -1,4 +1,4 @@
-config dnsmasq
+config dnsmasq dnsmasq
option domainneeded 1
option boguspriv 1
option filterwin2k 0 # enable for dial on demand
--
2.25.1

View File

@@ -0,0 +1,94 @@
From b9719669293e99b3bc6b3ad0fd715b2f5ba5af5d Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Thu, 23 Jul 2020 16:09:28 +0200
Subject: [PATCH 13/25] ubox: add log priority filtering
Allow logread to filer based on priority.
Signed-off-by: John Crispin <john@phrozen.org>
---
package/system/ubox/files/log.init | 4 +-
.../system/ubox/patches/100-log-prio.patch | 49 +++++++++++++++++++
2 files changed, 52 insertions(+), 1 deletion(-)
create mode 100644 package/system/ubox/patches/100-log-prio.patch
diff --git a/package/system/ubox/files/log.init b/package/system/ubox/files/log.init
index 250f805b44..34471bd64a 100644
--- a/package/system/ubox/files/log.init
+++ b/package/system/ubox/files/log.init
@@ -20,7 +20,8 @@ validate_log_section()
'log_port:port:514' \
'log_proto:or("tcp", "udp"):udp' \
'log_trailer_null:bool:0' \
- 'log_prefix:string'
+ 'log_prefix:string' \
+ 'log_max_prio:uinteger'
}
validate_log_daemon()
@@ -80,6 +81,7 @@ start_service_remote()
"tcp") [ "${log_trailer_null}" -eq 1 ] && procd_append_param command -0;;
esac
[ -z "${log_prefix}" ] || procd_append_param command -P "${log_prefix}"
+ [ -z "${log_max_prio}" ] || procd_append_param command -m "${log_max_prio}"
procd_close_instance
}
diff --git a/package/system/ubox/patches/100-log-prio.patch b/package/system/ubox/patches/100-log-prio.patch
new file mode 100644
index 0000000000..f1abfbd0e6
--- /dev/null
+++ b/package/system/ubox/patches/100-log-prio.patch
@@ -0,0 +1,49 @@
+Index: ubox-2019-12-31-0e34af14/log/logread.c
+===================================================================
+--- ubox-2019-12-31-0e34af14.orig/log/logread.c
++++ ubox-2019-12-31-0e34af14/log/logread.c
+@@ -68,6 +68,7 @@ static int log_timestamp;
+ static int logd_conn_tries = LOGD_CONNECT_RETRY;
+ static int facility_include;
+ static int facility_exclude;
++static int log_max_prio;
+
+ /* check for facility filter; return 0 if message shall be dropped */
+ static int check_facility_filter(int f)
+@@ -147,6 +148,9 @@ static int log_notify(struct blob_attr *
+ }
+ p = blobmsg_get_u32(tb[LOG_PRIO]);
+
++ if (log_max_prio && LOG_PRI(p) > log_max_prio)
++ return 0;
++
+ if (!check_facility_filter(LOG_FAC(p)))
+ return 0;
+
+@@ -233,6 +237,7 @@ static int usage(const char *prog)
+ " -u Use UDP as the protocol\n"
+ " -t Add an extra timestamp\n"
+ " -0 Use \\0 instead of \\n as trailer when using TCP\n"
++ " -m <priority> Only show messages with priority less or equal than <priority>\n"
+ "\n", prog);
+ return 1;
+ }
+@@ -307,7 +312,7 @@ int main(int argc, char **argv)
+
+ signal(SIGPIPE, SIG_IGN);
+
+- while ((ch = getopt(argc, argv, "u0fcs:l:z:Z:r:F:p:S:P:h:e:t")) != -1) {
++ while ((ch = getopt(argc, argv, "u0fcs:l:z:Z:r:F:p:S:P:h:e:tm:")) != -1) {
+ switch (ch) {
+ case 'u':
+ log_udp = 1;
+@@ -362,6 +367,9 @@ int main(int argc, char **argv)
+ case 't':
+ log_timestamp = 1;
+ break;
++ case 'm':
++ log_max_prio = atoi(optarg);
++ break;
+ default:
+ return usage(*argv);
+ }
--
2.25.1

View File

@@ -0,0 +1,55 @@
From 326717d5219cc6e6d7b98298380b70a7b19b73e5 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Wed, 29 Jul 2020 12:30:42 +0200
Subject: [PATCH 14/25] netifd: add interface to status messages
Add the interface name to the status messages. Otherwise we cannot identify the content.
Signed-off-by: John Crispin <john@phrozen.org>
---
.../netifd/patches/0103-ubus-iface.patch | 33 +++++++++++++++++++
1 file changed, 33 insertions(+)
create mode 100644 package/network/config/netifd/patches/0103-ubus-iface.patch
diff --git a/package/network/config/netifd/patches/0103-ubus-iface.patch b/package/network/config/netifd/patches/0103-ubus-iface.patch
new file mode 100644
index 0000000000..2c489fe96a
--- /dev/null
+++ b/package/network/config/netifd/patches/0103-ubus-iface.patch
@@ -0,0 +1,33 @@
+Index: netifd-2019-08-05-5e02f944/ubus.c
+===================================================================
+--- netifd-2019-08-05-5e02f944.orig/ubus.c
++++ netifd-2019-08-05-5e02f944/ubus.c
+@@ -1276,6 +1276,20 @@ netifd_ubus_interface_notify(struct inte
+ ubus_notify(ubus_ctx, &iface->ubus, event, b.head, -1);
+ }
+
++static void
++iface_subscribe_handler(struct ubus_context *ctx, struct ubus_object *obj)
++{
++ struct interface *iface;
++
++ iface = container_of(obj, struct interface, ubus);
++ if (!iface->ubus.has_subscribers)
++ return;
++ blob_buf_init(&b, 0);
++ blobmsg_add_string(&b, "interface", iface->name);
++ netifd_dump_status(iface);
++ ubus_notify(ubus_ctx, &iface->ubus, "interface.update", b.head, -1);
++}
++
+ void
+ netifd_ubus_add_interface(struct interface *iface)
+ {
+@@ -1289,6 +1303,7 @@ netifd_ubus_add_interface(struct interfa
+ obj->type = &iface_object_type;
+ obj->methods = iface_object_methods;
+ obj->n_methods = ARRAY_SIZE(iface_object_methods);
++ obj->subscribe_cb = iface_subscribe_handler;
+ if (ubus_add_object(ubus_ctx, &iface->ubus)) {
+ DPRINTF("failed to publish ubus object for interface '%s'\n", iface->name);
+ free(name);
--
2.25.1

View File

@@ -0,0 +1,45 @@
From e3b3d38529c25170b9da126a37d98657dea0a5ef Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Sun, 26 Jul 2020 19:16:21 +0200
Subject: [PATCH 15/25] firewall: tune lan/wan into named sections
We want to reference these from within OpenSync. They need to be named for this to work.
Signed-off-by: John Crispin <john@phrozen.org>
---
package/network/config/firewall/files/firewall.config | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/package/network/config/firewall/files/firewall.config b/package/network/config/firewall/files/firewall.config
index 5e22f984ce..de6e8a6c73 100644
--- a/package/network/config/firewall/files/firewall.config
+++ b/package/network/config/firewall/files/firewall.config
@@ -6,14 +6,14 @@ config defaults
# Uncomment this line to disable ipv6 rules
# option disable_ipv6 1
-config zone
+config zone lan
option name lan
list network 'lan'
option input ACCEPT
option output ACCEPT
option forward ACCEPT
-config zone
+config zone wan
option name wan
list network 'wan'
list network 'wan6'
@@ -23,7 +23,7 @@ config zone
option masq 1
option mtu_fix 1
-config forwarding
+config forwarding lan_fw
option src lan
option dest wan
--
2.25.1

View File

@@ -0,0 +1,31 @@
From c77970b0f266ab7213e568b704080e90023c0f44 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Wed, 29 Jul 2020 14:11:39 +0200
Subject: [PATCH 16/25] uhttp: adds the deployed option
This allows us to make sure the webui is not automatically started if the
unit is already deployed.
Signed-off-by: John Crispin <john@phrozen.org>
---
package/network/services/uhttpd/files/uhttpd.init | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/package/network/services/uhttpd/files/uhttpd.init b/package/network/services/uhttpd/files/uhttpd.init
index 869f79bea2..001ca5ee0f 100755
--- a/package/network/services/uhttpd/files/uhttpd.init
+++ b/package/network/services/uhttpd/files/uhttpd.init
@@ -211,3 +211,10 @@ start_service() {
config_load uhttpd
config_foreach start_instance uhttpd
}
+
+boot() {
+ local deployed=$(uci get uhttpd.main.deployed)
+
+ [ "$deployed" -eq 1 ] && return 0
+ start $@
+}
--
2.25.1

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,761 @@
From 2426e5036fb6699f6b30e75dcf47e00524755777 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Thu, 15 Oct 2020 16:00:25 +0200
Subject: [PATCH 18/25] ipq807x: drop upstream support
Signed-off-by: John Crispin <john@phrozen.org>
---
target/linux/ipq807x/Makefile | 14 -
target/linux/ipq807x/config-default | 655 -----------------------
target/linux/ipq807x/image/Makefile | 40 --
target/linux/ipq807x/profiles/default.mk | 8 -
4 files changed, 717 deletions(-)
delete mode 100644 target/linux/ipq807x/Makefile
delete mode 100644 target/linux/ipq807x/config-default
delete mode 100644 target/linux/ipq807x/image/Makefile
delete mode 100644 target/linux/ipq807x/profiles/default.mk
diff --git a/target/linux/ipq807x/Makefile b/target/linux/ipq807x/Makefile
deleted file mode 100644
index dab05ca204..0000000000
--- a/target/linux/ipq807x/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-include $(TOPDIR)/rules.mk
-
-ARCH:=aarch64
-BOARD:=ipq807x
-BOARDNAME:=Qualcomm Atheros IPQ807x
-FEATURES:=squashfs ramdisk source-only
-KERNELNAME:=Image dtbs
-CPU_TYPE:=cortex-a53
-
-KERNEL_PATCHVER:=5.4
-
-include $(INCLUDE_DIR)/target.mk
-
-$(eval $(call BuildTarget))
diff --git a/target/linux/ipq807x/config-default b/target/linux/ipq807x/config-default
deleted file mode 100644
index 1f60ccfecb..0000000000
--- a/target/linux/ipq807x/config-default
+++ /dev/null
@@ -1,655 +0,0 @@
-CONFIG_64BIT=y
-# CONFIG_ACPI is not set
-# CONFIG_ALLOW_DEV_COREDUMP is not set
-# CONFIG_APQ_GCC_8084 is not set
-# CONFIG_APQ_MMCC_8084 is not set
-CONFIG_AQUANTIA_PHY=y
-CONFIG_ARCH_CLOCKSOURCE_DATA=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
-CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
-CONFIG_ARCH_HAS_KCOV=y
-CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
-CONFIG_ARCH_HAS_PTE_SPECIAL=y
-CONFIG_ARCH_HAS_SET_MEMORY=y
-CONFIG_ARCH_HAS_SG_CHAIN=y
-CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
-CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
-CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
-CONFIG_ARCH_HAS_TICK_BROADCAST=y
-CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_MMAP_RND_BITS=18
-CONFIG_ARCH_MMAP_RND_BITS_MAX=24
-CONFIG_ARCH_MMAP_RND_BITS_MIN=18
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
-CONFIG_ARCH_PROC_KCORE_TEXT=y
-CONFIG_ARCH_QCOM=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ARCH_SPARSEMEM_DEFAULT=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SUPPORTS_ACPI=y
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_ARCH_SUPPORTS_INT128=y
-CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
-CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
-CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
-CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
-CONFIG_ARCH_WANT_FRAME_POINTERS=y
-CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
-CONFIG_ARM64=y
-# CONFIG_ARM64_16K_PAGES is not set
-CONFIG_ARM64_4K_PAGES=y
-# CONFIG_ARM64_64K_PAGES is not set
-CONFIG_ARM64_CONT_SHIFT=4
-# CONFIG_ARM64_CRYPTO is not set
-CONFIG_ARM64_ERRATUM_819472=y
-CONFIG_ARM64_ERRATUM_824069=y
-CONFIG_ARM64_ERRATUM_826319=y
-CONFIG_ARM64_ERRATUM_827319=y
-CONFIG_ARM64_ERRATUM_832075=y
-CONFIG_ARM64_ERRATUM_843419=y
-CONFIG_ARM64_ERRATUM_845719=y
-CONFIG_ARM64_HW_AFDBM=y
-# CONFIG_ARM64_LSE_ATOMICS is not set
-CONFIG_ARM64_MODULE_PLTS=y
-CONFIG_ARM64_PAGE_SHIFT=12
-CONFIG_ARM64_PAN=y
-CONFIG_ARM64_PA_BITS=48
-CONFIG_ARM64_PA_BITS_48=y
-# CONFIG_ARM64_PMEM is not set
-# CONFIG_ARM64_PTDUMP_DEBUGFS is not set
-# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
-CONFIG_ARM64_SSBD=y
-CONFIG_ARM64_SVE=y
-CONFIG_ARM64_UAO=y
-CONFIG_ARM64_VA_BITS=39
-CONFIG_ARM64_VA_BITS_39=y
-# CONFIG_ARM64_VA_BITS_48 is not set
-CONFIG_ARM64_VHE=y
-# CONFIG_ARMV8_DEPRECATED is not set
-CONFIG_ARM_AMBA=y
-CONFIG_ARM_ARCH_TIMER=y
-CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
-CONFIG_ARM_CCI=y
-CONFIG_ARM_CCI400_COMMON=y
-CONFIG_ARM_CCI400_PMU=y
-CONFIG_ARM_CCI_PMU=y
-CONFIG_ARM_CPUIDLE=y
-CONFIG_ARM_GIC=y
-CONFIG_ARM_GIC_V2M=y
-CONFIG_ARM_GIC_V3=y
-CONFIG_ARM_GIC_V3_ITS=y
-CONFIG_ARM_GIC_V3_ITS_PCI=y
-CONFIG_ARM_PMU=y
-CONFIG_ARM_PSCI_FW=y
-# CONFIG_ARM_QCOM_CPUFREQ_KRYO is not set
-# CONFIG_ARM_SCMI_PROTOCOL is not set
-# CONFIG_ARM_SP805_WATCHDOG is not set
-CONFIG_ASN1=y
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_ASYMMETRIC_KEY_TYPE=y
-CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
-CONFIG_AT803X_PHY=y
-CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
-CONFIG_BLK_DEV_NVME=y
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=4096
-CONFIG_BLK_MQ_PCI=y
-CONFIG_BLK_MQ_VIRTIO=y
-CONFIG_BLOCK_COMPAT=y
-CONFIG_BUILD_BIN2C=y
-# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_CLEANCACHE=y
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_CLZ_TAB=y
-CONFIG_COMMON_CLK=y
-CONFIG_COMMON_CLK_QCOM=y
-CONFIG_COMMON_CLK_XGENE=y
-CONFIG_COMPAT=y
-CONFIG_COMPAT_32BIT_TIME=y
-CONFIG_COMPAT_BINFMT_ELF=y
-CONFIG_COMPAT_NETLINK_MESSAGES=y
-CONFIG_COMPAT_OLD_SIGACTION=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_COREDUMP=y
-CONFIG_CORESIGHT=y
-# CONFIG_CORESIGHT_CATU is not set
-# CONFIG_CORESIGHT_CPU_DEBUG is not set
-# CONFIG_CORESIGHT_DYNAMIC_REPLICATOR is not set
-CONFIG_CORESIGHT_LINKS_AND_SINKS=y
-CONFIG_CORESIGHT_LINK_AND_SINK_TMC=y
-# CONFIG_CORESIGHT_SINK_ETBV10 is not set
-CONFIG_CORESIGHT_SINK_TPIU=y
-CONFIG_CORESIGHT_SOURCE_ETM4X=y
-CONFIG_CORESIGHT_STM=y
-CONFIG_CPUFREQ_DT=y
-CONFIG_CPUFREQ_DT_PLATDEV=y
-# CONFIG_CPU_BIG_ENDIAN is not set
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_ATTR_SET=y
-CONFIG_CPU_FREQ_GOV_COMMON=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_STAT=y
-# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
-CONFIG_CPU_PM=y
-CONFIG_CPU_RMAP=y
-# CONFIG_CPU_THERMAL is not set
-CONFIG_CRC16=y
-# CONFIG_CRC32_SARWATE is not set
-CONFIG_CRC32_SLICEBY8=y
-CONFIG_CROSS_MEMORY_ATTACH=y
-CONFIG_CRYPTO_ACOMP2=y
-CONFIG_CRYPTO_AEAD=y
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_AKCIPHER=y
-CONFIG_CRYPTO_AKCIPHER2=y
-CONFIG_CRYPTO_ARC4=y
-CONFIG_CRYPTO_CCM=y
-CONFIG_CRYPTO_CMAC=y
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CTR=y
-CONFIG_CRYPTO_DEFLATE=y
-# CONFIG_CRYPTO_DEV_QCOM_RNG is not set
-CONFIG_CRYPTO_DRBG=y
-CONFIG_CRYPTO_DRBG_HMAC=y
-CONFIG_CRYPTO_DRBG_MENU=y
-CONFIG_CRYPTO_ECHAINIV=y
-CONFIG_CRYPTO_GCM=y
-CONFIG_CRYPTO_GF128MUL=y
-CONFIG_CRYPTO_GHASH=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_HASH_INFO=y
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_JITTERENTROPY=y
-CONFIG_CRYPTO_KPP2=y
-CONFIG_CRYPTO_LZO=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
-CONFIG_CRYPTO_NULL=y
-CONFIG_CRYPTO_NULL2=y
-CONFIG_CRYPTO_RNG=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_RNG_DEFAULT=y
-CONFIG_CRYPTO_SEQIV=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_WORKQUEUE=y
-CONFIG_DCACHE_WORD_ACCESS=y
-CONFIG_DEBUG_BUGVERBOSE=y
-CONFIG_DEBUG_GPIO=y
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DEVMEM=y
-CONFIG_DMADEVICES=y
-CONFIG_DMA_DIRECT_OPS=y
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_OF=y
-CONFIG_DMA_VIRTUAL_CHANNELS=y
-CONFIG_DMI=y
-CONFIG_DMIID=y
-# CONFIG_DMI_SYSFS is not set
-CONFIG_DTC=y
-CONFIG_DT_IDLE_STATES=y
-CONFIG_DYNAMIC_DEBUG=y
-CONFIG_EDAC_SUPPORT=y
-CONFIG_EFI=y
-CONFIG_EFIVAR_FS=m
-CONFIG_EFI_ARMSTUB=y
-CONFIG_EFI_ARMSTUB_DTB_LOADER=y
-# CONFIG_EFI_CAPSULE_LOADER is not set
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_PARAMS_FROM_FDT=y
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_STUB=y
-# CONFIG_EFI_TEST is not set
-# CONFIG_EFI_VARS is not set
-CONFIG_EXT4_FS=y
-# CONFIG_EXT4_USE_FOR_EXT2 is not set
-CONFIG_FB=y
-CONFIG_FB_CMDLINE=y
-# CONFIG_FB_EFI is not set
-CONFIG_FIXED_PHY=y
-CONFIG_FIX_EARLYCON_MEM=y
-# CONFIG_FLATMEM_MANUAL is not set
-CONFIG_FRAME_POINTER=y
-CONFIG_FRAME_WARN=2048
-CONFIG_FREEZER=y
-CONFIG_FS_IOMAP=y
-CONFIG_FS_MBCACHE=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_GENERIC_ARCH_TOPOLOGY=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_GENERIC_CPU_AUTOPROBE=y
-CONFIG_GENERIC_CPU_VULNERABILITIES=y
-CONFIG_GENERIC_CSUM=y
-CONFIG_GENERIC_EARLY_IOREMAP=y
-CONFIG_GENERIC_IDLE_POLL_SETUP=y
-CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
-CONFIG_GENERIC_IRQ_MIGRATION=y
-CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
-CONFIG_GENERIC_MSI_IRQ=y
-CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_PHY=y
-CONFIG_GENERIC_PINCONF=y
-CONFIG_GENERIC_PINCTRL_GROUPS=y
-CONFIG_GENERIC_PINMUX_FUNCTIONS=y
-CONFIG_GENERIC_SCHED_CLOCK=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIOLIB_IRQCHIP=y
-CONFIG_HANDLE_DOMAIN_IRQ=y
-CONFIG_HARDEN_BRANCH_PREDICTOR=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_HAS_DMA=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_HAVE_ARCH_BITREVERSE=y
-CONFIG_HAVE_ARCH_HUGE_VMAP=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_HAVE_ARCH_KASAN=y
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
-CONFIG_HAVE_ARCH_PFN_VALID=y
-CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
-CONFIG_HAVE_ARCH_VMAP_STACK=y
-CONFIG_HAVE_ARM_SMCCC=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_CLK_PREPARE=y
-CONFIG_HAVE_CMPXCHG_DOUBLE=y
-CONFIG_HAVE_CMPXCHG_LOCAL=y
-CONFIG_HAVE_CONTEXT_TRACKING=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_HAVE_DEBUG_BUGVERBOSE=y
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_EBPF_JIT=y
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_HAVE_GENERIC_GUP=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_HAVE_MEMORY_PRESENT=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_HAVE_NET_DSA=y
-CONFIG_HAVE_PATA_PLATFORM=y
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_HAVE_PERF_REGS=y
-CONFIG_HAVE_PERF_USER_STACK_DUMP=y
-CONFIG_HAVE_RCU_TABLE_FREE=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_RSEQ=y
-CONFIG_HAVE_SCHED_AVG_IRQ=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_UID16=y
-CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_HOLES_IN_ZONE=y
-CONFIG_HOTPLUG_CPU=y
-# CONFIG_HUGETLBFS is not set
-CONFIG_HWSPINLOCK=y
-CONFIG_HWSPINLOCK_QCOM=y
-CONFIG_HW_RANDOM=y
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_QUP=y
-CONFIG_IIO=y
-# CONFIG_IIO_BUFFER is not set
-# CONFIG_IIO_TRIGGER is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
-CONFIG_INITRAMFS_SOURCE=""
-# CONFIG_IPQ_GCC_4019 is not set
-# CONFIG_IPQ_GCC_806X is not set
-CONFIG_IPQ_GCC_8074=y
-# CONFIG_IPQ_LCC_806X is not set
-CONFIG_IRQCHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_IRQ_DOMAIN_HIERARCHY=y
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_IRQ_TIME_ACCOUNTING=y
-CONFIG_IRQ_WORK=y
-CONFIG_JBD2=y
-CONFIG_KEYS=y
-CONFIG_KEYS_COMPAT=y
-# CONFIG_KVM is not set
-CONFIG_LEDS_TLC591XX=y
-CONFIG_LIBFDT=y
-CONFIG_LOCK_DEBUGGING_SUPPORT=y
-CONFIG_LOCK_SPIN_ON_OWNER=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_MAILBOX=y
-# CONFIG_MAILBOX_TEST is not set
-CONFIG_MDIO_BITBANG=y
-CONFIG_MDIO_BUS=y
-CONFIG_MDIO_DEVICE=y
-CONFIG_MDIO_GPIO=y
-# CONFIG_MDM_GCC_9615 is not set
-# CONFIG_MDM_LCC_9615 is not set
-CONFIG_MEMFD_CREATE=y
-CONFIG_MFD_QCOM_RPM=y
-CONFIG_MFD_SPMI_PMIC=y
-CONFIG_MFD_SYSCON=y
-CONFIG_MIGRATION=y
-CONFIG_MMC=y
-CONFIG_MMC_ARMMMCI=y
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=32
-CONFIG_MMC_QCOM_DML=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_MSM=y
-# CONFIG_MMC_SDHCI_PCI is not set
-CONFIG_MMC_SDHCI_PLTFM=y
-# CONFIG_MMC_TIFM_SD is not set
-CONFIG_MODULES_TREE_LOOKUP=y
-CONFIG_MODULES_USE_ELF_RELA=y
-CONFIG_MPILIB=y
-# CONFIG_MSM_GCC_8660 is not set
-# CONFIG_MSM_GCC_8916 is not set
-# CONFIG_MSM_GCC_8960 is not set
-# CONFIG_MSM_GCC_8974 is not set
-# CONFIG_MSM_GCC_8994 is not set
-# CONFIG_MSM_GCC_8996 is not set
-# CONFIG_MSM_GCC_8998 is not set
-# CONFIG_MSM_LCC_8960 is not set
-# CONFIG_MSM_MMCC_8960 is not set
-# CONFIG_MSM_MMCC_8974 is not set
-# CONFIG_MSM_MMCC_8996 is not set
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_M25P80=y
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_ECC=y
-CONFIG_MTD_NAND_QCOM=y
-CONFIG_MTD_SPI_NOR=y
-CONFIG_MTD_SPLIT_FIRMWARE=y
-CONFIG_MTD_SPLIT_FIT_FW=y
-CONFIG_MTD_UBI=y
-CONFIG_MTD_UBI_BEB_LIMIT=20
-CONFIG_MTD_UBI_BLOCK=y
-# CONFIG_MTD_UBI_FASTMAP is not set
-CONFIG_MTD_UBI_GLUEBI=y
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_NET_FLOW_LIMIT=y
-CONFIG_NET_PTP_CLASSIFY=y
-CONFIG_NET_SWITCHDEV=y
-# CONFIG_NET_VENDOR_CAVIUM is not set
-CONFIG_NLS=y
-CONFIG_NO_BOOTMEM=y
-CONFIG_NO_HZ=y
-CONFIG_NO_HZ_COMMON=y
-CONFIG_NO_HZ_IDLE=y
-CONFIG_NR_CPUS=4
-# CONFIG_NUMA is not set
-CONFIG_NVMEM=y
-CONFIG_NVME_CORE=y
-# CONFIG_NVME_MULTIPATH is not set
-CONFIG_OF=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_GPIO=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_KOBJ=y
-CONFIG_OF_MDIO=y
-CONFIG_OF_NET=y
-CONFIG_OF_RESERVED_MEM=y
-CONFIG_OID_REGISTRY=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_PADATA=y
-CONFIG_PANIC_TIMEOUT=5
-CONFIG_PARTITION_PERCPU=y
-CONFIG_PCI=y
-CONFIG_PCIE_DW=y
-CONFIG_PCIE_DW_HOST=y
-CONFIG_PCIE_QCOM=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCI_DOMAINS_GENERIC=y
-CONFIG_PCI_LABEL=y
-CONFIG_PCI_MSI=y
-CONFIG_PCI_MSI_IRQ_DOMAIN=y
-CONFIG_PERF_EVENTS=y
-CONFIG_PGTABLE_LEVELS=3
-CONFIG_PHYLIB=y
-CONFIG_PHYS_ADDR_T_64BIT=y
-# CONFIG_PHY_QCOM_APQ8064_SATA is not set
-# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
-# CONFIG_PHY_QCOM_QMP is not set
-# CONFIG_PHY_QCOM_QUSB2 is not set
-# CONFIG_PHY_QCOM_UFS is not set
-CONFIG_PINCTRL=y
-# CONFIG_PINCTRL_APQ8064 is not set
-# CONFIG_PINCTRL_APQ8084 is not set
-# CONFIG_PINCTRL_IPQ4019 is not set
-# CONFIG_PINCTRL_IPQ8064 is not set
-CONFIG_PINCTRL_IPQ8074=y
-# CONFIG_PINCTRL_MDM9615 is not set
-CONFIG_PINCTRL_MSM=y
-# CONFIG_PINCTRL_MSM8660 is not set
-# CONFIG_PINCTRL_MSM8916 is not set
-# CONFIG_PINCTRL_MSM8960 is not set
-# CONFIG_PINCTRL_MSM8994 is not set
-# CONFIG_PINCTRL_MSM8996 is not set
-# CONFIG_PINCTRL_MSM8998 is not set
-CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
-# CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set
-# CONFIG_PINCTRL_SDM845 is not set
-CONFIG_PM=y
-CONFIG_PM_CLK=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_OPP=y
-CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_MSM=y
-# CONFIG_POWER_RESET_QCOM_PON is not set
-CONFIG_POWER_SUPPLY=y
-CONFIG_PPS=y
-CONFIG_PREEMPT=y
-CONFIG_PREEMPT_COUNT=y
-# CONFIG_PREEMPT_NONE is not set
-CONFIG_PREEMPT_RCU=y
-CONFIG_PRINTK_TIME=y
-CONFIG_PROC_PAGE_MONITOR=y
-# CONFIG_PROC_STRIPPED is not set
-CONFIG_PTP_1588_CLOCK=y
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-CONFIG_QCOM_A53PLL=y
-# CONFIG_QCOM_APCS_IPC is not set
-CONFIG_QCOM_BAM_DMA=y
-# CONFIG_QCOM_CLK_RPM is not set
-# CONFIG_QCOM_COINCELL is not set
-# CONFIG_QCOM_COMMAND_DB is not set
-CONFIG_QCOM_EBI2=y
-# CONFIG_QCOM_GENI_SE is not set
-CONFIG_QCOM_GSBI=y
-# CONFIG_QCOM_LLCC is not set
-# CONFIG_QCOM_PDC is not set
-CONFIG_QCOM_QFPROM=y
-# CONFIG_QCOM_RMTFS_MEM is not set
-# CONFIG_QCOM_RPMH is not set
-CONFIG_QCOM_SMEM=y
-CONFIG_QCOM_SMEM_STATE=y
-CONFIG_QCOM_SMP2P=y
-# CONFIG_QCOM_SMSM is not set
-CONFIG_QCOM_SPMI_VADC=y
-CONFIG_QCOM_TSENS=y
-CONFIG_QCOM_VADC_COMMON=y
-CONFIG_QCOM_WDT=y
-# CONFIG_QRTR is not set
-CONFIG_QUEUED_RWLOCKS=y
-CONFIG_QUEUED_SPINLOCKS=y
-# CONFIG_RANDOMIZE_BASE is not set
-CONFIG_RATIONAL=y
-CONFIG_RCU_CPU_STALL_TIMEOUT=21
-# CONFIG_RCU_EXPERT is not set
-CONFIG_RCU_NEED_SEGCBLIST=y
-CONFIG_RCU_STALL_COMMON=y
-CONFIG_RD_GZIP=y
-CONFIG_REFCOUNT_FULL=y
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_MMIO=y
-CONFIG_REGMAP_SPI=y
-CONFIG_REGMAP_SPMI=y
-CONFIG_REGULATOR=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-CONFIG_REGULATOR_GPIO=y
-CONFIG_REGULATOR_QCOM_RPM=y
-CONFIG_REGULATOR_QCOM_SPMI=y
-CONFIG_RELAY=y
-CONFIG_REMOTEPROC=y
-# CONFIG_RESET_ATTACK_MITIGATION is not set
-CONFIG_RESET_CONTROLLER=y
-# CONFIG_RESET_QCOM_AOSS is not set
-CONFIG_RFS_ACCEL=y
-# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set
-# CONFIG_RPMSG_QCOM_SMD is not set
-CONFIG_RPS=y
-CONFIG_RTC_CLASS=y
-# CONFIG_RTC_DRV_EFI is not set
-# CONFIG_RTC_DRV_PM8XXX is not set
-CONFIG_RTC_I2C_AND_SPI=y
-CONFIG_RWSEM_SPIN_ON_OWNER=y
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-# CONFIG_SDM_DISPCC_845 is not set
-# CONFIG_SDM_GCC_845 is not set
-# CONFIG_SDM_VIDEOCC_845 is not set
-# CONFIG_SERIAL_8250 is not set
-# CONFIG_SERIAL_AMBA_PL011 is not set
-CONFIG_SERIAL_MSM=y
-CONFIG_SERIAL_MSM_CONSOLE=y
-CONFIG_SGL_ALLOC=y
-CONFIG_SMP=y
-CONFIG_SND=y
-# CONFIG_SND_COMPRESS_OFFLOAD is not set
-CONFIG_SND_JACK=y
-CONFIG_SND_PCM=y
-CONFIG_SND_SOC=y
-# CONFIG_SND_SOC_APQ8016_SBC is not set
-CONFIG_SND_SOC_I2C_AND_SPI=y
-CONFIG_SND_SOC_QCOM=y
-# CONFIG_SND_SOC_STORM is not set
-CONFIG_SOUND=y
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
-CONFIG_SPARSEMEM=y
-CONFIG_SPARSEMEM_EXTREME=y
-CONFIG_SPARSEMEM_MANUAL=y
-CONFIG_SPARSEMEM_VMEMMAP=y
-CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
-CONFIG_SPARSE_IRQ=y
-CONFIG_SPI=y
-CONFIG_SPI_MASTER=y
-CONFIG_SPI_MEM=y
-CONFIG_SPI_QUP=y
-CONFIG_SPI_SPIDEV=y
-CONFIG_SPMI=y
-CONFIG_SPMI_MSM_PMIC_ARB=y
-# CONFIG_SPMI_PMIC_CLKDIV is not set
-CONFIG_SRCU=y
-# CONFIG_STAGING is not set
-CONFIG_STM=y
-# CONFIG_STM_SOURCE_HEARTBEAT is not set
-# CONFIG_STRIP_ASM_SYMS is not set
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_SWAP is not set
-CONFIG_SWCONFIG=y
-CONFIG_SWIOTLB=y
-CONFIG_SWPHY=y
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
-CONFIG_SYSVIPC_COMPAT=y
-CONFIG_SYS_SUPPORTS_HUGETLBFS=y
-CONFIG_TASKS_RCU=y
-CONFIG_THERMAL=y
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
-CONFIG_THERMAL_GOV_STEP_WISE=y
-CONFIG_THERMAL_GOV_USER_SPACE=y
-CONFIG_THERMAL_OF=y
-CONFIG_THERMAL_WRITABLE_TRIPS=y
-CONFIG_THREAD_INFO_IN_TASK=y
-CONFIG_TICK_CPU_ACCOUNTING=y
-CONFIG_TIMER_OF=y
-CONFIG_TIMER_PROBE=y
-CONFIG_TREE_SRCU=y
-CONFIG_UBIFS_FS=y
-CONFIG_UBIFS_FS_ADVANCED_COMPR=y
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-CONFIG_UCS2_STRING=y
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_UNINLINE_SPIN_UNLOCK=y
-CONFIG_UNMAP_KERNEL_AT_EL0=y
-CONFIG_USB_SUPPORT=y
-CONFIG_VIRTIO=y
-# CONFIG_VIRTIO_BLK is not set
-# CONFIG_VIRTIO_CONSOLE is not set
-# CONFIG_VIRTIO_NET is not set
-CONFIG_VIRTUALIZATION=y
-CONFIG_VMAP_STACK=y
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_WANT_DEV_COREDUMP=y
-CONFIG_WATCHDOG_CORE=y
-# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
-CONFIG_X509_CERTIFICATE_PARSER=y
-CONFIG_XPS=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_BCJ=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZONE_DMA32=y
diff --git a/target/linux/ipq807x/image/Makefile b/target/linux/ipq807x/image/Makefile
deleted file mode 100644
index 2a0c74554f..0000000000
--- a/target/linux/ipq807x/image/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-include $(TOPDIR)/rules.mk
-include $(INCLUDE_DIR)/image.mk
-
-IPQ807X_KERNEL_LOADADDR = 0x41080000
-DEVICE_DTS_CONFIG = "config@hk01"
-
-define Image/BuildKernel/FIT
- gzip -9 -c $(KDIR)/Image > $(KDIR)/Image.gz
- $(call CompressLzma,$(KDIR)/Image,$(KDIR)/Image.gz)
- $(call Image/BuildKernel/MkFIT,$(1), $(KDIR)/Image.gz, $(DTS_DIR)/qcom/$(1).dtb,gzip,$(2),$(2))
- $(CP) $(KDIR)/fit-$(1).itb $(BIN_DIR)/$(IMG_PREFIX)-$(1)-fit-uImage.itb
- mkdir -p $(BIN_DIR)/dtbs/
- $(CP) $(DTS_DIR)/qcom/ipq*.dtb $(BIN_DIR)/dtbs/
- $(CP) $(KDIR)/Image $(BIN_DIR)/dtbs/
-endef
-
-define Image/BuildKernel/FITInitramfs
- $(CP) $(KDIR)/Image-initramfs $(BIN_DIR)/dtbs/
- $(CP) $(KDIR)/Image-initramfs $(BIN_DIR)/$(IMG_PREFIX)-vmlinux-initramfs.bin
- $(call Image/BuildKernel/MkFIT,$(1), $(KDIR)/Image-initramfs, $(DTS_DIR)/qcom/$(1).dtb, none,$(2),$(2),-initramfs)
- $(CP) $(KDIR)/fit-$(1)-initramfs.itb $(BIN_DIR)/$(IMG_PREFIX)-$(1)-fit-uImage-initramfs.itb
-endef
-
-define Image/Build/squashfs
- $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
-endef
-
-define Image/BuildKernel
- $(call Image/BuildKernel/FIT,ipq8074-hk01,$(IPQ807X_KERNEL_LOADADDR))
-endef
-
-define Image/BuildKernel/Initramfs
- $(call Image/BuildKernel/FITInitramfs,ipq8074-hk01,$(IPQ807X_KERNEL_LOADADDR))
-endef
-
-define Image/Build
- $(call Image/Build/$(1),$(1))
-endef
-
-$(eval $(call BuildImage))
diff --git a/target/linux/ipq807x/profiles/default.mk b/target/linux/ipq807x/profiles/default.mk
deleted file mode 100644
index 44935d6905..0000000000
--- a/target/linux/ipq807x/profiles/default.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-define Profile/Default
- NAME:=Default Profile (minimum package set)
-endef
-
-define Profile/Default/Description
- Default package set compatible with most boards.
-endef
-$(eval $(call Profile,Default))
--
2.25.1

View File

@@ -0,0 +1,492 @@
From b65db44a14f0e3f165ef849563a6f5bce04d05d4 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Tue, 3 Nov 2020 18:22:02 +0100
Subject: [PATCH 19/25] linux/modules: fix some v4.4 dependencies
NFT has different deps on v4.4.
Signed-off-by: John Crispin <john@phrozen.org>
---
include/image.mk | 2 ++
include/kernel.mk | 3 +-
include/netfilter.mk | 27 +++++++++++++---
include/package.mk | 8 ++---
package/kernel/linux/modules/can.mk | 3 +-
package/kernel/linux/modules/crypto.mk | 9 ++++--
package/kernel/linux/modules/fs.mk | 3 +-
package/kernel/linux/modules/iio.mk | 4 +--
package/kernel/linux/modules/netdevices.mk | 2 +-
package/kernel/linux/modules/netfilter.mk | 15 ++++-----
package/kernel/linux/modules/netsupport.mk | 6 ++--
package/kernel/linux/modules/other.mk | 36 ++++++++++++++++++++--
package/kernel/linux/modules/usb.mk | 4 +--
package/kernel/linux/modules/video.mk | 16 ++++++----
toolchain/gcc/Config.in | 3 ++
15 files changed, 104 insertions(+), 37 deletions(-)
diff --git a/include/image.mk b/include/image.mk
index 4e7c31e8dc..8373a1cd0c 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -156,6 +156,7 @@ endif
# Disable noisy checks by default as in upstream
+ifeq ($(strip $(call kernel_patchver_ge,4.5.0)),1)
DTC_FLAGS += \
-Wno-unit_address_vs_reg \
-Wno-simple_bus_reg \
@@ -168,6 +169,7 @@ DTC_FLAGS += \
-Wno-graph_child_address \
-Wno-graph_port \
-Wno-unique_unit_address
+endif
define Image/pad-to
dd if=$(1) of=$(1).new bs=$(2) conv=sync
diff --git a/include/kernel.mk b/include/kernel.mk
index efbca0f3a5..c29ad3d4d9 100644
--- a/include/kernel.mk
+++ b/include/kernel.mk
@@ -103,8 +103,9 @@ endif
KERNEL_MAKE = $(MAKE) $(KERNEL_MAKEOPTS)
+ #KCFLAGS="$(call iremap,$(BUILD_DIR),$(notdir $(BUILD_DIR)))" \
+
KERNEL_MAKE_FLAGS = \
- KCFLAGS="$(call iremap,$(BUILD_DIR),$(notdir $(BUILD_DIR)))" \
HOSTCFLAGS="$(HOST_CFLAGS) -Wall -Wmissing-prototypes -Wstrict-prototypes" \
CROSS_COMPILE="$(KERNEL_CROSS)" \
ARCH="$(LINUX_KARCH)" \
diff --git a/include/netfilter.mk b/include/netfilter.mk
index 3a855716fd..0f4da3a5b8 100644
--- a/include/netfilter.mk
+++ b/include/netfilter.mk
@@ -158,7 +158,8 @@ $(eval $(if $(NF_KMOD),$(call nf_add,NF_REJECT6,CONFIG_NF_REJECT_IPV6, $(P_V6)nf
$(eval $(if $(NF_KMOD),$(call nf_add,NF_IPT6,CONFIG_IP6_NF_IPTABLES, $(P_V6)ip6_tables),))
-$(eval $(if $(NF_KMOD),$(call nf_add,NF_CONNTRACK,CONFIG_NF_DEFRAG_IPV6, $(P_V6)nf_defrag_ipv6),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NF_CONNTRACK,CONFIG_NF_DEFRAG_IPV6, $(P_V6)nf_defrag_ipv6, ge 4.19),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NF_CONNTRACK6,CONFIG_NF_DEFRAG_IPV6, $(P_V6)nf_defrag_ipv6, lt 4.19),))
$(eval $(if $(NF_KMOD),$(call nf_add,NF_CONNTRACK6,CONFIG_NF_CONNTRACK_IPV6, $(P_V6)nf_conntrack_ipv6),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_IPV6,CONFIG_IP6_NF_FILTER, $(P_V6)ip6table_filter),))
@@ -185,11 +186,15 @@ $(eval $(call nf_add,IPT_IPV6_EXTRA,CONFIG_IP6_NF_MATCH_RT, $(P_V6)ip6t_rt))
# kernel only
$(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT,CONFIG_NF_NAT, $(P_XT)nf_nat),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT,CONFIG_NF_NAT_REDIRECT, $(P_XT)nf_nat_redirect, lt 4.18),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT,CONFIG_NF_NAT_IPV4, $(P_V4)nf_nat_ipv4, lt 4.18),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT,CONFIG_NF_NAT_MASQUERADE_IPV4, $(P_V4)nf_nat_masquerade_ipv4, lt 4.18),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT,CONFIG_NETFILTER_XT_NAT, $(P_XT)xt_nat),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT,CONFIG_IP_NF_NAT, $(P_V4)iptable_nat),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT6,CONFIG_IP6_NF_NAT, $(P_V6)ip6table_nat),))
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT6,CONFIG_IP6_NF_TARGET_NPT, $(P_V6)ip6t_NPT),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT6,CONFIG_NF_NAT_MASQUERADE_IPV6, $(P_V6)nf_nat_masquerade_ipv6, lt 4.18),))
# userland only
$(eval $(if $(NF_KMOD),,$(call nf_add,IPT_NAT,CONFIG_NF_NAT, ipt_SNAT ipt_DNAT)))
@@ -254,8 +259,8 @@ $(eval $(call nf_add,IPT_TPROXY,CONFIG_NETFILTER_XT_MATCH_SOCKET, $(P_XT)xt_sock
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_SOCKET_IPV4, $(P_V4)nf_socket_ipv4))
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_SOCKET_IPV6, $(P_V6)nf_socket_ipv6))
$(eval $(call nf_add,IPT_TPROXY,CONFIG_NETFILTER_XT_TARGET_TPROXY, $(P_XT)xt_TPROXY))
-$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_TPROXY_IPV4, $(P_V4)nf_tproxy_ipv4))
-$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_TPROXY_IPV6, $(P_V6)nf_tproxy_ipv6))
+$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_TPROXY_IPV4, $(P_V4)nf_tproxy_ipv4, ge 4.18))
+$(eval $(call nf_add,IPT_TPROXY,CONFIG_NF_TPROXY_IPV6, $(P_V6)nf_tproxy_ipv6, ge 4.18))
# led
$(eval $(call nf_add,IPT_LED,CONFIG_NETFILTER_XT_TARGET_LED, $(P_XT)xt_LED))
@@ -325,7 +330,10 @@ $(eval $(call nf_add,EBTABLES_WATCHERS,CONFIG_BRIDGE_EBT_NFQUEUE, $(P_EBT)ebt_nf
# nftables
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NF_TABLES, $(P_XT)nf_tables),))
-$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NF_TABLES_SET, $(P_XT)nf_tables_set),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NF_TABLES_INET, $(P_XT)nf_tables_inet, lt 4.17),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NF_TABLES_IPV4, $(P_V4)nf_tables_ipv4, lt 4.17),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NF_TABLES_IPV6, $(P_V6)nf_tables_ipv6, lt 4.17),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NF_TABLES_SET, $(P_XT)nf_tables_set, ge 4.18),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_COUNTER, $(P_XT)nft_counter),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_CT, $(P_XT)nft_ct),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_HASH, $(P_XT)nft_hash),))
@@ -338,7 +346,12 @@ $(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_QUOTA, $(P_XT)nft_quota
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_REDIR, $(P_XT)nft_redir),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_REJECT, $(P_XT)nft_reject $(P_V4)nft_reject_ipv4 $(P_V6)nft_reject_ipv6),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_REJECT_INET, $(P_XT)nft_reject_inet),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_SET_HASH, $(P_XT)nft_set_hash, lt 4.18),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_SET_RBTREE, $(P_XT)nft_set_rbtree, lt 4.18),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_ARP,CONFIG_NF_TABLES_ARP, $(P_V4)nf_tables_arp, lt 4.17),))
+
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_BRIDGE,CONFIG_NF_TABLES_BRIDGE, $(P_EBT)nf_tables_bridge, lt 4.17),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_BRIDGE,CONFIG_NFT_BRIDGE_META, $(P_EBT)nft_meta_bridge),))
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_BRIDGE,CONFIG_NFT_BRIDGE_REJECT, $(P_EBT)nft_reject_bridge),))
@@ -358,6 +371,12 @@ $(eval $(if $(NF_KMOD),$(call nf_add,NFT_FIB,CONFIG_NFT_FIB_IPV6, $(P_V6)nft_fib
$(eval $(if $(NF_KMOD),$(call nf_add,NFT_QUEUE,CONFIG_NFT_QUEUE, $(P_XT)nft_queue),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_EXTHDR, $(P_XT)nft_exthdr, lt 4.9.0),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_RBTREE, $(P_XT)nft_rbtree, lt 4.9.0),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_CHAIN_ROUTE_IPV4, $(P_V4)nft_chain_route_ipv4, lt 4.9.0),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_NAT,CONFIG_NFT_CHAIN_NAT_IPV4, $(P_V4)nft_chain_nat_ipv4, lt 4.9.0),))
+$(eval $(if $(NF_KMOD),$(call nf_add,NFT_CORE,CONFIG_NFT_CHAIN_ROUTE_IPV6, $(P_V6)nft_chain_route_ipv6, lt 4.9.0),))
+
# userland only
IPT_BUILTIN += $(NF_IPT-y) $(NF_IPT-m)
IPT_BUILTIN += $(IPT_CORE-y) $(IPT_CORE-m)
diff --git a/include/package.mk b/include/package.mk
index 5eb4460db8..f5a69072e3 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -32,10 +32,10 @@ ifdef CONFIG_USE_MIPS16
TARGET_CFLAGS += -mips16 -minterlink-mips16
endif
endif
-ifeq ($(strip $(PKG_IREMAP)),1)
- IREMAP_CFLAGS = $(call iremap,$(PKG_BUILD_DIR),$(notdir $(PKG_BUILD_DIR)))
- TARGET_CFLAGS += $(IREMAP_CFLAGS)
-endif
+#ifeq ($(strip $(PKG_IREMAP)),1)
+# IREMAP_CFLAGS = $(call iremap,$(PKG_BUILD_DIR),$(notdir $(PKG_BUILD_DIR)))
+# TARGET_CFLAGS += $(IREMAP_CFLAGS)
+#endif
include $(INCLUDE_DIR)/hardening.mk
include $(INCLUDE_DIR)/prereq.mk
diff --git a/package/kernel/linux/modules/can.mk b/package/kernel/linux/modules/can.mk
index 58c257db5b..3bf0359c11 100644
--- a/package/kernel/linux/modules/can.mk
+++ b/package/kernel/linux/modules/can.mk
@@ -248,7 +248,8 @@ define KernelPackage/can-usb-kvaser
TITLE:=Kvaser CAN/USB interface
KCONFIG:=CONFIG_CAN_KVASER_USB
FILES:= \
- $(LINUX_DIR)/drivers/net/can/usb/kvaser_usb/kvaser_usb.ko
+ $(LINUX_DIR)/drivers/net/can/usb/kvaser_usb.ko@lt4.19 \
+ $(LINUX_DIR)/drivers/net/can/usb/kvaser_usb/kvaser_usb.ko@ge4.19
AUTOLOAD:=$(call AutoProbe,kvaser_usb)
$(call AddDepends/can,+kmod-usb-core)
endef
diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk
index e9e78e7967..e7776c096c 100644
--- a/package/kernel/linux/modules/crypto.mk
+++ b/package/kernel/linux/modules/crypto.mk
@@ -377,7 +377,7 @@ $(eval $(call KernelPackage,crypto-hw-padlock))
define KernelPackage/crypto-hw-safexcel
TITLE:= MVEBU SafeXcel Crypto Engine module
- DEPENDS:=@(TARGET_mvebu_cortexa53||TARGET_mvebu_cortexa72) +eip197-mini-firmware \
+ DEPENDS:=@!LINUX_4_14 @(TARGET_mvebu_cortexa53||TARGET_mvebu_cortexa72) +eip197-mini-firmware \
+kmod-crypto-authenc +kmod-crypto-md5 +kmod-crypto-hmac +kmod-crypto-sha256 +kmod-crypto-sha512
KCONFIG:= \
CONFIG_CRYPTO_HW=y \
@@ -549,8 +549,10 @@ ifndef CONFIG_TARGET_x86_64
$(LINUX_DIR)/arch/x86/crypto/twofish-i586.ko \
$(LINUX_DIR)/arch/x86/crypto/serpent-sse2-i586.ko \
$(LINUX_DIR)/arch/x86/crypto/glue_helper.ko \
+ $(LINUX_DIR)/crypto/ablk_helper.ko@lt4.17 \
$(LINUX_DIR)/crypto/cryptd.ko \
- $(LINUX_DIR)/crypto/crypto_simd.ko
+ $(LINUX_DIR)/crypto/lrw.ko@lt4.17 \
+ $(LINUX_DIR)/crypto/crypto_simd.ko@ge4.17
AUTOLOAD+= $(call AutoLoad,10,cryptd glue_helper \
serpent-sse2-i586 twofish-i586 blowfish_generic)
endef
@@ -569,7 +571,8 @@ define KernelPackage/crypto-misc/x86/64
$(LINUX_DIR)/arch/x86/crypto/twofish-avx-x86_64.ko \
$(LINUX_DIR)/arch/x86/crypto/serpent-avx-x86_64.ko \
$(LINUX_DIR)/arch/x86/crypto/camellia-aesni-avx2.ko \
- $(LINUX_DIR)/arch/x86/crypto/serpent-avx2.ko
+ $(LINUX_DIR)/arch/x86/crypto/serpent-avx2.ko \
+ $(LINUX_DIR)/crypto/ablk_helper.ko@lt4.17
AUTOLOAD+= $(call AutoLoad,10,camellia-x86_64 \
camellia-aesni-avx-x86_64 camellia-aesni-avx2 cast5-avx-x86_64 \
cast6-avx-x86_64 twofish-x86_64 twofish-x86_64-3way \
diff --git a/package/kernel/linux/modules/fs.mk b/package/kernel/linux/modules/fs.mk
index 18976a7941..21671a1822 100644
--- a/package/kernel/linux/modules/fs.mk
+++ b/package/kernel/linux/modules/fs.mk
@@ -53,7 +53,8 @@ define KernelPackage/fs-autofs4
CONFIG_AUTOFS4_FS \
CONFIG_AUTOFS_FS
FILES:= \
- $(LINUX_DIR)/fs/autofs/autofs4.ko
+ $(LINUX_DIR)/fs/autofs4/autofs4.ko@lt4.18 \
+ $(LINUX_DIR)/fs/autofs/autofs4.ko@ge4.18
AUTOLOAD:=$(call AutoLoad,30,autofs4)
endef
diff --git a/package/kernel/linux/modules/iio.mk b/package/kernel/linux/modules/iio.mk
index 7bfbd38079..0ea7ba8bdd 100644
--- a/package/kernel/linux/modules/iio.mk
+++ b/package/kernel/linux/modules/iio.mk
@@ -159,7 +159,7 @@ $(eval $(call KernelPackage,iio-dht11))
define KernelPackage/iio-bme680
SUBMENU:=$(IIO_MENU)
TITLE:=BME680 gas/humidity/pressure/temperature sensor
- DEPENDS:=+kmod-iio-core +kmod-regmap-core
+ DEPENDS:=@!LINUX_4_14 +kmod-iio-core +kmod-regmap-core
KCONFIG:=CONFIG_BME680
FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_core.ko
endef
@@ -414,7 +414,7 @@ $(eval $(call KernelPackage,iio-lsm6dsx-spi))
define KernelPackage/iio-sps30
SUBMENU:=$(IIO_MENU)
- DEPENDS:=+kmod-i2c-core +kmod-iio-core +kmod-industrialio-triggered-buffer +kmod-lib-crc8
+ DEPENDS:=@!LINUX_4_14 +kmod-i2c-core +kmod-iio-core +kmod-industrialio-triggered-buffer +kmod-lib-crc8
TITLE:=Sensirion SPS30 particulate matter sensor
KCONFIG:=CONFIG_SPS30
FILES:=$(LINUX_DIR)/drivers/iio/chemical/sps30.ko
diff --git a/package/kernel/linux/modules/netdevices.mk b/package/kernel/linux/modules/netdevices.mk
index 901bddddea..de909f956f 100644
--- a/package/kernel/linux/modules/netdevices.mk
+++ b/package/kernel/linux/modules/netdevices.mk
@@ -543,7 +543,7 @@ $(eval $(call KernelPackage,8139cp))
define KernelPackage/r8169
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=RealTek RTL-8169 PCI Gigabit Ethernet Adapter kernel support
- DEPENDS:=@PCI_SUPPORT +kmod-mii +r8169-firmware +kmod-phy-realtek
+ DEPENDS:=@PCI_SUPPORT +kmod-mii +r8169-firmware +!LINUX_4_14:kmod-phy-realtek
KCONFIG:=CONFIG_R8169 \
CONFIG_R8169_NAPI=y \
CONFIG_R8169_VLAN=n
diff --git a/package/kernel/linux/modules/netfilter.mk b/package/kernel/linux/modules/netfilter.mk
index aacf5948b1..e49f836782 100644
--- a/package/kernel/linux/modules/netfilter.mk
+++ b/package/kernel/linux/modules/netfilter.mk
@@ -259,7 +259,7 @@ define KernelPackage/ipt-ipopt
KCONFIG:=$(KCONFIG_IPT_IPOPT)
FILES:=$(foreach mod,$(IPT_IPOPT-m),$(LINUX_DIR)/net/$(mod).ko)
AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPOPT-m)))
- $(call AddDepends/ipt)
+ $(call AddDepends/ipt,+kmod-nf-conntrack)
endef
define KernelPackage/ipt-ipopt/description
@@ -368,7 +368,7 @@ IPVS_MODULES:= \
define KernelPackage/nf-ipvs
SUBMENU:=Netfilter Extensions
TITLE:=IP Virtual Server modules
- DEPENDS:=@IPV6 +kmod-lib-crc32c +kmod-ipt-conntrack +kmod-nf-conntrack
+ DEPENDS:=@IPV6 +kmod-lib-crc32c +kmod-ipt-conntrack +kmod-nf-conntrack +LINUX_4_14:kmod-nf-conntrack6
KCONFIG:= \
CONFIG_IP_VS \
CONFIG_IP_VS_IPV6=y \
@@ -542,7 +542,7 @@ define KernelPackage/nf-nathelper-extra
KCONFIG:=$(KCONFIG_NF_NATHELPER_EXTRA)
FILES:=$(foreach mod,$(NF_NATHELPER_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NATHELPER_EXTRA-m)))
- DEPENDS:=+kmod-nf-nat +kmod-lib-textsearch +kmod-ipt-raw +kmod-asn1-decoder
+ DEPENDS:=+kmod-nf-nat +kmod-lib-textsearch +kmod-ipt-raw +!LINUX_4_14:kmod-asn1-decoder
endef
define KernelPackage/nf-nathelper-extra/description
@@ -1052,7 +1052,7 @@ $(eval $(call KernelPackage,ipt-rpfilter))
define KernelPackage/nft-core
SUBMENU:=$(NF_MENU)
TITLE:=Netfilter nf_tables support
- DEPENDS:=+kmod-nfnetlink +kmod-nf-reject +IPV6:kmod-nf-reject6 +IPV6:kmod-nf-conntrack6 +kmod-nf-nat
+ DEPENDS:=+kmod-nfnetlink +kmod-nf-reject +IPV6:kmod-nf-reject6 +IPV6:kmod-nf-conntrack6 +LINUX_5_4:kmod-nf-nat
FILES:=$(foreach mod,$(NFT_CORE-m),$(LINUX_DIR)/net/$(mod).ko)
AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_CORE-m)))
KCONFIG:= \
@@ -1148,9 +1148,10 @@ define KernelPackage/nft-netdev
CONFIG_NFT_DUP_NETDEV \
CONFIG_NFT_FWD_NETDEV
FILES:= \
- $(LINUX_DIR)/net/netfilter/nf_dup_netdev.ko \
- $(LINUX_DIR)/net/netfilter/nft_dup_netdev.ko \
- $(LINUX_DIR)/net/netfilter/nft_fwd_netdev.ko
+ $(LINUX_DIR)/net/netfilter/nf_tables_netdev.ko@lt4.17 \
+ $(LINUX_DIR)/net/netfilter/nf_dup_netdev.ko@gt4.5 \
+ $(LINUX_DIR)/net/netfilter/nft_dup_netdev.ko@gt4.5 \
+ $(LINUX_DIR)/net/netfilter/nft_fwd_netdev.ko@gt4.5
AUTOLOAD:=$(call AutoProbe,nf_tables_netdev nf_dup_netdev nft_dup_netdev nft_fwd_netdev)
endef
diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk
index 0c68b394d1..218caaa8d5 100644
--- a/package/kernel/linux/modules/netsupport.mk
+++ b/package/kernel/linux/modules/netsupport.mk
@@ -379,7 +379,7 @@ $(eval $(call KernelPackage,ip6-vti))
define KernelPackage/xfrm-interface
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=IPsec XFRM Interface
- DEPENDS:=+kmod-ipsec4 +IPV6:kmod-ipsec6
+ DEPENDS:=+kmod-ipsec4 +IPV6:kmod-ipsec6 @!LINUX_4_14
KCONFIG:=CONFIG_XFRM_INTERFACE
FILES:=$(LINUX_DIR)/net/xfrm/xfrm_interface.ko
AUTOLOAD:=$(call AutoProbe,xfrm_interface)
@@ -768,7 +768,7 @@ $(eval $(call KernelPackage,sched-core))
define KernelPackage/sched-cake
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Cake fq_codel/blue derived shaper
- DEPENDS:=+kmod-sched-core
+ DEPENDS:=@!LINUX_4_14 +kmod-sched-core
KCONFIG:=CONFIG_NET_SCH_CAKE
FILES:=$(LINUX_DIR)/net/sched/sch_cake.ko
AUTOLOAD:=$(call AutoProbe,sch_cake)
@@ -1135,7 +1135,7 @@ $(eval $(call KernelPackage,rxrpc))
define KernelPackage/mpls
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=MPLS support
- DEPENDS:=+kmod-iptunnel
+ DEPENDS:=+!LINUX_4_14:kmod-iptunnel
KCONFIG:= \
CONFIG_MPLS=y \
CONFIG_LWTUNNEL=y \
diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk
index 41de6ac2ba..c6952c812f 100644
--- a/package/kernel/linux/modules/other.mk
+++ b/package/kernel/linux/modules/other.mk
@@ -1006,10 +1006,26 @@ endef
$(eval $(call KernelPackage,ptp))
+define KernelPackage/ptp-gianfar
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Freescale Gianfar PTP support
+ DEPENDS:=@TARGET_mpc85xx +kmod-ptp @LINUX_4_14
+ KCONFIG:=CONFIG_PTP_1588_CLOCK_GIANFAR
+ FILES:=$(LINUX_DIR)/drivers/net/ethernet/freescale/gianfar_ptp.ko
+ AUTOLOAD:=$(call AutoProbe,gianfar_ptp)
+endef
+
+define KernelPackage/ptp-gianfar/description
+ Kernel module for IEEE 1588 support for Freescale
+ Gianfar Ethernet drivers
+endef
+
+$(eval $(call KernelPackage,ptp-gianfar))
+
define KernelPackage/ptp-qoriq
SUBMENU:=$(OTHER_MENU)
TITLE:=Freescale QorIQ PTP support
- DEPENDS:=@TARGET_mpc85xx +kmod-ptp
+ DEPENDS:=@TARGET_mpc85xx +kmod-ptp @!LINUX_4_14
KCONFIG:=CONFIG_PTP_1588_CLOCK_QORIQ
FILES:=$(LINUX_DIR)/drivers/ptp/ptp-qoriq.ko
AUTOLOAD:=$(call AutoProbe,ptp-qoriq)
@@ -1037,6 +1053,22 @@ endef
$(eval $(call KernelPackage,random-core))
+define KernelPackage/random-tpm
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=Hardware Random Number Generator TPM support
+ KCONFIG:=CONFIG_HW_RANDOM_TPM
+ FILES:=$(LINUX_DIR)/drivers/char/hw_random/tpm-rng.ko
+ DEPENDS:= +kmod-random-core +kmod-tpm @LINUX_4_14
+ AUTOLOAD:=$(call AutoProbe,tpm-rng)
+endef
+
+define KernelPackage/random-tpm/description
+ Kernel module for the Random Number Generator
+ in the Trusted Platform Module.
+endef
+
+$(eval $(call KernelPackage,random-tpm))
+
define KernelPackage/thermal
SUBMENU:=$(OTHER_MENU)
TITLE:=Generic Thermal sysfs driver
@@ -1106,7 +1138,7 @@ $(eval $(call KernelPackage,echo))
define KernelPackage/tpm
SUBMENU:=$(OTHER_MENU)
TITLE:=TPM Hardware Support
- DEPENDS:= +kmod-random-core
+ DEPENDS:= +!LINUX_4_14:kmod-random-core
KCONFIG:= CONFIG_TCG_TPM
FILES:= $(LINUX_DIR)/drivers/char/tpm/tpm.ko
AUTOLOAD:=$(call AutoLoad,10,tpm,1)
diff --git a/package/kernel/linux/modules/usb.mk b/package/kernel/linux/modules/usb.mk
index 9155e319a9..2b46466540 100644
--- a/package/kernel/linux/modules/usb.mk
+++ b/package/kernel/linux/modules/usb.mk
@@ -463,7 +463,7 @@ define KernelPackage/usb-dwc3-of-simple
DEPENDS:=@!LINUX_4_19 @(TARGET_ipq40xx||TARGET_ipq806x||TARGET_ipq807x) +kmod-usb-dwc3
KCONFIG:= CONFIG_USB_DWC3_OF_SIMPLE
FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-of-simple.ko \
- $(LINUX_DIR)/drivers/usb/dwc3/dbm.ko@le4.4
+ $(LINUX_DIR)/drivers/usb/dwc3/dbm.ko
AUTOLOAD:=$(call AutoLoad,53,dwc3-of-simple,1)
$(call AddDepends/usb)
endef
@@ -479,7 +479,7 @@ $(eval $(call KernelPackage,usb-dwc3-of-simple))
define KernelPackage/usb-dwc3-qcom
TITLE:=DWC3 Qualcomm USB driver
- DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x) +kmod-usb-dwc3
+ DEPENDS:=@(!LINUX_4_14) @(TARGET_ipq40xx||TARGET_ipq806x) +kmod-usb-dwc3
KCONFIG:= CONFIG_USB_DWC3_QCOM
FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-qcom.ko
AUTOLOAD:=$(call AutoLoad,53,dwc3-qcom,1)
diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index c71f0760a6..a50fdad57e 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -229,7 +229,7 @@ define KernelPackage/drm
KCONFIG:=CONFIG_DRM
FILES:= \
$(LINUX_DIR)/drivers/gpu/drm/drm.ko \
- $(LINUX_DIR)/drivers/gpu/drm/drm_panel_orientation_quirks.ko
+ $(LINUX_DIR)/drivers/gpu/drm/drm_panel_orientation_quirks.ko@ge4.15
AUTOLOAD:=$(call AutoLoad,05,drm)
endef
@@ -437,10 +437,14 @@ define KernelPackage/video-videobuf2
CONFIG_VIDEOBUF2_MEMOPS \
CONFIG_VIDEOBUF2_VMALLOC
FILES:= \
- $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-common.ko \
- $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-v4l2.ko \
- $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-memops.ko \
- $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-vmalloc.ko
+ $(LINUX_DIR)/drivers/media/$(V4L2_DIR)/videobuf2-core.ko@lt4.16 \
+ $(LINUX_DIR)/drivers/media/$(V4L2_DIR)/videobuf2-v4l2.ko@lt4.16 \
+ $(LINUX_DIR)/drivers/media/$(V4L2_DIR)/videobuf2-memops.ko@lt4.16 \
+ $(LINUX_DIR)/drivers/media/$(V4L2_DIR)/videobuf2-vmalloc.ko@lt4.16 \
+ $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-common.ko@ge4.16 \
+ $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-v4l2.ko@ge4.16 \
+ $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-memops.ko@ge4.16 \
+ $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-vmalloc.ko@ge4.16
AUTOLOAD:=$(call AutoLoad,65,videobuf2-core videobuf-v4l2 videobuf2-memops videobuf2-vmalloc)
$(call AddDepends/video)
endef
@@ -505,7 +509,7 @@ $(eval $(call KernelPackage,video-uvc))
define KernelPackage/video-gspca-core
MENU:=1
TITLE:=GSPCA webcam core support framework
- DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-input-core +kmod-video-videobuf2
+ DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-input-core +!LINUX_4_14:kmod-video-videobuf2
KCONFIG:=CONFIG_USB_GSPCA
FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_main.ko
AUTOLOAD:=$(call AutoProbe,gspca_main)
diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
index 3aeb6a4853..6625e02114 100644
--- a/toolchain/gcc/Config.in
+++ b/toolchain/gcc/Config.in
@@ -18,12 +18,15 @@ choice
config GCC_USE_VERSION_8
bool "gcc 8.x"
+ depends on !TARGET_ipq807x
config GCC_USE_VERSION_9
bool "gcc 9.x"
+ depends on !TARGET_ipq807x
config GCC_USE_VERSION_10
bool "gcc 10.x"
+ depends on !TARGET_ipq807x
endchoice
config GCC_USE_GRAPHITE
--
2.25.1

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,661 @@
From 84c598f08f15e322c688b23a34d989ea02f97149 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Wed, 2 Dec 2020 08:46:24 +0100
Subject: [PATCH 21/25] ath10k-ct-firmware: update to latest version
Signed-off-by: John Crispin <john@phrozen.org>
---
package/firmware/ath10k-ct-firmware/Makefile | 342 +++++++++++--------
1 file changed, 202 insertions(+), 140 deletions(-)
diff --git a/package/firmware/ath10k-ct-firmware/Makefile b/package/firmware/ath10k-ct-firmware/Makefile
index 83e5563e64..ce92567b51 100644
--- a/package/firmware/ath10k-ct-firmware/Makefile
+++ b/package/firmware/ath10k-ct-firmware/Makefile
@@ -1,11 +1,102 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ath10k-ct-firmware
-PKG_VERSION:=2020-07-02
-PKG_RELEASE:=3
+PKG_VERSION:=2020-10-07
+PKG_RELEASE:=2
+CTVER1=021
+CTVER2=021
+
+# From fw_lede.bash, or can do it manually as well.
+H988XFC=a4c3d1e2fb80f6b8b9738c7189795ab9505e6c09efc12ba5f08ee7f49e934239
+H988XFCH=93108bd0870652860cdb57749f5a12205ecb15bb1f129d916ad73b6f06406c82
+H9887FC=459692deb186a63ab8eeddb7ad5d54779266e68ca686e7c46062554db6dca12b
+H9887FCH=fd126a457d0927d0c8ea10d66ef5b67d5e1e0741f8692bb3016bb602d0af3098
+H9980FC=52300e9d128c3d506e0b133d7a7964df3115f9511f1b574ef2a0767972c063bd
+H9980FCH=9c20c3a44b701f8fef0fe02f156e382b36b717fb56c76d540f6eac2077ec189b
+H9980CH=55f27045e7cf87a6a5656a050771d6d7a6197153a0737288a702c0836d5c6572
+H9980FHQ=add509b2a15ba90869f403c2e4440dbb91bd7037188d8468249cf1263adfd44e
+H9984FC=e6354a1547a308b4b0fe4cbc29693848c234acedd9e7a483a1b4fb5f9bbf0dc0
+H9984FCH=6e19ecd0b001ffb594a8b033deb2007595b8c0402402789b7de55b208639ebec
+H9984CH=7b6fdf3d970f3eff7c34df476c934a9bebb4f289b7968067950d31b82c71bb07
+H9984FHQ=f6a5d5a3a7b2c9267dc31673a19ee3b5312a2f84f26123cb5e8c000428ed76d2
+H4019FC=cde992cb328680e81cf85e195554699bcceef065c0c696ce4ef90c3311ab11fb
+H4019FCH=818afeb1226389357dfde754d641f936fb82ebe78607f10e15efd5c952a54f48
+H4019CH=30ba10f0d82116c6617cb58c3df5cc81e5ed8f29dbc8f95c0ca9c5013ce4f702
+H4019FHQ=8e4161f7bed5bd56513ca5caab582a6eee64e9e14a69f4de67587563b7b4d735
+H9888FC=d24e66bdb2f1098a2e06ff20fe037e31937e1a483e87c68827830513b4233b5d
+H9888FCH=5891e1c184da433ecc12ca0176ca89a77f7bc2b675576698b69bc93d46b77042
+H9888CH=b94f46cdda6171e5f566b1cdd6aafd68ff1a4f7e8a27762b90eb5d4f03839d99
+H9888FHQ=3cc81f8707bf5ba63bc9ffc14578c77637cae0e15766ae146af02eefb9ab7bfd
include $(INCLUDE_DIR)/package.mk
+ATH10K_FIRMWARE_REV:=d622d160e9f552ead68d9ae81b715422892dc2ef
+ATH10K_FIRMWARE_URL:=@GITHUB/kvalo/ath10k-firmware/$(ATH10K_FIRMWARE_REV)
+
+QCA9887_BOARD_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca9887-board.bin
+define Download/qca9887-board
+ FILE:=$(QCA9887_BOARD_FILE)
+ URL:=$(ATH10K_FIRMWARE_URL)/QCA9887/hw1.0
+ URL_FILE:=board.bin
+ HASH:=cf4df099f6ee05c181f55ce17297a1d32c61d725eb96246fd315ad5587c42426
+endef
+$(eval $(call Download,qca9887-board))
+
+QCA988X_BOARD_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca988x-board.bin
+define Download/qca988x-board
+ FILE:=$(QCA988X_BOARD_FILE)
+ URL:=$(ATH10K_FIRMWARE_URL)/QCA988X/hw2.0
+ URL_FILE:=board.bin
+ HASH:=5b5b380333c2dd3b6ce67f30e2f7008f4020bf594970d3b464fd8d4a80fcd880
+endef
+$(eval $(call Download,qca988x-board))
+
+QCA99X0_BOARD_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca99x0-board.bin
+define Download/qca99x0-board
+ FILE:=$(QCA99X0_BOARD_FILE)
+ URL:=$(ATH10K_FIRMWARE_URL)/QCA99X0/hw2.0
+ URL_FILE:=boardData_AR900B_CUS239_5G_v2_001.bin
+ HASH:=3bf7561ee373b369025dcd366d276d038a97d3397ccae41ce841d98a58b30aff
+endef
+$(eval $(call Download,qca99x0-board))
+
+QCA99X0_BOARD2_REV:=ddcec9efd245da9365c474f513a855a55f3ac7fe
+QCA99X0_BOARD2_FILE:=ath10k-firmware-$(QCA99X0_BOARD2_REV)-qca99x0-board-2.bin
+define Download/qca99x0-board2
+ FILE:=$(QCA99X0_BOARD2_FILE)
+ URL:=https://source.codeaurora.org/quic/qsdk/oss/firmware/ath10k-firmware/plain/ath10k/QCA99X0/hw2.0
+ URL_FILE:=board-2.bin?id=$(QCA99X0_BOARD2_REV)
+ HASH:=03711ac21e60ef59d3815e235eb721c0c22851b5410299411085aa6f2af45401
+endef
+$(eval $(call Download,qca99x0-board2))
+
+QCA9984_BOARD2_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca9984-board-2.bin
+define Download/qca9984-board2
+ FILE:=$(QCA9984_BOARD2_FILE)
+ URL:=$(ATH10K_FIRMWARE_URL)/QCA9984/hw1.0
+ URL_FILE:=board-2.bin
+ HASH:=0d6d46cf0467185e3959ce3cb69e2415be6e48ab8a4bee3eb400edbe48cb9c25
+endef
+$(eval $(call Download,qca9984-board2))
+
+QCA4019_BOARD2_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca4019-board-2.bin
+define Download/qca4019-board2
+ FILE:=$(QCA4019_BOARD2_FILE)
+ URL:=$(ATH10K_FIRMWARE_URL)/QCA4019/hw1.0
+ URL_FILE:=board-2.bin
+ HASH:=94b66aa4ddbed5110a96364d3c7b4ebcb320e3ac4e8697660b277e76077bc338
+endef
+$(eval $(call Download,qca4019-board2))
+
+QCA9888_BOARD2_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca9888-board-2.bin
+define Download/qca9888-board2
+ FILE:=$(QCA9888_BOARD2_FILE)
+ URL:=$(ATH10K_FIRMWARE_URL)/QCA9888/hw2.0
+ URL_FILE:=board-2.bin
+ HASH:=5b871bb567f64525ca45adb88063211de472015d09e0f9aa3fa61ab71c8fdfd3
+endef
+$(eval $(call Download,qca9888-board2))
+
CT_FIRMWARE_FILE = $(1)-$($(1)_FIRMWARE_FILE_CT)
CT_FIRMWARE_FILE_FULL_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_FULL_HTT)
CT_FIRMWARE_FILE_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_HTT)
@@ -28,120 +119,120 @@ define Download/ct-firmware-htt
URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT)
endef
-QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.019
+QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.$(CTVER1)
define Download/ath10k-firmware-qca988x-ct
$(call Download/ct-firmware,QCA988X,)
- HASH:=8b4c99253aa309d35f2e060c190091b8db1b84dbda06a6a15c83ac0f9a938126
+ HASH:=$(H988XFC)
endef
$(eval $(call Download,ath10k-firmware-qca988x-ct))
-QCA988X_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.019
+QCA988X_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.$(CTVER1)
define Download/ath10k-firmware-qca988x-ct-full-htt
$(call Download/ct-firmware-full-htt,QCA988X,)
- HASH:=a7168916d6aa5e4d7858f8b620c0c980c76d03f390929db6f4077685ce2051e7
+ HASH:=$(H988XFCH)
endef
$(eval $(call Download,ath10k-firmware-qca988x-ct-full-htt))
-QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.019
+QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.$(CTVER1)
define Download/ath10k-firmware-qca9887-ct
$(call Download/ct-firmware,QCA9887,ath10k-9887)
- HASH:=459692deb186a63ab8eeddb7ad5d54779266e68ca686e7c46062554db6dca12b
+ HASH:=$(H9887FC)
endef
$(eval $(call Download,ath10k-firmware-qca9887-ct))
-QCA9887_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.019
+QCA9887_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.$(CTVER1)
define Download/ath10k-firmware-qca9887-ct-full-htt
$(call Download/ct-firmware-full-htt,QCA9887,ath10k-9887)
- HASH:=fd126a457d0927d0c8ea10d66ef5b67d5e1e0741f8692bb3016bb602d0af3098
+ HASH:=$(H9887FCH)
endef
$(eval $(call Download,ath10k-firmware-qca9887-ct-full-htt))
-QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.019
+QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.$(CTVER2)
define Download/ath10k-firmware-qca99x0-ct
$(call Download/ct-firmware,QCA99X0,ath10k-10-4b)
- HASH:=7dc934f934bc4973c9273a4f22cfead8e26ec6f579647af31b718a860eca0a4b
+ HASH:=$(H9980FC)
endef
$(eval $(call Download,ath10k-firmware-qca99x0-ct))
-QCA99X0_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.019
+QCA99X0_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.$(CTVER2)
define Download/ath10k-firmware-qca99x0-ct-full-htt
$(call Download/ct-firmware-full-htt,QCA99X0,ath10k-10-4b)
- HASH:=71a27b245a382fe009938d2826d5c97a90dceb10ddf638325268df91837ea302
+ HASH:=$(H9980FCH)
endef
$(eval $(call Download,ath10k-firmware-qca99x0-ct-full-htt))
-QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.019
+QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.$(CTVER2)
define Download/ath10k-firmware-qca99x0-ct-htt
$(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b)
- HASH:=9ed4fe41e5b0f30172f71ae0fe382dc0aab8aa4f8a898417af4f7ee936575ef6
+ HASH:=$(H9980CH)
endef
$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt))
-QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.019
+QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.$(CTVER2)
define Download/ath10k-firmware-qca9984-ct
$(call Download/ct-firmware,QCA9984,ath10k-9984-10-4b)
- HASH:=32d13f432691fe759ded7d027052e925233adb436cd8f729f85ec3d19ccd1dfd
+ HASH:=$(H9984FC)
endef
$(eval $(call Download,ath10k-firmware-qca9984-ct))
-QCA9984_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.019
+QCA9984_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.$(CTVER2)
define Download/ath10k-firmware-qca9984-ct-full-htt
$(call Download/ct-firmware-full-htt,QCA9984,ath10k-9984-10-4b)
- HASH:=e8ab69777bd00b5fc6b1b7acccb55b903553a99932a5b0351602b5f690106588
+ HASH:=$(H9984FCH)
endef
$(eval $(call Download,ath10k-firmware-qca9984-ct-full-htt))
-QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.019
+QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.$(CTVER2)
define Download/ath10k-firmware-qca9984-ct-htt
$(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b)
- HASH:=74449b303b626e0713b3fd4f2d6103d65859403b2dd7bdd8882aa772b69b59c7
+ HASH:=$(H9984CH)
endef
$(eval $(call Download,ath10k-firmware-qca9984-ct-htt))
-QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.019
+QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.$(CTVER2)
define Download/ath10k-firmware-qca4019-ct
$(call Download/ct-firmware,QCA4019,ath10k-4019-10-4b)
- HASH:=4b89763087c7ed9b56046c4e621b7f045e452436d8d9b430a5d171179e313592
+ HASH:=$(H4019FC)
endef
$(eval $(call Download,ath10k-firmware-qca4019-ct))
-QCA4019_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.019
+QCA4019_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.$(CTVER2)
define Download/ath10k-firmware-qca4019-ct-full-htt
$(call Download/ct-firmware-full-htt,QCA4019,ath10k-4019-10-4b)
- HASH:=fba591e5777c53b82542ba16cae69d9bb4684837f2fa4cee1b9b26f648096748
+ HASH:=$(H4019FCH)
endef
$(eval $(call Download,ath10k-firmware-qca4019-ct-full-htt))
-QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.019
+QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.$(CTVER2)
define Download/ath10k-firmware-qca4019-ct-htt
$(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b)
- HASH:=0d534c3c424184b8ec2773f15c8933bdab0d39b6f664d2578c6602b0eb7035d1
+ HASH:=$(H4019CH)
endef
$(eval $(call Download,ath10k-firmware-qca4019-ct-htt))
-QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.019
+QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.$(CTVER2)
define Download/ath10k-firmware-qca9888-ct
$(call Download/ct-firmware,QCA9888,ath10k-9888-10-4b)
- HASH:=048f4300725e6ebbf94a6bf4f3f4e4592c446fcdbe1d801aaac024b15e89e0c9
+ HASH:=$(H9888FC)
endef
$(eval $(call Download,ath10k-firmware-qca9888-ct))
-QCA9888_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.019
+QCA9888_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.$(CTVER2)
define Download/ath10k-firmware-qca9888-ct-full-htt
$(call Download/ct-firmware-full-htt,QCA9888,ath10k-9888-10-4b)
- HASH:=d2a7e9fea6bd854721b3fc03a3a00d379d303b2bce339377ee87a1c14a60312d
+ HASH:=$(H9888FCH)
endef
$(eval $(call Download,ath10k-firmware-qca9888-ct-full-htt))
-QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.019
+QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.$(CTVER2)
define Download/ath10k-firmware-qca9888-ct-htt
$(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b)
- HASH:=e52a6db33347c641ee791fd9a3a57a2503cdda1adc6b8d943e336431528b9d2a
+ HASH:=$(H9888CH)
endef
$(eval $(call Download,ath10k-firmware-qca9888-ct-htt))
@@ -159,23 +250,14 @@ $(Package/ath10k-ct-firmware-default)
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca988x
- CONFLICTS:=ath10k-firmware-qca988x
- DEPENDS:=+ath10k-board-qca988x
endef
define Package/ath10k-firmware-qca988x-ct-full-htt
$(Package/ath10k-ct-firmware-default)
TITLE:=ath10k CT 10.1 full-htt-mgt fw for QCA988x
SECTION:=firmware
CATEGORY:=Firmware
- PROVIDES:=\
- ath10k-firmware-qca988x \
- ath10k-firmware-qca988x-ct
- CONFLICTS:=\
- ath10k-firmware-qca988x \
- ath10k-firmware-qca988x-ct
- DEPENDS:=\
- +ath10k-board-qca988x \
- +!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+ PROVIDES:=ath10k-firmware-qca988x
+ DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca9887-ct
@@ -184,23 +266,14 @@ $(Package/ath10k-ct-firmware-default)
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca9887
- CONFLICTS:=ath10k-firmware-qca9887
- DEPENDS:=+ath10k-board-qca9887
endef
define Package/ath10k-firmware-qca9887-ct-full-htt
$(Package/ath10k-ct-firmware-default)
TITLE:=ath10k CT 10.1 full-htt-mgt fw for QCA9887
SECTION:=firmware
CATEGORY:=Firmware
- PROVIDES:=\
- ath10k-firmware-qca9887 \
- ath10k-firmware-qca9887-ct
- CONFLICTS:=\
- ath10k-firmware-qca9887 \
- ath10k-firmware-qca9887-ct
- DEPENDS:=\
- +ath10k-board-qca9887 \
- +!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+ PROVIDES:=ath10k-firmware-qca9887
+ DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca99x0-ct
@@ -209,39 +282,22 @@ $(Package/ath10k-ct-firmware-default)
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca99x0
- CONFLICTS:=ath10k-firmware-qca99x0
- DEPENDS:=+ath10k-board-qca99x0
endef
define Package/ath10k-firmware-qca99x0-ct-full-htt
$(Package/ath10k-ct-firmware-default)
TITLE:=ath10k CT 10.4 full-htt-mgt fw for QCA99x0
SECTION:=firmware
CATEGORY:=Firmware
- PROVIDES:=\
- ath10k-firmware-qca99x0 \
- ath10k-firmware-qca99x0-ct
- CONFLICTS:=\
- ath10k-firmware-qca99x0 \
- ath10k-firmware-qca99x0-ct \
- ath10k-firmware-qca99x0-ct-htt
- DEPENDS:=\
- +ath10k-board-qca99x0 \
- +!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+ PROVIDES:=ath10k-firmware-qca99x0
+ DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca99x0-ct-htt
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.4 htt-mgt fw for QCA99x0
SECTION:=firmware
CATEGORY:=Firmware
- PROVIDES:=\
- ath10k-firmware-qca99x0 \
- ath10k-firmware-qca99x0-ct
- CONFLICTS:=\
- ath10k-firmware-qca99x0 \
- ath10k-firmware-qca99x0-ct
- DEPENDS:=\
- +ath10k-board-qca99x0 \
- +!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+ PROVIDES:=ath10k-firmware-qca99x0
+ DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca9984-ct
@@ -250,39 +306,22 @@ $(Package/ath10k-ct-firmware-default)
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca9984
- CONFLICTS:=ath10k-firmware-qca9984
- DEPENDS:=+ath10k-board-qca9984
endef
define Package/ath10k-firmware-qca9984-ct-full-htt
$(Package/ath10k-ct-firmware-default)
TITLE:=ath10k CT 10.4 full-htt-mgt fw for QCA9984
SECTION:=firmware
CATEGORY:=Firmware
- PROVIDES:=\
- ath10k-firmware-qca9984 \
- ath10k-firmware-qca9984-ct
- CONFLICTS:=\
- ath10k-firmware-qca9984 \
- ath10k-firmware-qca9984-ct \
- ath10k-firmware-qca9984-ct-htt
- DEPENDS:=\
- +ath10k-board-qca9984 \
- +!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+ PROVIDES:=ath10k-firmware-qca9984
+ DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca9984-ct-htt
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9984
SECTION:=firmware
CATEGORY:=Firmware
- PROVIDES:=\
- ath10k-firmware-qca9984 \
- ath10k-firmware-qca9984-ct
- CONFLICTS:=\
- ath10k-firmware-qca9984 \
- ath10k-firmware-qca9984-ct
- DEPENDS:=\
- +ath10k-board-qca9984 \
- +!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+ PROVIDES:=ath10k-firmware-qca9984
+ DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca4019-ct
@@ -291,39 +330,22 @@ $(Package/ath10k-ct-firmware-default)
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca4019
- CONFLICTS:=ath10k-firmware-qca4019
- DEPENDS:=+ath10k-board-qca4019
endef
define Package/ath10k-firmware-qca4019-ct-full-htt
$(Package/ath10k-ct-firmware-default)
TITLE:=ath10k CT 10.4 full-htt-mgt for QCA4018/9
SECTION:=firmware
CATEGORY:=Firmware
- PROVIDES:=\
- ath10k-firmware-qca4019 \
- ath10k-firmware-qca4019-ct
- CONFLICTS:=\
- ath10k-firmware-qca4019 \
- ath10k-firmware-qca4019-ct \
- ath10k-firmware-qca4019-ct-htt
- DEPENDS:=\
- +ath10k-board-qca4019 \
- +!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+ PROVIDES:=ath10k-firmware-qca4019
+ DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca4019-ct-htt
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.4 htt-mgt for QCA4018/9
SECTION:=firmware
CATEGORY:=Firmware
- PROVIDES:=\
- ath10k-firmware-qca4019 \
- ath10k-firmware-qca4019-ct
- CONFLICTS:=\
- ath10k-firmware-qca4019 \
- ath10k-firmware-qca4019-ct
- DEPENDS:=\
- +ath10k-board-qca4019 \
- +!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+ PROVIDES:=ath10k-firmware-qca4019
+ DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca9888-ct
@@ -332,39 +354,22 @@ $(Package/ath10k-ct-firmware-default)
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca9888
- CONFLICTS:=ath10k-firmware-qca9888
- DEPENDS:=+ath10k-board-qca9888
endef
define Package/ath10k-firmware-qca9888-ct-full-htt
$(Package/ath10k-ct-firmware-default)
TITLE:=ath10k CT 10.4 full-htt-mgt fw for QCA9886/8
SECTION:=firmware
CATEGORY:=Firmware
- PROVIDES:=\
- ath10k-firmware-qca9888 \
- ath10k-firmware-qca9888-ct
- CONFLICTS:=\
- ath10k-firmware-qca9888 \
- ath10k-firmware-qca9888-ct \
- ath10k-firmware-qca9888-ct-htt
- DEPENDS:=\
- +ath10k-board-qca9888 \
- +!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+ PROVIDES:=ath10k-firmware-qca9888
+ DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca9888-ct-htt
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9886/8
SECTION:=firmware
CATEGORY:=Firmware
- PROVIDES:=\
- ath10k-firmware-qca9888 \
- ath10k-firmware-qca9888-ct
- CONFLICTS:=\
- ath10k-firmware-qca9888 \
- ath10k-firmware-qca9888-ct
- DEPENDS:=\
- +ath10k-board-qca9888 \
- +!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+ PROVIDES:=ath10k-firmware-qca9888
+ DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
endef
@@ -514,22 +519,34 @@ define Package/ath10k-firmware-qca9887-ct/install
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9887) \
$(1)/lib/firmware/ath10k/QCA9887/hw1.0/firmware-2.bin
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA9887_BOARD_FILE) \
+ $(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin
endef
define Package/ath10k-firmware-qca9887-ct-full-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9887) \
$(1)/lib/firmware/ath10k/QCA9887/hw1.0/ct-firmware-2.bin
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA9887_BOARD_FILE) \
+ $(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin
endef
define Package/ath10k-firmware-qca988x-ct/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA988X_BOARD_FILE) \
+ $(1)/lib/firmware/ath10k/QCA988X/hw2.0/board.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA988X) \
$(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin
endef
define Package/ath10k-firmware-qca988x-ct-full-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA988X_BOARD_FILE) \
+ $(1)/lib/firmware/ath10k/QCA988X/hw2.0/board.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA988X) \
$(1)/lib/firmware/ath10k/QCA988X/hw2.0/ct-firmware-2.bin
@@ -537,18 +554,36 @@ endef
define Package/ath10k-firmware-qca99x0-ct/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA99X0_BOARD2_FILE) \
+ $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA99X0_BOARD_FILE) \
+ $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA99X0) \
$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin
endef
define Package/ath10k-firmware-qca99x0-ct-full-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA99X0_BOARD2_FILE) \
+ $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA99X0_BOARD_FILE) \
+ $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA99X0) \
$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin
endef
define Package/ath10k-firmware-qca99x0-ct-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA99X0_BOARD2_FILE) \
+ $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA99X0_BOARD_FILE) \
+ $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA99X0) \
$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin
@@ -556,18 +591,27 @@ endef
define Package/ath10k-firmware-qca9984-ct/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA9984_BOARD2_FILE) \
+ $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9984) \
$(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin
endef
define Package/ath10k-firmware-qca9984-ct-full-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA9984_BOARD2_FILE) \
+ $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9984) \
$(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin
endef
define Package/ath10k-firmware-qca9984-ct-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA9984_BOARD2_FILE) \
+ $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9984) \
$(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin
@@ -575,18 +619,27 @@ endef
define Package/ath10k-firmware-qca4019-ct/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA4019_BOARD2_FILE) \
+ $(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA4019) \
$(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin
endef
define Package/ath10k-firmware-qca4019-ct-full-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA4019_BOARD2_FILE) \
+ $(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA4019) \
$(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin
endef
define Package/ath10k-firmware-qca4019-ct-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA4019_BOARD2_FILE) \
+ $(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA4019) \
$(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin
@@ -597,6 +650,9 @@ define Package/ath10k-firmware-qca9888-ct/install
ln -s \
../../cal-pci-0000:01:00.0.bin \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA9888_BOARD2_FILE) \
+ $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9888) \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin
@@ -606,6 +662,9 @@ define Package/ath10k-firmware-qca9888-ct-full-htt/install
ln -s \
../../cal-pci-0000:01:00.0.bin \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA9888_BOARD2_FILE) \
+ $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9888) \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-firmware-5.bin
@@ -615,6 +674,9 @@ define Package/ath10k-firmware-qca9888-ct-htt/install
ln -s \
../../cal-pci-0000:01:00.0.bin \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
+ $(INSTALL_DATA) \
+ $(DL_DIR)/$(QCA9888_BOARD2_FILE) \
+ $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9888) \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-firmware-5.bin
--
2.25.1

View File

@@ -0,0 +1,442 @@
From fa286423687750affca29cb7f9233272105262e1 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Sat, 24 Oct 2020 17:00:54 +0200
Subject: [PATCH 22/25] mac80211: add TIP tweaks
Signed-off-by: John Crispin <john@phrozen.org>
---
.../files/lib/netifd/wireless/mac80211.sh | 194 +++++++++++++++++-
.../mac80211/files/lib/wifi/mac80211.sh | 6 -
.../patches/subsys/130-disable-fils.patch | 32 ---
.../mac80211/patches/subsys/800-oom.patch | 71 +++++++
4 files changed, 255 insertions(+), 48 deletions(-)
delete mode 100644 package/kernel/mac80211/patches/subsys/130-disable-fils.patch
create mode 100644 package/kernel/mac80211/patches/subsys/800-oom.patch
diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
index 6ca12084cf..bdf9fcb395 100644
--- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
+++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
@@ -56,6 +56,13 @@ drv_mac80211_init_device_config() {
short_gi_40 \
max_amsdu \
dsss_cck_40
+ config_add_int \
+ he_su_beamformer \
+ he_su_beamformee \
+ he_mu_beamformer \
+ he_bss_color \
+ he_spr_sr_control \
+ he_spr_non_srg_obss_pd_max_offset
}
drv_mac80211_init_iface_config() {
@@ -69,6 +76,7 @@ drv_mac80211_init_iface_config() {
config_add_int max_listen_int
config_add_int dtim_period
config_add_int start_disabled
+ config_add_int he_twt_required he_spr_sr_control
# mesh
config_add_string mesh_id
@@ -96,6 +104,77 @@ mac80211_add_capabilities() {
export -n -- "$__var=$__out"
}
+mac80211_add_he_capabilities() {
+ local __out= oifs
+
+ oifs="$IFS"
+ IFS=:
+ for capab in "$@"; do
+ set -- $capab
+ [ "$(($4))" -gt 0 ] || continue
+ [ "$(((0x$2) & $3))" -gt 0 ] || continue
+ append base_cfg "$1=1" "$N"
+ done
+ IFS="$oifs"
+}
+
+mac80211_get_seg0() {
+ local ht_mode="$1"
+ local seg0=0
+
+ case "$ht_mode" in
+ 40)
+ if [ $freq -gt 5950 ] && [ $freq -le 7115 ]; then
+ case "$(( ($channel / 4) % 2 ))" in
+ 1) seg0=$(($channel - 2));;
+ 0) seg0=$(($channel + 2));;
+ esac
+ elif [ $freq != 5935 ]; then
+ case "$(( ($channel / 4) % 2 ))" in
+ 1) seg0=$(($channel + 2));;
+ 0) seg0=$(($channel - 2));;
+ esac
+ fi
+ ;;
+ 80)
+ if [ $freq -gt 5950 ] && [ $freq -le 7115 ]; then
+ case "$(( ($channel / 4) % 4 ))" in
+ 0) seg0=$(($channel + 6));;
+ 1) seg0=$(($channel + 2));;
+ 2) seg0=$(($channel - 2));;
+ 3) seg0=$(($channel - 6));;
+ esac
+ elif [ $freq != 5935 ]; then
+ case "$(( ($channel / 4) % 4 ))" in
+ 1) seg0=$(($channel + 6));;
+ 2) seg0=$(($channel + 2));;
+ 3) seg0=$(($channel - 2));;
+ 0) seg0=$(($channel - 6));;
+ esac
+ fi
+ ;;
+ 160)
+ if [ $freq -gt 5950 ] && [ $freq -le 7115 ]; then
+ case "$channel" in
+ 1|5|9|13|17|21|25|29) seg0=15;;
+ 33|37|41|45|49|53|57|61) seg0=47;;
+ 65|69|73|77|81|85|89|93) seg0=79;;
+ 97|101|105|109|113|117|121|125) seg0=111;;
+ 129|133|137|141|145|149|153|157) seg0=143;;
+ 161|165|169|173|177|181|185|189) seg0=175;;
+ 193|197|201|205|209|213|217|221) seg0=207;;
+ esac
+ elif [ $freq != 5935 ]; then
+ case "$channel" in
+ 36|40|44|48|52|56|60|64) seg0=50;;
+ 100|104|108|112|116|120|124|128) seg0=114;;
+ esac
+ fi
+ ;;
+ esac
+ printf "$seg0"
+}
+
mac80211_hostapd_setup_base() {
local phy="$1"
@@ -333,20 +412,106 @@ mac80211_hostapd_setup_base() {
# 802.11ax
enable_ax=0
case "$htmode" in
- HE*) enable_ax=1 ;;
+ HE20) enable_ax=1
+ if [ $freq -gt 5950 ] && [ $freq -le 7115 ]; then
+ append base_cfg "op_class=131" "$N"
+ fi
+ ;;
+ HE40)
+ enable_ax=1
+ idx="$(mac80211_get_seg0 "40")"
+ if [ $freq -ge 5180 ] && [ $freq != 5935 ]; then
+ if [ $freq -gt 5950 ] && [ $freq -le 7115 ]; then
+ append base_cfg "op_class=132" "$N"
+ fi
+ append base_cfg "he_oper_chwidth=0" "$N"
+ append base_cfg "he_oper_centr_freq_seg0_idx=$idx" "$N"
+ fi
+ ;;
+ HE80)
+ enable_ax=1
+ idx="$(mac80211_get_seg0 "80")"
+ if [ $freq != 5935 ]; then
+ if [ $freq -gt 5950 ] && [ $freq -le 7115 ]; then
+ append base_cfg "op_class=133" "$N"
+ fi
+ append base_cfg "he_oper_chwidth=1" "$N"
+ append base_cfg "he_oper_centr_freq_seg0_idx=$idx" "$N"
+ fi
+ ;;
+ HE160)
+ enable_ax=1
+ idx="$(mac80211_get_seg0 "160")"
+ if [ $freq != 5935 ]; then
+ if [ $freq -gt 5950 ] && [ $freq -le 7115 ]; then
+ append base_cfg "op_class=134" "$N"
+ fi
+ append base_cfg "he_oper_chwidth=2" "$N"
+ append base_cfg "he_oper_centr_freq_seg0_idx=$idx" "$N"
+ fi
+ ;;
esac
if [ "$enable_ax" != "0" ]; then
+ json_get_vars \
+ he_su_beamformer:1 \
+ he_su_beamformee:0 \
+ he_mu_beamformer:1 \
+ he_twt_required:0 \
+ he_spr_sr_control:0 \
+ he_spr_non_srg_obss_pd_max_offset:1 \
+ he_bss_color:64
+
+
append base_cfg "ieee80211ax=1" "$N"
+ append base_cfg "he_bss_color=$he_bss_color" "$N"
[ "$hwmode" = "a" ] && {
append base_cfg "he_oper_chwidth=$vht_oper_chwidth" "$N"
append base_cfg "he_oper_centr_freq_seg0_idx=$vht_center_seg0" "$N"
}
+ he_phy_cap=$(iw phy "$phy" info | awk -F "[()]" '/HE PHY Capabilities/ { print $2 }' | head -1)
+ he_phy_cap=${he_phy_cap:2}
+ he_mac_cap=$(iw phy "$phy" info | awk -F "[()]" '/HE MAC Capabilities/ { print $2 }' | head -1)
+ he_mac_cap=${he_mac_cap:2}
+
+ mac80211_add_he_capabilities \
+ he_su_beamformer:${he_phy_cap:6:2}:0x80:$he_su_beamformer \
+ he_su_beamformee:${he_phy_cap:8:2}:0x1:$he_su_beamformee \
+ he_mu_beamformer:${he_phy_cap:8:2}:0x2:$he_mu_beamformer \
+ he_spr_sr_control:${he_phy_cap:14:2}:0x1:$he_spr_sr_control \
+ he_twt_required:${he_mac_cap:0:2}:0x6:$he_twt_required
+
+ [ "$he_spr_sr_control" != "0" ] && {
+ append base_cfg "he_spr_sr_control=$he_spr_sr_control" "$N"
+ append base_cfg "he_spr_non_srg_obss_pd_max_offset=$he_spr_non_srg_obss_pd_max_offset" "$N"
+ }
+
append base_cfg "he_default_pe_duration=4" "$N"
append base_cfg "he_rts_threshold=1023" "$N"
- append base_cfg "he_su_beamformer=1" "$N"
- append base_cfg "he_su_beamformee=1" "$N"
- append base_cfg "he_mu_beamformer=1023" "$N"
+ append base_cfg "he_mu_edca_qos_info_param_count=0" "$N"
+ append base_cfg "he_mu_edca_qos_info_q_ack=0" "$N"
+ append base_cfg "he_mu_edca_qos_info_queue_request=0" "$N"
+ append base_cfg "he_mu_edca_qos_info_txop_request=0" "$N"
+ append base_cfg "he_mu_edca_ac_be_aifsn=8" "$N"
+ append base_cfg "he_mu_edca_ac_be_aci=0" "$N"
+ append base_cfg "he_mu_edca_ac_be_ecwmin=9" "$N"
+ append base_cfg "he_mu_edca_ac_be_ecwmax=10" "$N"
+ append base_cfg "he_mu_edca_ac_be_timer=255" "$N"
+ append base_cfg "he_mu_edca_ac_bk_aifsn=15" "$N"
+ append base_cfg "he_mu_edca_ac_bk_aci=1" "$N"
+ append base_cfg "he_mu_edca_ac_bk_ecwmin=9" "$N"
+ append base_cfg "he_mu_edca_ac_bk_ecwmax=10" "$N"
+ append base_cfg "he_mu_edca_ac_bk_timer=255" "$N"
+ append base_cfg "he_mu_edca_ac_vi_ecwmin=5" "$N"
+ append base_cfg "he_mu_edca_ac_vi_ecwmax=7" "$N"
+ append base_cfg "he_mu_edca_ac_vi_aifsn=5" "$N"
+ append base_cfg "he_mu_edca_ac_vi_aci=2" "$N"
+ append base_cfg "he_mu_edca_ac_vi_timer=255" "$N"
+ append base_cfg "he_mu_edca_ac_vo_aifsn=5" "$N"
+ append base_cfg "he_mu_edca_ac_vo_aci=3" "$N"
+ append base_cfg "he_mu_edca_ac_vo_ecwmin=5" "$N"
+ append base_cfg "he_mu_edca_ac_vo_ecwmax=7" "$N"
+ append base_cfg "he_mu_edca_ac_vo_timer=255" "$N"
fi
hostapd_prepare_device_config "$hostapd_conf_file" nl80211
@@ -401,6 +566,7 @@ mac80211_get_addr() {
mac80211_generate_mac() {
local phy="$1"
+ local multiple_bssid="$2"
local id="${macidx:-0}"
local ref="$(cat /sys/class/ieee80211/${phy}/macaddress)"
@@ -425,6 +591,11 @@ mac80211_generate_mac() {
local oIFS="$IFS"; IFS=":"; set -- $ref; IFS="$oIFS"
+ [ "$multiple_bssid" -eq 1 ] && {
+ printf "02:%s:%s:%s:%s:%02x" $b1 $2 $3 $4 $5 $macidx
+ return
+ }
+
macidx=$(($id + 1))
[ "$((0x$mask1))" -gt 0 ] && {
b1="0x$1"
@@ -533,6 +704,7 @@ mac80211_iw_interface_add() {
}
mac80211_prepare_vif() {
+ local multiple_bssid=$1
json_select config
json_get_vars ifname mode ssid wds powersave macaddr enable wpa_psk_file vlan_file
@@ -546,7 +718,7 @@ mac80211_prepare_vif() {
json_select ..
[ -n "$macaddr" ] || {
- macaddr="$(mac80211_generate_mac $phy)"
+ macaddr="$(mac80211_generate_mac $phy $multiple_bssid)"
macidx="$(($macidx + 1))"
}
@@ -687,8 +859,9 @@ mac80211_setup_supplicant_noctl() {
mac80211_prepare_iw_htmode() {
case "$htmode" in
- VHT20|HT20) iw_htmode=HT20;;
- HT40*|VHT40|VHT160)
+ VHT20|HT20|HE20) iw_htmode=HT20;;
+ HT40*|VHT40|VHT160|\
+ HE40|HE40|HE160)
case "$hwmode" in
a)
case "$(( ($channel / 4) % 2 ))" in
@@ -712,7 +885,7 @@ mac80211_prepare_iw_htmode() {
esac
[ "$auto_channel" -gt 0 ] && iw_htmode="HT40+"
;;
- VHT80)
+ VHT80|HE80)
iw_htmode="80MHZ"
;;
NONE|NOHT)
@@ -896,7 +1069,8 @@ drv_mac80211_setup() {
country chanbw distance \
txpower antenna_gain \
rxantenna txantenna \
- frag rts beacon_int:100 htmode
+ frag rts beacon_int:100 htmode \
+ multiple_bssid:0
json_get_values basic_rate_list basic_rate
json_get_values scan_list scan_list
json_select ..
@@ -991,7 +1165,7 @@ drv_mac80211_setup() {
mac80211_prepare_iw_htmode
for_each_interface "sta adhoc mesh monitor" mac80211_prepare_vif
NEWAPLIST=
- for_each_interface "ap" mac80211_prepare_vif
+ for_each_interface "ap" mac80211_prepare_vif ${multiple_bssid}
NEW_MD5=$(test -e "${hostapd_conf_file}" && md5sum ${hostapd_conf_file})
OLD_MD5=$(uci -q -P /var/state get wireless._${phy}.md5)
if [ "${NEWAPLIST}" != "${OLDAPLIST}" ]; then
diff --git a/package/kernel/mac80211/files/lib/wifi/mac80211.sh b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
index c0fbfbe5a8..453ac7d847 100644
--- a/package/kernel/mac80211/files/lib/wifi/mac80211.sh
+++ b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
@@ -106,12 +106,6 @@ detect_mac80211() {
${ht_capab}
set wireless.radio${devidx}.disabled=1
- set wireless.default_radio${devidx}=wifi-iface
- set wireless.default_radio${devidx}.device=radio${devidx}
- set wireless.default_radio${devidx}.network=lan
- set wireless.default_radio${devidx}.mode=ap
- set wireless.default_radio${devidx}.ssid=OpenWrt
- set wireless.default_radio${devidx}.encryption=none
EOF
uci -q commit wireless
diff --git a/package/kernel/mac80211/patches/subsys/130-disable-fils.patch b/package/kernel/mac80211/patches/subsys/130-disable-fils.patch
deleted file mode 100644
index 9c6e971f9d..0000000000
--- a/package/kernel/mac80211/patches/subsys/130-disable-fils.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Disable FILS support, since it pulls in crypto hash support
-
---- a/net/mac80211/fils_aead.h
-+++ b/net/mac80211/fils_aead.h
-@@ -7,7 +7,7 @@
- #ifndef FILS_AEAD_H
- #define FILS_AEAD_H
-
--#if LINUX_VERSION_IS_GEQ(4,3,0)
-+#if 0 /* LINUX_VERSION_IS_GEQ(4,3,0) */
- int fils_encrypt_assoc_req(struct sk_buff *skb,
- struct ieee80211_mgd_assoc_data *assoc_data);
- int fils_decrypt_assoc_resp(struct ieee80211_sub_if_data *sdata,
---- a/net/mac80211/fils_aead.c
-+++ b/net/mac80211/fils_aead.c
-@@ -1,4 +1,4 @@
--#if LINUX_VERSION_IS_GEQ(4,3,0)
-+#if 0 /* LINUX_VERSION_IS_GEQ(4,3,0) */
- // SPDX-License-Identifier: GPL-2.0-only
- /*
- * FILS AEAD for (Re)Association Request/Response frames
---- a/net/mac80211/main.c
-+++ b/net/mac80211/main.c
-@@ -591,7 +591,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
- NL80211_FEATURE_MAC_ON_CREATE |
- NL80211_FEATURE_USERSPACE_MPM |
- NL80211_FEATURE_FULL_AP_CLIENT_STATE;
--#if LINUX_VERSION_IS_GEQ(4,3,0)
-+#if 0 /* LINUX_VERSION_IS_GEQ(4,3,0) */
- wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_FILS_STA);
- #endif
- wiphy_ext_feature_set(wiphy,
diff --git a/package/kernel/mac80211/patches/subsys/800-oom.patch b/package/kernel/mac80211/patches/subsys/800-oom.patch
new file mode 100644
index 0000000000..401a8bf324
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/800-oom.patch
@@ -0,0 +1,71 @@
+From a8295e2c06e1aa313b4624df9dedf599df382eef Mon Sep 17 00:00:00 2001
+From: Ben Greear <greearb@candelatech.com>
+Date: Thu, 9 May 2013 11:56:22 -0700
+Subject: mac80211: Limit number of pending skbs.
+
+Current code will allow any number of pending skbs, and
+this can OOM the system when used with something like
+the pktgen tool (which may not back off properly if
+queue is stopped).
+
+Possibly this is just a bug in our version of pktgen,
+but either way, it seems reasonable to add a limit
+so that it is not possible to go OOM in this manner.
+
+Signed-off-by: Ben Greear <greearb@candelatech.com>
+
+diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
+index 3529d1368068..5eb60a50641e 100644
+--- a/net/mac80211/tx.c
++++ b/net/mac80211/tx.c
+@@ -35,6 +35,17 @@
+ #include "wpa.h"
+ #include "wme.h"
+ #include "rate.h"
++#include <linux/moduleparam.h>
++
++/*
++ * Maximum number of skbs that may be queued in a pending
++ * queue. After that, packets will just be dropped.
++ */
++static int max_pending_qsize = 1000;
++module_param(max_pending_qsize, int, 0644);
++MODULE_PARM_DESC(max_pending_qsize,
++ "Maximum number of skbs that may be queued in a pending queue.");
++
+
+ /* misc utils */
+
+@@ -1671,15 +1682,28 @@ static bool ieee80211_tx_frags(struct ieee80211_local *local,
+ * later transmission from the tx-pending
+ * tasklet when the queue is woken again.
+ */
+- if (txpending)
++ bool do_free = false;
++ if (txpending) {
+ skb_queue_splice_init(skbs,
+ &local->pending[q]);
+- else
+- skb_queue_splice_tail_init(skbs,
+- &local->pending[q]);
++ } else {
++ u32 len = skb_queue_len(&local->pending[q]);
++ if (len >= max_pending_qsize) {
++ __skb_unlink(skb, skbs);
++ do_free = true;
++ } else {
++ skb_queue_splice_tail_init(skbs,
++ &local->pending[q]);
++ }
++ }
+
+ spin_unlock_irqrestore(&local->queue_stop_reason_lock,
+ flags);
++ if (do_free) {
++ dev_kfree_skb_any(skb);
++ /* TODO: Add counter for this */
++ }
++
+ return false;
+ }
+ }
--
2.25.1

View File

@@ -0,0 +1,421 @@
From cccf9b028416f41e401166cfa23ef5714ae9f606 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Wed, 2 Dec 2020 08:49:34 +0100
Subject: [PATCH 23/25] hostapd: add the TIP tweaks
Signed-off-by: John Crispin <john@phrozen.org>
---
package/network/services/hostapd/Makefile | 2 +-
.../hostapd/files/hostapd-full.config | 4 +-
.../network/services/hostapd/files/hostapd.sh | 126 +++++++++++++++---
.../network/services/hostapd/files/wpad.init | 4 +-
..._request-ignore-when-rssi-is-too-low.patch | 68 ++++++++++
5 files changed, 177 insertions(+), 27 deletions(-)
create mode 100644 package/network/services/hostapd/patches/800-probe_request-ignore-when-rssi-is-too-low.patch
diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile
index 1e20b56200..cec7e723b6 100644
--- a/package/network/services/hostapd/Makefile
+++ b/package/network/services/hostapd/Makefile
@@ -109,7 +109,7 @@ ifeq ($(SSL_VARIANT),openssl)
DRIVER_MAKEOPTS += CONFIG_AP=y CONFIG_MESH=y
endif
ifeq ($(LOCAL_VARIANT),full)
- DRIVER_MAKEOPTS += CONFIG_OWE=y CONFIG_SUITEB192=y CONFIG_AP=y CONFIG_MESH=y
+ DRIVER_MAKEOPTS += CONFIG_OWE=y CONFIG_SUITEB192=y CONFIG_AP=y CONFIG_MESH=y CONFIG_HS20=y CONFIG_INTERWORKING=y
endif
endif
diff --git a/package/network/services/hostapd/files/hostapd-full.config b/package/network/services/hostapd/files/hostapd-full.config
index df272e443a..b0a7e3f857 100644
--- a/package/network/services/hostapd/files/hostapd-full.config
+++ b/package/network/services/hostapd/files/hostapd-full.config
@@ -371,9 +371,9 @@ CONFIG_INTERWORKING=y
CONFIG_TAXONOMY=y
# Fast Initial Link Setup (FILS) (IEEE 802.11ai)
-#CONFIG_FILS=y
+CONFIG_FILS=y
# FILS shared key authentication with PFS
-#CONFIG_FILS_SK_PFS=y
+CONFIG_FILS_SK_PFS=y
# Include internal line edit mode in hostapd_cli. This can be used to provide
# limited command line editing and history support.
diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh
index a41254d6db..b64dea549c 100644
--- a/package/network/services/hostapd/files/hostapd.sh
+++ b/package/network/services/hostapd/files/hostapd.sh
@@ -45,6 +45,7 @@ hostapd_append_wpa_key_mgmt() {
append wpa_key_mgmt "WPA-$auth_type_l"
[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-${auth_type_l}"
[ "${ieee80211w:-0}" -gt 0 ] && append wpa_key_mgmt "WPA-${auth_type_l}-SHA256"
+ [ "${ieee80211ai:-0}" -gt 0 ] && append wpa_key_mgmt "FILS-SHA256"
;;
eap192)
append wpa_key_mgmt "WPA-EAP-SUITE-B-192"
@@ -104,6 +105,7 @@ hostapd_common_add_device_config() {
config_add_array hostapd_options
config_add_int airtime_mode
+ config_add_boolean multiple_bssid rnr_beacon he_co_locate ema
hostapd_add_log_config
}
@@ -116,7 +118,8 @@ hostapd_prepare_device_config() {
local base_cfg=
json_get_vars country country_ie beacon_int:100 dtim_period:2 doth require_mode legacy_rates \
- acs_chan_bias local_pwr_constraint spectrum_mgmt_required airtime_mode cell_density
+ acs_chan_bias local_pwr_constraint spectrum_mgmt_required airtime_mode cell_density \
+ multiple_bssid he_co_locate rnr_beacon ema
hostapd_set_log_options base_cfg
@@ -126,7 +129,11 @@ hostapd_prepare_device_config() {
set_default legacy_rates 1
set_default airtime_mode 0
set_default cell_density 0
-
+ set_default multiple_bssid 0
+ set_default rnr_beacon 0
+ set_default he_co_locate 0
+ set_default ema 0
+
[ -n "$country" ] && {
append base_cfg "country_code=$country" "$N"
@@ -212,6 +219,10 @@ hostapd_prepare_device_config() {
append base_cfg "beacon_int=$beacon_int" "$N"
append base_cfg "dtim_period=$dtim_period" "$N"
[ "$airtime_mode" -gt 0 ] && append base_cfg "airtime_mode=$airtime_mode" "$N"
+ [ "$multiple_bssid" -gt 0 ] && append base_cfg "multiple_bssid=$multiple_bssid" "$N"
+ [ "$rnr_beacon" -gt 0 ] && append base_cfg "rnr_beacon=$rnr_beacon" "$N"
+ [ "$ema" -gt 0 ] && append base_cfg "ema=$ema" "$N"
+ [ "$he_co_locate" -gt 0 ] && append base_cfg "he_co_locate=$he_co_locate" "$N"
json_get_values opts hostapd_options
for val in $opts; do
@@ -241,6 +252,7 @@ hostapd_common_add_bss_config() {
config_add_boolean rsn_preauth auth_cache
config_add_int ieee80211w
+ config_add_int ieee80211ai
config_add_int eapol_version
config_add_string 'auth_server:host' 'server:host'
@@ -318,6 +330,10 @@ hostapd_common_add_bss_config() {
config_add_string iw_hessid iw_network_auth_type iw_qos_map_set
config_add_array iw_roaming_consortium iw_domain_name iw_anqp_3gpp_cell_net iw_nai_realm
config_add_array iw_anqp_elem
+
+ config_add_int beacon_rate
+ config_add_int rssi_reject_assoc_rssi
+ config_add_int rssi_ignore_probe_request
config_add_boolean hs20 disable_dgaf osen
config_add_int anqp_domain_id
@@ -326,10 +342,21 @@ hostapd_common_add_bss_config() {
config_add_array osu_provider
config_add_array operator_icon
config_add_array hs20_conn_capab
+ config_add_array roaming_consortium
+ config_add_array venue_name
+ config_add_array venue_url
+ config_add_array nai_realm
config_add_string osu_ssid hs20_wan_metrics hs20_operating_class hs20_t_c_filename hs20_t_c_timestamp
+ config_add_boolean interworking internet
+ config_add_int access_network_type asra esr uesa venue_group venue_type ipaddr_type_availability \
+ gas_address3
+ config_add_string hessid network_auth_type \
+ anqp_3gpp_cell_net anqp_elem domain_name qos_map_set hs20_t_c_server_url
+
config_add_array airtime_sta_weight
config_add_int airtime_bss_weight airtime_bss_limit
+ config_add_int rts_threshold
}
hostapd_set_vlan_file() {
@@ -393,12 +420,28 @@ append_iw_nai_realm() {
[ -n "$1" ] && append bss_conf "nai_realm=$1" "$N"
}
+append_roaming_consortium() {
+ [ -n "$1" ] && append bss_conf "roaming_consortium=$1" "$N"
+}
+
+append_venue_name() {
+ [ -n "$1" ] && append bss_conf "venue_name=$1" "$N"
+}
+
+append_venue_url() {
+ [ -n "$1" ] && append bss_conf "venue_url=$1" "$N"
+}
+
+append_nai_realm() {
+ [ -n "$1" ] && append bss_conf "nai_realm=$1" "$N"
+}
+
append_hs20_oper_friendly_name() {
- append bss_conf "hs20_oper_friendly_name=$1" "$N"
+ [ -n "$1" ] && append bss_conf "hs20_oper_friendly_name=$1" "$N"
}
append_osu_provider_service_desc() {
- append bss_conf "osu_service_desc=$1" "$N"
+ [ -n "$1" ] && append bss_conf "osu_service_desc=$1" "$N"
}
append_hs20_icon() {
@@ -418,15 +461,15 @@ append_hs20_icons() {
}
append_operator_icon() {
- append bss_conf "operator_icon=$1" "$N"
+ [ -n "$1" ] && append bss_conf "operator_icon=$1" "$N"
}
append_osu_icon() {
- append bss_conf "osu_icon=$1" "$N"
+ [ -n "$1" ] && append bss_conf "osu_icon=$1" "$N"
}
append_osu_provider() {
- local cfgtype osu_server_uri osu_friendly_name osu_nai osu_nai2 osu_method_list
+ local cfgtype osu_server_uri osu_nai osu_nai2 osu_method_list
config_load wireless
config_get cfgtype "$1" TYPE
@@ -438,12 +481,13 @@ append_osu_provider() {
config_get osu_nai2 "$1" osu_nai2
config_get osu_method_list "$1" osu_method
- append bss_conf "osu_server_uri=$osu_server_uri" "$N"
- append bss_conf "osu_nai=$osu_nai" "$N"
- append bss_conf "osu_nai2=$osu_nai2" "$N"
- append bss_conf "osu_method_list=$osu_method_list" "$N"
+ [ -n "$osu_server_uri" ] append bss_conf "osu_server_uri=$osu_server_uri" "$N"
+ [ -n "$osu_nai" ] append bss_conf "osu_nai=$osu_nai" "$N"
+ [ -n "$osu_nai2" ] append bss_conf "osu_nai2=$osu_nai2" "$N"
+ [ -n "$osu_method_list" ] append bss_conf "osu_method_list=$osu_method_list" "$N"
config_list_foreach "$1" osu_service_desc append_osu_provider_service_desc
+ config_list_foreach "$1" osu_friendly_name append_osu_friendly_name
config_list_foreach "$1" osu_icon append_osu_icon
append bss_conf "$N"
@@ -474,11 +518,12 @@ hostapd_set_bss_options() {
wps_pushbutton wps_label ext_registrar wps_pbc_in_m1 wps_ap_setup_locked \
wps_independent wps_device_type wps_device_name wps_manufacturer wps_pin \
macfilter ssid utf8_ssid wmm uapsd hidden short_preamble rsn_preauth \
- iapp_interface eapol_version dynamic_vlan ieee80211w nasid \
+ iapp_interface eapol_version dynamic_vlan ieee80211w ieee80211ai nasid \
acct_server acct_secret acct_port acct_interval \
bss_load_update_period chan_util_avg_period sae_require_mfp \
multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key \
- airtime_bss_weight airtime_bss_limit airtime_sta_weight
+ airtime_bss_weight airtime_bss_limit airtime_sta_weight \
+ rssi_reject_assoc_rssi rssi_ignore_probe_request rts_threshold
set_default isolate 0
set_default maxassoc 0
@@ -498,6 +543,9 @@ hostapd_set_bss_options() {
set_default multi_ap 0
set_default airtime_bss_weight 0
set_default airtime_bss_limit 0
+ set_default rssi_reject_assoc_rssi 0
+ set_default rssi_ignore_probe_request 0
+ set_default rts_threshold -1
append bss_conf "ctrl_interface=/var/run/hostapd"
if [ "$isolate" -gt 0 ]; then
@@ -523,6 +571,9 @@ hostapd_set_bss_options() {
append bss_conf "uapsd_advertisement_enabled=$uapsd" "$N"
append bss_conf "utf8_ssid=$utf8_ssid" "$N"
append bss_conf "multi_ap=$multi_ap" "$N"
+ append bss_conf "rssi_reject_assoc_rssi=$rssi_reject_assoc_rssi" "$N"
+ append bss_conf "rssi_ignore_probe_request=$rssi_ignore_probe_request" "$N"
+ append bss_conf "rts_threshold=$rts_threshold" "$N"
[ "$tdls_prohibit" -gt 0 ] && append bss_conf "tdls_prohibit=$tdls_prohibit" "$N"
@@ -911,9 +962,17 @@ hostapd_set_bss_options() {
local hs20 disable_dgaf osen anqp_domain_id hs20_deauth_req_timeout \
- osu_ssid hs20_wan_metrics hs20_operating_class hs20_t_c_filename hs20_t_c_timestamp
+ osu_ssid hs20_wan_metrics hs20_operating_class hs20_t_c_filename hs20_t_c_timestamp \
+ interworking internet access_network_type asra esr uesa venue_group venue_type \
+ ipaddr_type_availability gas_address3 hessid \
+ network_auth_type anqp_3gpp_cell_net domain_name anqp_elem qos_map_set \
+ hs20_t_c_server_url
json_get_vars hs20 disable_dgaf osen anqp_domain_id hs20_deauth_req_timeout \
- osu_ssid hs20_wan_metrics hs20_operating_class hs20_t_c_filename hs20_t_c_timestamp
+ osu_ssid hs20_wan_metrics hs20_operating_class hs20_t_c_filename hs20_t_c_timestamp \
+ interworking internet access_network_type asra esr uesa venue_group venue_type \
+ ipaddr_type_availability gas_address3 hessid \
+ network_auth_type anqp_3gpp_cell_net domain_name anqp_elem qos_map_set \
+ hs20_t_c_server_url
set_default hs20 0
set_default disable_dgaf $hs20
@@ -923,19 +982,42 @@ hostapd_set_bss_options() {
if [ "$hs20" = "1" ]; then
append bss_conf "hs20=1" "$N"
append_hs20_icons
- append bss_conf "disable_dgaf=$disable_dgaf" "$N"
- append bss_conf "osen=$osen" "$N"
- append bss_conf "anqp_domain_id=$anqp_domain_id" "$N"
- append bss_conf "hs20_deauth_req_timeout=$hs20_deauth_req_timeout" "$N"
+ [ -n "$disable_dgaf"] && append bss_conf "disable_dgaf=$disable_dgaf" "$N"
+ [ -n "$osen"] && append bss_conf "osen=$osen" "$N"
+ [ -n "$anqp_domain_id"] && append bss_conf "anqp_domain_id=$anqp_domain_id" "$N"
+ [ -n "$hs20_deauth_req_timeout"] && append bss_conf "hs20_deauth_req_timeout=$hs20_deauth_req_timeout" "$N"
[ -n "$osu_ssid" ] && append bss_conf "osu_ssid=$osu_ssid" "$N"
[ -n "$hs20_wan_metrics" ] && append bss_conf "hs20_wan_metrics=$hs20_wan_metrics" "$N"
[ -n "$hs20_operating_class" ] && append bss_conf "hs20_operating_class=$hs20_operating_class" "$N"
[ -n "$hs20_t_c_filename" ] && append bss_conf "hs20_t_c_filename=$hs20_t_c_filename" "$N"
[ -n "$hs20_t_c_timestamp" ] && append bss_conf "hs20_t_c_timestamp=$hs20_t_c_timestamp" "$N"
+ json_for_each_item append_hs20_oper_friendly_name hs20_oper_friendly_name
+ json_for_each_item append_roaming_consortium roaming_consortium
+ json_for_each_item append_venue_name venue_name
+ json_for_each_item append_venue_url venue_url
+ json_for_each_item append_nai_realm nai_realm
json_for_each_item append_hs20_conn_capab hs20_conn_capab
json_for_each_item append_hs20_oper_friendly_name hs20_oper_friendly_name
json_for_each_item append_osu_provider osu_provider
json_for_each_item append_operator_icon operator_icon
+ [ -n "$interworking" ] && append bss_conf "interworking=$interworking" "$N"
+ [ -n "$internet" ] && append bss_conf "internet=$internet" "$N"
+ [ -n "$access_network_type" ] && append bss_conf "access_network_type=$access_network_type" "$N"
+ [ -n "$asra" ] && append bss_conf "asra=$asra" "$N"
+ [ -n "$esr" ] && append bss_conf "esr=$esr" "$N"
+ [ -n "$uesa" ] && append bss_conf "uesa=$uesa" "$N"
+ [ -n "$venue_group" ] && append bss_conf "venue_group=$venue_group" "$N"
+ [ -n "$venue_type" ] && append bss_conf "venue_type=$venue_type" "$N"
+ [ -n "$ipaddr_type_availability" ] && append bss_conf "ipaddr_type_availability=$ipaddr_type_availability" "$N"
+ [ -n "$gas_address3" ] && append bss_conf "gas_address3=$gas_address3" "$N"
+ [ -n "$hessid" ] && append bss_conf "hessid=$hessid" "$N"
+ [ -n "$network_auth_type" ] && append bss_conf "network_auth_type=$network_auth_type" "$N"
+ [ -n "$anqp_3gpp_cell_net" ] && append bss_conf "anqp_3gpp_cell_net=$anqp_3gpp_cell_net" "$N"
+ [ -n "$nai_realm" ] && append bss_conf "nai_realm=$nai_realm" "$N"
+ [ -n "$anqp_elem" ] && append bss_conf "anqp_elem=$anqp_elem" "$N"
+ [ -n "$qos_map_set" ] && append bss_conf "qos_map_set=$qos_map_set" "$N"
+ [ -n "$domain_name" ] && append bss_conf "domain_name=$domain_name" "$N"
+ [ -n "$hs20_t_c_server_url" ] && append bss_conf "hs20_t_c_server_url=$hs20_t_c_server_url" "$N"
fi
bss_md5sum=$(echo $bss_conf | md5sum | cut -d" " -f1)
@@ -1058,9 +1140,9 @@ wpa_supplicant_set_fixed_freq() {
VHT*) append network_data "vht=1" "$N$T";;
esac
case "$htmode" in
- VHT80) append network_data "max_oper_chwidth=1" "$N$T";;
- VHT160) append network_data "max_oper_chwidth=2" "$N$T";;
- VHT20|VHT40) append network_data "max_oper_chwidth=0" "$N$T";;
+ VHT80|HE80) append network_data "max_oper_chwidth=1" "$N$T";;
+ VHT160|HE160) append network_data "max_oper_chwidth=2" "$N$T";;
+ VHT20|HE20|VHT40|HE40) append network_data "max_oper_chwidth=0" "$N$T";;
*) append network_data "disable_vht=1" "$N$T";;
esac
}
diff --git a/package/network/services/hostapd/files/wpad.init b/package/network/services/hostapd/files/wpad.init
index 3198e9801f..e2cd380cb5 100644
--- a/package/network/services/hostapd/files/wpad.init
+++ b/package/network/services/hostapd/files/wpad.init
@@ -11,7 +11,7 @@ start_service() {
mkdir -p /var/run/hostapd
procd_open_instance hostapd
procd_set_param command /usr/sbin/hostapd -s -g /var/run/hostapd/global
- procd_set_param respawn
+ procd_set_param respawn 3600 5 0
procd_close_instance
fi
@@ -19,7 +19,7 @@ start_service() {
mkdir -p /var/run/wpa_supplicant
procd_open_instance supplicant
procd_set_param command /usr/sbin/wpa_supplicant -n -s -g /var/run/wpa_supplicant/global
- procd_set_param respawn
+ procd_set_param respawn 3600 5 0
procd_close_instance
fi
}
diff --git a/package/network/services/hostapd/patches/800-probe_request-ignore-when-rssi-is-too-low.patch b/package/network/services/hostapd/patches/800-probe_request-ignore-when-rssi-is-too-low.patch
new file mode 100644
index 0000000000..182a3bb866
--- /dev/null
+++ b/package/network/services/hostapd/patches/800-probe_request-ignore-when-rssi-is-too-low.patch
@@ -0,0 +1,68 @@
+From e15b04870a7d7517a9b129d8d5cbebe6b8a25cb8 Mon Sep 17 00:00:00 2001
+From: John Crispin <john@phrozen.org>
+Date: Wed, 29 Jul 2020 17:38:15 +0200
+Subject: [PATCH 1/2] probe_request: ignore when rssi is too low
+
+Signed-off-by: John Crispin <john@phrozen.org>
+---
+ hostapd/config_file.c | 2 ++
+ src/ap/ap_config.c | 1 +
+ src/ap/ap_config.h | 1 +
+ src/ap/beacon.c | 4 ++++
+ 4 files changed, 8 insertions(+)
+
+diff --git a/hostapd/config_file.c b/hostapd/config_file.c
+index 13396aad2..e0b182c8e 100644
+--- a/hostapd/config_file.c
++++ b/hostapd/config_file.c
+@@ -4454,6 +4454,8 @@ static int hostapd_config_fill(struct hostapd_config *conf,
+ conf->rssi_reject_assoc_rssi = atoi(pos);
+ } else if (os_strcmp(buf, "rssi_reject_assoc_timeout") == 0) {
+ conf->rssi_reject_assoc_timeout = atoi(pos);
++ } else if (os_strcmp(buf, "rssi_ignore_probe_request") == 0) {
++ conf->rssi_ignore_probe_request = atoi(pos);
+ } else if (os_strcmp(buf, "pbss") == 0) {
+ bss->pbss = atoi(pos);
+ } else if (os_strcmp(buf, "transition_disable") == 0) {
+diff --git a/src/ap/ap_config.c b/src/ap/ap_config.c
+index 56a4ac388..088bb831a 100644
+--- a/src/ap/ap_config.c
++++ b/src/ap/ap_config.c
+@@ -277,6 +277,7 @@ struct hostapd_config * hostapd_config_defaults(void)
+
+ conf->rssi_reject_assoc_rssi = 0;
+ conf->rssi_reject_assoc_timeout = 30;
++ conf->rssi_ignore_probe_request = 0;
+
+ #ifdef CONFIG_AIRTIME_POLICY
+ conf->airtime_update_interval = AIRTIME_DEFAULT_UPDATE_INTERVAL;
+diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
+index 7fe418363..a69a8d324 100644
+--- a/src/ap/ap_config.h
++++ b/src/ap/ap_config.h
+@@ -1042,6 +1042,7 @@ struct hostapd_config {
+
+ int rssi_reject_assoc_rssi;
+ int rssi_reject_assoc_timeout;
++ int rssi_ignore_probe_request;
+
+ #ifdef CONFIG_AIRTIME_POLICY
+ enum {
+diff --git a/src/ap/beacon.c b/src/ap/beacon.c
+index ffb2e04d1..21fe04c2f 100644
+--- a/src/ap/beacon.c
++++ b/src/ap/beacon.c
+@@ -829,6 +829,10 @@ void handle_probe_req(struct hostapd_data *hapd,
+ struct radius_sta rad_info;
+ struct hostapd_data *resp_bss = hapd;
+
++ if (hapd->iconf->rssi_ignore_probe_request && ssi_signal &&
++ ssi_signal < hapd->iconf->rssi_ignore_probe_request)
++ return;
++
+ if (len < IEEE80211_HDRLEN)
+ return;
+ ie = ((const u8 *) mgmt) + IEEE80211_HDRLEN;
+--
+2.25.1
+
--
2.25.1

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,132 @@
From 702b5980dbc17b4a097bd904ba615b7d34332808 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Mon, 9 Nov 2020 07:41:56 +0100
Subject: [PATCH 25/25] bluetooth: add tweak required for TIP
These are pending patches for OpenWrt HEAD to make bluetooth work.
Signed-off-by: John Crispin <john@phrozen.org>
---
package/kernel/linux/modules/other.mk | 14 +++-
.../generic/hack-5.4/280-rfkill-stubs.patch | 84 -------------------
2 files changed, 10 insertions(+), 88 deletions(-)
delete mode 100644 target/linux/generic/hack-5.4/280-rfkill-stubs.patch
diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk
index c6952c812f..226895194b 100644
--- a/package/kernel/linux/modules/other.mk
+++ b/package/kernel/linux/modules/other.mk
@@ -14,10 +14,16 @@ define KernelPackage/6lowpan
SUBMENU:=$(OTHER_MENU)
TITLE:=6LoWPAN shared code
KCONFIG:= \
- CONFIG_6LOWPAN \
- CONFIG_6LOWPAN_NHC=n
- FILES:=$(LINUX_DIR)/net/6lowpan/6lowpan.ko
- AUTOLOAD:=$(call AutoProbe,6lowpan)
+ CONFIG_6LOWPAN
+ FILES:=$(LINUX_DIR)/net/6lowpan/6lowpan.ko \
+ $(LINUX_DIR)/net/6lowpan/nhc_dest.ko \
+ $(LINUX_DIR)/net/6lowpan/nhc_fragment.ko \
+ $(LINUX_DIR)/net/6lowpan/nhc_hop.ko \
+ $(LINUX_DIR)/net/6lowpan/nhc_ipv6.ko \
+ $(LINUX_DIR)/net/6lowpan/nhc_mobility.ko \
+ $(LINUX_DIR)/net/6lowpan/nhc_routing.ko \
+ $(LINUX_DIR)/net/6lowpan/nhc_udp.ko
+AUTOLOAD:=$(call AutoProbe,6lowpan nhc_dest nhc_fragment nhc_hop nhc_ipv6 nhc_mobility nhc_routing nhc_udp)
endef
define KernelPackage/6lowpan/description
diff --git a/target/linux/generic/hack-5.4/280-rfkill-stubs.patch b/target/linux/generic/hack-5.4/280-rfkill-stubs.patch
deleted file mode 100644
index 2e48aea1cf..0000000000
--- a/target/linux/generic/hack-5.4/280-rfkill-stubs.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 236c1acdfef5958010ac9814a9872e0a46fd78ee Mon Sep 17 00:00:00 2001
-From: John Crispin <john@phrozen.org>
-Date: Fri, 7 Jul 2017 17:13:44 +0200
-Subject: rfkill: add fake rfkill support
-
-allow building of modules depending on RFKILL even if RFKILL is not enabled.
-
-Signed-off-by: John Crispin <john@phrozen.org>
----
- include/linux/rfkill.h | 2 +-
- net/Makefile | 2 +-
- net/rfkill/Kconfig | 14 +++++++++-----
- net/rfkill/Makefile | 2 +-
- 4 files changed, 12 insertions(+), 8 deletions(-)
-
---- a/include/linux/rfkill.h
-+++ b/include/linux/rfkill.h
-@@ -64,7 +64,7 @@ struct rfkill_ops {
- int (*set_block)(void *data, bool blocked);
- };
-
--#if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE)
-+#if defined(CONFIG_RFKILL_FULL) || defined(CONFIG_RFKILL_FULL_MODULE)
- /**
- * rfkill_alloc - Allocate rfkill structure
- * @name: name of the struct -- the string is not copied internally
---- a/net/Makefile
-+++ b/net/Makefile
-@@ -53,7 +53,7 @@ obj-$(CONFIG_TIPC) += tipc/
- obj-$(CONFIG_NETLABEL) += netlabel/
- obj-$(CONFIG_IUCV) += iucv/
- obj-$(CONFIG_SMC) += smc/
--obj-$(CONFIG_RFKILL) += rfkill/
-+obj-$(CONFIG_RFKILL_FULL) += rfkill/
- obj-$(CONFIG_NET_9P) += 9p/
- obj-$(CONFIG_CAIF) += caif/
- ifneq ($(CONFIG_DCB),)
---- a/net/rfkill/Kconfig
-+++ b/net/rfkill/Kconfig
-@@ -2,7 +2,11 @@
- #
- # RF switch subsystem configuration
- #
--menuconfig RFKILL
-+config RFKILL
-+ bool
-+ default y
-+
-+menuconfig RFKILL_FULL
- tristate "RF switch subsystem support"
- help
- Say Y here if you want to have control over RF switches
-@@ -14,19 +18,19 @@ menuconfig RFKILL
- # LED trigger support
- config RFKILL_LEDS
- bool
-- depends on RFKILL
-+ depends on RFKILL_FULL
- depends on LEDS_TRIGGERS = y || RFKILL = LEDS_TRIGGERS
- default y
-
- config RFKILL_INPUT
- bool "RF switch input support" if EXPERT
-- depends on RFKILL
-+ depends on RFKILL_FULL
- depends on INPUT = y || RFKILL = INPUT
- default y if !EXPERT
-
- config RFKILL_GPIO
- tristate "GPIO RFKILL driver"
-- depends on RFKILL
-+ depends on RFKILL_FULL
- depends on GPIOLIB || COMPILE_TEST
- default n
- help
---- a/net/rfkill/Makefile
-+++ b/net/rfkill/Makefile
-@@ -5,5 +5,5 @@
-
- rfkill-y += core.o
- rfkill-$(CONFIG_RFKILL_INPUT) += input.o
--obj-$(CONFIG_RFKILL) += rfkill.o
-+obj-$(CONFIG_RFKILL_FULL) += rfkill.o
- obj-$(CONFIG_RFKILL_GPIO) += rfkill-gpio.o
--
2.25.1

View File

@@ -0,0 +1,39 @@
From da8f5d0260f1a4274ddad4266bddc3839e77401e Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Wed, 2 Dec 2020 12:11:33 +0100
Subject: [PATCH] Revert "ipq40xx: enable RX hash / CTAG TX offloading for
single-phy"
This reverts commit e73d866c6fc7dfad2fb7dd87345c90029bbda59d.
---
.../drivers/net/ethernet/qualcomm/essedma/edma_axi.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma_axi.c b/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
index 49ee31a1bd..50335b0d14 100644
--- a/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
+++ b/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
@@ -978,20 +978,11 @@ static int edma_axi_probe(struct platform_device *pdev)
edma_netdev[i]->wanted_features = NETIF_F_HW_CSUM | NETIF_F_SG |
NETIF_F_TSO | NETIF_F_GRO;
- if (of_property_read_bool(np, "qcom,single-phy") && edma_cinfo->num_gmac == 1)
- edma_netdev[i]->features |= NETIF_F_HW_VLAN_CTAG_TX;
-
#ifdef CONFIG_RFS_ACCEL
edma_netdev[i]->features |= NETIF_F_NTUPLE;
edma_netdev[i]->hw_features |= NETIF_F_NTUPLE;
edma_netdev[i]->vlan_features |= NETIF_F_NTUPLE;
edma_netdev[i]->wanted_features |= NETIF_F_NTUPLE;
- if (of_property_read_bool(np, "qcom,single-phy") && edma_cinfo->num_gmac == 1) {
- edma_netdev[i]->features |= NETIF_F_RXHASH;
- edma_netdev[i]->hw_features |= NETIF_F_RXHASH;
- edma_netdev[i]->vlan_features |= NETIF_F_RXHASH;
- edma_netdev[i]->wanted_features |= NETIF_F_RXHASH;
- }
#endif
edma_set_ethtool_ops(edma_netdev[i]);
--
2.25.1

7
profiles-20.x/ap2220.yml Normal file
View File

@@ -0,0 +1,7 @@
---
profile: tp-link_ap2220
target: ipq40xx
subtarget: generic
description: Build image for the TP-Link AP2220
include:
- wifi

View File

@@ -0,0 +1,17 @@
---
description: Add the bluetooth dependencies
feeds:
- name: bluetooth
path: ../../feeds/bluetooth
packages:
- kmod-bluetooth=y
- kmod-bluetooth-6lowpan=y
- kmod-rfkill=y
- bluez-daemon=y
- bluez-ibeacon=y
- bluetooth-6lowpand=y
- ubtled=y
diffconfig: |
CONFIG_USE_RFKILL=y

View File

@@ -0,0 +1,5 @@
---
description: Add the container dependencies
feeds:
- name: container
path: ../../feeds/container

12
profiles-20.x/cypress.yml Normal file
View File

@@ -0,0 +1,12 @@
---
profile: qcom_cp01_c1
target: ipq807x
subtarget: ipq60xx
description: Build image for the QualComm Cypress
_packages:
- opensync-tip
feeds:
- name: ipq807x
path: ../../feeds/ipq807x
include:
- wifi-ax

View File

@@ -0,0 +1,7 @@
---
profile: d-link_dgs-1210-10p
target: realtek
subtarget: generic
description: Build image for the D-Link DGS1210-10P
include:
- realtek

View File

@@ -0,0 +1,7 @@
---
profile: d-link_dgs-1210-16
target: realtek
subtarget: generic
description: Build image for the D-Link DGS1210-16
include:
- realtek

7
profiles-20.x/ea8300.yml Normal file
View File

@@ -0,0 +1,7 @@
---
profile: linksys_ea8300
target: ipq40xx
subtarget: generic
description: Build image for the Linksys EA8300
include:
- wifi

10
profiles-20.x/eap101.yml Normal file
View File

@@ -0,0 +1,10 @@
---
profile: edgecore_eap101
target: ipq807x
subtarget: ipq60xx
description: Build image for the EdgeCore EAP101
feeds:
- name: ipq807x
path: ../../feeds/ipq807x
include:
- wifi-ax

10
profiles-20.x/eap102.yml Normal file
View File

@@ -0,0 +1,10 @@
---
profile: edgecore_eap102
target: ipq807x
subtarget: ipq807x
description: Build image for the Edgecore EAP102
feeds:
- name: ipq807x
path: ../../feeds/ipq807x
include:
- wifi-ax

7
profiles-20.x/ec420.yml Normal file
View File

@@ -0,0 +1,7 @@
---
profile: tp-link_ec420_g1
target: ipq40xx
subtarget: generic
description: Build image for the TP-Link EC420 G1
include:
- wifi

View File

@@ -0,0 +1,7 @@
---
profile: edgecore_ecw5211
target: ipq40xx
subtarget: generic
description: Build image for the Edgecore ECW5211
include:
- wifi

View File

@@ -0,0 +1,7 @@
---
profile: edgecore_ecw5410
target: ipq806x
subtarget: generic
description: Build image for the Edgecore ECW5410
include:
- wifi

View File

@@ -0,0 +1,7 @@
---
profile: netgear_gs110tpp-v1
target: realtek
subtarget: generic
description: Build image for the D-Link DGS1210-10P
include:
- realtek

10
profiles-20.x/hawkeye.yml Normal file
View File

@@ -0,0 +1,10 @@
---
profile: qcom_hk01
target: ipq807x
subtarget: ipq807x
description: Build image for the QualCom Hawkeye
feeds:
- name: ipq807x
path: ../../feeds/ipq807x
include:
- wifi-ax

View File

@@ -0,0 +1,9 @@
---
profile: mediatek_mt7622-rfb1
target: mediatek
subtarget: mt7622
description: Build image for the MediaTek MT7622 revkit
packages:
- kmod-mt7915e
- kmod-btmtkuart
- mt7622bt-firmware

10
profiles-20.x/pine.yml Normal file
View File

@@ -0,0 +1,10 @@
---
profile: qcom_hk14
target: ipq807x
subtarget: ipq807x
description: Build image for the QualCom Pine
feeds:
- name: ipq807x
path: ../../feeds/ipq807x
include:
- wifi-ax

View File

@@ -0,0 +1,8 @@
---
description: Add the realtek dependencies
feeds:
- name: realtek
path: ../../feeds/realtek
packages:
- rtl83xx-poe=y

10
profiles-20.x/wallaby.yml Normal file
View File

@@ -0,0 +1,10 @@
---
profile: sercomm_wallaby
target: ipq807x
subtarget: ipq807x
description: Build image for the Sercomm Wallaby
feeds:
- name: ipq807x
path: ../../feeds/ipq807x
include:
- wifi-ax

16
profiles-20.x/webui.yml Normal file
View File

@@ -0,0 +1,16 @@
---
description: Add the webui dependencies
packages:
- cgi-io
- liblucihttp
- lua
- luci-base
- luci-mod-simple
- luci-theme-tip
- rpcd
- rpcd-mod-file
- rpcd-mod-iwinfo
- rpcd-mod-luci
- rpcd-mod-rrdns
- uhttpd
- uhttpd-mod-ubus

10
profiles-20.x/wf188n.yml Normal file
View File

@@ -0,0 +1,10 @@
---
profile: cig_wf188n
target: ipq807x
subtarget: ipq60xx
description: Build image for the Cigtech WF188n
feeds:
- name: ipq807x
path: ../../feeds/ipq807x
include:
- wifi-ax

10
profiles-20.x/wf194c.yml Normal file
View File

@@ -0,0 +1,10 @@
---
profile: cig_wf194
target: ipq807x
subtarget: ipq807x
description: Build image for the CIG WF194C
feeds:
- name: ipq807x
path: ../../feeds/ipq807x
include:
- wifi-ax

View File

@@ -0,0 +1,5 @@
---
description: Add the wifi support AX targets
feeds:
- name: wifi_ax
path: ../../feeds/wifi-ax

14
profiles-20.x/wifi.yml Normal file
View File

@@ -0,0 +1,14 @@
---
description: Add the ath10k wifi extensions
_feeds:
- name: wifi
path: ../../feeds/wifi-trunk
packages:
- ath10k-firmware-qca4019-ct-htt
- ath10k-firmware-qca9888-ct-htt
- ath10k-firmware-qca9984-ct-htt
- ct-bugcheck
diffconfig: |
# CONFIG_PACKAGE_ath10k-firmware-qca4019-ct is not set
# CONFIG_PACKAGE_ath10k-firmware-qca9888-ct is not set
# CONFIG_PACKAGE_ath10k-firmware-qca9984-ct is not set

80
profiles-20.x/wlan-ap.yml Normal file
View File

@@ -0,0 +1,80 @@
---
description: Add the wlan-ap dependencies
feeds:
- name: wlan_ap
path: ../../feeds/wlan-ap
- name: python
path: ../../feeds/python-20.x
packages:
- kmod-batman-adv
- batctl-default
- coreutils
- coreutils-sleep
- jansson
- kmod-crypto-crc32c
- kmod-crypto-hash
- kmod-lib-crc32c
- kmod-mpls
- kmod-nf-nat6
- kmod-openvswitch
- libatomic
- libcares
- libev
- libmosquitto-ssl
- libopenssl
- libpcap
- libprotobuf-c
- librt
- libstdcpp
- libunbound-light
- libuuid
- lldpd
- nft-qos
- openvswitch
- openvswitch-common
- openvswitch-libofproto
- openvswitch-libopenvswitch
- openvswitch-libovsdb
- openvswitch-ovsdb
- openvswitch-vswitchd
- protobuf
- protobuf-lite
- uuidgen
- zlib
- wlan-ap-config
- wpad-openssl
- ip-bridge
- opennds
- opensync
- dnsmasq-full
- ipset
- libradiusclient
- nf_uccdetect
- kmod-nf_uccdetect
- gre
- grev4
- grev6
- kmod-gre
- kmod-gre6
- kmod-ip6-tunnel
- kmod-iptunnel
- kmod-iptunnel6
diffconfig: |
CONFIG_OPENSSL_ENGINE=y
CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM=y
CONFIG_OPENSSL_WITH_ASM=y
CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y
CONFIG_OPENSSL_WITH_CMS=y
CONFIG_OPENSSL_WITH_DEPRECATED=y
CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y
CONFIG_OPENSSL_WITH_PSK=y
CONFIG_OPENSSL_WITH_SRP=y
CONFIG_OPENSSL_WITH_TLS13=y
# CONFIG_PACKAGE_wpad-basic-wolfssl is not set
# CONFIG_PACKAGE_dnsmasq is not set
CONFIG_IMAGEOPT=y
CONFIG_PREINITOPT=y
CONFIG_TARGET_PREINIT_SUPPRESS_STDERR=y
CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE=y

View File

@@ -0,0 +1,49 @@
---
description: Add the wlan-switch dependencies
feeds:
- name: wlan_ap
path: ../../feeds/wlan-ap
- name: python
path: ../../feeds/python-20.x
- name: realtek
path: ../../feeds/realtek
packages:
- coreutils
- coreutils-sleep
- kmod-crypto-crc32c
- kmod-crypto-hash
- kmod-lib-crc32c
- kmod-mpls
- kmod-nf-nat6
- kmod-openvswitch
- libev
- libopenssl
- libpcap
- libprotobuf-c
- librt
- libstdcpp
- libuuid
- lldpd
- openvswitch
- openvswitch-common
- openvswitch-libofproto
- openvswitch-libopenvswitch
- openvswitch-libovsdb
- openvswitch-ovsdb
- openvswitch-vswitchd
- protobuf
- protobuf-lite
- uuidgen
- zlib
- wlan-ap-config
- ip-bridge
- opensync
- ipset
- rtl83xx-poe
- udevmand
diffconfig: |
CONFIG_IMAGEOPT=y
CONFIG_PREINITOPT=y
CONFIG_TARGET_PREINIT_SUPPRESS_STDERR=y
CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE=y

View File

@@ -0,0 +1,7 @@
---
profile: zyxel_gs1900-10hp
target: realtek
subtarget: generic
description: Build image for the Zyxel GS1900-10HP
include:
- realtek

5
profiles/container.yml Normal file
View File

@@ -0,0 +1,5 @@
---
description: Add the container dependencies
feeds:
- name: container
path: ../../feeds/container

49
profiles/wlan-switch.yml Normal file
View File

@@ -0,0 +1,49 @@
---
description: Add the wlan-switch dependencies
feeds:
- name: wlan_ap
path: ../../feeds/wlan-ap
- name: python
path: ../../feeds/python-20.x
- name: realtek
path: ../../feeds/realtek
packages:
- coreutils
- coreutils-sleep
- kmod-crypto-crc32c
- kmod-crypto-hash
- kmod-lib-crc32c
- kmod-mpls
- kmod-nf-nat6
- kmod-openvswitch
- libev
- libopenssl
- libpcap
- libprotobuf-c
- librt
- libstdcpp
- libuuid
- lldpd
- openvswitch
- openvswitch-common
- openvswitch-libofproto
- openvswitch-libopenvswitch
- openvswitch-libovsdb
- openvswitch-ovsdb
- openvswitch-vswitchd
- protobuf
- protobuf-lite
- uuidgen
- zlib
- wlan-ap-config
- ip-bridge
- opensync
- ipset
- rtl83xx-poe
- udevmand
diffconfig: |
CONFIG_IMAGEOPT=y
CONFIG_PREINITOPT=y
CONFIG_TARGET_PREINIT_SUPPRESS_STDERR=y
CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE=y

View File

@@ -87,7 +87,7 @@ def setup_tree():
for patch in patches:
run(["git", git_am, "-3", str(base_dir / patch)], check=True)
run(
["ln", "-s", "../profiles"], check=True,
["ln", "-s", profiles, "profiles"], check=True,
)
print("### Patches done")
except:
@@ -120,11 +120,12 @@ setup = False
update = False
rebase = False
config = "config.yml"
profiles = "../profiles"
openwrt = "openwrt"
git_ref = ""
try:
opts, args = getopt.getopt(sys.argv[1:], "srdc:f:u", ["setup", "rebase", "docker", "config=", "folder=", "reference=", "update"])
opts, args = getopt.getopt(sys.argv[1:], "srdc:f:u2", ["setup", "rebase", "docker", "config=", "folder=", "reference=", "update", "20x" ])
except getopt.GetoptError as err:
print(err)
sys.exit(2)
@@ -143,6 +144,10 @@ for o, a in opts:
git_ref = a
elif o in ("-d", "--docker"):
git_am = "apply"
elif o in ("-2", "--20x"):
config = "config-20.x.yml"
profiles = "../profiles-20.x"
openwrt = "openwrt-20.x"
else:
assert False, "unhandled option"