diff --git a/README.md b/README.md index c311d2a8b..0b73f40d1 100644 --- a/README.md +++ b/README.md @@ -467,7 +467,8 @@ In case the test tool doesn't appear to be working, check the following: 1. Check that no other process is using the network card (e.g. kill your network manager). 2. If everything worked previously, try unplugging your Wi-Fi dongle, restart your computer or virtual - machine, and then try again. + machine, and then try again. Also try to disable hardware encryption using the `disable-hwcrypto.sh` + script (reboot your computer after executing this script). 3. Assure the device you are testing doesn't enter a sleep state (causing it to miss injected frames). I recommend running the test tool in [mixed mode](#id-mixed-mode) since this better handles clients @@ -940,6 +941,15 @@ I tested the Intel AX200 and found that it is _not_ compatible with the test too after injecting a frame with the More Fragments flag set. If an Intel developer is reading this, please update the firmware and make it possible to inject fragmented frames. +### RT5572-based chips + +I tested this chipset using the general [CSL USB 2.0 WLAN Adapter 300Mbit adapter](http://www.amazon.de/dp/B00LLIOT34?tag=modwiffir-20). +After disabling hardware decryption by executing the `disable-hwcrypto.sh` script I was able to perform +a basic ping test (`ping`). A fragmented ping test (`ping I,E,E`) was very unreliable but sometimes worked. + +The current conclusion is that RT5572 chips _might_ work with the test tool after disabling hardware +encryption. But extra experiments are needed to confirm this (feedback is welcome). + ## 9.9. Hwsim mode details diff --git a/research/disable-hwcrypto.sh b/research/disable-hwcrypto.sh new file mode 100755 index 000000000..4e9b63fd2 --- /dev/null +++ b/research/disable-hwcrypto.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# Copyright (c) 2017, Mathy Vanhoef +# +# This code may be distributed under the terms of the BSD license. +# See README for more details. + +set -e + +NOHWCRYPT="ath5k ath9k ath9k_htc rt2800usb carl9170 b43 p54common rt2500usb rt2800pci rt73usb" +SWCRYPTO="iwlwifi iwl3945 iwl4965" +HWCRYPTO="ipw2200" +MODFILE="/etc/modprobe.d/nohwcrypt.conf" + +# 0. Check if we have root privileges +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" + exit 1 +fi + + +# 1. Create nohwcrypt.conf options file + +rm $MODFILE 2> /dev/null || true + +for MODULE in $NOHWCRYPT +do echo "options $MODULE nohwcrypt=1" >> $MODFILE; done + +for MODULE in $SWCRYPTO +do echo "options $MODULE swcrypto=1" >> $MODFILE; done + +for MODULE in $HWCRYPTO +do echo "options $MODULE hwcrypto=0" >> $MODFILE; done + + +# 2. Remove loaded modules so they'll reload parameters. Note that modules that +# are in use by others won't be removed (e.g. iwlwifi won't be removed). + +for MODULE in $NOHWCRYPT $SWCRYPTO $HWCRYPTO +do rmmod $MODULE 2> /dev/null || true; done + + +# 3. Done. To be sure parameters are reloaded, reboot computer. + +echo "Created config file $MODFILE to disable hardware decryption." +echo "Reboot your computer to apply the changes."