iwconfig wlan0 txpower 30mW - not working

@wie5Ooma, Is right about violating the law. but about the answering the question. As it goes:

WARNING Removing all restrictions is illegal in the United States. This is only for educational reasons, and if you choose to apply it and break the law, then that is your choice and not mine. Please be careful putting this into action. This is for Education purpose only!

  • First we gonna need to use some packages:

    • python-m2crypto
    • libgcrypt11
    • libgcrypt11-dev
    • libnl-dev
  • To check if they're installed:

    dpkg -s python-m2crypto libgcrypt11 libgcrypt11-dev libnl-dev
    
  • If not, to install:

    apt-get install python-m2crypto libgcrypt11 libgcrypt11-dev libnl-dev
    
  • Now, you'll need wireless regulatory database CRDA, and wireless-regdb tools to build the database read by CRDA to provide regulatory domains to the Linux kernel.

    • CRDA
    • Wireless-regdb
  • Navigate to the download folder and unzip the files.

Now here is the interesting part. This is where we actually get to change the regulations. Change your directory to the wireless-regdb folder, and in there you will find a file called db.txt. This is the file we will edit. Let's take a quick look at it:

more db.txt

more of db.txt

  • Now let's take a look at a few things here. Look at what I underlined above. First, let's notice the first entry (country 00) which is the world regulatory domain and this is applied before all else. So when you turn on your BackTrack system, the world domain is applied to you first and then you can change regulatory domains from there to other countries like country AM.

The second thing I underlined, which can go a max of 20 dBm, the third thing I underlined, on the 2.4ghz band. If you wanna change how high you can go, that is the number you want to change.

  • For example, let's change Bolivia's rules*

    nano db.txt Scroll down until you find country BO. enter image description here

  • Look at what I highlighted. This is the number we want to change.

If your card can go up to 2000 mW, then you would change that number to 33, which stands for 33 dBm, which is approximately 2000 mW. The number you are replacing is in decibels.

I am not sure about your card, some wireless cards like the AWUS036NHA may be stuck in a country and cannot be changed from that country. In that case, Find out which country your card believes it is in and change that country's configurations.

Quick DECIBEL understanding:

Every 10 decibels is a 10X increase in power starting from 1 dBm equal to 1mW... 10 dBm equals 10 mW, 20 dBm equals 100 mW, 30 dBm equals 1000 mW, and so on. Quick DECIBEL understanding:

Every 10 decibels is a 10X increase in power starting from 1 dBm equal to 1mW... 10 dBm equals 10 mW, 20 dBm equals 100 mW, 30 dBm equals 1000 mW, and so on. Every 3 decibels is approximately double that of the prior power, so 30 dBm is 1000 mW, if we add 3 dBm, then we can double the power such that 33 dBm is about equal to 2000 mW. Every 3 decibels is approximately double that of

the prior power, so 30 dBm is 1000 mW, if we add 3 dBm, then we can double the power such that 33 dBm is about equal to 2000 mW.

Now, Pay attention.

enter image description here

Notice now I changed the number to 33. When we are finished here, when I change my regulatory domain to BO, i can set my txpower to 33.

  • Now save the changes when you are done by pressing first, Ctrl+X, then Y, and finally, Enter.

Now you need to swap our old regulatory file with the one you downloaded. While still in the wireless-regdb directory, just enter the command make.

You'll notice you have some new files now in that directory. This is good. your regulatory.bin file in this directory now needs to be replaced with the old one.

First navigate to the authentic regulatory.db's location.

cd /usr/lib/crda

And let's also make a backup of the old one just in case (Recommended).

mv regulatory.bin regulatoryOLD.bin

Now let's bring in the new one. Go back to your directory of our new regulatory.bin and let's copy it over and verify it's there.

cd {path to your new regulatory.bin}
cp regulatory.bin /usr/lib/crda/regulatory.bin
cd /usr/lib/crda
ls

Validating Now we have our new regulatory.db, but it is not valid yet. Go back to the wireless-regdb directory and you'll notice you have some files with an extension of .pem. Copy ALL files ending with a .pem into your downloaded crda directory in pubkeys. These are the files that CRDA will use to check if regulatory.bin is valid.

cd ~/Desktop/wireless-regdb-2013.10.11
cp root.key.pub.pem ~/Desktop/crda-1.1.3/pubkeys/root.key.pub.pem
cp linville.key.pub.pem
~/Desktop/crda-1.1.3/pubkeys/linville.key.pub.pem

And verify:

cd ~/Desktop/crda-1.1.3/pubkeys
ls

Finally, Now go up a directory from where you are back to the downloaded crda directory and install this puppy.

cd ..
make
make install

You should be seeing something like that. enter image description here

If so, reboot: sudo reboot

After reboot:

iw reg set BO
iwconfig wlan0 txpower 33

You're trying to boost the transmission power, however that's subject to limitations both legally and technically. Wireless transmissions observe CRDA rules which put simply is a list that describes what maximum transmission power is allowed. Your device/operating system has a country code therefore knows what to do. If there is no countrycode it operates at generic values that are always safe to use.

There's more: Certain cards are even technically limited. They've an in built fixed country code and are constructed such that they can't use a higher power whatever you try.

I have an Intel wireless card too and Tx power is always at 16 whatever I try to increase it.


This can be because you are in a country with a limiting law. You can increase the power beyond your local limit but this will likely be breaking the law. This is only for high power antennas.

METHOD 1:

Open terminal and copy paste the following commands:

ifconfig wlan0 down
iw reg set BO
iwconfig wlan0 txpower 30
ifconfig wlan0 up

If above method gives the following error then go for METHOD 2.

Error for wireless request "Set Tx Power" (8B26) :
SET failed on device wlan0 ; Invalid argument.

METHOD 2:

Open terminal and copy paste the following commands:

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

SOURCE: This page