How to increase TX-Power of Wi-Fi adapters in Kali Linux
The current version of this guide is here: An easy way to increase TX Power for Wi-Fi in Kali Linux and BlackArch
The default TX-Power of wireless is set to 20 dBm but you can increase it with a little trick to 30 dBm but let me warn you first that it might be illegal in your country, so use it at your own risk. Moreover some models will not support 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 heat sink in order to accomplish this.
In different countries, legislation and technical standards varies, including in relation to Wi-Fi. In some countries it is not allowed to use the frequencies of some Wi-Fi channels (for example, channels 12, 13 and 14 can not be used in the USA). In most countries, a Wi-Fi signal power limit of 20.0 dBm is set. But there are countries in which there is a limitation of 30.0 dBm. You can take advantage of this loophole (make your wireless thinks it is located in a country where 30.0 dBm is allowed) and raise its TX Power to a value of 30.0 dBm.
Regulatory domains (or "regdomain") is the country in which this device is supposed to work. There is also an accompanying database, in which are prescribed the permitted frequencies and the allowed power.
The algorithm is:
- set the system-wide setting of the regulatory domain to the value, that matches to a country where the power is allowed to be 30.0 dBm;
- set the increased power for the wireless adapter.
In theory, the described method should work for many wireless cards, but in practice there are the following limitations:
- the physical inability of an adapter to operate at capacities greater than 20.0 dBm (for example, the wireless interface initially shows a power of 15.0 dBm while 20.0 dBm is allowed. In this case it is impossible to raise the power above 15.0 dBm, even to 20.0 dBm);
- driver features, for example, some drivers ignore system settings. This is not an insoluble problem, but each model needs its own approach.
To check capabilities of your wireless adapter issue the command:
sudo iw list
For example, the following frequencies and power are allowed for the US:
You can examine the full current database in pain text here.
Countries where allowed channels 1 through 13 on 30.0 dBm power are (for instance):
- BZ
- GY
- NZ
- VE
Note that for channels at 5 GHz they have different values (different list of allowed frequencies and powers).
Next, I'll show the power increasing of Alfa AWUS052NH in Kali Linux. The old guides tell to install additional packages, but currently this is not necessary. Everything you need is already available in Kali Linux!
To find out which region is currently configured, run the command:
sudo iw reg get
The string country 00 indicates that I have not set any value and the default settings was applied.
Now set the regulatory domains to BZ:
sudo iw reg set BZ
To insure the setting was applied run the command:
sudo iw reg get
At the same time, you can look at the new features with the command:
sudo iw list
To view the name of the wireless interface and its current status, use the command:
sudo iw dev
Next, increase the power (replace wlan0 with the actual name of your wireless interface):
sudo ip link set wlan0 down sudo iw dev wlan0 set txpower fixed 30mBm # sudo iw wlan0 set monitor control # if monitor mode needed sudo ip link set wlan0 up
Checking:
sudo iw dev
The line txpower 30.00 dBm indicates that we have succeeded.
How to increase TX-Power of Alfa AWUS036NHA
The above commands have no effect for AWUS036NHA. The driver of this adapter ignores regulatory domain value.
If you have Alfa AWUS036NHA or any other that ignores settings of regulatory domain, this is no reason to give up.
We are able to change database of the world regulatory domain.
First let's check which country your wireless card is made for:
sudo iw reg get
In my case, the country GB line indicates that the adaptor was produced for the country that is named GB in the database.
My method differs from other tutorials, where the wireless-regdb and crda packages are manually installed. These packages should already be installed on your system (in Kali Linux is the default). The only thing we do is replace the database file.
The latest versions of Kali Linux do not have the crda package installed, let’s install it:
sudo apt install crda
Install the dependency required to compile the database:
sudo apt install python3-m2crypto
We clone the source files:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git cd wireless-regdb/
Now we need to edit the database file:
gedit db.txt
In the file, find the country 00 line and replace line after it with something like that (correct it up to you):
(2402 - 2482 @ 40), (30) (5170 - 5835 @ 80), (30) (57000 - 66000 @ 2160), (40)
Now I find and change the lines according to the country wireless made for, for me it is GB (you may have a different country – it depends on your adapters, you can see this value with the sudo iw reg get command):
Save and close the file.
Patch files for using Python3
sed -i 's/#!\/usr\/bin\/env python/#!\/usr\/bin\/env python3/' *.py
Execute the command:
make
As a result, a binary file of the database (regulatory.bin) was created from the text file. We will use it to replace the file with the same name in the system.
Delete the original database file:
sudo rm /lib/crda/regulatory.bin
We copy our modified database:
sudo cp regulatory.bin /lib/crda/regulatory.bin
Once again for the new DB format, which is also used:
sudo rm /usr/lib/firmware/regulatory.db sudo cp regulatory.db /usr/lib/firmware/regulatory.db
We copy the required public key (the database file is signed with a specially generated key for our user):
sudo cp $USER.key.pub.pem /lib/crda/pubkeys/ sudo cp $USER.x509.pem /usr/lib/crda/pubkeys/
Restart your computer.
Now do not use sudo iw reg set BZ.
Let us check:
sudo iw reg get
Strings
country GB: DFS-ETSI (2402 - 2482 @ 40), (N/A, 30), (N/A)
mean we are able increasing the power to 30 dBm.
We try:
sudo ip link set wlan0 down sudo iw dev wlan0 set txpower fixed 30mBm # sudo iw wlan0 set monitor control # if monitor mode needed sudo ip link set wlan0 up
Result:
After we patched the database, there is no longer any need to change the value of the regulatory domains for any wireless interface!
Conclusion
Increasing TX power of the Wi-Fi adapter is undeniably useful only for Wi-Fi jamming, as well as for deauthentication attacks. In all other attacks, increasing TX power would not matter. Since power affects how loudly your Wi-Fi adapter is “talking”, but does not increase its sensitivity (how well it ‘hears’ others).
Changing value of regulatory domains lets to unlock some channels that might not be available in your country.
If you want to return everything to its original state, then run the following commands:
sudo apt purge wireless-regdb crda sudo apt install wireless-regdb
Related articles:
- An easy way to increase TX Power for Wi-Fi in Kali Linux and BlackArch (85.3%)
- USB Wi-Fi Adapters with monitor mode and wireless injection (100% compatible with Kali Linux) 2022 (71.7%)
- Alfa AWUS052NH – Kali Linux Compatible USB Adapter (69.3%)
- Best Kali Linux Compatible USB Wi-Fi adapters 2018 (69.3%)
- How to increase TX-Power of Wi-Fi adapters in BlackArch in 2022 (55.9%)
- How to use precomputed tables to crack Wi-Fi passwords in Hashcat and John the Ripper (RANDOM - 9.9%)
Hi man.. Thanks for the guide! But I have a problem using the Alfa 036NH. No networks show up after increasing to 30 OR 33dBm.
Hello! Unfortunately, I cannot reproduce the bug because I have no Alfa 036NH. I suppose its hardware is restricted with a maximum output power 2000mW.
If you need, I can provide for you the guide how to revert made changes.
Hey Alex, thanks for the quick reply. Don't worry, I did this on a Virtual Machine which has no value to me. I am not going to try random things on the internet on machines that have high value 😀 I also made a snapshot.
I am even more confused now.. I just reinstalled Kali after being completely lost, and without ever touching regions or anything else explained in here, the adapter won't show networks. I got it working again after updating/upgrading, dist upgrade.. Then I rebooted and stopped working again. This is really getting on my nerves 😀 I might just grab an old HDD/SSD and install it on there instead of a Virtual Machine.
I don't think this has anything to do with you, it's all on my side… Will keep trying…
Thanks though!
Oh, totally forgot. 33dBm is equal to 2000mW, is it not?
Yep, you're right. Physics measures are not my strong point. )))
No worries. It's way less worse than simply killing proccesses that interfere with airmon-ng.. I feel so stupid 😀 Never had this problem, EVER. But I think this was the problem. I installed 2017.2 instead of 2017.3 and simply changed region, nothing else. Then I did airmon-ng check kill and that fixed it. I will now test it on the other VM with 2017.3 + updates/upgrades + dist upgrade and will report back.
I have UBUNTU 17.10 and a laptop HP with a afla network card.
This worked, but it took two days to solve the problem. It was rather odd but it work. The problem was when I was trying to get
sudo
cp
$USER.key.pub.pem
/lib/crda/pubkeys/ to work.
So what I did was ls and found the root.key.bub.pem copy and the other wone into the crda/pubkeys .
reboot and it worked.
Ubunto , did not have it set up from install or not sure why but you get the 00 for country code. Reall problem. the txpower is at 20 by defualt.
I don't know why was so difficult to find a working guide for the awus036nha! worked like a charm for kali 2018, thanks!
Hi, I have AWUS036NHR, I followed the guide and this is my result after restart:
root@default:~# iw reg get
global
country 00: DFS-UNSET
(2402 - 2472 @ 40), (N/A, 33), (N/A)
(2457 - 2482 @ 20), (N/A, 33), (N/A), AUTO-BW, NO-IR
(2474 - 2494 @ 20), (N/A, 33), (N/A), NO-OFDM, NO-IR
(5170 - 5250 @ 80), (N/A, 33), (N/A), AUTO-BW, NO-IR
(5250 - 5330 @ 80), (N/A, 33), (0 ms), DFS, AUTO-BW, NO-IR
(5490 - 5730 @ 160), (N/A, 33), (0 ms), DFS, NO-IR
(5735 - 5835 @ 80), (N/A, 33), (N/A), NO-IR
(57240 - 63720 @ 2160), (N/A, 0), (N/A)
Unfortunately, if I set the txpower to 30 or 33, nothing happens. Changing the region to BO or GY doesn't help either. Any idea?
INFO:
PROBLEMS:
1. every time I reboot. It changed to
But actually I already change global part to 30db.
I can proof that by typing
QUESTIONS:
1. how to keep country 00 30db on reboot
tq
Hello! It is interesting behavior and I also can reproduce it. But: only if no wireless cards are connected. Once I connect a wireless adapter, I get the higher values without necessity to set Regulatory domains explicitly.
Also, to apply values from the patched database it is enough to call any ‘wireless’ command like that:
The first screen: before and after I plugged wireless adapter:
The second screen: before and after I ran iw dev:
I guess it is kind of optimization: the system does not load heavy database if there is no real need (no wireless interface). The system is smart!
In my case.
I need to run "iw dev" at least once to keep it persistent on reboot.
here after I ran "iw dev" and reboot
tq
I tried to disable NetworkManager, but I cannot reproduce the behavior if a wireless card is plugged. Did you make some tunings of your system?
no,
fresh kali ova import yesterday.
but I think its small matter because at least its already persistent on reboot
tq
hi
could you please clarify command above as its in green
# sudo iw wlan0 set monitor control # if monitor mode needed
is that’s what i need to type in order to bring tx up for monitor mode as well or some other command
, or command above is sufficient enough to up tx in both monitor and managed modethanks
Hello! The actual command you ask about is:
But I commented it, because not everyone needs the monitor mode.
So if you need the monitor mode, use the command just above. If you do not need the monitor mode, skip the command.
hi
i set 30 dbm and 33dbm and 36 dbm with usb wifi rt3070 complete no error but signal not different.and i can set txpower high than 15dbm on intel wifi 5100agn pci.how to fix
Hello,
i have followed your tutorial but i'm stuck as the "regulatory.bin" file doesn't exist in the "crda" folder …. it seems that in the new Kali Linux version the following steps are out of date, so what should we do now ? could you update your tuto ?
Thank you,
Hello! I just fixed it. Please try again.
hi, so the iw reg set is not working, it s still 00, i have NH, what can i do? i don t even get to set something if iw reg set it s not working…
Try to replug the wlan card after changing country code. On RT3070 worked like a charm with BZ (30dBm && channel 13) but it was applied immediately after repluging it
Thank you!
hi i got a problem when typing make:
kali@kali:~/wireless-regdb$ make
Generating public key for kali…
openssl rsa -in ~/.wireless-regdb-kali.key.priv.pem -out kali.key.pub.pem -pubout -outform PEM
writing RSA key
Generating certificate for kali…
./gen-pubcert.sh ~/.wireless-regdb-kali.key.priv.pem kali.x509.pem
Generating regulatory.bin digitally signed by kali…
./db2bin.py regulatory.bin db.txt ~/.wireless-regdb-kali.key.priv.pem
Traceback (most recent call last):
File "./db2bin.py", line 128, in <module>
from M2Crypto import RSA
ImportError: No module named M2Crypto
make: *** [Makefile:60: regulatory.bin] Error 1
i run newly updated kali 2020.1 Live-usb persistence on mac. Alfa awus036NHA
Hello! Maybe you used the old version of this manual. This tutorial is verified and updated regularly. Now it is required to install python3-m2crypto. And this fact is mentioned in the manual.
hello, to fix this error ==>
apt install python3-pip
pip3 install M2Crypto
sudo
rm
/usr/lib/firmware/regulatory
.db
## ubuntu path /lib/firmware/
sudo
cp
regulatory.db
/usr/lib/firmware/regulatory
.db
## ubuntu path /lib/firmware/
tested on ubuntu 16.04
Great!!!! work fine! thank you
The instruction was checked and corrected on April 6, 2020, at the moment everything is working.
Compared to the previous version:
- fixed dependency installation command
- patch *.py files to use Python3
- replacement of the regulatory.db file (because of this it did not work)
- now the $USER.x509.pem key is also copied to /usr/lib/crda/pubkeys/ (not sure if this is necessary, but here, I found the idea here: https://aur.archlinux.org/packages/wireless-regdb-pentest/, so I did it too)
If after any command any error occurs, then let me know, I will continue to figure it out.
hello sir i have tried both method but none of them worked in my case . may be because of my wifi dongle is hardcoded so is there any way to set up txpower to 30 dbm
Here is the Screenshot of my interference plz
Sir i need ur help to increase TX-POWER of TP-LINK T4U Archer AC 1300 wifi dongle ,it has fixed 12dbm tx-power and it also changes mac everytime i insert it here the commands
1:)
root@kali:~# iwconfig
lo no wireless extensions.
wlan0 unassociated Nickname:"<WIFI@REALTEK>"
Mode:Managed Frequency=2.412 GHz Access Point: Not-Associated
Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=0/100 Signal level=0 dBm Noise level=0 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
eth1 no wireless extensions.
eth0 no wireless extensions.
2:)
root@kali:~# iw dev
phy#2
Interface wlan0
ifindex 6
wdev 0x200000001
addr e6:14:4a:64:95:24
type managed
txpower 12.00 dBm
root@kali:~# iw dev
root@kali:~# iw dev
root@kali:~# iw dev
phy#3
Interface wlan0
ifindex 7
wdev 0x300000001
addr ae:b6:2f:9e:50:e1
type managed
txpower 12.00 dBm
root@kali:~#
Hello,
Since my last post, I had to reinstall Kali linux with the last release (2020.3) and i followed the steps like before but i can't make it run.
Each time i restart the computer, the country which i put as a reference (GB) is changed randomly into CN, AR, or whatever else… and the changes made in the regulatory.db file are not saved which lead me to have something weird.
Could you help ?
Hello, I have only two Wi-Fi adapters for testing, they are Alfa AWUS052NH and Alfa AWUS036NHA.
My Alfa AWUS052NH has default “country 00”, but my Alfa AWUS036NHA has “country GB”. The whole system settings change into country GB if I plug Alfa AWUS036NHA. This is the only way I know to change country settings without my participation. So I don’t know what is the reason of your problem. Do you use “normal” Kali Linux? I mean, not ARM, not NetHunter?
By the way, today I verified the manual above on the Kali Linux with the latest upgrades (2020.3, kernel 5.7.0) – it works fine for me and my two Wi-Fi adapters.
Hello Alex,
How do we do this for the Alfa AWUS036ACH?
Hello! This manual should work for all Wi-Fi adapters.
Hi there ,
i did all the steps and i do get on the iw reg get 30 but i cannot seems to change it to 30..
im using the AWUS1900
do you have exprience with it please?
Hello is it possible to enable frequencies from 5035 to 5080 and 5460? about kali 2020.4
The guide has been tested on Kali Linux with the latest updates. It has been fixed and works fine again.
Ciao spero che tu possa aiutarmi, ho problemi con il canale 95-96 (freq 5470-5480) e il canale 64 (freq 5340) quando digito iw list questi canali non sono nella mia lista e quindi non sono usati da airodump-ng esempio se provo a impostare il canale tramite iw ottengo questo errore:
iw wlan2 freq set 5475
rapporti del kernel: il canale è disabilitato
comando non riuscito: argomento non valido (-22)
come da tua guida digitando iw reg get invece sono disponibili Come posso abilitare questi canali disabilitati dal kernel? Grazie
Hi i hope you can help me, i have problem with channel 95-96 (freq 5470-5480) and channel 64 (freq 5340) when i type iw list these channels are not in my list and therefore are not used by airodump-ng example if i try to setting the channel via iw i get this error:
iw wlan2 freq set 5475
kernel reports: the channel is disabled
command failed: invalid argument (-22)
as per your guide typing iw reg get instead are available How can I enable these kernel-disabled channels? Thanks
Hello! Well, we can use channel 64, but you have to provide the correct frequently value, it is 5320.
Or just use the command:
About 64-100 channel range – I guess we cannot (and must not) use them, maybe it is hardware restriction as well.
From the Internet:
Q: Why is there a gap between channel 64 and 100 on 5GHz WiFi?
Answer 1:
There are various uses listed in the range 5.35 - 5.46 GHz including “Aeronautical Radionavigation”. This is where channels 68 to 96 would be. Obviously, they don’t want WiFi capable equipment being turned on, even accidentally, that is likely to interfere with aircraft navigation.
Answer 2:
Those channels are shared with weather radar. A router that uses those channels has to check for the presence of a weather radar. If a weather radar is detected, the router has to switch to another channel that doesn’t have a weather radar. I don’t remember how quickly the router has to stop using the channel. It might be 10 minutes.
If the router switches WiFi channels, clients won’t normally switch. Everything that was connected is no longer connected. I think a controller can switch clients to the new channel before the old one shuts down, but again I’m not sure.
There might be enterprise equipment that can do this. Consumers can’t afford it.
Hi Alex, I have an Alfa Tube-Una (chip AR9271) produced for the country US.
I'm using the second part of this guide on Xubuntu and it works very good.
I have a little problem: when in STATION mode, sometimes the country jumps back to global 'country 00'.
But it's a generic 'country 00' and it has not the parameters i have changed in db.txt.
I would like to know where is coming from this unchanged database.
I hope you can help me
Greetings!
I also ran into this problem. I don't have a ready-made solution, but I have some thoughts on this matter.
In this instruction, we change the database, generate our own key pair and sign the database with it. Previously, signature verification was performed by the crda package, and we just had to copy our certificate so that crda would do a verification against it.
Now certificate validation is done at the kernel level and crda is no longer needed. For this reason, crda is no longer installed by default in recent distribution releases. Nevertheless, this package is present in the repositories, so we can install it. After that, crda starts to perform functions of regulatory domain, and we use the proven method with copying our certificate to /lib/crda/pubkeys/.
Perhaps at some point crda loses control and the kernel starts to perform functions of regulatory domain again.
I tried to figure out how to add my own certificate so that it can be used to verify the signature of the regulatory.db file at the kernel level, that is, without crda, but I could not find an answer to this question.
That is, for now, this is a bug, for which I have no solution, but I have ideas about its causes. Perhaps someone reading this comment will tell us how to add the certificate so that it can be used to verify the signature of the regulatory.db file at the kernel level, that is, without crda.
Thank you.
I think the problem can be solved copying the new generated regulatory.db.p7s file in the /usr/lib/firmware/ directory.
Three days of trial are not a certainty, but now the 'country 00' has the patched parameters i gave.
Greetings!
Hi Alex,
Could you please let us know a version of Kali where all is working as expected without kernel level certificate check, etc.? I will be happy to install and keep it out of updates just for the wireless pursposes. Hope you will help me.
Let me remind you that the causes of the problem are just my assumptions.
From here:
From here:
You can find the moments when regulatory domain changed:
I think that we can return the old behavior by changing two kernel constants… well, or at least one of them ))))
I wish we can change them without kernel compiling (maybe via boot options), but my knowledge is not enough to do it. I wish someone tell me how it can be done.
At least we always have the opportunity to rebuild the official Kali Linux kernel package.
Some useful stuff (for me, for I don’t lose it):
Thank you very much indeed!
I tried this in kali linux and completed all the steps including editing and it didn't work for the Alfa AWUS036ACH
Hello
when i edit the db file after making save i get this error
(gedit:1198): Gtk-WARNING **: 18:12:33.120: Calling org.xfce.Session.Manager.Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Metodo «Inhibit» inesistente
Hello! I am pretty sure you are kidding me. It is a debug message from the gedit editor. If you really don’t understand this, just ignore it. It is not concerned to the topic of this article.
Ok so I finally got it to work but as soon as I set wlan0 to monitor mode, and check again with
#iw dev
it reverts back to txpower 20.00 dBM 🙁
I guess there is always the option of adding a 2.4ghz /5ghz amplifier in between the wireless card and the antenna(s) .
I receive this errors :
sudo cp $USER.key.pub.pem /lib/crda/pubkeys/ 1 ⨯
cp: cannot stat 'kalinoob.key.pub.pem': No such file or directory
└─$ sudo cp $USER.x509.pem /usr/lib/crda/pubkeys/ 1 ⨯
cp: cannot stat 'kalinoob.x509.pem': No such file or directory
Hello! I guess you haven't installed the crda package as shown in the article. After you do this, the required directory will be created.
ADDED: I saw the error more closely. It looks like the command to create these files failed or you missed this step.
Delete the wireless-regdb directory and try one more time from the “git clone git://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git” command
After completing the setup, the next few weeks of testing: The range for a longer time, but with a max rabbit tail, actually inside that the sensitivity of the device has deteriorated, but with WPS you see that the situation has improved. Therefore, it is not recommended for general use (only if you are using WPS on your linux system.)
Hi, let's say I set up a country file with 33 dbm if I type iw wlan1 set txpower fixed 2000 What happen ? the Tx power becomes that of the country file or the one set by the txpower fixed command?
Hello! Regulatory domains (country) have priority.
In my case the tx power is changed
I see that your wireless interface is set to monitor mode. I tried to reproduce this, but I got the error:
It's weird a bit. Apparently, these nuances depend on the wireless interface driver.
hello, thanks for the detailed instructions. I did everything as described, but I cannot change the tx power beyond 20 (reducing it would not be a problem). Could it be because of this code "country 99"? As you can see, I was able to change the document so that DE 30 is displayed.
However, I cannot change the tx power beyond 20.
Maybe you have a solution for me?
same problem (country 99) with Alfa AWUS036NHA and kali-2021.4
kali-2021.1 did the trick for me, showed up as country GB
http://old.kali.org/kali-images/kali-2021.1/
Folks, please take a look at the new guide, it should fix this problem in the latest releases of Kali Linux.
Folks, please take a look at the new guide, it should fix this problem in the latest releases of Kali Linux.
Hello I tried to follow through the tutorial but I encountered some problems. First here is the output of
iw reg get
country 99: DFS-UNSET (2402 - 2472 @ 40), (N/A, 20), (N/A) (2457 - 2482 @ 40), (N/A, 20), (N/A), PASSIVE-SCAN (5140 - 5860 @ 40), (N/A, 30), (N/A), PASSIVE-SCAN
as you can see the country is 99 and unset so I copied this an pasted it to db.txt and made the changes. Make the 20 to 30. Here is how it looks now
country 99: (2402 - 2472 @ 40), (30) (2457 - 2482 @ 40), (30) (5140 - 5860 @ 40), (30) (57000 - 66000 @ 2160), (40)
then to increase the power I ran this command
sudo ip link set wlp0s29u1u2 down && sudo iw wlp0s29u1u2 set monitor control && sudo iw dev wlp0s29u1u2 set txpower fixed 30 && sudo ip link set wlp0s29u1u2 up
The command succeeds but output of
iw dev
is nowInterface wlp0s29u1u2
ifindex 5
wdev 0x200000001
addr fa:09:d2:51:3b:8a
type managed
txpower 0.00 dBm
As you can see the power is now 0 dBm. Please help me solve this
Hello! Did this Wi-Fi dongle work before? I have seen similar symptoms when a Wi-Fi adapter based on the Realtek chipset was missing firmware. Try to start by installing the firmware. See also: Firmware files for drivers in Linux
By the way, I wrote a new guide “An easy way to increase TX Power for Wi-Fi in Kali Linux and BlackArch”, now it's really easy to increase TX Power.
At finally the power limit threshold are stored in eeprom. you have to modify the driver in order to override the limit. Don't trust on what report iw dev command. Use a power meter.
Hey any idea if a similar interface exists to increase tx power for the bluetooth portion of these chips like the Intel AX200 for example? Thanks