-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 8b6f078
Showing
4 changed files
with
10,819 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
pkgbase = linux-beacon | ||
pkgdesc = Linux | ||
pkgver = 5.12.9.arch1 | ||
pkgrel = 1 | ||
url = https://git.archlinux.org/linux.git/log/?h=v5.12.9-arch1 | ||
arch = x86_64 | ||
license = GPL2 | ||
makedepends = bc | ||
makedepends = kmod | ||
makedepends = libelf | ||
makedepends = pahole | ||
makedepends = cpio | ||
makedepends = perl | ||
makedepends = tar | ||
makedepends = xz | ||
makedepends = xmlto | ||
makedepends = python-sphinx | ||
makedepends = python-sphinx_rtd_theme | ||
makedepends = graphviz | ||
makedepends = imagemagick | ||
makedepends = git | ||
options = !strip | ||
source = archlinux-linux::git+https://git.archlinux.org/linux.git?signed#tag=v5.12.9-arch1 | ||
source = config | ||
source = beacon_timeout.patch | ||
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886 | ||
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E | ||
validpgpkeys = A2FF3A36AAA56654109064AB19802F8B0D70FC30 | ||
sha256sums = SKIP | ||
sha256sums = 0d0691aa0f80fea0d9d204c05a845416dd443f3bb629cbb68e098e4d19cc841d | ||
sha256sums = f9aff9e30c5468d37a1434c59ac550bf0afeeee54707aca50bc49343efca40a6 | ||
|
||
pkgname = linux-beacon | ||
pkgdesc = The Linux kernel and modules | ||
depends = coreutils | ||
depends = kmod | ||
depends = initramfs | ||
optdepends = crda: to set the correct wireless channels of your country | ||
optdepends = linux-firmware: firmware images needed for some devices | ||
provides = VIRTUALBOX-GUEST-MODULES | ||
provides = WIREGUARD-MODULE | ||
replaces = virtualbox-guest-modules-arch | ||
replaces = wireguard-arch | ||
|
||
pkgname = linux-beacon-headers | ||
pkgdesc = Headers and scripts for building modules for the Linux kernel | ||
depends = pahole | ||
|
||
pkgname = linux-beacon-docs | ||
pkgdesc = Documentation for the Linux kernel |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,200 @@ | ||
# Maintainer: Jan Alexander Steffens (heftig) <[email protected]> | ||
|
||
pkgbase=linux-beacon | ||
pkgver=5.12.9.arch1 | ||
pkgrel=1 | ||
pkgdesc='Linux' | ||
_srctag=v${pkgver%.*}-${pkgver##*.} | ||
url="https://git.archlinux.org/linux.git/log/?h=$_srctag" | ||
arch=(x86_64) | ||
license=(GPL2) | ||
makedepends=( | ||
bc kmod libelf pahole cpio perl tar xz | ||
xmlto python-sphinx python-sphinx_rtd_theme graphviz imagemagick | ||
git | ||
) | ||
options=('!strip') | ||
_srcname=archlinux-linux | ||
source=( | ||
"$_srcname::git+https://git.archlinux.org/linux.git?signed#tag=$_srctag" | ||
config # the main kernel config file | ||
beacon_timeout.patch | ||
) | ||
validpgpkeys=( | ||
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds | ||
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman | ||
'A2FF3A36AAA56654109064AB19802F8B0D70FC30' # Jan Alexander Steffens (heftig) | ||
) | ||
sha256sums=('SKIP' | ||
'0d0691aa0f80fea0d9d204c05a845416dd443f3bb629cbb68e098e4d19cc841d' | ||
'f9aff9e30c5468d37a1434c59ac550bf0afeeee54707aca50bc49343efca40a6') | ||
|
||
export KBUILD_BUILD_HOST=archlinux | ||
export KBUILD_BUILD_USER=$pkgbase | ||
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" | ||
|
||
prepare() { | ||
cd $_srcname | ||
|
||
echo "Setting version..." | ||
scripts/setlocalversion --save-scmversion | ||
echo "-$pkgrel" > localversion.10-pkgrel | ||
echo "${pkgbase#linux}" > localversion.20-pkgname | ||
|
||
local src | ||
for src in "${source[@]}"; do | ||
src="${src%%::*}" | ||
src="${src##*/}" | ||
[[ $src = *.patch ]] || continue | ||
echo "Applying patch $src..." | ||
patch -Np1 < "../$src" | ||
done | ||
|
||
echo "Setting config..." | ||
cp ../config .config | ||
make olddefconfig | ||
|
||
make -s kernelrelease > version | ||
echo "Prepared $pkgbase version $(<version)" | ||
} | ||
|
||
build() { | ||
cd $_srcname | ||
make all | ||
make htmldocs | ||
} | ||
|
||
_package() { | ||
pkgdesc="The $pkgdesc kernel and modules" | ||
depends=(coreutils kmod initramfs) | ||
optdepends=('crda: to set the correct wireless channels of your country' | ||
'linux-firmware: firmware images needed for some devices') | ||
provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE) | ||
replaces=(virtualbox-guest-modules-arch wireguard-arch) | ||
|
||
cd $_srcname | ||
local kernver="$(<version)" | ||
local modulesdir="$pkgdir/usr/lib/modules/$kernver" | ||
|
||
echo "Installing boot image..." | ||
# systemd expects to find the kernel here to allow hibernation | ||
# https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344 | ||
install -Dm644 "$(make -s image_name)" "$modulesdir/vmlinuz" | ||
|
||
# Used by mkinitcpio to name the kernel | ||
echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase" | ||
|
||
echo "Installing modules..." | ||
make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 modules_install | ||
|
||
# remove build and source links | ||
rm "$modulesdir"/{source,build} | ||
} | ||
|
||
_package-headers() { | ||
pkgdesc="Headers and scripts for building modules for the $pkgdesc kernel" | ||
depends=(pahole) | ||
|
||
cd $_srcname | ||
local builddir="$pkgdir/usr/lib/modules/$(<version)/build" | ||
|
||
echo "Installing build files..." | ||
install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \ | ||
localversion.* version vmlinux | ||
install -Dt "$builddir/kernel" -m644 kernel/Makefile | ||
install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile | ||
cp -t "$builddir" -a scripts | ||
|
||
# add objtool for external module building and enabled VALIDATION_STACK option | ||
install -Dt "$builddir/tools/objtool" tools/objtool/objtool | ||
|
||
# add xfs and shmem for aufs building | ||
mkdir -p "$builddir"/{fs/xfs,mm} | ||
|
||
echo "Installing headers..." | ||
cp -t "$builddir" -a include | ||
cp -t "$builddir/arch/x86" -a arch/x86/include | ||
install -Dt "$builddir/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s | ||
|
||
install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h | ||
install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h | ||
|
||
# http://bugs.archlinux.org/task/13146 | ||
install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h | ||
|
||
# http://bugs.archlinux.org/task/20402 | ||
install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h | ||
install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h | ||
install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h | ||
|
||
echo "Installing KConfig files..." | ||
find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \; | ||
|
||
echo "Removing unneeded architectures..." | ||
local arch | ||
for arch in "$builddir"/arch/*/; do | ||
[[ $arch = */x86/ ]] && continue | ||
echo "Removing $(basename "$arch")" | ||
rm -r "$arch" | ||
done | ||
|
||
echo "Removing documentation..." | ||
rm -r "$builddir/Documentation" | ||
|
||
echo "Removing broken symlinks..." | ||
find -L "$builddir" -type l -printf 'Removing %P\n' -delete | ||
|
||
echo "Removing loose objects..." | ||
find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete | ||
|
||
echo "Stripping build tools..." | ||
local file | ||
while read -rd '' file; do | ||
case "$(file -bi "$file")" in | ||
application/x-sharedlib\;*) # Libraries (.so) | ||
strip -v $STRIP_SHARED "$file" ;; | ||
application/x-archive\;*) # Libraries (.a) | ||
strip -v $STRIP_STATIC "$file" ;; | ||
application/x-executable\;*) # Binaries | ||
strip -v $STRIP_BINARIES "$file" ;; | ||
application/x-pie-executable\;*) # Relocatable binaries | ||
strip -v $STRIP_SHARED "$file" ;; | ||
esac | ||
done < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0) | ||
|
||
echo "Stripping vmlinux..." | ||
strip -v $STRIP_STATIC "$builddir/vmlinux" | ||
|
||
echo "Adding symlink..." | ||
mkdir -p "$pkgdir/usr/src" | ||
ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase" | ||
} | ||
|
||
_package-docs() { | ||
pkgdesc="Documentation for the $pkgdesc kernel" | ||
|
||
cd $_srcname | ||
local builddir="$pkgdir/usr/lib/modules/$(<version)/build" | ||
|
||
echo "Installing documentation..." | ||
local src dst | ||
while read -rd '' src; do | ||
dst="${src#Documentation/}" | ||
dst="$builddir/Documentation/${dst#output/}" | ||
install -Dm644 "$src" "$dst" | ||
done < <(find Documentation -name '.*' -prune -o ! -type d -print0) | ||
|
||
echo "Adding symlink..." | ||
mkdir -p "$pkgdir/usr/share/doc" | ||
ln -sr "$builddir/Documentation" "$pkgdir/usr/share/doc/$pkgbase" | ||
} | ||
|
||
pkgname=("$pkgbase" "$pkgbase-headers" "$pkgbase-docs") | ||
for _p in "${pkgname[@]}"; do | ||
eval "package_$_p() { | ||
$(declare -f "_package${_p#$pkgbase}") | ||
_package${_p#$pkgbase} | ||
}" | ||
done | ||
|
||
# vim:set ts=8 sts=2 sw=2 et: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
From ad3187dfd4f741e291a1ca0d3ce5b714eacbd279 Mon Sep 17 00:00:00 2001 | ||
From: Zachary Michaels <[email protected]> | ||
Date: Thu, 7 Jan 2021 08:13:11 -0800 | ||
Subject: [PATCH] iwlwifi: Make missed beacon timeout configurable | ||
|
||
Makes the beacon timeout a module parameter, allowing the original default (16 | ||
missed beacons) to be kept while also enabling users that experience problems to | ||
increase the timeout. | ||
|
||
See https://bugzilla.kernel.org/show_bug.cgi?id=203709 | ||
--- | ||
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 4 ++++ | ||
drivers/net/wireless/intel/iwlwifi/iwl-modparams.h | 2 ++ | ||
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 3 ++- | ||
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 1 - | ||
4 files changed, 8 insertions(+), 2 deletions(-) | ||
|
||
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c | ||
index 9dcd2e990c9c..ec01f922b2e7 100644 | ||
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c | ||
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c | ||
@@ -1732,6 +1732,7 @@ struct iwl_mod_params iwlwifi_mod_params = { | ||
.power_level = IWL_POWER_INDEX_1, | ||
.uapsd_disable = IWL_DISABLE_UAPSD_BSS | IWL_DISABLE_UAPSD_P2P_CLIENT, | ||
.enable_ini = true, | ||
+ .beacon_timeout = 16, | ||
/* the rest are 0 by default */ | ||
}; | ||
IWL_EXPORT_SYMBOL(iwlwifi_mod_params); | ||
@@ -1849,6 +1850,9 @@ module_param_named(enable_ini, iwlwifi_mod_params.enable_ini, | ||
bool, S_IRUGO | S_IWUSR); | ||
MODULE_PARM_DESC(enable_ini, | ||
"Enable debug INI TLV FW debug infrastructure (default: true"); | ||
+module_param_named(beacon_timeout, iwlwifi_mod_params.beacon_timeout, uint, 0644); | ||
+MODULE_PARM_DESC(beacon_timeout, | ||
+ "Number of missed beacons before disconnecting (default: 16)"); | ||
|
||
/* | ||
* set bt_coex_active to true, uCode will do kill/defer | ||
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h b/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h | ||
index e8ce3a300857..801d12a27354 100644 | ||
--- a/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h | ||
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h | ||
@@ -115,6 +115,7 @@ enum iwl_uapsd_disable { | ||
* @disable_11ac: disable VHT capabilities, default = false. | ||
* @remove_when_gone: remove an inaccessible device from the PCIe bus. | ||
* @enable_ini: enable new FW debug infratructure (INI TLVs) | ||
+ * @beacon_timeout: number of missed beacons before disconnect, default = 16 | ||
*/ | ||
struct iwl_mod_params { | ||
int swcrypto; | ||
@@ -137,6 +138,7 @@ struct iwl_mod_params { | ||
bool disable_11ax; | ||
bool remove_when_gone; | ||
bool enable_ini; | ||
+ u32 beacon_timeout; | ||
}; | ||
|
||
static inline bool iwl_enable_rx_ampdu(void) | ||
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | ||
index cbdebefb854a..07fc82398373 100644 | ||
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | ||
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | ||
@@ -63,6 +63,7 @@ | ||
#include <linux/etherdevice.h> | ||
#include <net/mac80211.h> | ||
#include "iwl-io.h" | ||
+#include "iwl-modparams.h" | ||
#include "iwl-prph.h" | ||
#include "fw-api.h" | ||
#include "mvm.h" | ||
@@ -1428,7 +1429,7 @@ void iwl_mvm_rx_missed_beacons_notif(struct iwl_mvm *mvm, | ||
* TODO: the threshold should be adjusted based on latency conditions, | ||
* and/or in case of a CS flow on one of the other AP vifs. | ||
*/ | ||
- if (rx_missed_bcon > IWL_MVM_MISSED_BEACONS_THRESHOLD_LONG) | ||
+ if (rx_missed_bcon > iwlwifi_mod_params.beacon_timeout) | ||
iwl_mvm_connection_loss(mvm, vif, "missed beacons"); | ||
else if (rx_missed_bcon_since_rx > IWL_MVM_MISSED_BEACONS_THRESHOLD) | ||
ieee80211_beacon_loss(vif); | ||
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | ||
index 7159d1da3e77..ce960d7d6a00 100644 | ||
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | ||
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | ||
@@ -92,7 +92,6 @@ | ||
/* RSSI offset for WkP */ | ||
#define IWL_RSSI_OFFSET 50 | ||
#define IWL_MVM_MISSED_BEACONS_THRESHOLD 8 | ||
-#define IWL_MVM_MISSED_BEACONS_THRESHOLD_LONG 16 | ||
|
||
/* A TimeUnit is 1024 microsecond */ | ||
#define MSEC_TO_TU(_msec) (_msec*1000/1024) | ||
-- | ||
2.29.2 | ||
|
Oops, something went wrong.