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
- 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.
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.
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.
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