Increasing Wifi TX Power Signal Strength in Linux

Increasing Wifi TX Power Signal Strength in Linux

TX power is a setting for the radio to set its transmitting strength. Higher values amplify the signal strength, but also increase power usage.

Tx power level 1 is always the highest level of power a wireless access point. The transmit power level is assigned an integer value instead of a value in mW or dBm. The integer corresponds to a power level that varies depending on the regulatory domain in which the access points are deployed.

The default Tx power level of a wireless adapter Is 20 dBm in this guide we will let out interface to 30 dBm but LBE warned that it may be illegal in your country to use high Tx levels, use at your own risk.

Some Wireless interface models are not supported when using Tx Power settings these settings or wireless chip may state that it “can” transmit with higher power, but the device’s manufacturer probably did not place the appropriate hardware in order to accomplish this.

In this guide I will be using a Alfa Networks AWUS36H Hi-Range I really like the Alfa cards as they have a good Tx Power Level and they work with Linux out the box the monitor mode compatibility is really good it uses a Realtek RTL8187L Chip set.

In this guide I will use GY (Guyana) You could also try BZ (Belize) as of mid 2014 Linux wireless regulatory database have found the BO (Bolivia) level increase so they set it back to Tx-Power=20 dBm as of mid 2014. In Newer Kali Linux kernels are now including this limit.

Lets start open up a new terminal.

Lets find the name of the Wireless interface using ifconfig.

Now we know the name of our Wireless interface we need to put the interface down this will allow changes to be made.

ifconfig wlan0 down

Now we can set the reg using iw.

iw reg set GY

Now we will set the Tx Power Level to 30 dBm using the following command.

iwconfig wlan0 txpower 30
If you get any errors such as.
Error for wireless request "Set Tx Power" (8B26) :
SET failed on device wlan0 ; Invalid argument. 

Use the follow commands to set the Tx-Power of wireless interface.

ifconfig wlan0 down
iw reg set GY
ifconfig wlan0 up
iwconfig wlan0 channel 13
iwconfig wlan0 txpower 30

You can make sure the interface Tx-Power is set using iw reg command.

iw reg get

If you would like to set Tw-Power Level from a script you can use the following bash script.

#!/bin/bash

echo "hello, root!"
echo " taking down wlan0"
ifconfig wlan0 down
sleep 3

echo "setting Region to Bolivia"
iw reg set GY
sleep 3

echo "setting TxPower to 30"
iwconfig wlan0 txpower 30
sleep 2

echo "starting wlan0"
ifconfig wlan0 up 
echo "pulling wlan0 interface up"
iwconfig
sleep 5

echo "Tx Power Set"

Paste the script above in to your favorite text editor Save script as TxPower.sh to run the script we will need to first make the script executable using chmod this will give the script the required permissions it needs to run.

chmod +x TxPower
./TxPower