Skip to content
Snippets Groups Projects
Unverified Commit 78b2775e authored by Matthias Schiffer's avatar Matthias Schiffer
Browse files

Use LEDE as base for Gluon

parent 04818c17
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 5053 deletions
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Mon, 7 Mar 2016 06:07:21 +0100
Subject: base-files: implemented basic GPIO control
Internal GPIO pins are used for PoE passthrough setups in multi-port
routers. This patch implemnets control over this hardware feature for
Ubiquiti Nanostations and TP-Link CPE510.
Signed-off-by: Lars Kruse <lists@sumpfralle.de>
Backport of r46271
diff --git a/package/base-files/files/etc/init.d/gpio_switch b/package/base-files/files/etc/init.d/gpio_switch
new file mode 100755
index 0000000000000000000000000000000000000000..1f1b44b2129ce2315943f6a10508eefb66412c48
--- /dev/null
+++ b/package/base-files/files/etc/init.d/gpio_switch
@@ -0,0 +1,42 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2015 OpenWrt.org
+
+START=98
+STOP=10
+USE_PROCD=1
+
+
+load_gpio_switch()
+{
+ local name
+ local gpio_pin
+ local value
+
+ config_get gpio_pin "$1" gpio_pin
+ config_get name "$1" name
+ config_get value "$1" value 0
+
+ local gpio_path="/sys/class/gpio/gpio${gpio_pin}"
+ # export GPIO pin for access
+ [ -d "$gpio_path" ] || {
+ echo "$gpio_pin" >/sys/class/gpio/export
+ # we need to wait a bit until the GPIO appears
+ [ -d "$gpio_path" ] || sleep 1
+ echo out >"$gpio_path/direction"
+ }
+ # write 0 or 1 to the "value" field
+ { [ "$value" = "0" ] && echo "0" || echo "1"; } >"$gpio_path/value"
+}
+
+service_triggers()
+{
+ procd_add_reload_trigger "system"
+}
+
+start_service()
+{
+ [ -e /sys/class/gpio/ ] && {
+ config_load system
+ config_foreach load_gpio_switch gpio_switch
+ }
+}
diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh
index 5a8809d68c89ac0431919f15dad5f5c33351bbf2..6577ecdcde0c856b3e6dd1b9337f23cb782ef2be 100644
--- a/package/base-files/files/lib/functions/uci-defaults.sh
+++ b/package/base-files/files/lib/functions/uci-defaults.sh
@@ -2,6 +2,7 @@
# Copyright (C) 2011 OpenWrt.org
UCIDEF_LEDS_CHANGED=0
+UCIDEF_GPIO_SWITCHES_CHANGED=0
ucidef_set_led_netdev() {
local cfg="led_$1"
@@ -180,6 +181,29 @@ ucidef_commit_leds()
[ "$UCIDEF_LEDS_CHANGED" = "1" ] && uci commit system
}
+ucidef_set_gpio_switch() {
+ local cfg="gpio_switch_$1"
+ local name="$2"
+ local gpio_pin="$3"
+ # use "0" as default value
+ local default="${4:-0}"
+
+ uci -q get "system.$cfg" && return 0
+
+ uci batch <<EOF
+set system.$cfg='gpio_switch'
+set system.$cfg.name='$name'
+set system.$cfg.gpio_pin='$gpio_pin'
+set system.$cfg.value='$default'
+EOF
+ UCIDEF_GPIO_SWITCHES_CHANGED=1
+}
+
+ucidef_commit_gpio_switches()
+{
+ [ "$UCIDEF_GPIO_SWITCHES_CHANGED" = "1" ] && uci commit system
+}
+
ucidef_set_interface_loopback() {
uci batch <<EOF
set network.loopback='interface'
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches b/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches
new file mode 100644
index 0000000000000000000000000000000000000000..81d3982ed8bf98e01ce2e161017f088a1d0f60dc
--- /dev/null
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+
+. /lib/functions/uci-defaults.sh
+. /lib/ar71xx.sh
+
+board=$(ar71xx_board_name)
+
+case "$board" in
+nanostation-m)
+ ucidef_set_gpio_switch "poe_passthrough" "PoE Passthrough" "2"
+ ;;
+nanostation-m-xw)
+ ucidef_set_gpio_switch "poe_passthrough" "PoE Passthrough" "8"
+ ;;
+cpe510)
+ ucidef_set_gpio_switch "poe_passthrough" "PoE Passthrough" "20"
+ ;;
+esac
+
+ucidef_commit_gpio_switches
+
+exit 0
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Mon, 7 Mar 2016 06:07:59 +0100
Subject: ar71xx: assign proper GPIO pin for Ubiquiti Nanostation models
The GPIO pins for "POE passthrough" of Ubiquiti Nanostation models are the
following:
* Ubiquiti Nanostation M XM: Pin 8
* Ubiquiti Nanostation M XW: Pin 2
The previous definition of the pins was mixed up between XM and XW model.
Signed-off-by: Lars Kruse <lists@sumpfralle.de>
Backport of r46922
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches b/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches
index 81d3982ed8bf98e01ce2e161017f088a1d0f60dc..b41f27554b1e3eac19c22af59731771631a1135b 100644
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_gpio-switches
@@ -10,10 +10,10 @@ board=$(ar71xx_board_name)
case "$board" in
nanostation-m)
- ucidef_set_gpio_switch "poe_passthrough" "PoE Passthrough" "2"
+ ucidef_set_gpio_switch "poe_passthrough" "PoE Passthrough" "8"
;;
nanostation-m-xw)
- ucidef_set_gpio_switch "poe_passthrough" "PoE Passthrough" "8"
+ ucidef_set_gpio_switch "poe_passthrough" "PoE Passthrough" "2"
;;
cpe510)
ucidef_set_gpio_switch "poe_passthrough" "PoE Passthrough" "20"
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Fri, 29 Jul 2016 21:28:24 +0200
Subject: netifd: update to latest version
diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile
index 619024bd708541dfb3bda28a963fc87a5d301a0d..dc83ca612bcd4c441e8fa0db77c98c8a1b97ad13 100644
--- a/package/network/config/netifd/Makefile
+++ b/package/network/config/netifd/Makefile
@@ -1,15 +1,15 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=netifd
-PKG_VERSION:=2015-12-16
+PKG_VERSION:=2016-07-29
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=http://git.openwrt.org/project/netifd.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=245527193e90906451be35c2b8e972b8712ea6ab
+PKG_SOURCE_VERSION:=656c387974879105c2aaec6b62478d0195067f2d
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
+PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
# PKG_MIRROR_MD5SUM:=
# CMAKE_INSTALL:=1
diff --git a/package/network/config/netifd/files/etc/init.d/network b/package/network/config/netifd/files/etc/init.d/network
index 542fc08958e001c2bfce7668ecd7d1c52a649e4e..bdadbbce6db6f9383a0e2c7fab25e7f5d8823091 100755
--- a/package/network/config/netifd/files/etc/init.d/network
+++ b/package/network/config/netifd/files/etc/init.d/network
@@ -21,7 +21,6 @@ start_service() {
procd_set_param watch network.interface
[ -e /proc/sys/kernel/core_pattern ] && {
procd_set_param limits core="unlimited"
- echo '/tmp/%e.%p.%s.%t.core' > /proc/sys/kernel/core_pattern
}
procd_close_instance
}
diff --git a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
index 0e88af9e96ad85e7c51ff0b497ce71342d2d1568..1d3a2091060aac6b89d8d10f915b11b251011a85 100755
--- a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
+++ b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
@@ -12,6 +12,7 @@ proto_dhcp_init_config() {
proto_config_add_string clientid
proto_config_add_string vendorid
proto_config_add_boolean 'broadcast:bool'
+ proto_config_add_boolean 'release:bool'
proto_config_add_string 'reqopts:list(string)'
proto_config_add_string iface6rd
proto_config_add_string sendopts
@@ -26,8 +27,8 @@ proto_dhcp_setup() {
local config="$1"
local iface="$2"
- local ipaddr hostname clientid vendorid broadcast reqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes
- json_get_vars ipaddr hostname clientid vendorid broadcast reqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes
+ local ipaddr hostname clientid vendorid broadcast release reqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes
+ json_get_vars ipaddr hostname clientid vendorid broadcast release reqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes
local opt dhcpopts
for opt in $reqopts; do
@@ -39,6 +40,7 @@ proto_dhcp_setup() {
done
[ "$broadcast" = 1 ] && broadcast="-B" || broadcast=
+ [ "$release" = 1 ] && release="-R" || release=
[ -n "$clientid" ] && clientid="-x 0x3d:${clientid//:/}" || clientid="-C"
[ -n "$iface6rd" ] && proto_export "IFACE6RD=$iface6rd"
[ "$iface6rd" != 0 -a -f /lib/netifd/proto/6rd.sh ] && append dhcpopts "-O 212"
@@ -54,9 +56,9 @@ proto_dhcp_setup() {
-s /lib/netifd/dhcp.script \
-f -t 0 -i "$iface" \
${ipaddr:+-r $ipaddr} \
- ${hostname:+-H $hostname} \
- ${vendorid:+-V $vendorid} \
- $clientid $broadcast $dhcpopts
+ ${hostname:+-x "hostname:$hostname"} \
+ ${vendorid:+-V "$vendorid"} \
+ $clientid $broadcast $release $dhcpopts
}
proto_dhcp_renew() {
diff --git a/package/network/config/netifd/files/sbin/ifup b/package/network/config/netifd/files/sbin/ifup
index af3aaa8453ce93f52c2b89e743f43f9c509ad696..5515b91f76df2b5c36d46ac4b86dfc9bdcd78b1d 100755
--- a/package/network/config/netifd/files/sbin/ifup
+++ b/package/network/config/netifd/files/sbin/ifup
@@ -67,12 +67,10 @@ if [ -n "$setup_wifi" ] && grep -sq config /etc/config/wireless; then
fi
}
- local radio_devs
- local network="$1"
+ network="$1"
config_load wireless
config_foreach find_related_radios wifi-iface
- local dev
for dev in $(echo "$radio_devs" | sort -u); do
/sbin/wifi up "$dev"
done
From: Alexander Dahl <alex@netz39.de>
Date: Thu, 17 Mar 2016 15:04:09 +0100
Subject: x86: fix platform_export_bootpart() for Xen virtual disks
Virtual disk devices in a Xen virtual machine (DomU) can be /dev/xvda,
/dev/xvdb and so on with partitions like /dev/xdva1. Devices named like
this where not considered before. This resulted in a non working
sysupgrade, because the boot partition could not be found.
Signed-off-by: Alexander Dahl <alex@netz39.de>
Suggested-by: Matthias Schiffer <mschiffer@universe-factory.net>
diff --git a/target/linux/x86/base-files/lib/upgrade/platform.sh b/target/linux/x86/base-files/lib/upgrade/platform.sh
index 73ab5ef0794c942495d18865fa2c2498b84e63e6..adc119c897ed840aef17c2041a48244d0922564e 100644
--- a/target/linux/x86/base-files/lib/upgrade/platform.sh
+++ b/target/linux/x86/base-files/lib/upgrade/platform.sh
@@ -17,7 +17,7 @@ platform_export_bootpart() {
PARTUUID=[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-02)
uuid="${disk#PARTUUID=}"
uuid="${uuid%-02}"
- for disk in /dev/[hsv]d[a-z]; do
+ for disk in /dev/[hsv]d[a-z] /dev/xvd[a-z]; do
set -- $(dd if=$disk bs=1 skip=440 count=4 2>/dev/null | hexdump -v -e '4/1 "%02x "')
if [ "$4$3$2$1" = "$uuid" ]; then
export BOOTPART="${disk}1"
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Wed, 30 Mar 2016 02:59:19 +0200
Subject: Support LibreSSL as provider of openssl
The build scripts check for openssl by grepping the string "OpenSSL" in
the output of openssl version command. LibreSSL fails this test as it
outputs something like "LibreSSL 2.2.4". This patch fix the
prereq-bulid.mk file so that it accepts LibreSSL as openssl provider as
well.
Signed-off-by: Marek Behun <kabel@blackhole.sk>
Backport of r48267
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
index 32c4adabb748c4026d507d40769b3201e2ac5599..f36d57ce06c46be7ac33f3034ad08a3ce603089d 100644
--- a/include/prereq-build.mk
+++ b/include/prereq-build.mk
@@ -151,7 +151,7 @@ $(eval $(call SetupHostCommand,file,Please install the 'file' package, \
file --version 2>&1 | grep file))
$(eval $(call SetupHostCommand,openssl,Please install the 'openssl' utility, \
- openssl version | grep OpenSSL))
+ openssl version | grep '\(OpenSSL\|LibreSSL\)'))
# Install ldconfig stub
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Fri, 1 Apr 2016 23:16:13 +0200
Subject: ar71xx: check both HWID and HWREV on upgrades of TP-LINK devices
There's no reason for us to be more lenient than the stock firmware, so
better check the HWREV as well to avoid bricked devices.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Backport of r49105
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 762cd760ceb9ff3917903dfd26a5a7a42175abfe..024e4930949c927efd36c3ac67cd351dcaa4bf7b 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -66,6 +66,10 @@ tplink_get_image_hwid() {
get_image "$@" | dd bs=4 count=1 skip=16 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
}
+tplink_get_image_mid() {
+ get_image "$@" | dd bs=4 count=1 skip=17 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
+}
+
tplink_get_image_boot_size() {
get_image "$@" | dd bs=4 count=1 skip=37 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
}
@@ -373,13 +377,17 @@ platform_check_image() {
}
local hwid
- local imageid
+ local mid
+ local imagehwid
+ local imagemid
hwid=$(tplink_get_hwid)
- imageid=$(tplink_get_image_hwid "$1")
+ mid=$(tplink_get_mid)
+ imagehwid=$(tplink_get_image_hwid "$1")
+ imagemid=$(tplink_get_image_mid "$1")
- [ "$hwid" != "$imageid" ] && {
- echo "Invalid image, hardware ID mismatch, hw:$hwid image:$imageid."
+ [ "$hwid" != "$imagehwid" -o "$mid" != "$imagemid" ] && {
+ echo "Invalid image, hardware ID mismatch, hw:$hwid $mid image:$imagehwid $imagemid."
return 1
}
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Fri, 1 Apr 2016 23:19:16 +0200
Subject: ar71xx: avoid AR71XX_MODEL ending with a space on some TP-LINK-like devices
Instead of adding the space when combining $model and $hwver, add the space
to the beginning of $hwver, so the resulting string won't end with a space
when $hwver is set to the empty string.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Backport of r49106
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 0aa1c865cbdeb0624147d4117d289a640d20a5ef..96a37b4bec019d06c9283afc44b7961d150c05fb 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -133,7 +133,7 @@ tplink_board_detect() {
hwid=$(tplink_get_hwid)
mid=$(tplink_get_mid)
hwver=${hwid:6:2}
- hwver="v${hwver#0}"
+ hwver=" v${hwver#0}"
case "$hwid" in
"015000"*)
@@ -196,8 +196,8 @@ tplink_board_detect() {
"083000"*)
model="TP-Link TL-WA830RE"
- if [ "$hwver" = 'v10' ]; then
- hwver='v1'
+ if [ "$hwver" = ' v10' ]; then
+ hwver=' v1'
fi
;;
"084100"*)
@@ -296,7 +296,7 @@ tplink_board_detect() {
;;
esac
- AR71XX_MODEL="$model $hwver"
+ AR71XX_MODEL="$model$hwver"
}
tplink_pharos_get_model_string() {
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Fri, 1 Apr 2016 23:21:32 +0200
Subject: ar71xx: fix the revision of a few TP-LINK devices in AR71XX_MODEL to match labels/image names
Let's not confuse users about the revisions of their devices when we can
easily avoid it.
Not tested on real hardware.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Backport of r49107
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 96a37b4bec019d06c9283afc44b7961d150c05fb..6c106179bfa0c01308a03678aef1b7cf4caaf05b 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -162,6 +162,10 @@ tplink_board_detect() {
;;
"071000"*)
model="TP-Link TL-WR710N"
+
+ if [ "$hwid" = '07100002' -a "$mid" = '00000002' ]; then
+ hwver=' v2.1'
+ fi
;;
"072001"*)
model="TP-Link TL-WR720N"
@@ -202,6 +206,10 @@ tplink_board_detect() {
;;
"084100"*)
model="TP-Link TL-WR841N/ND"
+
+ if [ "$hwid" = '08410002' -a "$mid" = '00000002' ]; then
+ hwver=' v1.5'
+ fi
;;
"084200"*)
model="TP-Link TL-WR842N/ND"
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sat, 2 Apr 2016 00:56:50 +0200
Subject: ar71xx: build image for TL-WR710N v2.1
This patch just extends target/linux/ar71xx/image/Makefile to build
images also for version 2.1 of TL-WR710N
patch against the latest git
Signed off by: Norbert Wegener <nw@wegener-net.de>
Backport of r47849
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index a8073f2ecadce8404dde77278302202fe494cd75..0783381baeddef2064df8faff89c49c2bed6a28b 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -476,6 +476,15 @@ define Device/tl-wr710n-v2
CONSOLE := ttyATH0,115200
endef
+define Device/tl-wr710n-v2.1
+ $(Device/tplink-8mlzma)
+ BOARDNAME := TL-WR710N
+ DEVICE_PROFILE := TLWR710
+ TPLINK_HWID := 0x07100002
+ TPLINK_HWREV := 0x00000002
+ CONSOLE := ttyATH0,115200
+endef
+
define Device/tl-wr720n-v3
$(Device/tplink-4mlzma)
BOARDNAME := TL-WR720N-v3
@@ -491,7 +500,7 @@ define Device/tl-wr720n-v4
TPLINK_HWID := 0x07200104
CONSOLE := ttyATH0,115200
endef
-TARGET_DEVICES += tl-wr703n-v1 tl-wr710n-v1 tl-wr710n-v2 tl-wr720n-v3 tl-wr720n-v4
+TARGET_DEVICES += tl-wr703n-v1 tl-wr710n-v1 tl-wr710n-v2 tl-wr710n-v2.1 tl-wr720n-v3 tl-wr720n-v4
define Device/tl-wr740n-v4
$(Device/tplink-4mlzma)
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 24 Apr 2016 08:44:30 +0200
Subject: tools: add tar host build, required for --sort=name which was only added in the latest version
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Backport of r46876
diff --git a/tools/Makefile b/tools/Makefile
index c6cded8eccd81c422f99e7ee50754c4bc66decc7..98ce8c5f1577981136b277a800a3edd5edd4941e 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -81,6 +81,9 @@ endif
# dependency for tools which have patches directory
$(foreach tool, $(tools-y), $(if $(wildcard $(curdir)/$(tool)/patches),$(eval $(curdir)/$(tool)/compile += $(curdir)/patch/install)))
+$(foreach tool, $(tools-y), $(eval $(curdir)/$(tool)/compile += $(curdir)/tar/install))
+tools-y += tar
+
$(curdir)/builddirs := $(tools-y) $(tools-dep) $(tools-)
$(curdir)/builddirs-default := $(tools-y)
diff --git a/tools/tar/Makefile b/tools/tar/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..975e7835ef09131326ef10a7951c3866d6050801
--- /dev/null
+++ b/tools/tar/Makefile
@@ -0,0 +1,30 @@
+#
+# Copyright (C) 2015 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:=tar
+PKG_VERSION:=1.28
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=@GNU/tar
+PKG_MD5SUM:=49b6306167724fe48f419a33a5beb857
+
+HOST_BUILD_PARALLEL := 1
+
+include $(INCLUDE_DIR)/host-build.mk
+
+HOSTCC := $(HOSTCC_NOCACHE)
+HOSTCXX := $(HOSTCXX_NOCACHE)
+
+HOST_CONFIGURE_ARGS += \
+ --without-posix-acls \
+ --without-selinux \
+ --without-xattrs \
+ --disable-acl \
+ --disable-nls
+
+$(eval $(call HostBuild))
diff --git a/tools/tar/patches/100-fix_xattr_disable.patch b/tools/tar/patches/100-fix_xattr_disable.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5735bd2364a4f324b54a3a49826921ead905d06f
--- /dev/null
+++ b/tools/tar/patches/100-fix_xattr_disable.patch
@@ -0,0 +1,17 @@
+--- a/lib/xattr-at.c
++++ b/lib/xattr-at.c
+@@ -18,6 +18,8 @@
+
+ #include <config.h>
+
++#ifdef HAVE_XATTRS
++
+ #include "xattr-at.h"
+ #include "openat.h"
+
+@@ -108,3 +110,5 @@
+ #undef AT_FUNC_RESULT
+ #undef AT_FUNC_POST_FILE_PARAM_DECLS
+ #undef AT_FUNC_POST_FILE_ARGS
++
++#endif
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 24 Apr 2016 08:44:47 +0200
Subject: tools: compile flock before everything else
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Backport of r48413
diff --git a/tools/Makefile b/tools/Makefile
index 98ce8c5f1577981136b277a800a3edd5edd4941e..3402c08d5c6729a510446a3e9cf586f2d8e15be4 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -26,7 +26,7 @@ endif
tools-$(BUILD_TOOLCHAIN) += gmp mpfr mpc libelf
tools-y += m4 libtool autoconf automake flex bison pkg-config sed mklibs
tools-y += sstrip make-ext4fs e2fsprogs mtd-utils mkimage
-tools-y += firmware-utils patch-image patch quilt yaffs2 flock padjffs2
+tools-y += firmware-utils patch-image patch quilt yaffs2 padjffs2
tools-y += mm-macros missing-macros xz cmake scons bc findutils gengetopt patchelf
tools-$(CONFIG_TARGET_orion_generic) += wrt350nv2-builder upslug2
tools-$(CONFIG_powerpc) += upx
@@ -84,6 +84,9 @@ $(foreach tool, $(tools-y), $(if $(wildcard $(curdir)/$(tool)/patches),$(eval $(
$(foreach tool, $(tools-y), $(eval $(curdir)/$(tool)/compile += $(curdir)/tar/install))
tools-y += tar
+$(curdir)/tar/compile := $(curdir)/flock/install
+tools-y += flock
+
$(curdir)/builddirs := $(tools-y) $(tools-dep) $(tools-)
$(curdir)/builddirs-default := $(tools-y)
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 24 Apr 2016 08:45:44 +0200
Subject: rules.mk: make the locked template available even if flock has not been built yet (fall back to unlocked shell command)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Backport of r48414
diff --git a/rules.mk b/rules.mk
index 9d0134d2b26a52b74d30546cc3d51f7e71d1bc75..ece502609bd08af21be782a706f0bf6599895568 100644
--- a/rules.mk
+++ b/rules.mk
@@ -310,12 +310,16 @@ endef
# Execute commands under flock
# $(1) => The shell expression.
# $(2) => The lock name. If not given, the global lock will be used.
-define locked
+ifneq ($(wildcard $(STAGING_DIR_HOST)/bin/flock),)
+ define locked
SHELL= \
- $(STAGING_DIR_HOST)/bin/flock \
+ flock \
$(TMP_DIR)/.$(if $(2),$(strip $(2)),global).flock \
-c '$(subst ','\'',$(1))'
-endef
+ endef
+else
+ locked=$(1)
+endif
# Recursively copy paths into another directory, purge dangling
# symlinks before.
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 24 Apr 2016 08:48:45 +0200
Subject: build: add locking for downloads (fixes race conditions with multiple variants)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Backport of r48416
diff --git a/include/download.mk b/include/download.mk
index e518cce4b2793152b7f4ef92509f2be07fb5cd62..9176b11c836123a37533c3d6cbaa2650a4f7c73d 100644
--- a/include/download.mk
+++ b/include/download.mk
@@ -182,6 +182,6 @@ define Download
$(DL_DIR)/$(FILE):
mkdir -p $(DL_DIR)
- $(if $(DownloadMethod/$(call dl_method,$(URL),$(PROTO))),$(DownloadMethod/$(call dl_method,$(URL),$(PROTO))),$(DownloadMethod/unknown))
+ $(call locked,$(if $(DownloadMethod/$(call dl_method,$(URL),$(PROTO))),$(DownloadMethod/$(call dl_method,$(URL),$(PROTO))),$(DownloadMethod/unknown)),$(FILE))
endef
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 24 Apr 2016 08:49:27 +0200
Subject: download.mk: fix packed checkout mirroring support
Changeset r48416 broke the downloading of mirrored, packed scm checkouts.
Fix this by removing the "@" sign in front of the download command which is
now executed as part of a larger shell command under flock.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Backport of r48733
diff --git a/include/download.mk b/include/download.mk
index 9176b11c836123a37533c3d6cbaa2650a4f7c73d..130bbc57ba89b4ad0b8e8600f45bf553ad6ecfa1 100644
--- a/include/download.mk
+++ b/include/download.mk
@@ -48,7 +48,7 @@ define DownloadMethod/default
endef
define wrap_mirror
- $(if $(if $(MIRROR),$(filter-out x,$(MIRROR_MD5SUM))),@$(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(FILE)" "$(MIRROR_MD5SUM)" "" || ( $(1) ),$(1))
+$(if $(if $(MIRROR),$(filter-out x,$(MIRROR_MD5SUM))),$(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(FILE)" "$(MIRROR_MD5SUM)" "" || ( $(1) ),$(1))
endef
define DownloadMethod/cvs
This diff is collapsed.
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sat, 7 May 2016 00:17:55 +0200
Subject: kernel: mtd: spi-nor: wait until status register writes are ready
diff --git a/target/linux/generic/patches-3.18/094-0001-mtd-spi-nor-wait-until-lock-unlock-operations-are-re.patch b/target/linux/generic/patches-3.18/094-0001-mtd-spi-nor-wait-until-lock-unlock-operations-are-re.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2c2e5f32259416f0cc7f342e420ffbd32c139d97
--- /dev/null
+++ b/target/linux/generic/patches-3.18/094-0001-mtd-spi-nor-wait-until-lock-unlock-operations-are-re.patch
@@ -0,0 +1,66 @@
+From 32321e950d8a237d7e8f3a9b76220007dfa87544 Mon Sep 17 00:00:00 2001
+Message-Id: <32321e950d8a237d7e8f3a9b76220007dfa87544.1462572686.git.mschiffer@universe-factory.net>
+From: =?UTF-8?q?Ezequiel=20Garc=C3=ADa?= <ezequiel@vanguardiasur.com.ar>
+Date: Mon, 28 Dec 2015 17:54:51 -0300
+Subject: [PATCH] mtd: spi-nor: wait until lock/unlock operations are ready
+
+On Micron and Numonyx devices, the status register write command
+(WRSR), raises a work-in-progress bit (WIP) on the status register.
+The datasheets for these devices specify that while the status
+register write is in progress, the status register WIP bit can still
+be read to check the end of the operation.
+
+This commit adds a wait_till_ready call on lock/unlock operations,
+which is required for Micron and Numonyx but should be harmless for
+others. This is needed to prevent applications from issuing erase or
+program operations before the unlock operation is completed.
+
+Reported-by: Stas Sergeev <stsp@list.ru>
+Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
+Signed-off-by: Brian Norris <computersforpeace@gmail.com>
+---
+ drivers/mtd/spi-nor/spi-nor.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+--- a/drivers/mtd/spi-nor/spi-nor.c
++++ b/drivers/mtd/spi-nor/spi-nor.c
+@@ -462,6 +462,7 @@ static int stm_lock(struct spi_nor *nor,
+ u8 status_old, status_new;
+ u8 mask = SR_BP2 | SR_BP1 | SR_BP0;
+ u8 shift = ffs(mask) - 1, pow, val;
++ int ret;
+
+ status_old = read_sr(nor);
+
+@@ -498,7 +499,10 @@ static int stm_lock(struct spi_nor *nor,
+ return -EINVAL;
+
+ write_enable(nor);
+- return write_sr(nor, status_new);
++ ret = write_sr(nor, status_new);
++ if (ret)
++ return ret;
++ return spi_nor_wait_till_ready(nor);
+ }
+
+ /*
+@@ -512,6 +516,7 @@ static int stm_unlock(struct spi_nor *no
+ uint8_t status_old, status_new;
+ u8 mask = SR_BP2 | SR_BP1 | SR_BP0;
+ u8 shift = ffs(mask) - 1, pow, val;
++ int ret;
+
+ status_old = read_sr(nor);
+
+@@ -546,7 +551,10 @@ static int stm_unlock(struct spi_nor *no
+ return -EINVAL;
+
+ write_enable(nor);
+- return write_sr(nor, status_new);
++ ret = write_sr(nor, status_new);
++ if (ret)
++ return ret;
++ return spi_nor_wait_till_ready(nor);
+ }
+
+ /*
diff --git a/target/linux/generic/patches-3.18/094-0002-mtd-spi-nor-wait-for-SR_WIP-to-clear-on-initial-unlo.patch b/target/linux/generic/patches-3.18/094-0002-mtd-spi-nor-wait-for-SR_WIP-to-clear-on-initial-unlo.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a0573d5aea939c965cb44b2e72a2b7d498b0a5cd
--- /dev/null
+++ b/target/linux/generic/patches-3.18/094-0002-mtd-spi-nor-wait-for-SR_WIP-to-clear-on-initial-unlo.patch
@@ -0,0 +1,33 @@
+From edf891ef9ab773363f8e58022a26d7d31604aed6 Mon Sep 17 00:00:00 2001
+Message-Id: <edf891ef9ab773363f8e58022a26d7d31604aed6.1462572703.git.mschiffer@universe-factory.net>
+From: Brian Norris <computersforpeace@gmail.com>
+Date: Fri, 29 Jan 2016 11:25:30 -0800
+Subject: [PATCH] mtd: spi-nor: wait for SR_WIP to clear on initial unlock
+
+Fixup a piece leftover by commit 32321e950d8a ("mtd: spi-nor: wait until
+lock/unlock operations are ready"). That commit made us wait for the WIP
+bit to settle after lock/unlock operations, but it missed the open-coded
+"unlock" that happens at probe() time.
+
+We should probably have this code utilize the unlock() routines in the
+future, to avoid duplication, but unfortunately, flash which need to be
+unlocked don't all have a proper ->flash_unlock() callback.
+
+Signed-off-by: Brian Norris <computersforpeace@gmail.com>
+Cc: Stas Sergeev <stsp@users.sourceforge.net>
+Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
+Tested-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
+---
+ drivers/mtd/spi-nor/spi-nor.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/mtd/spi-nor/spi-nor.c
++++ b/drivers/mtd/spi-nor/spi-nor.c
+@@ -1167,6 +1167,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+ JEDEC_MFR(info) == SNOR_MFR_SST) {
+ write_enable(nor);
+ write_sr(nor, 0);
++ spi_nor_wait_till_ready(nor);
+ }
+
+ if (!mtd->name)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment