Initial commit
This commit is contained in:
commit
0298024043
|
@ -0,0 +1,4 @@
|
||||||
|
/archlinux-linux/
|
||||||
|
/pkg/
|
||||||
|
/src/
|
||||||
|
/*.tar.xz
|
|
@ -0,0 +1,36 @@
|
||||||
|
From bf1e42ac2cd29a3aac82ef610fd1713baaa7c725 Mon Sep 17 00:00:00 2001
|
||||||
|
From: haskal <haskal@bepis.xyz>
|
||||||
|
Date: Sun, 3 Nov 2019 01:38:46 +0000
|
||||||
|
Subject: [PATCH] mac80211: Ignore beacon-advertised txpower
|
||||||
|
|
||||||
|
This patch disables checking for AP-advertised txpower in received
|
||||||
|
beacon frames. This allows the currently configured radio txpower to
|
||||||
|
remain the same.
|
||||||
|
---
|
||||||
|
net/mac80211/mlme.c | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
|
||||||
|
index a826f9ccc03f..826877bef6ef 100644
|
||||||
|
--- a/net/mac80211/mlme.c
|
||||||
|
+++ b/net/mac80211/mlme.c
|
||||||
|
@@ -1452,6 +1452,8 @@ ieee80211_find_80211h_pwr_constr(struct ieee80211_sub_if_data *sdata,
|
||||||
|
const u8 *pwr_constr_elem,
|
||||||
|
int *chan_pwr, int *pwr_reduction)
|
||||||
|
{
|
||||||
|
+ return false;
|
||||||
|
+#if 0
|
||||||
|
struct ieee80211_country_ie_triplet *triplet;
|
||||||
|
int chan = ieee80211_frequency_to_channel(channel->center_freq);
|
||||||
|
int i, chan_increment;
|
||||||
|
@@ -1505,6 +1507,7 @@ ieee80211_find_80211h_pwr_constr(struct ieee80211_sub_if_data *sdata,
|
||||||
|
*pwr_reduction = 0;
|
||||||
|
|
||||||
|
return have_chan_pwr;
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ieee80211_find_cisco_dtpc(struct ieee80211_sub_if_data *sdata,
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
|
|
|
@ -0,0 +1,209 @@
|
||||||
|
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
|
||||||
|
|
||||||
|
pkgbase=linux
|
||||||
|
pkgver=5.3.8.1
|
||||||
|
pkgrel=1
|
||||||
|
_srcver=${pkgver%.*}-arch${pkgver##*.}
|
||||||
|
url="https://git.archlinux.org/linux.git/log/?h=v$_srcver"
|
||||||
|
arch=(x86_64)
|
||||||
|
license=(GPL2)
|
||||||
|
makedepends=(
|
||||||
|
xmlto kmod inetutils bc libelf
|
||||||
|
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=v$_srcver"
|
||||||
|
config # the main kernel config file
|
||||||
|
0001-mac80211-Ignore-beacon-advertised-txpower.patch
|
||||||
|
)
|
||||||
|
validpgpkeys=(
|
||||||
|
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
|
||||||
|
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
|
||||||
|
'8218F88849AAC522E94CF470A5E9288C4FA415FA' # Jan Alexander Steffens (heftig)
|
||||||
|
)
|
||||||
|
sha256sums=('SKIP'
|
||||||
|
'1da444b9f2f55de39072f267598f80b6858adbf912deb5c08222b58cb0466ecb'
|
||||||
|
'SKIP')
|
||||||
|
|
||||||
|
export KBUILD_BUILD_HOST=archlinux
|
||||||
|
export KBUILD_BUILD_USER=$pkgbase
|
||||||
|
export KBUILD_BUILD_TIMESTAMP="@${SOURCE_DATE_EPOCH:-$(date +%s)}"
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd $_srcname
|
||||||
|
|
||||||
|
msg2 "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
|
||||||
|
msg2 "Applying patch $src..."
|
||||||
|
patch -Np1 < "../$src"
|
||||||
|
done
|
||||||
|
|
||||||
|
msg2 "Setting config..."
|
||||||
|
cp ../config .config
|
||||||
|
make olddefconfig
|
||||||
|
|
||||||
|
make -s kernelrelease > version
|
||||||
|
msg2 "Prepared %s version %s" "$pkgbase" "$(<version)"
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd $_srcname
|
||||||
|
make bzImage modules htmldocs
|
||||||
|
}
|
||||||
|
|
||||||
|
_package() {
|
||||||
|
pkgdesc="The ${pkgbase/linux/Linux} 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')
|
||||||
|
|
||||||
|
cd $_srcname
|
||||||
|
local kernver="$(<version)"
|
||||||
|
local modulesdir="$pkgdir/usr/lib/modules/$kernver"
|
||||||
|
|
||||||
|
msg2 "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"
|
||||||
|
|
||||||
|
msg2 "Installing modules..."
|
||||||
|
make INSTALL_MOD_PATH="$pkgdir/usr" modules_install
|
||||||
|
|
||||||
|
# remove build and source links
|
||||||
|
rm "$modulesdir"/{source,build}
|
||||||
|
|
||||||
|
msg2 "Fixing permissions..."
|
||||||
|
chmod -Rc u=rwX,go=rX "$pkgdir"
|
||||||
|
}
|
||||||
|
|
||||||
|
_package-headers() {
|
||||||
|
pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
|
||||||
|
|
||||||
|
cd $_srcname
|
||||||
|
local builddir="$pkgdir/usr/lib/modules/$(<version)/build"
|
||||||
|
|
||||||
|
msg2 "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}
|
||||||
|
|
||||||
|
msg2 "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
|
||||||
|
|
||||||
|
msg2 "Installing KConfig files..."
|
||||||
|
find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \;
|
||||||
|
|
||||||
|
msg2 "Removing unneeded architectures..."
|
||||||
|
local arch
|
||||||
|
for arch in "$builddir"/arch/*/; do
|
||||||
|
[[ $arch = */x86/ ]] && continue
|
||||||
|
echo "Removing $(basename "$arch")"
|
||||||
|
rm -r "$arch"
|
||||||
|
done
|
||||||
|
|
||||||
|
msg2 "Removing documentation..."
|
||||||
|
rm -r "$builddir/Documentation"
|
||||||
|
|
||||||
|
msg2 "Removing broken symlinks..."
|
||||||
|
find -L "$builddir" -type l -printf 'Removing %P\n' -delete
|
||||||
|
|
||||||
|
msg2 "Removing loose objects..."
|
||||||
|
find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete
|
||||||
|
|
||||||
|
msg2 "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)
|
||||||
|
|
||||||
|
msg2 "Adding symlink..."
|
||||||
|
mkdir -p "$pkgdir/usr/src"
|
||||||
|
ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase"
|
||||||
|
|
||||||
|
msg2 "Fixing permissions..."
|
||||||
|
chmod -Rc u=rwX,go=rX "$pkgdir"
|
||||||
|
}
|
||||||
|
|
||||||
|
_package-docs() {
|
||||||
|
pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase/linux/Linux} kernel"
|
||||||
|
|
||||||
|
cd $_srcname
|
||||||
|
local builddir="$pkgdir/usr/lib/modules/$(<version)/build"
|
||||||
|
|
||||||
|
msg2 "Installing documentation..."
|
||||||
|
mkdir -p "$builddir"
|
||||||
|
cp -t "$builddir" -a Documentation
|
||||||
|
|
||||||
|
msg2 "Removing doctrees..."
|
||||||
|
rm -r "$builddir/Documentation/output/.doctrees"
|
||||||
|
|
||||||
|
msg2 "Moving HTML docs..."
|
||||||
|
local src dst
|
||||||
|
while read -rd '' src; do
|
||||||
|
dst="$builddir/Documentation/${src#$builddir/Documentation/output/}"
|
||||||
|
mkdir -p "${dst%/*}"
|
||||||
|
mv "$src" "$dst"
|
||||||
|
rmdir -p --ignore-fail-on-non-empty "${src%/*}"
|
||||||
|
done < <(find "$builddir/Documentation/output" -type f -print0)
|
||||||
|
|
||||||
|
msg2 "Adding symlink..."
|
||||||
|
mkdir -p "$pkgdir/usr/share/doc"
|
||||||
|
ln -sr "$builddir/Documentation" "$pkgdir/usr/share/doc/$pkgbase"
|
||||||
|
|
||||||
|
msg2 "Fixing permissions..."
|
||||||
|
chmod -Rc u=rwX,go=rX "$pkgdir"
|
||||||
|
}
|
||||||
|
|
||||||
|
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:
|
|
@ -0,0 +1,16 @@
|
||||||
|
This is a dumb proof-of-concept Linux kernel patch that lets you keep your configured 802.11 tx power in STA mode even if the AP you're associated with is advertising a different tx power in their beacon frames.
|
||||||
|
|
||||||
|
## Mandatory Disclaimer ##
|
||||||
|
|
||||||
|
Something something proof of concept...educational purposes...
|
||||||
|
Running this may be illegal depending on your jurisdiction. Probably don't do it. For the official record, I never have. I just made it, for, reasons,
|
||||||
|
|
||||||
|
## How to build ##
|
||||||
|
|
||||||
|
This is an archlinux kernel. If you run arch (btw):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
makepkg -si
|
||||||
|
```
|
||||||
|
|
||||||
|
For other distros, you can manually apply the patch on top of your distro's linux kernel sources and use whatever build process they have.
|
Loading…
Reference in New Issue