mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-02-13 11:51:54 +00:00
Merge branch 'develop' into master
This commit is contained in:
commit
0991afaa30
20 changed files with 4288 additions and 127 deletions
22
build.sh
22
build.sh
|
@ -78,9 +78,9 @@ fi
|
||||||
|
|
||||||
#_get_repo source https://github.com/ysurac/openmptcprouter-source "master"
|
#_get_repo source https://github.com/ysurac/openmptcprouter-source "master"
|
||||||
if [ "$OMR_OPENWRT" = "default" ]; then
|
if [ "$OMR_OPENWRT" = "default" ]; then
|
||||||
_get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "a439f1bb478b4b8b4134dbed76266c0032625b6b"
|
_get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "bfc433efd4a0c6875a92981d1bd2a5e3e60c61c6"
|
||||||
_get_repo feeds/packages https://github.com/openwrt/packages "05769970213a5f9ffb81506b18da288890c05949"
|
_get_repo feeds/packages https://github.com/openwrt/packages "85dbb482017faec4d69c21b57a5a0afb8095f48a"
|
||||||
_get_repo feeds/luci https://github.com/openwrt/luci "a805a3178f902fe609d3d4a6c7b6b5b1dad88838"
|
_get_repo feeds/luci https://github.com/openwrt/luci "833e25d24a8cbf8dd587ee4424ef49b3e4e5f210"
|
||||||
elif [ "$OMR_OPENWRT" = "master" ]; then
|
elif [ "$OMR_OPENWRT" = "master" ]; then
|
||||||
_get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "master"
|
_get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "master"
|
||||||
_get_repo feeds/packages https://github.com/openwrt/packages "master"
|
_get_repo feeds/packages https://github.com/openwrt/packages "master"
|
||||||
|
@ -236,6 +236,16 @@ if ! patch -Rf -N -p1 -s --dry-run < ../../patches/nanqinlang.patch; then
|
||||||
fi
|
fi
|
||||||
echo "Done"
|
echo "Done"
|
||||||
|
|
||||||
|
# Add BBR2 patch, only working on 64bits images for now
|
||||||
|
if [ "$OMR_TARGET" = "x86_64" ] || [ "$OMR_TARGET" = "bpi-r64" ] || [ "$OMR_TARGET" = "rpi4" ] || [ "$OMR_TARGET" = "espressobin" ] || [ "$OMR_TARGET" = "r2s" ] || [ "$OMR_TARGET" = "rpi3" ]; then
|
||||||
|
echo "Checking if BBRv2 patch is set or not"
|
||||||
|
if ! patch -Rf -N -p1 -s --dry-run < ../../patches/bbr2.patch; then
|
||||||
|
echo "apply..."
|
||||||
|
patch -N -p1 -s < ../../patches/bbr2.patch
|
||||||
|
fi
|
||||||
|
echo "Done"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Checking if smsc75xx patch is set or not"
|
echo "Checking if smsc75xx patch is set or not"
|
||||||
if ! patch -Rf -N -p1 -s --dry-run < ../../patches/smsc75xx.patch; then
|
if ! patch -Rf -N -p1 -s --dry-run < ../../patches/smsc75xx.patch; then
|
||||||
echo "apply..."
|
echo "apply..."
|
||||||
|
@ -270,6 +280,12 @@ if ! patch -Rf -N -p1 -s --dry-run < ../../patches/download-ipv4.patch; then
|
||||||
fi
|
fi
|
||||||
echo "Done"
|
echo "Done"
|
||||||
|
|
||||||
|
echo "Remove check rsync"
|
||||||
|
if [ "$(grep rsync include/prereq-build.mk)" != "" ]; then
|
||||||
|
patch -N -p1 -s < ../../patches/check-rsync.patch
|
||||||
|
fi
|
||||||
|
echo "Done"
|
||||||
|
|
||||||
if [ -f target/linux/mediatek/patches-5.4/0999-hnat.patch ]; then
|
if [ -f target/linux/mediatek/patches-5.4/0999-hnat.patch ]; then
|
||||||
rm -f target/linux/mediatek/patches-5.4/0999-hnat.patch
|
rm -f target/linux/mediatek/patches-5.4/0999-hnat.patch
|
||||||
fi
|
fi
|
||||||
|
|
3
config
3
config
|
@ -25,6 +25,7 @@ CONFIG_BUSYBOX_CONFIG_FEATURE_USE_TERMIOS=y
|
||||||
CONFIG_BUSYBOX_CONFIG_FEATURE_VI_UNDO=y
|
CONFIG_BUSYBOX_CONFIG_FEATURE_VI_UNDO=y
|
||||||
CONFIG_BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE=y
|
CONFIG_BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE=y
|
||||||
CONFIG_BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=32
|
CONFIG_BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=32
|
||||||
|
CONFIG_BUSYBOX_CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y
|
||||||
CONFIG_BUSYBOX_CONFIG_IOSTAT=y
|
CONFIG_BUSYBOX_CONFIG_IOSTAT=y
|
||||||
CONFIG_BUSYBOX_CONFIG_LOADKMAP=y
|
CONFIG_BUSYBOX_CONFIG_LOADKMAP=y
|
||||||
CONFIG_BUSYBOX_CONFIG_LSPCI=y
|
CONFIG_BUSYBOX_CONFIG_LSPCI=y
|
||||||
|
@ -47,10 +48,12 @@ CONFIG_KERNEL_DEBUG_PINCTRL=y
|
||||||
CONFIG_KERNEL_DEVTMPFS=y
|
CONFIG_KERNEL_DEVTMPFS=y
|
||||||
CONFIG_KERNEL_DEVTMPFS_MOUNT=y
|
CONFIG_KERNEL_DEVTMPFS_MOUNT=y
|
||||||
CONFIG_KERNEL_DIRECT_IO=y
|
CONFIG_KERNEL_DIRECT_IO=y
|
||||||
|
CONFIG_KERNEL_DMA_ACPI=y
|
||||||
CONFIG_KERNEL_FANOTIFY=y
|
CONFIG_KERNEL_FANOTIFY=y
|
||||||
CONFIG_KERNEL_FHANDLE=y
|
CONFIG_KERNEL_FHANDLE=y
|
||||||
CONFIG_KERNEL_IPC_NS=y
|
CONFIG_KERNEL_IPC_NS=y
|
||||||
# CONFIG_KERNEL_MAGIC_SYSRQ is not set
|
# CONFIG_KERNEL_MAGIC_SYSRQ is not set
|
||||||
|
CONFIG_KERNEL_MMC_SDHCI_ACPI=y
|
||||||
CONFIG_KERNEL_NAMESPACES=y
|
CONFIG_KERNEL_NAMESPACES=y
|
||||||
CONFIG_KERNEL_NET_NS=y
|
CONFIG_KERNEL_NET_NS=y
|
||||||
CONFIG_KERNEL_PID_NS=y
|
CONFIG_KERNEL_PID_NS=y
|
||||||
|
|
|
@ -7,3 +7,4 @@ CONFIG_PACKAGE_uboot-mediatek=y
|
||||||
CONFIG_PACKAGE_uboot-envtools=y
|
CONFIG_PACKAGE_uboot-envtools=y
|
||||||
CONFIG_PACKAGE_mt7622-preloader=y
|
CONFIG_PACKAGE_mt7622-preloader=y
|
||||||
CONFIG_KERNEL_ARM64_MODULE_PLTS=y
|
CONFIG_KERNEL_ARM64_MODULE_PLTS=y
|
||||||
|
CONFIG_KERNEL_TCP_CONG_BBR2=y
|
||||||
|
|
|
@ -6,3 +6,4 @@ CONFIG_PACKAGE_luci-app-advanced-reboot=y
|
||||||
# CONFIG_KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE is not set
|
# CONFIG_KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE is not set
|
||||||
CONFIG_KERNEL_CC_OPTIMIZE_FOR_SIZE=y
|
CONFIG_KERNEL_CC_OPTIMIZE_FOR_SIZE=y
|
||||||
CONFIG_KERNEL_ARM_MODULE_PLTS=y
|
CONFIG_KERNEL_ARM_MODULE_PLTS=y
|
||||||
|
CONFIG_KERNEL_TCP_CONG_BBR2=y
|
||||||
|
|
|
@ -4,3 +4,10 @@ CONFIG_TARGET_ipq40xx_generic_DEVICE_p2w_r619ac-128m=y
|
||||||
CONFIG_PACKAGE_kmod-6lowpan=y
|
CONFIG_PACKAGE_kmod-6lowpan=y
|
||||||
# CONFIG_KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE is not set
|
# CONFIG_KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE is not set
|
||||||
CONFIG_KERNEL_CC_OPTIMIZE_FOR_SIZE=y
|
CONFIG_KERNEL_CC_OPTIMIZE_FOR_SIZE=y
|
||||||
|
CONFIG_PACKAGE_ipq-wifi-p2w_r619ac=y
|
||||||
|
CONFIG_DEFAULT_ath10k-firmware-qca4019-ct=y
|
||||||
|
CONFIG_DEFAULT_kmod-ath10k-ct=y
|
||||||
|
CONFIG_PACKAGE_kmod-ath10k-ct=y
|
||||||
|
CONFIG_ATH10K-CT_LEDS=y
|
||||||
|
CONFIG_PACKAGE_ath10k-firmware-qca4019-ct=y
|
||||||
|
CONFIG_KERNEL_ARM_MODULE_PLTS=y
|
||||||
|
|
|
@ -3,3 +3,4 @@ CONFIG_TARGET_rockchip_armv8=y
|
||||||
CONFIG_TARGET_rockchip_armv8_DEVICE_friendlyarm_nanopi-r2s=y
|
CONFIG_TARGET_rockchip_armv8_DEVICE_friendlyarm_nanopi-r2s=y
|
||||||
CONFIG_PACKAGE_kmod-6lowpan=y
|
CONFIG_PACKAGE_kmod-6lowpan=y
|
||||||
CONFIG_KERNEL_ARM_MODULE_PLTS=y
|
CONFIG_KERNEL_ARM_MODULE_PLTS=y
|
||||||
|
CONFIG_KERNEL_TCP_CONG_BBR2=y
|
||||||
|
|
|
@ -4,3 +4,4 @@ CONFIG_TARGET_bcm27xx_bcm2710_DEVICE_rpi-3=y
|
||||||
CONFIG_PACKAGE_kmod-ath10k-ct=n
|
CONFIG_PACKAGE_kmod-ath10k-ct=n
|
||||||
CONFIG_PACKAGE_kmod-ath9k=y
|
CONFIG_PACKAGE_kmod-ath9k=y
|
||||||
CONFIG_KERNEL_ARM_MODULE_PLTS=y
|
CONFIG_KERNEL_ARM_MODULE_PLTS=y
|
||||||
|
CONFIG_KERNEL_TCP_CONG_BBR2=y
|
||||||
|
|
|
@ -6,3 +6,4 @@ CONFIG_PACKAGE_kmod-ath9k=y
|
||||||
CONFIG_PACKAGE_bcm27xx-eeprom=y
|
CONFIG_PACKAGE_bcm27xx-eeprom=y
|
||||||
CONFIG_PACKAGE_bcm27xx-userland=y
|
CONFIG_PACKAGE_bcm27xx-userland=y
|
||||||
CONFIG_KERNEL_ARM64_MODULE_PLTS=y
|
CONFIG_KERNEL_ARM64_MODULE_PLTS=y
|
||||||
|
CONFIG_KERNEL_TCP_CONG_BBR2=y
|
||||||
|
|
|
@ -9,3 +9,4 @@ CONFIG_PACKAGE_kmod-ath9k=y
|
||||||
CONFIG_GRUB_IMAGES=y
|
CONFIG_GRUB_IMAGES=y
|
||||||
CONFIG_EFI_IMAGES=y
|
CONFIG_EFI_IMAGES=y
|
||||||
# CONFIG_VMDK_IMAGES is not set
|
# CONFIG_VMDK_IMAGES is not set
|
||||||
|
CONFIG_KERNEL_TCP_CONG_BBR2=y
|
||||||
|
|
27
patches/bbr2.patch
Normal file
27
patches/bbr2.patch
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
--- a/package/kernel/linux/modules/netsupport.mk 2020-11-22 17:39:14.462349527 +0100
|
||||||
|
+++ b/package/kernel/linux/modules/netsupport.mk 2020-11-22 17:41:37.719620332 +0100
|
||||||
|
@@ -948,6 +948,24 @@
|
||||||
|
|
||||||
|
$(eval $(call KernelPackage,tcp-bbr))
|
||||||
|
|
||||||
|
+define KernelPackage/tcp-bbr2
|
||||||
|
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
|
||||||
|
+ TITLE:=BBRv2 TCP congestion control
|
||||||
|
+ KCONFIG:= \
|
||||||
|
+ CONFIG_TCP_CONG_ADVANCED=y \
|
||||||
|
+ CONFIG_TCP_CONG_BBR2
|
||||||
|
+ FILES:=$(LINUX_DIR)/net/ipv4/tcp_bbr2.ko
|
||||||
|
+ AUTOLOAD:=$(call AutoLoad,74,tcp_bbr2)
|
||||||
|
+endef
|
||||||
|
+
|
||||||
|
+define KernelPackage/tcp-bbr2/description
|
||||||
|
+ Kernel module for BBRv2 (Bottleneck Bandwidth and RTT) TCP congestion
|
||||||
|
+ control. It requires the fq ("Fair Queue") pacing packet scheduler.
|
||||||
|
+ For kernel 4.13+, TCP internal pacing is implemented as fallback.
|
||||||
|
+endef
|
||||||
|
+
|
||||||
|
+$(eval $(call KernelPackage,tcp-bbr2))
|
||||||
|
+
|
||||||
|
define KernelPackage/tcp-nanqinlang
|
||||||
|
SUBMENU:=$(NETWORK_SUPPORT_MENU)
|
||||||
|
TITLE:=BBR NANQINLANG TCP congestion control
|
14
patches/check-rsync.patch
Normal file
14
patches/check-rsync.patch
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
|
||||||
|
index e7314b253b58..5045fabdfbde 100644
|
||||||
|
--- a/include/prereq-build.mk
|
||||||
|
+++ b/include/prereq-build.mk
|
||||||
|
@@ -170,9 +170,6 @@ $(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,rsync,Please install 'rsync', \
|
||||||
|
- rsync --version </dev/null))
|
||||||
|
-
|
||||||
|
$(STAGING_DIR_HOST)/bin/mkhash: $(SCRIPT_DIR)/mkhash.c
|
||||||
|
mkdir -p $(dir $@)
|
||||||
|
$(CC) -O2 -I$(TOPDIR)/tools/include -o $@ $<
|
|
@ -1,9 +1,9 @@
|
||||||
--- a/feeds/luci/luci.mk 2020-10-13 09:58:19.887513368 +0200
|
--- a/feeds/luci/luci.mk 2020-10-13 09:58:19.887513368 +0200
|
||||||
+++ b/feeds/luci/luci.mk 2020-10-13 09:04:51.724277184 +0200
|
+++ b/feeds/luci/luci.mk 2020-10-13 09:04:51.724277184 +0200
|
||||||
@@ -34,6 +34,7 @@
|
@@ -34,6 +34,7 @@
|
||||||
LUCI_LANG.mr=Marāṭhī (Marathi)
|
|
||||||
LUCI_LANG.ms=Bahasa Melayu (Malay)
|
LUCI_LANG.ms=Bahasa Melayu (Malay)
|
||||||
LUCI_LANG.nb_NO=Norsk (Norwegian)
|
LUCI_LANG.nb_NO=Norsk (Norwegian)
|
||||||
|
LUCI_LANG.nl=Nederlands (Dutch)
|
||||||
+LUCI_LANG.oc=Occitan
|
+LUCI_LANG.oc=Occitan
|
||||||
LUCI_LANG.pl=Polski (Polish)
|
LUCI_LANG.pl=Polski (Polish)
|
||||||
LUCI_LANG.pt_BR=Português do Brasil (Brazilian Portuguese)
|
LUCI_LANG.pt_BR=Português do Brasil (Brazilian Portuguese)
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# Copyright (C) 2006 OpenWrt.org
|
|
||||||
# Copyright (C) 2010 Vertical Communications
|
|
||||||
# Copyright (C) 2018 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
|
||||||
|
|
||||||
do_mount_root() {
|
|
||||||
mount_root
|
|
||||||
boot_run_hook preinit_mount_root
|
|
||||||
[ -e /dev/sda1 ] && mount /dev/sda1 /boot >/dev/null 2>&1
|
|
||||||
[ -f /boot/sysupgrade.tgz ] && {
|
|
||||||
mv /boot/sysupgrade.tgz /
|
|
||||||
}
|
|
||||||
[ -e /dev/sda1 ] && umount /boot >/dev/null 2>&1
|
|
||||||
[ -f /sysupgrade.tgz ] && {
|
|
||||||
echo "- config restore -"
|
|
||||||
cd /
|
|
||||||
tar xzf sysupgrade.tgz
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[ -n "$(mount | grep ext4 | grep ro)" ] && {
|
|
||||||
[ -e /dev/mmcblk0p2 ] && {
|
|
||||||
echo "Checking ext4 FS on mmcblk0p2..."
|
|
||||||
/usr/sbin/e2fsck -y -f /dev/mmcblk0p2 >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
[ -e /dev/sda2 ] && {
|
|
||||||
echo "Checking ext4 FS on sda2..."
|
|
||||||
/usr/sbin/e2fsck -y -f /dev/sda2 >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[ "$INITRAMFS" = "1" ] || boot_hook_add preinit_main do_mount_root
|
|
391
root/package/base-files/files/sbin/sysupgrade
Executable file
391
root/package/base-files/files/sbin/sysupgrade
Executable file
|
@ -0,0 +1,391 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. /lib/functions.sh
|
||||||
|
. /lib/functions/system.sh
|
||||||
|
. /usr/share/libubox/jshn.sh
|
||||||
|
|
||||||
|
# initialize defaults
|
||||||
|
export MTD_ARGS=""
|
||||||
|
export MTD_CONFIG_ARGS=""
|
||||||
|
export INTERACTIVE=0
|
||||||
|
export VERBOSE=1
|
||||||
|
export SAVE_CONFIG=1
|
||||||
|
export SAVE_OVERLAY=0
|
||||||
|
export SAVE_OVERLAY_PATH=
|
||||||
|
export SAVE_PARTITIONS=1
|
||||||
|
export SAVE_INSTALLED_PKGS=0
|
||||||
|
export SKIP_UNCHANGED=0
|
||||||
|
export CONF_IMAGE=
|
||||||
|
export CONF_BACKUP_LIST=0
|
||||||
|
export CONF_BACKUP=
|
||||||
|
export CONF_RESTORE=
|
||||||
|
export NEED_IMAGE=
|
||||||
|
export HELP=0
|
||||||
|
export FORCE=0
|
||||||
|
export TEST=0
|
||||||
|
export UMOUNT_ETCBACKUP_DIR=0
|
||||||
|
|
||||||
|
# parse options
|
||||||
|
while [ -n "$1" ]; do
|
||||||
|
case "$1" in
|
||||||
|
-i) export INTERACTIVE=1;;
|
||||||
|
-v) export VERBOSE="$(($VERBOSE + 1))";;
|
||||||
|
-q) export VERBOSE="$(($VERBOSE - 1))";;
|
||||||
|
-n) export SAVE_CONFIG=0;;
|
||||||
|
-c) export SAVE_OVERLAY=1 SAVE_OVERLAY_PATH=/etc;;
|
||||||
|
-o) export SAVE_OVERLAY=1 SAVE_OVERLAY_PATH=/;;
|
||||||
|
-p) export SAVE_PARTITIONS=0;;
|
||||||
|
-k) export SAVE_INSTALLED_PKGS=1;;
|
||||||
|
-u) export SKIP_UNCHANGED=1;;
|
||||||
|
-b|--create-backup) export CONF_BACKUP="$2" NEED_IMAGE=1; shift;;
|
||||||
|
-r|--restore-backup) export CONF_RESTORE="$2" NEED_IMAGE=1; shift;;
|
||||||
|
-l|--list-backup) export CONF_BACKUP_LIST=1;;
|
||||||
|
-f) export CONF_IMAGE="$2"; shift;;
|
||||||
|
-F|--force) export FORCE=1;;
|
||||||
|
-T|--test) export TEST=1;;
|
||||||
|
-h|--help) export HELP=1; break;;
|
||||||
|
-*)
|
||||||
|
echo "Invalid option: $1" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*) break;;
|
||||||
|
esac
|
||||||
|
shift;
|
||||||
|
done
|
||||||
|
|
||||||
|
export CONFFILES=/tmp/sysupgrade.conffiles
|
||||||
|
export CONF_TAR=/tmp/sysupgrade.tgz
|
||||||
|
export ETCBACKUP_DIR=/etc/backup
|
||||||
|
export INSTALLED_PACKAGES=${ETCBACKUP_DIR}/installed_packages.txt
|
||||||
|
|
||||||
|
IMAGE="$1"
|
||||||
|
|
||||||
|
[ -z "$IMAGE" -a -z "$NEED_IMAGE" -a $CONF_BACKUP_LIST -eq 0 -o $HELP -gt 0 ] && {
|
||||||
|
cat <<EOF
|
||||||
|
Usage: $0 [<upgrade-option>...] <image file or URL>
|
||||||
|
$0 [-q] [-i] [-c] [-u] [-o] [-k] <backup-command> <file>
|
||||||
|
|
||||||
|
upgrade-option:
|
||||||
|
-f <config> restore configuration from .tar.gz (file or url)
|
||||||
|
-i interactive mode
|
||||||
|
-c attempt to preserve all changed files in /etc/
|
||||||
|
-o attempt to preserve all changed files in /, except those
|
||||||
|
from packages but including changed confs.
|
||||||
|
-u skip from backup files that are equal to those in /rom
|
||||||
|
-n do not save configuration over reflash
|
||||||
|
-p do not attempt to restore the partition table after flash.
|
||||||
|
-k include in backup a list of current installed packages at
|
||||||
|
$INSTALLED_PACKAGES
|
||||||
|
-T | --test
|
||||||
|
Verify image and config .tar.gz but do not actually flash.
|
||||||
|
-F | --force
|
||||||
|
Flash image even if image checks fail, this is dangerous!
|
||||||
|
-q less verbose
|
||||||
|
-v more verbose
|
||||||
|
-h | --help display this help
|
||||||
|
|
||||||
|
backup-command:
|
||||||
|
-b | --create-backup <file>
|
||||||
|
create .tar.gz of files specified in sysupgrade.conf
|
||||||
|
then exit. Does not flash an image. If file is '-',
|
||||||
|
i.e. stdout, verbosity is set to 0 (i.e. quiet).
|
||||||
|
-r | --restore-backup <file>
|
||||||
|
restore a .tar.gz created with sysupgrade -b
|
||||||
|
then exit. Does not flash an image. If file is '-',
|
||||||
|
the archive is read from stdin.
|
||||||
|
-l | --list-backup
|
||||||
|
list the files that would be backed up when calling
|
||||||
|
sysupgrade -b. Does not create a backup file.
|
||||||
|
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -n "$IMAGE" -a -n "$NEED_IMAGE" ] && {
|
||||||
|
cat <<-EOF
|
||||||
|
-b|--create-backup and -r|--restore-backup do not perform a firmware upgrade.
|
||||||
|
Do not specify both -b|-r and a firmware image.
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# prevent messages from clobbering the tarball when using stdout
|
||||||
|
[ "$CONF_BACKUP" = "-" ] && export VERBOSE=0
|
||||||
|
|
||||||
|
missing_lines() {
|
||||||
|
local file1 file2 line
|
||||||
|
file1="$1"
|
||||||
|
file2="$2"
|
||||||
|
oIFS="$IFS"
|
||||||
|
IFS=":"
|
||||||
|
while read line; do
|
||||||
|
set -- $line
|
||||||
|
grep -q "^$1:" "$file2" || echo "$*"
|
||||||
|
done < "$file1"
|
||||||
|
IFS="$oIFS"
|
||||||
|
}
|
||||||
|
|
||||||
|
list_conffiles() {
|
||||||
|
awk '
|
||||||
|
BEGIN { conffiles = 0 }
|
||||||
|
/^Conffiles:/ { conffiles = 1; next }
|
||||||
|
!/^ / { conffiles = 0; next }
|
||||||
|
conffiles == 1 { print }
|
||||||
|
' /usr/lib/opkg/status
|
||||||
|
}
|
||||||
|
|
||||||
|
list_changed_conffiles() {
|
||||||
|
# Cannot handle spaces in filenames - but opkg cannot either...
|
||||||
|
list_conffiles | while read file csum; do
|
||||||
|
[ -r "$file" ] || continue
|
||||||
|
|
||||||
|
echo "${csum} ${file}" | busybox sha256sum -sc - || echo "$file"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
add_conffiles() {
|
||||||
|
local file="$1"
|
||||||
|
( find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' \
|
||||||
|
/etc/sysupgrade.conf /lib/upgrade/keep.d/* 2>/dev/null) \
|
||||||
|
\( -type f -o -type l \) $find_filter 2>/dev/null;
|
||||||
|
list_changed_conffiles ) | sort -u > "$file"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
add_overlayfiles() {
|
||||||
|
local file="$1"
|
||||||
|
|
||||||
|
local packagesfiles=$1.packagesfiles
|
||||||
|
touch "$packagesfiles"
|
||||||
|
|
||||||
|
if [ "$SAVE_OVERLAY_PATH" = / ]; then
|
||||||
|
local conffiles=$1.conffiles
|
||||||
|
local keepfiles=$1.keepfiles
|
||||||
|
|
||||||
|
list_conffiles | cut -f2 -d ' ' | sort -u > "$conffiles"
|
||||||
|
|
||||||
|
# backup files from /etc/sysupgrade.conf and /lib/upgrade/keep.d, but
|
||||||
|
# ignore those aready controlled by opkg conffiles
|
||||||
|
find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' \
|
||||||
|
/etc/sysupgrade.conf /lib/upgrade/keep.d/* 2>/dev/null) \
|
||||||
|
\( -type f -o -type l \) 2>/dev/null | sort -u |
|
||||||
|
grep -h -v -x -F -f $conffiles > "$keepfiles"
|
||||||
|
|
||||||
|
# backup conffiles, but only those changed if '-u'
|
||||||
|
[ $SKIP_UNCHANGED = 1 ] &&
|
||||||
|
list_changed_conffiles | sort -u > "$conffiles"
|
||||||
|
|
||||||
|
# do not backup files from packages, except those listed
|
||||||
|
# in conffiles and keep.d
|
||||||
|
{
|
||||||
|
find /usr/lib/opkg/info -type f -name "*.list" -exec cat {} \;
|
||||||
|
find /usr/lib/opkg/info -type f -name "*.control" -exec sed \
|
||||||
|
-ne '/^Alternatives/{s/^Alternatives: //;s/, /\n/g;p}' {} \; |
|
||||||
|
cut -f2 -d:
|
||||||
|
} | grep -v -x -F -f $conffiles |
|
||||||
|
grep -v -x -F -f $keepfiles | sort -u > "$packagesfiles"
|
||||||
|
rm -f "$keepfiles" "$conffiles"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# busybox grep bug when file is empty
|
||||||
|
[ -s "$packagesfiles" ] || echo > $packagesfiles
|
||||||
|
|
||||||
|
( cd /overlay/upper/; find .$SAVE_OVERLAY_PATH \( -type f -o -type l \) $find_filter | sed \
|
||||||
|
-e 's,^\.,,' \
|
||||||
|
-e '\,^/etc/board.json$,d' \
|
||||||
|
-e '\,/[^/]*-opkg$,d' \
|
||||||
|
-e '\,^/etc/urandom.seed$,d' \
|
||||||
|
-e "\,^$INSTALLED_PACKAGES$,d" \
|
||||||
|
-e '\,^/usr/lib/opkg/.*,d' \
|
||||||
|
) | grep -v -x -F -f $packagesfiles > "$file"
|
||||||
|
|
||||||
|
rm -f "$packagesfiles"
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $SAVE_OVERLAY = 1 ]; then
|
||||||
|
[ ! -d /overlay/upper/etc ] && {
|
||||||
|
echo "Cannot find '/overlay/upper/etc', required for '-c'" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
sysupgrade_init_conffiles="add_overlayfiles"
|
||||||
|
else
|
||||||
|
sysupgrade_init_conffiles="add_conffiles"
|
||||||
|
fi
|
||||||
|
|
||||||
|
find_filter=""
|
||||||
|
if [ $SKIP_UNCHANGED = 1 ]; then
|
||||||
|
[ ! -d /rom/ ] && {
|
||||||
|
echo "'/rom/' is required by '-u'"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
find_filter='( ( -exec test -e /rom/{} ; -exec cmp -s /{} /rom/{} ; ) -o -print )'
|
||||||
|
fi
|
||||||
|
|
||||||
|
include /lib/upgrade
|
||||||
|
|
||||||
|
do_save_conffiles() {
|
||||||
|
local conf_tar="$1"
|
||||||
|
|
||||||
|
[ -z "$(rootfs_type)" ] && {
|
||||||
|
echo "Cannot save config while running from ramdisk." >&2
|
||||||
|
ask_bool 0 "Abort" && exit
|
||||||
|
rm -f "$conf_tar"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
run_hooks "$CONFFILES" $sysupgrade_init_conffiles
|
||||||
|
ask_bool 0 "Edit config file list" && vi "$CONFFILES"
|
||||||
|
|
||||||
|
if [ "$SAVE_INSTALLED_PKGS" -eq 1 ]; then
|
||||||
|
echo "${INSTALLED_PACKAGES}" >> "$CONFFILES"
|
||||||
|
mkdir -p "$ETCBACKUP_DIR"
|
||||||
|
# Avoid touching filesystem on each backup
|
||||||
|
RAMFS="$(mktemp -d -t sysupgrade.XXXXXX)"
|
||||||
|
mkdir -p "$RAMFS/upper" "$RAMFS/work"
|
||||||
|
mount -t overlay overlay -o lowerdir=$ETCBACKUP_DIR,upperdir=$RAMFS/upper,workdir=$RAMFS/work $ETCBACKUP_DIR &&
|
||||||
|
UMOUNT_ETCBACKUP_DIR=1 || {
|
||||||
|
echo "Cannot mount '$ETCBACKUP_DIR' as tmpfs to avoid touching disk while saving the list of installed packages." >&2
|
||||||
|
ask_bool 0 "Abort" && exit
|
||||||
|
}
|
||||||
|
|
||||||
|
# Format: pkg-name<TAB>{rom,overlay,unkown}
|
||||||
|
# rom is used for pkgs in /rom, even if updated later
|
||||||
|
find /usr/lib/opkg/info -name "*.control" \( \
|
||||||
|
\( -exec test -f /rom/{} \; -exec echo {} rom \; \) -o \
|
||||||
|
\( -exec test -f /overlay/upper/{} \; -exec echo {} overlay \; \) -o \
|
||||||
|
\( -exec echo {} unknown \; \) \
|
||||||
|
\) | sed -e 's,.*/,,;s/\.control /\t/' > ${INSTALLED_PACKAGES}
|
||||||
|
fi
|
||||||
|
|
||||||
|
v "Saving config files..."
|
||||||
|
[ "$VERBOSE" -gt 1 ] && TAR_V="v" || TAR_V=""
|
||||||
|
tar c${TAR_V}zf "$conf_tar" -T "$CONFFILES" 2>/dev/null
|
||||||
|
if [ "$?" -ne 0 ]; then
|
||||||
|
echo "Failed to create the configuration backup."
|
||||||
|
rm -f "$conf_tar"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ "$UMOUNT_ETCBACKUP_DIR" -eq 1 ] && {
|
||||||
|
umount "$ETCBACKUP_DIR"
|
||||||
|
rm -rf "$RAMFS"
|
||||||
|
}
|
||||||
|
rm -f "$CONFFILES"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $CONF_BACKUP_LIST -eq 1 ]; then
|
||||||
|
run_hooks "$CONFFILES" $sysupgrade_init_conffiles
|
||||||
|
[ "$SAVE_INSTALLED_PKGS" -eq 1 ] && echo ${INSTALLED_PACKAGES} >> "$CONFFILES"
|
||||||
|
cat "$CONFFILES"
|
||||||
|
rm -f "$CONFFILES"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$CONF_BACKUP" ]; then
|
||||||
|
do_save_conffiles "$CONF_BACKUP"
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$CONF_RESTORE" ]; then
|
||||||
|
if [ "$CONF_RESTORE" != "-" ] && [ ! -f "$CONF_RESTORE" ]; then
|
||||||
|
echo "Backup archive '$CONF_RESTORE' not found." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ "$VERBOSE" -gt 1 ] && TAR_V="v" || TAR_V=""
|
||||||
|
cp /etc/passwd /etc/group /etc/shadow /tmp
|
||||||
|
tar -C / -x${TAR_V}zf "$CONF_RESTORE"
|
||||||
|
missing_lines /tmp/passwd /etc/passwd >> /etc/passwd
|
||||||
|
missing_lines /tmp/group /etc/group >> /etc/group
|
||||||
|
missing_lines /tmp/shadow /etc/shadow >> /etc/shadow
|
||||||
|
rm /tmp/passwd /tmp/group /tmp/shadow
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
type platform_check_image >/dev/null 2>/dev/null || {
|
||||||
|
echo "Firmware upgrade is not implemented for this platform." >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$IMAGE" in
|
||||||
|
http://*|\
|
||||||
|
https://*)
|
||||||
|
wget -O/tmp/sysupgrade.img "$IMAGE" || exit 1
|
||||||
|
IMAGE=/tmp/sysupgrade.img
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
IMAGE="$(readlink -f "$IMAGE")"
|
||||||
|
|
||||||
|
case "$IMAGE" in
|
||||||
|
'')
|
||||||
|
echo "Image file not found." >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
/tmp/*) ;;
|
||||||
|
*)
|
||||||
|
v "Image not in /tmp, copying..."
|
||||||
|
cp -f "$IMAGE" /tmp/sysupgrade.img
|
||||||
|
IMAGE=/tmp/sysupgrade.img
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
json_load "$(/usr/libexec/validate_firmware_image "$IMAGE")" || {
|
||||||
|
echo "Failed to check image"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
json_get_var valid "valid"
|
||||||
|
[ "$valid" -eq 0 ] && {
|
||||||
|
if [ $FORCE -eq 1 ]; then
|
||||||
|
echo "Image check failed but --force given - will update anyway!" >&2
|
||||||
|
else
|
||||||
|
echo "Image check failed." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -n "$CONF_IMAGE" ]; then
|
||||||
|
case "$(get_magic_word $CONF_IMAGE cat)" in
|
||||||
|
# .gz files
|
||||||
|
1f8b) ;;
|
||||||
|
*)
|
||||||
|
echo "Invalid config file. Please use only .tar.gz files" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
get_image "$CONF_IMAGE" "cat" > "$CONF_TAR"
|
||||||
|
export SAVE_CONFIG=1
|
||||||
|
elif ask_bool $SAVE_CONFIG "Keep config files over reflash"; then
|
||||||
|
[ $TEST -eq 1 ] || do_save_conffiles "$CONF_TAR"
|
||||||
|
export SAVE_CONFIG=1
|
||||||
|
else
|
||||||
|
[ $TEST -eq 1 ] || rm -f "$CONF_TAR"
|
||||||
|
export SAVE_CONFIG=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $TEST -eq 1 ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
install_bin /sbin/upgraded
|
||||||
|
v "Commencing upgrade. Closing all shell sessions."
|
||||||
|
|
||||||
|
COMMAND='/lib/upgrade/do_stage2'
|
||||||
|
|
||||||
|
if [ -n "$FAILSAFE" ]; then
|
||||||
|
printf '%s\x00%s\x00%s' "$RAM_ROOT" "$IMAGE" "$COMMAND" >/tmp/sysupgrade
|
||||||
|
lock -u /tmp/.failsafe
|
||||||
|
else
|
||||||
|
json_init
|
||||||
|
json_add_string prefix "$RAM_ROOT"
|
||||||
|
json_add_string path "$IMAGE"
|
||||||
|
[ $FORCE -eq 1 ] && json_add_boolean force 1
|
||||||
|
[ $SAVE_CONFIG -eq 1 ] && json_add_string backup "$CONF_TAR"
|
||||||
|
json_add_string command "$COMMAND"
|
||||||
|
json_add_object options
|
||||||
|
json_add_int save_partitions "$SAVE_PARTITIONS"
|
||||||
|
json_close_object
|
||||||
|
|
||||||
|
ubus call system sysupgrade "$(json_dump)"
|
||||||
|
fi
|
432
root/rules.mk
Normal file
432
root/rules.mk
Normal file
|
@ -0,0 +1,432 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2010 OpenWrt.org
|
||||||
|
# Copyright (C) 2016 LEDE Project
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
ifneq ($(__rules_inc),1)
|
||||||
|
__rules_inc=1
|
||||||
|
|
||||||
|
ifeq ($(DUMP),)
|
||||||
|
-include $(TOPDIR)/.config
|
||||||
|
endif
|
||||||
|
include $(TOPDIR)/include/debug.mk
|
||||||
|
include $(TOPDIR)/include/verbose.mk
|
||||||
|
|
||||||
|
ifneq ($(filter check,$(MAKECMDGOALS)),)
|
||||||
|
CHECK:=1
|
||||||
|
DUMP:=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
export TMP_DIR:=$(TOPDIR)/tmp
|
||||||
|
export TMPDIR:=$(TMP_DIR)
|
||||||
|
|
||||||
|
qstrip=$(strip $(subst ",,$(1)))
|
||||||
|
#"))
|
||||||
|
|
||||||
|
empty:=
|
||||||
|
space:= $(empty) $(empty)
|
||||||
|
comma:=,
|
||||||
|
merge=$(subst $(space),,$(1))
|
||||||
|
confvar=$(shell echo '$(foreach v,$(1),$(v)=$(subst ','\'',$($(v))))' | $(STAGING_DIR_HOST)/bin/mkhash md5)
|
||||||
|
strip_last=$(patsubst %.$(lastword $(subst .,$(space),$(1))),%,$(1))
|
||||||
|
|
||||||
|
paren_left = (
|
||||||
|
paren_right = )
|
||||||
|
chars_lower = a b c d e f g h i j k l m n o p q r s t u v w x y z
|
||||||
|
chars_upper = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
|
||||||
|
|
||||||
|
define sep
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
define newline
|
||||||
|
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
__tr_list = $(join $(join $(1),$(foreach char,$(1),$(comma))),$(2))
|
||||||
|
__tr_head_stripped = $(subst $(space),,$(foreach cv,$(call __tr_list,$(1),$(2)),$$$(paren_left)subst$(cv)$(comma)))
|
||||||
|
__tr_head = $(subst $(paren_left)subst,$(paren_left)subst$(space),$(__tr_head_stripped))
|
||||||
|
__tr_tail = $(subst $(space),,$(foreach cv,$(1),$(paren_right)))
|
||||||
|
__tr_template = $(__tr_head)$$(1)$(__tr_tail)
|
||||||
|
|
||||||
|
$(eval toupper = $(call __tr_template,$(chars_lower),$(chars_upper)))
|
||||||
|
$(eval tolower = $(call __tr_template,$(chars_upper),$(chars_lower)))
|
||||||
|
|
||||||
|
version_abbrev = $(if $(if $(CHECK),,$(DUMP)),$(1),$(shell printf '%.8s' $(1)))
|
||||||
|
|
||||||
|
_SINGLE=export MAKEFLAGS=$(space);
|
||||||
|
CFLAGS:=
|
||||||
|
ARCH:=$(subst i486,i386,$(subst i586,i386,$(subst i686,i386,$(call qstrip,$(CONFIG_ARCH)))))
|
||||||
|
ARCH_PACKAGES:=$(call qstrip,$(CONFIG_TARGET_ARCH_PACKAGES))
|
||||||
|
BOARD:=$(call qstrip,$(CONFIG_TARGET_BOARD))
|
||||||
|
SUBTARGET:=$(call qstrip,$(CONFIG_TARGET_SUBTARGET))
|
||||||
|
TARGET_OPTIMIZATION:=$(call qstrip,$(CONFIG_TARGET_OPTIMIZATION))
|
||||||
|
export EXTRA_OPTIMIZATION:=$(filter-out -fno-plt,$(call qstrip,$(CONFIG_EXTRA_OPTIMIZATION)))
|
||||||
|
TARGET_SUFFIX=$(call qstrip,$(CONFIG_TARGET_SUFFIX))
|
||||||
|
BUILD_SUFFIX:=$(call qstrip,$(CONFIG_BUILD_SUFFIX))
|
||||||
|
SUBDIR:=$(patsubst $(TOPDIR)/%,%,${CURDIR})
|
||||||
|
BUILD_SUBDIR:=$(patsubst $(TOPDIR)/%,%,${CURDIR})
|
||||||
|
NPROC:=$(shell sysctl -n hw.ncpu 2>/dev/null || nproc)
|
||||||
|
export SHELL:=/usr/bin/env bash
|
||||||
|
|
||||||
|
IS_PACKAGE_BUILD := $(if $(filter package/%,$(BUILD_SUBDIR)),1)
|
||||||
|
|
||||||
|
OPTIMIZE_FOR_CPU=$(subst i386,i486,$(ARCH))
|
||||||
|
|
||||||
|
ifneq (,$(findstring $(ARCH) , aarch64 aarch64_be powerpc ))
|
||||||
|
FPIC:=-fPIC
|
||||||
|
else
|
||||||
|
FPIC:=-fpic
|
||||||
|
endif
|
||||||
|
|
||||||
|
HOST_FPIC:=-fPIC
|
||||||
|
|
||||||
|
ARCH_SUFFIX:=$(call qstrip,$(CONFIG_CPU_TYPE))
|
||||||
|
GCC_ARCH:=
|
||||||
|
|
||||||
|
ifneq ($(ARCH_SUFFIX),)
|
||||||
|
ARCH_SUFFIX:=_$(ARCH_SUFFIX)
|
||||||
|
endif
|
||||||
|
ifneq ($(filter -march=armv%,$(TARGET_OPTIMIZATION)),)
|
||||||
|
GCC_ARCH:=$(patsubst -march=%,%,$(filter -march=armv%,$(TARGET_OPTIMIZATION)))
|
||||||
|
endif
|
||||||
|
ifdef CONFIG_HAS_SPE_FPU
|
||||||
|
TARGET_SUFFIX:=$(TARGET_SUFFIX)spe
|
||||||
|
endif
|
||||||
|
ifdef CONFIG_MIPS64_ABI
|
||||||
|
ifneq ($(CONFIG_MIPS64_ABI_O32),y)
|
||||||
|
ARCH_SUFFIX:=$(ARCH_SUFFIX)_$(call qstrip,$(CONFIG_MIPS64_ABI))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
DEFAULT_SUBDIR_TARGETS:=clean download prepare compile update refresh prereq dist distcheck configure check check-depends
|
||||||
|
|
||||||
|
define DefaultTargets
|
||||||
|
$(foreach t,$(DEFAULT_SUBDIR_TARGETS) $(1),
|
||||||
|
.$(t):
|
||||||
|
$(t): .$(t)
|
||||||
|
.PHONY: $(t) .$(t)
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
|
DL_DIR:=$(if $(call qstrip,$(CONFIG_DOWNLOAD_FOLDER)),$(call qstrip,$(CONFIG_DOWNLOAD_FOLDER)),$(TOPDIR)/dl)
|
||||||
|
OUTPUT_DIR:=$(if $(call qstrip,$(CONFIG_BINARY_FOLDER)),$(call qstrip,$(CONFIG_BINARY_FOLDER)),$(TOPDIR)/bin)
|
||||||
|
BIN_DIR:=$(OUTPUT_DIR)/targets/$(BOARD)/$(SUBTARGET)
|
||||||
|
INCLUDE_DIR:=$(TOPDIR)/include
|
||||||
|
SCRIPT_DIR:=$(TOPDIR)/scripts
|
||||||
|
BUILD_DIR_BASE:=$(TOPDIR)/build_dir
|
||||||
|
ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
|
||||||
|
GCCV:=$(call qstrip,$(CONFIG_GCC_VERSION))
|
||||||
|
LIBC:=$(call qstrip,$(CONFIG_LIBC))
|
||||||
|
REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX))
|
||||||
|
GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-openwrt-linux
|
||||||
|
DIR_SUFFIX:=_$(LIBC)$(if $(CONFIG_arm),_eabi)
|
||||||
|
BIN_DIR:=$(BIN_DIR)$(if $(CONFIG_USE_MUSL),,-$(LIBC))
|
||||||
|
TARGET_DIR_NAME = target-$(ARCH)$(ARCH_SUFFIX)$(DIR_SUFFIX)$(if $(BUILD_SUFFIX),_$(BUILD_SUFFIX))
|
||||||
|
TOOLCHAIN_DIR_NAME = toolchain-$(ARCH)$(ARCH_SUFFIX)_gcc-$(GCCV)$(DIR_SUFFIX)
|
||||||
|
else
|
||||||
|
ifeq ($(CONFIG_NATIVE_TOOLCHAIN),)
|
||||||
|
GNU_TARGET_NAME=$(call qstrip,$(CONFIG_TARGET_NAME))
|
||||||
|
else
|
||||||
|
GNU_TARGET_NAME=$(shell gcc -dumpmachine)
|
||||||
|
endif
|
||||||
|
REAL_GNU_TARGET_NAME=$(GNU_TARGET_NAME)
|
||||||
|
LIBC:=$(call qstrip,$(CONFIG_LIBC))
|
||||||
|
TARGET_DIR_NAME:=target-$(GNU_TARGET_NAME)_$(LIBC)$(if $(BUILD_SUFFIX),_$(BUILD_SUFFIX))
|
||||||
|
TOOLCHAIN_DIR_NAME:=toolchain-$(GNU_TARGET_NAME)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(or $(CONFIG_EXTERNAL_TOOLCHAIN),$(CONFIG_TARGET_uml)),)
|
||||||
|
ifeq ($(CONFIG_GCC_USE_IREMAP),y)
|
||||||
|
iremap = -iremap$(1):$(2)
|
||||||
|
else
|
||||||
|
iremap = -f$(if $(CONFIG_REPRODUCIBLE_DEBUG_INFO),file,macro)-prefix-map=$(1)=$(2)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
PACKAGE_DIR:=$(BIN_DIR)/packages
|
||||||
|
PACKAGE_DIR_ALL:=$(TOPDIR)/staging_dir/packages/$(BOARD)
|
||||||
|
BUILD_DIR:=$(BUILD_DIR_BASE)/$(TARGET_DIR_NAME)
|
||||||
|
STAGING_DIR:=$(TOPDIR)/staging_dir/$(TARGET_DIR_NAME)
|
||||||
|
BUILD_DIR_TOOLCHAIN:=$(BUILD_DIR_BASE)/$(TOOLCHAIN_DIR_NAME)
|
||||||
|
TOOLCHAIN_DIR:=$(TOPDIR)/staging_dir/$(TOOLCHAIN_DIR_NAME)
|
||||||
|
STAMP_DIR:=$(BUILD_DIR)/stamp
|
||||||
|
STAMP_DIR_HOST=$(BUILD_DIR_HOST)/stamp
|
||||||
|
TARGET_ROOTFS_DIR?=$(if $(call qstrip,$(CONFIG_TARGET_ROOTFS_DIR)),$(call qstrip,$(CONFIG_TARGET_ROOTFS_DIR)),$(BUILD_DIR))
|
||||||
|
TARGET_DIR:=$(TARGET_ROOTFS_DIR)/root-$(BOARD)
|
||||||
|
STAGING_DIR_ROOT:=$(STAGING_DIR)/root-$(BOARD)
|
||||||
|
STAGING_DIR_IMAGE:=$(STAGING_DIR)/image
|
||||||
|
BUILD_LOG_DIR:=$(if $(call qstrip,$(CONFIG_BUILD_LOG_DIR)),$(call qstrip,$(CONFIG_BUILD_LOG_DIR)),$(TOPDIR)/logs)
|
||||||
|
PKG_INFO_DIR := $(STAGING_DIR)/pkginfo
|
||||||
|
|
||||||
|
BUILD_DIR_HOST:=$(if $(IS_PACKAGE_BUILD),$(BUILD_DIR_BASE)/hostpkg,$(BUILD_DIR_BASE)/host)
|
||||||
|
STAGING_DIR_HOST:=$(TOPDIR)/staging_dir/host
|
||||||
|
STAGING_DIR_HOSTPKG:=$(TOPDIR)/staging_dir/hostpkg
|
||||||
|
|
||||||
|
TARGET_PATH:=$(subst $(space),:,$(filter-out .,$(filter-out ./,$(subst :,$(space),$(PATH)))))
|
||||||
|
TARGET_INIT_PATH:=$(call qstrip,$(CONFIG_TARGET_INIT_PATH))
|
||||||
|
TARGET_INIT_PATH:=$(if $(TARGET_INIT_PATH),$(TARGET_INIT_PATH),/usr/sbin:/sbin:/usr/bin:/bin)
|
||||||
|
TARGET_CFLAGS:=$(TARGET_OPTIMIZATION)$(if $(CONFIG_DEBUG), -g3) $(call qstrip,$(CONFIG_EXTRA_OPTIMIZATION))
|
||||||
|
TARGET_CXXFLAGS = $(TARGET_CFLAGS)
|
||||||
|
TARGET_ASFLAGS_DEFAULT = $(TARGET_CFLAGS)
|
||||||
|
TARGET_ASFLAGS = $(TARGET_ASFLAGS_DEFAULT)
|
||||||
|
TARGET_CPPFLAGS:=-I$(STAGING_DIR)/usr/include
|
||||||
|
TARGET_LDFLAGS:=-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib
|
||||||
|
ifneq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
|
||||||
|
LIBGCC_S_PATH=$(realpath $(wildcard $(call qstrip,$(CONFIG_LIBGCC_ROOT_DIR))/$(call qstrip,$(CONFIG_LIBGCC_FILE_SPEC))))
|
||||||
|
LIBGCC_S=$(if $(LIBGCC_S_PATH),-L$(dir $(LIBGCC_S_PATH)) -lgcc_s)
|
||||||
|
LIBGCC_A=$(realpath $(lastword $(wildcard $(dir $(LIBGCC_S_PATH))/gcc/*/*/libgcc.a)))
|
||||||
|
else
|
||||||
|
LIBGCC_A=$(lastword $(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.a))
|
||||||
|
LIBGCC_S=$(if $(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so),-L$(TOOLCHAIN_DIR)/lib -lgcc_s,$(LIBGCC_A))
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_64BIT),y)
|
||||||
|
LIB_SUFFIX:=64
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef DUMP
|
||||||
|
ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
|
||||||
|
-include $(TOOLCHAIN_DIR)/info.mk
|
||||||
|
export GCC_HONOUR_COPTS:=0
|
||||||
|
TARGET_CROSS:=$(if $(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX))-)
|
||||||
|
TARGET_CFLAGS+= -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result
|
||||||
|
TARGET_CPPFLAGS+= -I$(TOOLCHAIN_DIR)/usr/include
|
||||||
|
ifeq ($(CONFIG_USE_MUSL),y)
|
||||||
|
TARGET_CPPFLAGS+= -I$(TOOLCHAIN_DIR)/include/fortify
|
||||||
|
endif
|
||||||
|
TARGET_CPPFLAGS+= -I$(TOOLCHAIN_DIR)/include
|
||||||
|
TARGET_LDFLAGS+= -L$(TOOLCHAIN_DIR)/usr/lib -L$(TOOLCHAIN_DIR)/lib
|
||||||
|
TARGET_PATH:=$(TOOLCHAIN_DIR)/bin:$(TARGET_PATH)
|
||||||
|
else
|
||||||
|
ifeq ($(CONFIG_NATIVE_TOOLCHAIN),)
|
||||||
|
TARGET_CROSS:=$(call qstrip,$(CONFIG_TOOLCHAIN_PREFIX))
|
||||||
|
TOOLCHAIN_ROOT_DIR:=$(call qstrip,$(CONFIG_TOOLCHAIN_ROOT))
|
||||||
|
TOOLCHAIN_BIN_DIRS:=$(patsubst ./%,$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_BIN_PATH)))
|
||||||
|
TOOLCHAIN_INC_DIRS:=$(patsubst ./%,$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_INC_PATH)))
|
||||||
|
TOOLCHAIN_LIB_DIRS:=$(patsubst ./%,$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_LIB_PATH)))
|
||||||
|
ifneq ($(TOOLCHAIN_BIN_DIRS),)
|
||||||
|
TARGET_PATH:=$(subst $(space),:,$(TOOLCHAIN_BIN_DIRS)):$(TARGET_PATH)
|
||||||
|
endif
|
||||||
|
ifneq ($(TOOLCHAIN_INC_DIRS),)
|
||||||
|
TARGET_CPPFLAGS+= $(patsubst %,-I%,$(TOOLCHAIN_INC_DIRS))
|
||||||
|
endif
|
||||||
|
ifneq ($(TOOLCHAIN_LIB_DIRS),)
|
||||||
|
TARGET_LDFLAGS+= $(patsubst %,-L%,$(TOOLCHAIN_LIB_DIRS))
|
||||||
|
endif
|
||||||
|
TARGET_PATH:=$(TOOLCHAIN_DIR)/bin:$(TARGET_PATH)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
TARGET_PATH_PKG:=$(STAGING_DIR)/host/bin:$(STAGING_DIR_HOSTPKG)/bin:$(TARGET_PATH)
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_SOFT_FLOAT),y)
|
||||||
|
SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft
|
||||||
|
ifeq ($(CONFIG_arm),y)
|
||||||
|
TARGET_CFLAGS+= -mfloat-abi=soft
|
||||||
|
else
|
||||||
|
TARGET_CFLAGS+= -msoft-float
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
SOFT_FLOAT_CONFIG_OPTION:=
|
||||||
|
ifeq ($(CONFIG_arm),y)
|
||||||
|
TARGET_CFLAGS+= -mfloat-abi=hard
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
export PATH:=$(TARGET_PATH)
|
||||||
|
export STAGING_DIR STAGING_DIR_HOST STAGING_DIR_HOSTPKG
|
||||||
|
export SH_FUNC:=. $(INCLUDE_DIR)/shell.sh;
|
||||||
|
|
||||||
|
PKG_CONFIG:=$(STAGING_DIR_HOST)/bin/pkg-config
|
||||||
|
|
||||||
|
export PKG_CONFIG
|
||||||
|
|
||||||
|
HOSTCC:=gcc
|
||||||
|
HOSTCXX:=g++
|
||||||
|
HOST_CPPFLAGS:=-I$(STAGING_DIR_HOST)/include $(if $(IS_PACKAGE_BUILD),-I$(STAGING_DIR_HOSTPKG)/include -I$(STAGING_DIR)/host/include)
|
||||||
|
HOST_CFLAGS:=-O2 $(HOST_CPPFLAGS)
|
||||||
|
HOST_LDFLAGS:=-L$(STAGING_DIR_HOST)/lib $(if $(IS_PACKAGE_BUILD),-L$(STAGING_DIR_HOSTPKG)/lib -L$(STAGING_DIR)/host/lib)
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
|
||||||
|
TARGET_AR:=$(TARGET_CROSS)gcc-ar
|
||||||
|
TARGET_RANLIB:=$(TARGET_CROSS)gcc-ranlib
|
||||||
|
TARGET_NM:=$(TARGET_CROSS)gcc-nm
|
||||||
|
else
|
||||||
|
TARGET_AR:=$(TARGET_CROSS)ar
|
||||||
|
TARGET_RANLIB:=$(TARGET_CROSS)ranlib
|
||||||
|
TARGET_NM:=$(TARGET_CROSS)nm
|
||||||
|
endif
|
||||||
|
|
||||||
|
BUILD_KEY=$(TOPDIR)/key-build
|
||||||
|
|
||||||
|
FAKEROOT:=$(STAGING_DIR_HOST)/bin/fakeroot
|
||||||
|
|
||||||
|
TARGET_CC:=$(TARGET_CROSS)gcc
|
||||||
|
TARGET_CXX:=$(TARGET_CROSS)g++
|
||||||
|
KPATCH:=$(SCRIPT_DIR)/patch-kernel.sh
|
||||||
|
SED:=$(STAGING_DIR_HOST)/bin/sed -i -e
|
||||||
|
ESED:=$(STAGING_DIR_HOST)/bin/sed -E -i -e
|
||||||
|
CP:=cp -fpR
|
||||||
|
LN:=ln -sf
|
||||||
|
XARGS:=xargs -r
|
||||||
|
|
||||||
|
BASH:=bash
|
||||||
|
TAR:=tar
|
||||||
|
FIND:=find
|
||||||
|
PATCH:=patch
|
||||||
|
PYTHON:=python
|
||||||
|
|
||||||
|
INSTALL_BIN:=install -m0755
|
||||||
|
INSTALL_SUID:=install -m4755
|
||||||
|
INSTALL_DIR:=install -d -m0755
|
||||||
|
INSTALL_DATA:=install -m0644
|
||||||
|
INSTALL_CONF:=install -m0600
|
||||||
|
|
||||||
|
TARGET_CC_NOCACHE:=$(TARGET_CC)
|
||||||
|
TARGET_CXX_NOCACHE:=$(TARGET_CXX)
|
||||||
|
HOSTCC_NOCACHE:=$(HOSTCC)
|
||||||
|
HOSTCXX_NOCACHE:=$(HOSTCXX)
|
||||||
|
export TARGET_CC_NOCACHE
|
||||||
|
export TARGET_CXX_NOCACHE
|
||||||
|
export HOSTCC_NOCACHE
|
||||||
|
export HOSTCXX_NOCACHE
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_CCACHE),)
|
||||||
|
TARGET_CC:= ccache_cc
|
||||||
|
TARGET_CXX:= ccache_cxx
|
||||||
|
HOSTCC:= ccache $(HOSTCC)
|
||||||
|
HOSTCXX:= ccache $(HOSTCXX)
|
||||||
|
export CCACHE_BASEDIR:=$(TOPDIR)
|
||||||
|
export CCACHE_DIR:=$(if $(call qstrip,$(CONFIG_CCACHE_DIR)),$(call qstrip,$(CONFIG_CCACHE_DIR)),$(TOPDIR)/.ccache)
|
||||||
|
export CCACHE_COMPILERCHECK:=%compiler% -dumpmachine; %compiler% -dumpversion
|
||||||
|
endif
|
||||||
|
|
||||||
|
TARGET_CONFIGURE_OPTS = \
|
||||||
|
AR="$(TARGET_AR)" \
|
||||||
|
AS="$(TARGET_CC) -c $(TARGET_ASFLAGS)" \
|
||||||
|
LD=$(TARGET_CROSS)ld \
|
||||||
|
NM="$(TARGET_NM)" \
|
||||||
|
CC="$(TARGET_CC)" \
|
||||||
|
GCC="$(TARGET_CC)" \
|
||||||
|
CXX="$(TARGET_CXX)" \
|
||||||
|
RANLIB="$(TARGET_RANLIB)" \
|
||||||
|
STRIP=$(TARGET_CROSS)strip \
|
||||||
|
OBJCOPY=$(TARGET_CROSS)objcopy \
|
||||||
|
OBJDUMP=$(TARGET_CROSS)objdump \
|
||||||
|
SIZE=$(TARGET_CROSS)size
|
||||||
|
|
||||||
|
# strip an entire directory
|
||||||
|
ifneq ($(CONFIG_NO_STRIP),)
|
||||||
|
RSTRIP:=:
|
||||||
|
STRIP:=:
|
||||||
|
else
|
||||||
|
ifneq ($(CONFIG_USE_STRIP),)
|
||||||
|
STRIP:=$(TARGET_CROSS)strip $(call qstrip,$(CONFIG_STRIP_ARGS))
|
||||||
|
else
|
||||||
|
ifneq ($(CONFIG_USE_SSTRIP),)
|
||||||
|
STRIP:=$(STAGING_DIR_HOST)/bin/sstrip $(call qstrip,$(CONFIG_SSTRIP_ARGS))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
RSTRIP= \
|
||||||
|
export CROSS="$(TARGET_CROSS)" \
|
||||||
|
$(if $(PKG_BUILD_ID),KEEP_BUILD_ID=1) \
|
||||||
|
$(if $(CONFIG_KERNEL_KALLSYMS),NO_RENAME=1) \
|
||||||
|
$(if $(CONFIG_KERNEL_PROFILING),KEEP_SYMBOLS=1); \
|
||||||
|
NM="$(TARGET_CROSS)nm" \
|
||||||
|
STRIP="$(STRIP)" \
|
||||||
|
STRIP_KMOD="$(SCRIPT_DIR)/strip-kmod.sh" \
|
||||||
|
PATCHELF="$(STAGING_DIR_HOST)/bin/patchelf" \
|
||||||
|
$(SCRIPT_DIR)/rstrip.sh
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_IPV6),y)
|
||||||
|
DISABLE_IPV6:=
|
||||||
|
else
|
||||||
|
DISABLE_IPV6:=--disable-ipv6
|
||||||
|
endif
|
||||||
|
|
||||||
|
TAR_OPTIONS:=-xf -
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_BUILD_LOG),y)
|
||||||
|
BUILD_LOG:=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
export BISON_PKGDATADIR:=$(STAGING_DIR_HOST)/share/bison
|
||||||
|
export M4:=$(STAGING_DIR_HOST)/bin/m4
|
||||||
|
|
||||||
|
define shvar
|
||||||
|
V_$(subst .,_,$(subst -,_,$(subst /,_,$(1))))
|
||||||
|
endef
|
||||||
|
|
||||||
|
define shexport
|
||||||
|
export $(call shvar,$(1))=$$(call $(1))
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Execute commands under flock
|
||||||
|
# $(1) => The shell expression.
|
||||||
|
# $(2) => The lock name. If not given, the global lock will be used.
|
||||||
|
ifneq ($(wildcard $(STAGING_DIR_HOST)/bin/flock),)
|
||||||
|
define locked
|
||||||
|
SHELL= \
|
||||||
|
flock \
|
||||||
|
$(TMP_DIR)/.$(if $(2),$(strip $(2)),global).flock \
|
||||||
|
-c '$(subst ','\'',$(1))'
|
||||||
|
endef
|
||||||
|
else
|
||||||
|
locked=$(1)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Recursively copy paths into another directory, purge dangling
|
||||||
|
# symlinks before.
|
||||||
|
# $(1) => File glob expression
|
||||||
|
# $(2) => Destination directory
|
||||||
|
define file_copy
|
||||||
|
for src_dir in $(sort $(foreach d,$(wildcard $(1)),$(dir $(d)))); do \
|
||||||
|
( cd $$src_dir; find -type f -or -type d ) | \
|
||||||
|
( cd $(2); while :; do \
|
||||||
|
read FILE; \
|
||||||
|
[ -z "$$FILE" ] && break; \
|
||||||
|
[ -L "$$FILE" ] || continue; \
|
||||||
|
echo "Removing symlink $(2)/$$FILE"; \
|
||||||
|
rm -f "$$FILE"; \
|
||||||
|
done; ); \
|
||||||
|
done; \
|
||||||
|
$(CP) $(1) $(2)
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Calculate sha256sum of any plain file within a given directory
|
||||||
|
# $(1) => Input directory
|
||||||
|
# $(2) => If set, recurse into subdirectories
|
||||||
|
define sha256sums
|
||||||
|
(cd $(1); find . $(if $(2),,-maxdepth 1) -type f -not -name 'sha256sums' -printf "%P\n" | sort | \
|
||||||
|
xargs -r $(STAGING_DIR_HOST)/bin/mkhash -n sha256 | sed -ne 's!^\(.*\) \(.*\)$$!\1 *\2!p' > sha256sums)
|
||||||
|
endef
|
||||||
|
|
||||||
|
# file extension
|
||||||
|
ext=$(word $(words $(subst ., ,$(1))),$(subst ., ,$(1)))
|
||||||
|
|
||||||
|
all:
|
||||||
|
FORCE: ;
|
||||||
|
.PHONY: FORCE
|
||||||
|
|
||||||
|
check: FORCE
|
||||||
|
@true
|
||||||
|
|
||||||
|
val.%:
|
||||||
|
@$(if $(filter undefined,$(origin $*)),\
|
||||||
|
echo "$* undefined" >&2, \
|
||||||
|
echo '$(subst ','"'"',$($*))' \
|
||||||
|
)
|
||||||
|
|
||||||
|
var.%:
|
||||||
|
@$(if $(filter undefined,$(origin $*)),\
|
||||||
|
echo "$* undefined" >&2, \
|
||||||
|
echo "$*='"'$(subst ','"'\"'\"'"',$($*))'"'" \
|
||||||
|
)
|
||||||
|
|
||||||
|
endif #__rules_inc
|
|
@ -57,11 +57,12 @@ diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
|
||||||
index 2033bb8683033..90ccc71231c1a 100644
|
index 2033bb8683033..90ccc71231c1a 100644
|
||||||
--- a/drivers/usb/host/xhci.h
|
--- a/drivers/usb/host/xhci.h
|
||||||
+++ b/drivers/usb/host/xhci.h
|
+++ b/drivers/usb/host/xhci.h
|
||||||
@@ -1874,6 +1874,7 @@ struct xhci_hcd {
|
@@ -1874,7 +1874,8 @@ struct xhci_hcd {
|
||||||
#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
|
#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
|
||||||
#define XHCI_SNPS_BROKEN_SUSPEND BIT_ULL(35)
|
#define XHCI_SNPS_BROKEN_SUSPEND BIT_ULL(35)
|
||||||
#define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(36)
|
#define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(36)
|
||||||
+#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(37)
|
+#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(37)
|
||||||
|
#define XHCI_DISABLE_SPARSE BIT_ULL(38)
|
||||||
|
|
||||||
unsigned int num_active_eps;
|
unsigned int num_active_eps;
|
||||||
unsigned int limit_active_eps;
|
unsigned int limit_active_eps;
|
||||||
|
|
|
@ -3288,14 +3288,14 @@ diff -aurN linux-5.4.64/net/ipv4/syncookies.c linux-5.4.64.mptcp/net/ipv4/syncoo
|
||||||
* the ACK carries the same options again (see RFC1122 4.2.3.8)
|
* the ACK carries the same options again (see RFC1122 4.2.3.8)
|
||||||
*/
|
*/
|
||||||
@@ -387,15 +421,15 @@
|
@@ -387,15 +421,15 @@
|
||||||
/* Try to redo what tcp_v4_send_synack did. */
|
(req->rsk_window_clamp > full_space || req->rsk_window_clamp == 0))
|
||||||
req->rsk_window_clamp = tp->window_clamp ? :dst_metric(&rt->dst, RTAX_WINDOW);
|
req->rsk_window_clamp = full_space;
|
||||||
|
|
||||||
- tcp_select_initial_window(sk, tcp_full_space(sk), req->mss,
|
- tcp_select_initial_window(sk, full_space, req->mss,
|
||||||
- &req->rsk_rcv_wnd, &req->rsk_window_clamp,
|
- &req->rsk_rcv_wnd, &req->rsk_window_clamp,
|
||||||
- ireq->wscale_ok, &rcv_wscale,
|
- ireq->wscale_ok, &rcv_wscale,
|
||||||
- dst_metric(&rt->dst, RTAX_INITRWND));
|
- dst_metric(&rt->dst, RTAX_INITRWND));
|
||||||
+ tp->ops->select_initial_window(sk, tcp_full_space(sk), req->mss,
|
+ tp->ops->select_initial_window(sk, full_space, req->mss,
|
||||||
+ &req->rsk_rcv_wnd, &req->rsk_window_clamp,
|
+ &req->rsk_rcv_wnd, &req->rsk_window_clamp,
|
||||||
+ ireq->wscale_ok, &rcv_wscale,
|
+ ireq->wscale_ok, &rcv_wscale,
|
||||||
+ dst_metric(&rt->dst, RTAX_INITRWND));
|
+ dst_metric(&rt->dst, RTAX_INITRWND));
|
||||||
|
@ -4028,16 +4028,6 @@ diff -aurN linux-5.4.64/net/ipv4/tcp.c linux-5.4.64.mptcp/net/ipv4/tcp.c
|
||||||
#ifdef CONFIG_MMU
|
#ifdef CONFIG_MMU
|
||||||
case TCP_ZEROCOPY_RECEIVE: {
|
case TCP_ZEROCOPY_RECEIVE: {
|
||||||
struct tcp_zerocopy_receive zc;
|
struct tcp_zerocopy_receive zc;
|
||||||
@@ -3862,7 +4143,9 @@
|
|
||||||
if (sk->sk_state == TCP_SYN_SENT || sk->sk_state == TCP_SYN_RECV)
|
|
||||||
TCP_INC_STATS(sock_net(sk), TCP_MIB_ATTEMPTFAILS);
|
|
||||||
|
|
||||||
+ WARN_ON(sk->sk_state == TCP_CLOSE);
|
|
||||||
tcp_set_state(sk, TCP_CLOSE);
|
|
||||||
+
|
|
||||||
tcp_clear_xmit_timers(sk);
|
|
||||||
if (req)
|
|
||||||
reqsk_fastopen_remove(sk, req, false);
|
|
||||||
@@ -3878,6 +4161,8 @@
|
@@ -3878,6 +4161,8 @@
|
||||||
|
|
||||||
int tcp_abort(struct sock *sk, int err)
|
int tcp_abort(struct sock *sk, int err)
|
||||||
|
@ -4592,12 +4582,13 @@ diff -aurN linux-5.4.64/net/ipv4/tcp_input.c linux-5.4.64.mptcp/net/ipv4/tcp_inp
|
||||||
{
|
{
|
||||||
int eaten;
|
int eaten;
|
||||||
struct sk_buff *tail = skb_peek_tail(&sk->sk_receive_queue);
|
struct sk_buff *tail = skb_peek_tail(&sk->sk_receive_queue);
|
||||||
@@ -4774,7 +4838,7 @@
|
@@ -4774,8 +4838,8 @@
|
||||||
int avail = tp->rcv_nxt - tp->copied_seq;
|
int avail = tp->rcv_nxt - tp->copied_seq;
|
||||||
|
|
||||||
if (avail < sk->sk_rcvlowat && !tcp_rmem_pressure(sk) &&
|
if (avail < sk->sk_rcvlowat && !tcp_rmem_pressure(sk) &&
|
||||||
- !sock_flag(sk, SOCK_DONE))
|
- !sock_flag(sk, SOCK_DONE) &&
|
||||||
+ !sock_flag(sk, SOCK_DONE) && !mptcp(tp))
|
+ !sock_flag(sk, SOCK_DONE) && !mptcp(tp) &&
|
||||||
|
tcp_receive_window(tp) > inet_csk(sk)->icsk_ack.rcv_mss)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sk->sk_data_ready(sk);
|
sk->sk_data_ready(sk);
|
||||||
|
@ -6714,14 +6705,14 @@ diff -aurN linux-5.4.64/net/ipv6/syncookies.c linux-5.4.64.mptcp/net/ipv6/syncoo
|
||||||
goto out_free;
|
goto out_free;
|
||||||
|
|
||||||
@@ -241,15 +259,15 @@
|
@@ -241,15 +259,15 @@
|
||||||
}
|
(req->rsk_window_clamp > full_space || req->rsk_window_clamp == 0))
|
||||||
|
req->rsk_window_clamp = full_space;
|
||||||
|
|
||||||
req->rsk_window_clamp = tp->window_clamp ? :dst_metric(dst, RTAX_WINDOW);
|
- tcp_select_initial_window(sk, full_space, req->mss,
|
||||||
- tcp_select_initial_window(sk, tcp_full_space(sk), req->mss,
|
|
||||||
- &req->rsk_rcv_wnd, &req->rsk_window_clamp,
|
- &req->rsk_rcv_wnd, &req->rsk_window_clamp,
|
||||||
- ireq->wscale_ok, &rcv_wscale,
|
- ireq->wscale_ok, &rcv_wscale,
|
||||||
- dst_metric(dst, RTAX_INITRWND));
|
- dst_metric(dst, RTAX_INITRWND));
|
||||||
+ tp->ops->select_initial_window(sk, tcp_full_space(sk), req->mss,
|
+ tp->ops->select_initial_window(sk, full_space, req->mss,
|
||||||
+ &req->rsk_rcv_wnd, &req->rsk_window_clamp,
|
+ &req->rsk_rcv_wnd, &req->rsk_window_clamp,
|
||||||
+ ireq->wscale_ok, &rcv_wscale,
|
+ ireq->wscale_ok, &rcv_wscale,
|
||||||
+ dst_metric(dst, RTAX_INITRWND));
|
+ dst_metric(dst, RTAX_INITRWND));
|
||||||
|
|
3371
root/target/linux/generic/hack-5.4/693-tcp_bbr2.patch
Normal file
3371
root/target/linux/generic/hack-5.4/693-tcp_bbr2.patch
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,54 +0,0 @@
|
||||||
From 97fdec52fff8079d3af104e8723602a3cb9d2a11 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Frank Wunderlich <frank-w@public-files.de>
|
|
||||||
Date: Thu, 20 Jun 2019 23:06:41 +0200
|
|
||||||
Subject: [PATCH] net: dts: add second gmac for bananapi r2
|
|
||||||
|
|
||||||
---
|
|
||||||
arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts | 18 ++++++++++++++++--
|
|
||||||
1 file changed, 16 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts b/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
|
|
||||||
index 2b760f90f38c..fad09608b86c 100644
|
|
||||||
--- a/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
|
|
||||||
+++ b/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
|
|
||||||
@@ -143,13 +143,25 @@
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
+ gmac1: mac@1 {
|
|
||||||
+ compatible = "mediatek,eth-mac";
|
|
||||||
+ reg = <1>;
|
|
||||||
+ label = "wan";
|
|
||||||
+ phy-mode = "rgmii";
|
|
||||||
+ phy-handle = <&ephy0>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
mdio: mdio-bus {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
- switch@0 {
|
|
||||||
- compatible = "mediatek,mt7530";
|
|
||||||
+ ephy0: ethernet-phy@0 {
|
|
||||||
reg = <0>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ switch@1f {
|
|
||||||
+ compatible = "mediatek,mt7530";
|
|
||||||
+ reg = <0x1f>;
|
|
||||||
reset-gpios = <&pio 33 0>;
|
|
||||||
core-supply = <&mt6323_vpa_reg>;
|
|
||||||
io-supply = <&mt6323_vemc3v3_reg>;
|
|
||||||
@@ -158,10 +170,12 @@
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
+/* Disabled, is now handled by gmac1 (eth1/wan) via phy-handle!
|
|
||||||
port@0 {
|
|
||||||
reg = <0>;
|
|
||||||
label = "wan";
|
|
||||||
};
|
|
||||||
+*/
|
|
||||||
|
|
||||||
port@1 {
|
|
||||||
reg = <1>;
|
|
|
@ -1,26 +1,12 @@
|
||||||
--- a/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts 2020-04-19 11:02:56.505715879 +0200
|
--- a/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts.anc 2020-11-16 15:48:00.852410183 +0100
|
||||||
+++ b/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts 2020-04-19 11:03:53.620780390 +0200
|
+++ b/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts 2020-11-16 15:49:23.878965822 +0100
|
||||||
@@ -196,7 +196,7 @@
|
@@ -210,27 +210,27 @@
|
||||||
gmac1: mac@1 {
|
|
||||||
compatible = "mediatek,eth-mac";
|
|
||||||
reg = <1>;
|
|
||||||
- label = "wan";
|
|
||||||
+ label = "lan";
|
|
||||||
phy-mode = "rgmii";
|
|
||||||
phy-handle = <&ephy0>;
|
|
||||||
local-mac-address = [00 0a 35 00 00 02];
|
|
||||||
@@ -221,31 +221,31 @@
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
-/* Disabled, is now handled by gmac1 (eth1/wan) via phy-handle!
|
|
||||||
+/* Disabled, is now handled by gmac1 (eth1/lan) via phy-handle!
|
|
||||||
port@0 {
|
port@0 {
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
- label = "wan";
|
- label = "wan";
|
||||||
+ label = "lan";
|
+ label = "lan";
|
||||||
};
|
};
|
||||||
*/
|
|
||||||
|
|
||||||
port@1 {
|
port@1 {
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
|
|
Loading…
Reference in a new issue